Tutorial ini menunjukkan cara menggunakan template Bigtable change streams to Pub/Sub, termasuk cara menyiapkan topik dan mengonfigurasi template. Anda dapat secara opsional membuat fungsi Cloud Run, dalam bahasa pemrograman pilihan Anda, yang dipicu oleh aliran peristiwa.
Tutorial ini ditujukan bagi pengguna teknis yang sudah memahami Bigtable, penulisan kode, dan layanan streaming peristiwa.
Tujuan
Tutorial ini menunjukkan kepada Anda cara melakukan hal berikut:
- Buat tabel Bigtable dengan aliran data perubahan diaktifkan.
- Buat topik Pub/Sub dengan skema aliran perubahan Bigtable.
- Deploy aliran perubahan Bigtable ke pipeline Pub/Sub di Dataflow menggunakan template.
- Lihat aliran peristiwa di Pub/Sub secara langsung atau di log fungsi Cloud Run.
Biaya
Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:
Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda,
gunakan kalkulator harga.
Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, lihat Pembersihan.
Sebelum memulai
- Update dan instal
CLI
cbt
.gcloud components update gcloud components install cbt
Di konsol Google Cloud , buka halaman Topics Pub/Sub.
Klik Create topic.
Setel ID ke
bigtable-change-stream-topic
.Pilih Gunakan skema.
Di dropdown Select a Pub/Sub schema, klik Create new schema. Tindakan ini akan membuka tab baru tempat Anda menentukan skema.
- Tetapkan ID skema ke
bigtable-change-stream-schema
. - Tetapkan jenis skema ke Avro.
- Tempelkan kode berikut sebagai definisi skema. Informasi selengkapnya tentang skema dapat ditemukan di halaman dokumentasi template.
{ "name" : "ChangelogEntryMessage", "type" : "record", "namespace" : "com.google.cloud.teleport.bigtable", "fields" : [ { "name" : "rowKey", "type" : "bytes"}, { "name" : "modType", "type" : { "name": "ModType", "type": "enum", "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]} }, { "name": "isGC", "type": "boolean" }, { "name": "tieBreaker", "type": "int"}, { "name": "columnFamily", "type": "string"}, { "name": "commitTimestamp", "type" : "long"}, { "name" : "sourceInstance", "type" : "string"}, { "name" : "sourceCluster", "type" : "string"}, { "name" : "sourceTable", "type" : "string"}, { "name": "column", "type" : ["null", "bytes"]}, { "name": "timestamp", "type" : ["null", "long"]}, { "name": "timestampFrom", "type" : ["null", "long"]}, { "name": "timestampTo", "type" : ["null", "long"]}, { "name" : "value", "type" : ["null", "bytes"]} ] }
- Klik Buat untuk membuat skema.
- Tetapkan ID skema ke
Tutup tab Buat skema, muat ulang daftar skema, lalu pilih skema yang baru Anda tentukan.
Klik Create untuk membuat topik.
- Di halaman Details untuk topik
bigtable-change-stream-topic
, klik Trigger Cloud Function . - Di kolom Function name, masukkan nama
bt-ps-tutorial-function
. - Di bagian Source Code, klik drop-down Runtime, lalu
pilih runtime dan bahasa pemrograman pilihan Anda.
hello world
dibuat yang mencetak aliran perubahan saat masuk. Lihat dokumentasi untuk mempelajari lebih lanjut cara menulis Cloud Run Functions. - Gunakan nilai default untuk semua kolom lainnya.
- Klik Deploy function.
Di konsol Google Cloud , buka halaman Bigtable Instances.
Klik ID instance yang Anda gunakan untuk tutorial ini.
Jika Anda tidak memiliki instance yang tersedia, buat instance dengan konfigurasi default di wilayah terdekat.
Di panel navigasi kiri, klik Tables.
Klik Buat tabel.
Beri nama tabel
change-streams-pubsub-tutorial
.Tambahkan family kolom bernama
cf
.Pilih Aktifkan aliran perubahan.
Klik Buat.
- Di halaman Tables Bigtable, temukan tabel Anda
change-streams-pubsub-tutorial
. - Di kolom Change stream, klik Connect.
- Pada dialog, pilih Pub/Sub.
- Klik Buat tugas Dataflow.
- Di halaman Create job Dataflow, tetapkan nama topik Pub/Sub output ke:
bigtable-change-stream-topic
. - Tetapkan ID profil aplikasi Bigtable ke
default
. - Klik Run job.
- Tunggu hingga status tugas menjadi Starting atau Running sebelum melanjutkan. Proses ini memerlukan waktu sekitar 5 menit setelah tugas diantrekan.
Di Cloud Shell, tulis beberapa baris ke Bigtable sehingga log perubahan dapat menulis beberapa data ke aliran Pub/Sub. Selama Anda menulis data setelah tugas dibuat, perubahan akan muncul. Anda tidak perlu menunggu hingga status tugas menjadi
running
.cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user123 cf:col1=abc cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user546 cf:col1=def cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \ set change-streams-pubsub-tutorial user789 cf:col1=ghi
Di konsol Google Cloud , buka halaman Subscriptions Pub/Sub.
Klik langganan yang dibuat secara otomatis untuk topik Anda
bigtable-change-stream-topic
. Class ini harus diberi namabigtable-change-stream-topic-sub
.Buka tab Pesan.
Klik Pull.
Jelajahi daftar pesan dan lihat data yang Anda tulis.
Di konsol Google Cloud , buka Cloud Run functions.
Klik fungsi Anda
bt-ps-tutorial-function
.Buka tab Log.
Pastikan Severity disetel ke setidaknya Info agar Anda dapat melihat log.
Jelajahi log dan lihat data yang Anda tulis.
Di konsol Google Cloud , buka halaman Bigtable Instances.
Klik ID instance yang Anda gunakan untuk tutorial ini.
Di panel navigasi kiri, klik Tables.
Temukan tabel
change-streams-pubsub-tutorial
.Klik Edit.
Hapus centang Aktifkan aliran perubahan.
Klik Simpan.
Buka menu tambahan untuk tabel.
Klik Hapus dan masukkan nama tabel untuk mengonfirmasi.
Di konsol Google Cloud , buka halaman Jobs Dataflow.
Pilih tugas streaming Anda dari daftar tugas.
Di navigasi, klik Stop.
Dalam dialog Stop job, batalkan pipeline Anda, lalu klik Stop job.
Di konsol Google Cloud , buka halaman Topics Pub/Sub.
Pilih topik
bigtable-change-stream-topic
.Klik Hapus dan konfirmasi.
Klik Langganan di sidebar.
Pilih langganan
bigtable-change-stream-topic-sub
.Klik Hapus dan konfirmasi.
Di konsol Google Cloud , buka Cloud Run functions.
Pilih fungsi
bt-ps-tutorial-function
.Klik Hapus dan konfirmasi.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Verify that billing is enabled for your Google Cloud project.
Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Membuat topik Pub/Sub
Opsional: Membuat fungsi Cloud Run
Anda mungkin ingin memproses aliran Pub/Sub dengan fungsi Cloud Run.
Membuat tabel dengan aliran perubahan yang diaktifkan
Menginisialisasi pipeline data untuk merekam aliran perubahan
Tulis beberapa data ke Bigtable
Melihat log perubahan di Pub/Sub
Opsional: Lihat perubahan di log fungsi Cloud Run
Jika membuat fungsi Cloud Run, Anda dapat melihat perubahan di log.
Outputnya terlihat mirip dengan yang berikut ini:
Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}
Pembersihan
Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.