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:

Alur kerja yang menunjukkan interaksi antara penayang topik bersama,
    pelanggan, dan BigQuery sharing.
Gambar 1. Alur kerja penayang dan pelanggan topik bersama dengan topik Pub/Sub.

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.

Mengaktifkan Analytics Hub API

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.

Mengaktifkan Pub/Sub API

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

  1. Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

    Halaman ini mencantumkan semua pertukaran data yang dapat Anda lihat.

  2. Klik nama pertukaran data tempat Anda ingin membuat listingan.

  3. Klik Buat listingan.

  4. Di halaman Create listing, di daftar Resource type, pilih Pub/Sub Topic.

  5. Di daftar Shared topic, pilih topik Pub/Sub yang ada, atau klik Create a topic.

  6. Di halaman Listing details, di kolom Display name, masukkan nama tampilan listingan.

  7. 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) kepada allUsers atau allAuthenticatedUsers di 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.

  8. 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.
  9. Tinjau halaman Pratinjau listingan.

  10. 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

  1. Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan.

  3. Klik listingan yang ingin diperbarui.

  4. Klik Edit listingan.

  5. Ubah nilai kolom. Anda dapat mengubah semua nilai kecuali topik bersama listingan.

  6. 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

  1. Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan.

  3. Klik listingan yang ingin dihapus.

  4. Klik Delete.

  5. Di dialog Delete listing?, masukkan delete untuk mengonfirmasi penghapusan.

  6. 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:

  1. Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan.

  3. Klik listingan yang ingin Anda bagikan.

  4. Klik Set permissions.

  5. Untuk menambahkan akun utama, klik Add principal.

  6. 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.
  7. Di menu Select a role, pilih Analytics Hub, lalu pilih salah satu peran berikut berdasarkan jenis listingan:

  8. 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:

  1. Di konsol Google Cloud , buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan.

  3. Klik listingan yang langganannya ingin Anda kelola.

  4. Klik Set permissions.

  5. Untuk menambahkan akun utama, klik Add principal.

  6. Di kolom New principals, masukkan nama pengguna atau alamat email pelanggan yang ingin Anda tambahkan.

  7. Di menu Pilih peran, pilih Analytics Hub > Pelanggan Analytics Hub.

  8. Klik Add another role.

  9. Di menu Select a role, pilih Analytics Hub > Analytics Hub Subscription Owner.

  10. 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

  1. Untuk menampilkan daftar pelanggan topik bersama untuk listingan, ikuti petunjuk konsolGoogle Cloud di bagian Melihat semua langganan.

  2. Untuk melihat semua langganan ke pertukaran data, klik tab Langganan.

  3. Centang kotak di samping langganan yang ingin Anda hapus, atau pilih semua langganan, lalu klik Cabut.

  4. Di dialog Cabut langganan?, masukkan revoke untuk mengonfirmasi pencabutan.

  5. 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

  1. Untuk melihat listingan yang tersedia bagi Anda, ikuti langkah-langkah di bagian Melihat listingan.

  2. Jelajahi listingan dan klik listingan yang ingin Anda jadikan langganan. Dialog dengan detail listingan akan muncul.

  3. Untuk membuka dialog Create subscription, klik Subscribe.

  4. Jika Anda belum mengaktifkan Analytics Hub API di project, pesan error akan muncul beserta link untuk mengaktifkan API. Klik Enable Analytics Hub API.

  5. 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.

  6. 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