Berbagi streaming dengan Pub/Sub

Anda dapat membagikan topik Pub/Sub melalui BigQuery sharing (sebelumnya Analytics Hub) untuk mengumpulkan dan mendistribusikan library data streaming di beberapa batas organisasi internal dan eksternal. Data streaming real-time dibagikan menggunakan pertukaran dan listingan BigQuery sharing, yang memungkinkan Anda mengategorikan dan mengelompokkan set besar topik Pub/Sub secara logis dan menyediakan akses dalam skala besar.

Anda dapat membagikan data streaming untuk melakukan hal 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 yang diperlukan

Peran untuk berbagi topik Pub/Sub serupa dengan berbagi set data BigQuery:

Arsitektur

Diagram berikut menjelaskan cara publisher dan subscriber resource Pub/Sub berinteraksi dengan BigQuery sharing:

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

Topik bersama

Topik bersama adalah unit untuk membagikan topik Pub/Sub di BigQuery sharing. Sebagai penayang topik bersama, Anda membuat atau menggunakan topik Pub/Sub yang ada untuk mendistribusikan data pesan kepada pelanggan. BigQuery sharing tidak mereplikasi topik Pub/Sub sumber.

Listingan

Listingan dibuat saat penayang menambahkan topik bersama ke pertukaran. Topik ini merujuk ke topik bersama.

Bursa

Pertukaran adalah grup logis listingan yang mereferensikan topik bersama.

Langganan Pub/Sub yang ditautkan

Saat berlangganan listingan dengan topik bersama, langganan Pub/Sub tertaut akan dibuat di project pelanggan topik bersama. Project penayang topik bersama juga merepresentasikan langganan Pub/Sub sebagai langganan Pub/Sub dan langganan listingan Berbagi.

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, misalnya, yang dibuat langsung dari 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 di INFORMATION_SCHEMA.SHARED_DATASET_USAGE.

    Untuk memantau metrik, lihat Memantau Pub/Sub di Cloud Monitoring.

    Metrik ini dapat mencakup:

    • Jumlah pesan publikasi
    • Publikasikan permintaan
    • Throughput publikasi dalam byte
    • 5 langganan teratas
    • Byte yang diserap
    • Lainnya

Mengaktifkan Analytics Hub API

Untuk mengaktifkan Analytics Hub API, lakukan tindakan berikut:

Konsol

Buka library API dan aktifkan Analytics Hub API untuk projectGoogle Cloud Anda.

Mengaktifkan Analytics Hub API

gcloud

Jalankan perintah gcloud services enable:

gcloud services enable analyticshub.googleapis.com

Mengaktifkan Pub/Sub API

Buka library API dan aktifkan Pub/Sub API untuk project Google Cloud Anda.

Mengaktifkan Pub/Sub API

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 di seluruh project dalam organisasi yang dapat Anda akses, 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 terlampir, 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 dengan benar.

Membuat listingan (untuk menambahkan topik bersama)

Untuk menambahkan topik bersama ke listingan, pilih salah satu opsi berikut:

Konsol

  1. Buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

    Halaman ini menampilkan daftar semua pertukaran data yang dapat Anda akses.

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

  3. Klik Buat listingan.

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

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

  6. Di halaman Detail listingan, di kolom Nama tampilan, masukkan nama listingan.

  7. Masukkan detail opsional berikut:

    • Kategori: pilih hingga dua kategori yang paling mewakili listingan Anda. Pelanggan topik bersama dapat memfilter listingan berdasarkan kategori ini.

    • Afinitas data: region yang digunakan penayang topik bersama untuk memublikasikan data. Informasi ini membantu pelanggan topik bersama meminimalkan atau menghindari biaya traffic keluar jaringan Pub/Sub dengan membaca data dari region yang sama. Untuk mengetahui informasi selengkapnya tentang biaya egress, lihat Biaya transfer data.

    • Ikon: ikon untuk listingan Anda. Format file PNG dan JPEG didukung. Ikon harus lebih kecil dari 512 KiB dan memiliki dimensi tidak lebih dari 512 x 512 piksel.

    • Deskripsi: deskripsi singkat tentang listingan Anda. Pelanggan topik bersama dapat menelusuri listingan berdasarkan deskripsi.

    • Visibilitas Publik: aktifkan visibilitas publik untuk listingan Anda di katalog berbagi BigQuery. Anda juga harus menetapkan izin untuk listingan. Klik Actions untuk exchange, lalu klik Set permissions. Beri allUsers atau allAuthenticatedusers peran Analytics Hub Viewer (roles/analyticshub.viewer). Klik Allow Public Access.

    • Dokumentasi > Markdown: informasi tambahan, seperti link ke dokumentasi yang relevan dan detail lainnya yang membantu pelanggan topik bersama menggunakan topik Anda.

  8. Di halaman Listing contact information, masukkan detail opsional 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: nama penyedia topik.
      • Kontak utama penyedia: 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: nama penayang topik bersama yang membuat listingan.
      • Kontak utama penayang: alamat email atau URL untuk kontak utama penayang topik bersama.
  9. Tinjau halaman Pratinjau listingan.

  10. Klik Publikasikan.

API

Gunakan metode projects.locations.dataExchanges.listings.create.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings?listingId=LISTING_ID

Ganti kode berikut:

  • PROJECT_ID: project ID yang berisi pertukaran data tempat Anda ingin membuat listingan.
  • LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung Berbagi, lihat Region 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. 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 Publikasikan.

API

Gunakan metode projects.locations.dataExchanges.listings.patch.

PATCH https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID?updateMask=UPDATEMASK

Ganti kode berikut:

  • PROJECT_ID: project ID yang berisi pertukaran data tempat Anda ingin membuat listingan.
  • LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung Berbagi, 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. Cabut semua langganan aktif sebelum mencoba menghapus listingan topik bersama. Anda tidak dapat mengurungkan penghapusan listingan.

Untuk menghapus listingan, pilih salah satu opsi berikut:

Konsol

  1. 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. Pada dialog Delete listing?, konfirmasi penghapusan dengan mengetik delete.

  6. Klik Hapus.

API

Gunakan metode projects.locations.dataExchanges.listings.delete.

DELETE https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID

Ganti kode berikut:

  • PROJECT_ID: project ID yang berisi pertukaran data tempat Anda ingin membuat listingan.
  • LOCATION: lokasi untuk pertukaran data Anda. Untuk mengetahui informasi selengkapnya tentang lokasi yang mendukung Berbagi, 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 Berbagi untuk semua penggunaGoogle Cloud (allAuthenticatedUsers). Agar pengguna dapat meminta akses untuk listingan komersial, beri mereka peran Analytics Hub Viewer (roles/analyticshub.viewer).

Untuk memberikan akses kepada pengguna agar dapat melihat atau berlangganan listingan Anda, lakukan hal berikut:

  1. Buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan.

  3. Klik listingan tempat Anda ingin menambahkan pelanggan topik bersama.

  4. Klik Setel izin.

  5. Untuk menambahkan akun utama, klik Add principal.

  6. Di kolom New principals, tambahkan detail berdasarkan jenis listingan:

    • Untuk listingan pribadi, masukkan alamat email identitas yang ingin Anda beri akses.
    • Untuk listingan publik, tambahkan allAuthenticatedUsers.
  7. Dari menu Select a role, pilih Analytics Hub, lalu pilih salah satu peran berikut berdasarkan jenis listingan:

  8. Klik Simpan.

Untuk mengetahui informasi selengkapnya, lihat peran Subscriber dan Viewer Analytics Hub.

Kelola langganan

Agar pengguna dapat berlangganan listingan dengan topik bersama, beri mereka peran Analytics Hub Subscriber (roles/analyticshub.subscriber) dan Analytics Hub Subscription Owner (roles/analyticshub.subscriptionOwner) di listingan tertentu:

  1. Buka halaman Sharing (Analytics Hub).

    Buka Berbagi (Analytics Hub)

  2. Klik nama pertukaran data yang berisi listingan yang ingin Anda kelola langganannya.

  3. Klik listingan tempat Anda ingin mencantumkan pelanggan topik bersama.

  4. Klik Setel izin.

  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. Untuk Pilih peran, pilih Analytics Hub > Pelanggan Analytics Hub.

  8. Klik Add another role.

  9. Untuk Memilih peran, pilih Analytics Hub > Pemilik Langganan Analytics Hub.

  10. Klik Simpan.

Hapus dan perbarui 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. Klik tab Langganan untuk melihat semua langganan ke pertukaran data.

  3. Centang kotak di samping langganan yang ingin dihapus, atau pilih semua langganan.

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

  5. Klik Cabut.

API

Untuk menghapus langganan, gunakan metode projects.locations.subscriptions.revoke.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/subscriptions/SUBSCRIPTION_ID:revoke

Ganti kode berikut:

  • PROJECT_ID: project ID 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 perlu dibersihkan.

Alur kerja pelanggan

Sebagai pelanggan BigQuery sharing, Anda dapat melihat dan berlangganan listingan. Berlangganan ke listingan topik bersama akan membuat satu langganan Pub/Sub tertaut di project pelanggan. Langganan Pub/Sub terlihat di project penayang topik bersama.

Izin pelanggan tambahan

Anda harus memiliki peran Analytics Hub Subscriber (roles/analyticshub.subscriber) yang diberikan di level project, pertukaran, atau listingan untuk melakukan tugas pelanggan.

Berlangganan ke listingan topik bersama

Untuk berlangganan listingan dengan topik bersama, pilih salah satu opsi berikut:

Konsol

  1. Untuk melihat daftar listingan yang dapat Anda akses, ikuti langkah-langkah di bagian Melihat listingan.

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

  3. Klik Subscribe untuk membuka dialog Create subscription.

  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:

    • ID Langganan: tentukan nama langganan yang Anda buat.
    • Jenis pengiriman: pilih cara data pesan dikirim.
    • Durasi retensi pesan: tetapkan durasi retensi pesan.
    • Masa berlaku: ditetapkan saat langganan berakhir setelah tidak aktif, jika ada.
    • Batas waktu konfirmasi: tetapkan waktu batas waktu konfirmasi.
    • Filter langganan: menetapkan sintaksis filter untuk pesan.
    • Exactly once delivery: mengaktifkan pengiriman tepat satu kali.
    • Pengurutan pesan: mengaktifkan pengurutan pesan dengan kunci urutan.
    • Dead lettering: aktifkan dead lettering.
    • 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. Langganan Pub/Sub tertaut akan dibuat di project Anda.

API

Gunakan metode projects.locations.dataExchanges.listings.subscribe.

POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/location/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:subscribe

Ganti kode berikut:

  • PROJECT_ID: project ID listingan yang ingin Anda jadikan langganan.
  • LOCATION: lokasi untuk listingan yang Anda jadikan langganan.
  • DATAEXCHANGE_ID: ID pertukaran data listingan yang Anda jadikan langganan.
  • LISTING_ID: ID listingan yang ingin Anda jadikan langganan.

Dalam isi permintaan, tentukan langganan Pub/Sub tempat Anda ingin membuat langganan Pub/Sub tertaut. Jika berhasil, isi respons akan kosong.

Untuk mengetahui informasi selengkapnya tentang langganan Pub/Sub, lihat ringkasan langganan.

Harga

Penayang topik Pub/Sub tidak dikenai biaya tambahan untuk mencantumkan dan membagikan topik melalui BigQuery sharing. Penayang topik bersama dikenai biaya untuk total byte yang ditulis (throughput publikasi) ke topik bersama dan untuk traffic keluar jaringan (jika berlaku). Pelanggan topik bersama dikenai biaya untuk total byte yang dibaca (throughput langganan) dari langganan tertaut dan untuk traffic keluar jaringan (jika berlaku). Untuk mengetahui detail 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