Streaming perubahan ke Pub/Sub menggunakan pemicu Cloud Function opsional


Tutorial ini menunjukkan cara menggunakan template aliran perubahan Bigtable ke Pub/Sub, termasuk cara menyiapkan topik dan mengonfigurasi template. Secara opsional, Anda dapat membuat Cloud Function, dalam bahasa pemrograman pilihan Anda, yang dipicu oleh aliran peristiwa.

Tutorial ini ditujukan bagi pengguna teknis yang sudah memahami Bigtable , menulis kode, dan layanan streaming acara.

Tujuan

Tutorial ini menunjukkan cara melakukan hal berikut:

  • Membuat tabel Bigtable dengan aliran data perubahan diaktifkan.
  • Buat topik Pub/Sub dengan skema aliran data perubahan Bigtable.
  • Men-deploy aliran data perubahan Bigtable ke pipeline Pub/Sub di Dataflow menggunakan template.
  • Lihat aliran peristiwa di Pub/Sub secara langsung atau di log Cloud Function.

Biaya

Dalam dokumen ini, Anda menggunakan komponen Google Cloud yang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga. Pengguna baru Google Cloud mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

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

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Functions, and Cloud Storage APIs.

    Enable the APIs

  5. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  6. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  7. Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Functions, and Cloud Storage APIs.

    Enable the APIs

  8. Di konsol Google Cloud, aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.

  9. Update dan instal CLI cbt.
    gcloud components update
    gcloud components install cbt
    

Membuat topik Pub/Sub

  1. Di konsol Google Cloud, buka halaman Topics Pub/Sub.

    Buka Topik

  2. Klik Create topic.

  3. Setel ID ke bigtable-change-stream-topic.

  4. Pilih Use a schema.

  5. Di drop-down Select a Pub/Sub schema, klik Create new schema. Tindakan ini akan membuka tab baru tempat Anda menentukan skema.

    1. Tetapkan ID skema ke bigtable-change-stream-schema.
    2. Tetapkan jenis skema ke Avro.
    3. Tempelkan yang berikut sebagai definisi skema. Informasi selengkapnya tentang skema ini 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"]}
        ]
      }
    
    1. Klik Create untuk membuat skema.
  6. Tutup tab Create schema, muat ulang daftar skema, lalu pilih skema yang baru ditentukan.

  7. Klik Create untuk membuat topik.

Opsional: Membuat Cloud Function

Anda mungkin perlu memproses streaming Pub/Sub dengan Cloud Function.

  1. Di halaman Details untuk topik bigtable-change-stream-topic, klik Trigger Cloud Function .
  2. Di kolom Function name, masukkan nama bt-ps-tutorial-function.
  3. Di bagian Source Code, klik drop-down Runtime, lalu pilih bahasa runtime dan pemrograman pilihan Anda. hello world akan dibuat yang mencetak aliran perubahan saat masuk. Baca dokumentasinya untuk mempelajari lebih lanjut cara menulis Cloud Functions.
  4. Gunakan nilai default untuk semua kolom lainnya.
  5. Klik Deploy function.

Membuat tabel dengan aliran perubahan diaktifkan

  1. Di konsol Google Cloud, buka halaman Instance Bigtable.

    Buka Instance

  2. Klik ID instance yang Anda gunakan untuk tutorial ini.

    Jika tidak ada instance yang tersedia, buat instance dengan konfigurasi default di region terdekat Anda.

  3. Di panel navigasi sebelah kiri, klik Tables.

  4. Klik Buat tabel.

  5. Beri nama tabel change-streams-pubsub-tutorial.

  6. Tambahkan grup kolom bernama cf.

  7. Pilih Aktifkan aliran data perubahan.

  8. Klik Create.

Melakukan inisialisasi pipeline data untuk menangkap aliran perubahan

  1. Pada halaman Tables Bigtable, temukan tabel Anda change-streams-pubsub-tutorial.
  2. Di kolom Ubah aliran data, klik Hubungkan.
  3. Dalam dialog, pilih Pub/Sub.
  4. Klik Create Dataflow job.
  5. Di halaman Create job Dataflow, tetapkan nama topik Pub/Sub output ke: bigtable-change-stream-topic.
  6. Setel ID profil aplikasi Bigtable ke default.
  7. Klik Run job.
  8. Tunggu hingga status tugas Mulai atau Berjalan sebelum melanjutkan. Perlu waktu sekitar 5 menit setelah tugas dimasukkan ke dalam antrean.

Menulis beberapa data ke Bigtable

  1. 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 tersebut akan muncul. Anda tidak perlu menunggu 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
    

Melihat log perubahan di Pub/Sub

  1. Di Konsol Google Cloud, buka halaman Langganan Pub/Sub.

    Buka Langganan

  2. Klik langganan yang dibuat secara otomatis untuk topik Anda bigtable-change-stream-topic. Class tersebut harus diberi nama bigtable-change-stream-topic-sub.

  3. Buka tab Pesan.

  4. Klik Tarik.

  5. Jelajahi daftar pesan dan lihat data yang Anda tulis.

    Mengubah pesan log di
Pub/Sub

Opsional: Melihat perubahan di log Cloud Functions

Jika sudah membuat fungsi Cloud Functions, Anda dapat melihat perubahan di log.

  1. Di konsol Google Cloud, buka Cloud Functions.

    Buka Cloud Functions

  2. Klik fungsi bt-ps-tutorial-function.

  3. Buka tab Logs.

  4. Pastikan Keparahan disetel ke minimal Info agar Anda dapat melihat log.

  5. Jelajahi log dan lihat data yang Anda tulis.

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 dikenakan 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-nya.

Menghapus tabel Bigtable

  1. Di konsol Google Cloud, buka halaman Instance Bigtable.

    Buka Instance

  2. Klik ID instance yang Anda gunakan untuk tutorial ini.

  3. Di panel navigasi sebelah kiri, klik Tables.

  4. Temukan tabel change-streams-pubsub-tutorial.

  5. Klik Edit.

  6. Hapus centang Aktifkan aliran data perubahan.

  7. Klik Save.

  8. Buka menu tambahan untuk tabel tersebut.

  9. Klik Delete dan masukkan nama tabel untuk mengonfirmasi.

Menghentikan pipeline aliran data

  1. Di konsol Google Cloud, buka halaman Jobs Dataflow.

    Buka Tugas

  2. Pilih tugas streaming Anda dari daftar tugas.

  3. Pada navigasi, klik Hentikan.

  4. Pada dialog Stop job, batalkan pipeline, lalu klik Stop job.

Menghapus topik dan langganan Pub/Sub

  1. Di konsol Google Cloud, buka halaman Topics Pub/Sub.

    Buka Topik

  2. Pilih topik bigtable-change-stream-topic.

  3. Klik Hapus, lalu konfirmasi.

  4. Klik Langganan di sidebar.

  5. Pilih langganan bigtable-change-stream-topic-sub.

  6. Klik Hapus, lalu konfirmasi.

Menghapus Cloud Function

  1. Di konsol Google Cloud, buka Cloud Functions.

    Buka Cloud Functions

  2. Pilih fungsi bt-ps-tutorial-function.

  3. Klik Hapus, lalu konfirmasi.

Langkah selanjutnya