Menstreaming perubahan ke Pub/Sub menggunakan pemicu fungsi Cloud Run opsional


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

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

Tujuan

Tutorial ini menunjukkan 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. Pengguna Google Cloud baru 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. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

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

    Enable the APIs

  8. In the Google Cloud console, activate Cloud Shell.

    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.

  9. Update dan instal cbt CLI.
    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. Tetapkan ID ke bigtable-change-stream-topic.

  4. Pilih Gunakan skema.

  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 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"]}
        ]
      }
    
    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 fungsi Cloud Run

Anda mungkin ingin memproses streaming Pub/Sub dengan fungsi Cloud Run.

  1. Di halaman Details untuk topik bigtable-change-stream-topic, klik Trigger Cloud Function .
  2. Di kolom Nama fungsi, masukkan nama bt-ps-tutorial-function.
  3. Di bagian Kode Sumber, 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 fungsi Cloud Run.
  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 Anda tidak memiliki instance, buat instance dengan konfigurasi default di wilayah yang dekat dengan Anda.

  3. Di panel navigasi kiri, klik Tables.

  4. Klik Buat tabel.

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

  6. Tambahkan keluarga kolom bernama cf.

  7. Pilih Aktifkan aliran data perubahan.

  8. Klik Buat.

Melakukan inisialisasi pipeline data untuk mengambil aliran perubahan

  1. Di halaman Tabel Bigtable, temukan tabel change-streams-pubsub-tutorial Anda.
  2. Di kolom Change stream, klik Connect.
  3. Pada dialog, pilih Pub/Sub.
  4. Klik Buat tugas Dataflow.
  5. Di halaman Create job Dataflow, tetapkan nama topik Pub/Sub output ke: bigtable-change-stream-topic.
  6. Tetapkan ID profil aplikasi Bigtable ke default.
  7. Klik Run job.
  8. Tunggu hingga status tugas menjadi Starting atau Running sebelum melanjutkan. Perlu waktu sekitar 5 menit setelah tugas diantrekan.

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 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 Subscriptions Pub/Sub.

    Buka Langganan

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

  3. Buka tab Pesan.

  4. Klik Pull.

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

    Mengubah pesan log di
Pub/Sub

Opsional: Melihat perubahan dalam log fungsi Cloud Run

Jika membuat fungsi Cloud Run, Anda dapat melihat perubahan dalam log.

  1. Di konsol Google Cloud, buka fungsi Cloud Run.

    Buka fungsi Cloud Run

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

  3. Buka tab Logs.

  4. Pastikan Severity ditetapkan setidaknya ke 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 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.

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 kiri, klik Tables.

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

  5. Klik Edit.

  6. Hapus centang Aktifkan aliran perubahan.

  7. Klik Save.

  8. Buka menu tambahan untuk tabel.

  9. Klik Hapus dan masukkan nama tabel untuk mengonfirmasi.

Menghentikan pipeline aliran data perubahan

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

    Buka Tugas

  2. Pilih tugas streaming Anda dari daftar tugas.

  3. Di navigasi, klik Stop.

  4. Dalam 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 dan konfirmasi.

  4. Klik Langganan di sidebar.

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

  6. Klik Hapus dan konfirmasi.

Menghapus fungsi Cloud Run

  1. Di konsol Google Cloud, buka fungsi Cloud Run.

    Buka fungsi Cloud Run

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

  3. Klik Hapus dan konfirmasi.

Langkah selanjutnya