Berbagi streaming dengan Pub/Sub
Berbagi BigQuery (sebelumnya Analytics Hub) memungkinkan Anda membagikan topik Pub/Sub untuk mengumpulkan dan mendistribusikan data streaming real-time di seluruh organisasi internal dan eksternal. Dengan menggunakan pertukaran data dan listingan, Anda dapat mengategorikan dan mengelompokkan set topik Pub/Sub yang besar dan menyediakan akses dalam skala besar.
Kasus penggunaan
Anda dapat membagikan data streaming untuk mendukung kasus penggunaan di seluruh industri berikut:
- Jasa keuangan:
- Bagikan harga instrumen, penawaran harga, dan pesanan yang berubah dengan cepat secara real time.
- Mendeteksi pencucian uang dan penipuan pembayaran.
- Mendukung komputasi risiko perdagangan.
- Retail dan barang konsumsi (CPG):
- Mengelola inventaris toko secara real time.
- Mempersonalisasi pemasaran dan dukungan pelanggan.
- Sesuaikan harga secara dinamis.
- Pantau saluran media sosial.
- Mengoptimalkan tata letak toko fisik.
- Layanan Kesehatan:
- Mendukung algoritma prediktif untuk memantau pasien dan menganalisis risiko secara real time.
- Memantau tanda-tanda vital dengan perangkat medis wearable.
- Dapatkan, susun, simpan, dan proses data secara otomatis dari pasien, tenaga kesehatan, dan administrasi fasilitas.
- Telekomunikasi:
- Memantau kondisi jaringan dan memprediksi kegagalan.
- Temukan pola perilaku pengguna untuk menemukan perangkat dan antena dengan lebih baik.
Peran berbagi streaming
Peran Identity and Access Management (IAM) untuk berbagi topik Pub/Sub serupa dengan peran untuk berbagi set data BigQuery:
- Administrator: mengelola izin, visibilitas, dan keanggotaan
bursa dan listingan. Peran ini setara dengan peran IAM
Admin Analytics Hub
(
roles/analyticshub.admin). - Penayang topik bersama: membuat, mengelola, dan memberikan akses ke listingan topik Pub/Sub bersama. Peran ini setara dengan peran IAM
Penayang Analytics Hub
(
roles/analyticshub.publisher) atau Admin Listingan Analytics Hub (roles/analyticshub.listingAdmin). Penayang adalah pengguna, bukan aplikasi penayang yang membuat dan mengirim pesan ke topik. - Pelanggan topik bersama: berlangganan listingan topik bersama dan
mengonfigurasi cara Pub/Sub mengirimkan pesan topik. Peran ini
mirip dengan
peran IAM Pelanggan Analytics Hub
(
roles/analyticshub.subscriber) atau Pemilik Langganan Analytics Hub (roles/analyticshub.subscriptionOwner). Bergantung pada cara Pub/Sub mengirimkan data pesan, Anda mungkin memerlukan izin tambahan, seperti izin akun layanan Pub/Sub untuk menulis pesan ke BigQuery.
Arsitektur
Diagram berikut menunjukkan cara penayang dan pelanggan resource Pub/Sub berinteraksi dengan BigQuery sharing:
Berbagi streaming dengan Pub/Sub menggunakan komponen berikut:
- Topik bersama
- Topik bersama adalah unit untuk berbagi topik Pub/Sub di BigQuery sharing. Sebagai penayang topik bersama, Anda membuat atau menggunakan topik Pub/Sub yang ada untuk mendistribusikan data pesan ke pelanggan. BigQuery sharing tidak mereplikasi topik Pub/Sub sumber.
- Listingan
- Saat penayang menambahkan topik bersama ke bursa, BigQuery sharing akan membuat listingan yang merujuk ke topik bersama tersebut.
- Bursa
- Pertukaran adalah grup logis listingan yang merujuk pada topik bersama.
- Langganan Pub/Sub tertaut
- Saat pelanggan berlangganan ke listingan dengan topik bersama, BigQuery sharing akan membuat langganan Pub/Sub tertaut di project pelanggan. Dalam project penayang topik bersama, langganan akan muncul sebagai langganan Pub/Sub dan langganan listingan BigQuery sharing.
Batasan
Berbagi streaming dengan Pub/Sub memiliki batasan berikut:
- Topik bersama mendukung maksimum 10.000 langganan Pub/Sub. Batas ini mencakup langganan Pub/Sub tertaut dan langganan Pub/Sub yang dibuat di luar berbagi BigQuery, seperti langganan yang dibuat langsung di Pub/Sub.
Topik bersama diindeks di Knowledge Catalog, tetapi Anda tidak dapat memfilter secara khusus untuk jenis resource-nya.
Metrik penggunaan dicatat dan ditampilkan di dasbor metrik untuk topik dan langganan Pub/Sub bersama, tetapi tidak tersedia dalam tampilan
INFORMATION_SCHEMA.SHARED_DATASET_USAGE.Metrik ini dapat mencakup:
- Jumlah pesan publikasi
- Publikasikan permintaan
- Throughput publikasi dalam byte
- 5 langganan teratas
- Byte yang diserap
Untuk memantau metrik, lihat Memantau Pub/Sub di Cloud Monitoring.
Sebelum memulai
Sebelum Anda membagikan atau berlangganan topik Pub/Sub di BigQuery sharing, aktifkan API yang diperlukan.
Mengaktifkan Analytics Hub API
Untuk mengaktifkan Analytics Hub API, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman API Library dan aktifkan Analytics Hub API untuk project Google Cloud Anda.
gcloud
Aktifkan Analytics Hub API menggunakan
perintah gcloud services enable:
gcloud services enable analyticshub.googleapis.com
Mengaktifkan Pub/Sub API
Untuk mengaktifkan Pub/Sub API, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman API Library dan aktifkan Pub/Sub API untuk project Google Cloud Anda.
gcloud
Aktifkan Pub/Sub API menggunakan
perintah gcloud services enable:
gcloud services enable pubsub.googleapis.com
Alur kerja penayang topik bersama
Sebagai penayang topik bersama, Anda dapat melakukan hal berikut:
- Tambahkan topik bersama ke bursa dengan membuat listingan.
- Perbarui listingan.
- Menghapus listingan.
- Membagikan listingan.
- Mengelola langganan ke listingan Anda.
- Menghapus pelanggan dari listingan Anda.
Izin penayang tambahan
Untuk melakukan tugas penayang topik bersama, Anda harus memiliki
peran Penayang Analytics Hub
(roles/analyticshub.publisher) di bursa atau listingan. Untuk melihat semua
pertukaran data
yang dapat Anda akses di seluruh project dalam organisasi, Anda harus memiliki
izin resourcemanager.organizations.get.
Selain itu, Anda memerlukan izin pubsub.topics.setIamPolicy pada topik Pub/Sub yang ingin Anda cantumkan. Untuk membagikan topik dengan skema yang dilampirkan, Anda harus memberikan izin pubsub.schemas.get kepada pelanggan BigQuery sharing pada skema yang dilampirkan ke topik. Izin ini memungkinkan pelanggan BigQuery sharing mengurai pesan dari langganan Pub/Sub.
Membuat listingan topik bersama
Untuk menambahkan topik bersama ke bursa dengan membuat listingan, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Halaman ini mencantumkan semua pertukaran data yang dapat Anda lihat.
Klik nama pertukaran data tempat Anda ingin membuat listingan.
Klik Buat listingan.
Di halaman Create listing, di daftar Resource type, pilih Pub/Sub Topic.
Di daftar Shared topic, pilih topik Pub/Sub yang ada, atau klik Create a topic.
Di halaman Listing details, di kolom Display name, masukkan nama tampilan listingan.
Opsional: Masukkan detail berikut:
Kategori: pilih hingga lima kategori yang paling mewakili listingan Anda. Pelanggan topik bersama dapat memfilter listingan berdasarkan kategori ini.
Afinitas data: tentukan region tempat Anda memublikasikan data ke topik bersama. Informasi ini membantu pelanggan topik bersama meminimalkan atau menghindari biaya egress jaringan Pub/Sub dengan membaca data dari region yang sama. Untuk mengetahui informasi selengkapnya tentang biaya egress, lihat Biaya transfer data.
Ikon: upload ikon PNG atau JPEG untuk listingan Anda. Ikon harus berukuran lebih kecil dari 512 KiB dan memiliki dimensi tidak lebih dari 512 x 512 piksel.
Description: masukkan deskripsi singkat tentang listingan Anda. Pelanggan topik bersama dapat menelusuri listingan berdasarkan deskripsi.
Visibilitas Publik: mengaktifkan visibilitas publik untuk listingan Anda di katalog BigQuery sharing. Setelah membuat listingan, Anda juga harus memberikan peran Analytics Hub Viewer (
roles/analyticshub.viewer) kepadaallUsersatauallAuthenticatedUsersdi listingan tersebut. Jika pertukaran data sudah publik, listingan akan mewarisi izin tersebut dan tidak memerlukan tindakan lebih lanjut.Dokumentasi > Markdown: masukkan informasi tambahan, seperti link ke dokumentasi yang relevan dan detail lainnya yang membantu pelanggan topik bersama menggunakan topik Anda.
Opsional: Di halaman Listing contact information, masukkan detail berikut:
Kontak utama: masukkan alamat email atau URL untuk kontak utama listingan.
Kontak permintaan akses: masukkan alamat email atau URL untuk formulir informasi yang dapat digunakan pelanggan topik bersama untuk menghubungi Anda.
Provider: perluas bagian Penyedia dan tentukan detail di kolom berikut:
- Nama penyedia: masukkan nama penyedia topik.
- Kontak utama penyedia: masukkan alamat email atau URL untuk kontak utama penyedia topik.
Pelanggan topik bersama dapat memfilter listingan berdasarkan penyedia data.
Publisher: perluas bagian Penayang dan tentukan detail di kolom berikut:
- Nama penayang: masukkan nama Anda atau nama organisasi Anda sebagai penayang topik bersama.
- Kontak utama penayang: masukkan alamat email atau URL untuk kontak utama Anda sebagai penayang topik bersama.
Tinjau halaman Pratinjau listingan.
Untuk memublikasikan listingan, klik Publikasikan.
API
Gunakan
metode projects.locations.dataExchanges.listings.create:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID
Ganti kode berikut:
PROJECT_ID: ID project yang berisi pertukaran data.LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung berbagi BigQuery, lihat Wilayah yang didukung.DATAEXCHANGE_ID: ID pertukaran data.LISTING_ID: ID listingan.
Dalam isi permintaan, berikan detail listingan. Jika permintaan berhasil, isi respons akan berisi detail listingan.
Untuk informasi selengkapnya tentang tugas yang dapat Anda lakukan di listingan menggunakan API, lihat metode projects.locations.dataExchanges.listings.
Memperbarui listingan
Untuk memperbarui listingan, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama pertukaran data yang berisi listingan.
Klik listingan yang ingin diperbarui.
Klik Edit listingan.
Ubah nilai kolom. Anda dapat mengubah semua nilai kecuali topik bersama listingan.
Untuk menyimpan perubahan, klik Simpan.
API
Gunakan
metode projects.locations.dataExchanges.listings.patch:
PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK
Ganti kode berikut:
PROJECT_ID: ID project yang berisi pertukaran data.LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung berbagi BigQuery, lihat Wilayah yang didukung.DATAEXCHANGE_ID: ID pertukaran data.LISTING_ID: ID listingan.UPDATEMASK: daftar kolom yang ingin Anda perbarui. Untuk memperbarui beberapa nilai, gunakan daftar yang dipisahkan koma.
Dalam isi permintaan, tentukan nilai yang diperbarui.
Untuk informasi selengkapnya tentang tugas yang dapat Anda lakukan di listingan menggunakan API, lihat metode projects.locations.dataExchanges.listings.
Menghapus listingan
Anda tidak dapat menghapus listingan dengan topik Pub/Sub bersama yang memiliki langganan aktif. Sebelum Anda menghapus listingan topik bersama, cabut semua langganan aktif. Anda tidak dapat mengurungkan penghapusan listingan.
Untuk menghapus listingan, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama pertukaran data yang berisi listingan.
Klik listingan yang ingin dihapus.
Klik Delete.
Di dialog Delete listing?, masukkan
deleteuntuk mengonfirmasi penghapusan.Klik Hapus.
API
Gunakan
metode projects.locations.dataExchanges.listings.delete:
DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID
Ganti kode berikut:
PROJECT_ID: ID project yang berisi pertukaran data.LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung berbagi BigQuery, lihat Wilayah yang didukung.DATAEXCHANGE_ID: ID pertukaran data.LISTING_ID: ID listingan.
Untuk informasi selengkapnya tentang tugas yang dapat Anda lakukan di listingan menggunakan API, lihat metode projects.locations.dataExchanges.listings.
Membagikan listingan
Untuk memberi pengguna akses ke listingan pribadi, tetapkan kebijakan IAM untuk
individu atau grup untuk listingan tersebut. Untuk listingan komersial, pertukaran data Anda harus bersifat publik.
Listingan di pertukaran data publik muncul di BigQuery sharing untuk semua
penggunaGoogle Cloud (allAuthenticatedUsers).
Agar pengguna dapat meminta akses untuk listingan komersial, beri mereka peran
Viewer Analytics Hub (roles/analyticshub.viewer).
Untuk memberikan akses kepada pengguna agar dapat melihat atau berlangganan listingan Anda, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama pertukaran data yang berisi listingan.
Klik listingan yang ingin Anda bagikan.
Klik Set permissions.
Untuk menambahkan akun utama, klik Add principal.
Di kolom New principals, masukkan detail berdasarkan jenis listingan:
- Untuk listingan pribadi, masukkan alamat email akun utama yang ingin Anda beri akses.
- Untuk listingan publik, masukkan
allAuthenticatedUsers.
Di menu Select a role, pilih Analytics Hub, lalu pilih salah satu peran berikut berdasarkan jenis listingan:
- Untuk listingan komersial, pilih Analytics Hub Viewer. Peran ini memungkinkan pengguna melihat listingan dan meminta akses.
- Untuk listingan publik pribadi atau non-komersial, pilih Analytics Hub Subscriber. Peran ini memungkinkan pengguna berlangganan listingan Anda.
Untuk menyimpan perubahan, klik Save.
Kelola langganan
Agar pengguna dapat berlangganan listingan dengan topik bersama, Anda harus memberinya
peran
Pelanggan Analytics Hub
(roles/analyticshub.subscriber) dan
Pemilik Langganan Analytics Hub
(roles/analyticshub.subscriptionOwner) di listingan.
Untuk memberikan peran ini pada listingan, lakukan hal berikut:
Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).
Klik nama pertukaran data yang berisi listingan.
Klik listingan yang langganannya ingin Anda kelola.
Klik Set permissions.
Untuk menambahkan akun utama, klik Add principal.
Di kolom New principals, masukkan nama pengguna atau alamat email pelanggan yang ingin Anda tambahkan.
Di menu Pilih peran, pilih Analytics Hub > Pelanggan Analytics Hub.
Klik Add another role.
Di menu Select a role, pilih Analytics Hub > Analytics Hub Subscription Owner.
Untuk menyimpan perubahan, klik Save.
Anda dapat memperbarui atau menghapus pelanggan kapan saja dengan mengklik Tetapkan izin.
Mencabut langganan
Untuk menghapus langganan ke listingan topik bersama dari BigQuery sharing, pilih salah satu opsi berikut:
Konsol
Untuk menampilkan daftar pelanggan topik bersama untuk listingan, ikuti petunjuk konsolGoogle Cloud di bagian Melihat semua langganan.
Untuk melihat semua langganan ke pertukaran data, klik tab Langganan.
Centang kotak di samping langganan yang ingin Anda hapus, atau pilih semua langganan, lalu klik Cabut.
Di dialog Cabut langganan?, masukkan
revokeuntuk mengonfirmasi pencabutan.Klik Cabut.
API
Gunakan
metode projects.locations.subscriptions.revoke:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke
Ganti kode berikut:
PROJECT_ID: ID project yang berisi langganan yang ingin Anda hapus.LOCATION: lokasi langganan.SUBSCRIPTION_ID: ID langganan yang ingin Anda hapus.
Saat Anda mencabut langganan dari BigQuery sharing, pelanggan topik bersama tidak akan lagi menerima data pesan dari topik bersama. Langganan Pub/Sub dilepaskan dari topik bersama. Jika Anda menghapus langganan langsung dari Pub/Sub, langganan BigQuery sharing akan tetap ada dan Anda harus menghapus langganan di BigQuery sharing.
Alur kerja pelanggan
Sebagai pelanggan BigQuery sharing, Anda dapat melihat dan berlangganan listingan. Berlangganan listingan topik bersama akan membuat satu langganan Pub/Sub tertaut di project Anda. Langganan Pub/Sub dapat dilihat di project penayang topik bersama.
Izin pelanggan tambahan
Untuk melakukan tugas pelanggan, Anda harus memiliki
peran Analytics Hub Subscriber
(roles/analyticshub.subscriber) yang diberikan di level project, pertukaran, atau
listingan.
Berlangganan listingan topik bersama
Untuk berlangganan listingan dengan topik bersama, pilih salah satu opsi berikut:
Konsol
Untuk melihat listingan yang tersedia bagi Anda, ikuti langkah-langkah di bagian Melihat listingan.
Jelajahi listingan dan klik listingan yang ingin Anda jadikan langganan. Dialog dengan detail listingan akan muncul.
Untuk membuka dialog Create subscription, klik Subscribe.
Jika Anda belum mengaktifkan Analytics Hub API di project, pesan error akan muncul beserta link untuk mengaktifkan API. Klik Enable Analytics Hub API.
Pada dialog Create subscription, tentukan detail berikut:
- Subscription ID: tentukan nama langganan yang Anda buat.
- Jenis pengiriman: pilih cara data pesan dikirim.
- Durasi retensi pesan: menetapkan durasi retensi pesan.
- Masa berlaku: ditetapkan saat langganan berakhir setelah tidak aktif, jika ada.
- Acknowledgement deadline: tetapkan batas waktu konfirmasi.
- Filter langganan: menetapkan sintaksis filter untuk pesan.
- Pengiriman tepat satu kali: mengaktifkan pengiriman tepat satu kali.
- Pengurutan pesan: mengaktifkan pengurutan pesan dengan kunci pengurutan.
- Penghentian pengiriman: mengaktifkan penerusan pesan yang tidak dapat dikirim ke topik yang dihentikan pengirimannya.
- Kebijakan percobaan ulang: menetapkan kebijakan percobaan ulang.
Untuk mengetahui informasi selengkapnya tentang properti langganan Pub/Sub, lihat Properti langganan.
Untuk menyimpan perubahan, klik Buat. BigQuery sharing membuat langganan Pub/Sub tertaut di project Anda.
API
Gunakan
metode projects.locations.dataExchanges.listings.subscribe:
POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe
Ganti kode berikut:
PROJECT_ID: ID project yang berisi listingan yang ingin Anda jadikan langganan.LOCATION: lokasi untuk listingan yang ingin Anda jadikan langganan.DATAEXCHANGE_ID: ID pertukaran data yang berisi listingan yang ingin Anda jadikan langganan.LISTING_ID: ID listingan yang ingin Anda jadikan langganan.
Dalam isi permintaan, tentukan detail untuk langganan Pub/Sub tertaut yang ingin Anda buat. Jika permintaan berhasil, isi respons akan berisi detail langganan.
Untuk mengetahui informasi selengkapnya tentang langganan Pub/Sub, lihat Ringkasan langganan.
Harga
Penayang topik bersama tidak dikenai biaya tambahan untuk mencantumkan dan membagikan topik melalui BigQuery sharing. Penayang topik bersama dikenai biaya untuk throughput publikasi, yang merupakan total byte yang ditulis ke topik bersama, dan untuk egress jaringan yang berlaku. Pelanggan topik bersama dikenai biaya untuk throughput langganan, yaitu total byte yang dibaca dari langganan tertaut, dan untuk egress jaringan yang berlaku. Untuk mengetahui informasi selengkapnya, lihat harga Pub/Sub.
Kontrol Layanan VPC
Untuk topik bersama dari project dengan perimeter Kontrol Layanan VPC, tetapkan aturan ingress dan egress yang sesuai untuk memberikan akses kepada penayang dan pelanggan topik bersama.
Langkah berikutnya
- Pelajari cara mengelola listingan Anda.
- Pelajari cara berlangganan listingan.
- Pelajari cara memantau resource Pub/Sub.
- Pelajari cara mengonfigurasi aturan Kontrol Layanan VPC untuk berbagi BigQuery.