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

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.

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 Gunakan skema.

  5. Di menu 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 Buat untuk membuat skema.
  6. Tutup tab Buat skema, muat ulang daftar skema, lalu pilih skema yang baru Anda tentukan.

  7. Klik Create untuk membuat topik.

Opsional: Membuat Cloud Run Function

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

  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 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.
  4. Gunakan nilai default untuk semua kolom lainnya.
  5. Klik Deploy function.

Membuat tabel dengan aliran perubahan yang diaktifkan

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

    Buka Instance

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

    Jika Anda tidak memiliki instance yang tersedia, buat instance dengan konfigurasi default di wilayah terdekat.

  3. Di panel navigasi kiri, klik Tabel.

  4. Klik Buat tabel.

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

  6. Tambahkan family kolom bernama cf.

  7. Pilih Aktifkan aliran perubahan.

  8. Klik Buat.

Menginisialisasi pipeline data untuk merekam aliran perubahan

  1. Di halaman Tables Bigtable, temukan tabel Anda change-streams-pubsub-tutorial.
  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. Proses ini memerlukan waktu sekitar 5 menit setelah tugas dimasukkan dalam antrean.

Tulis 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 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
    

Melihat log perubahan di Pub/Sub

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

    Buka Langganan

  2. Klik langganan yang dibuat secara otomatis untuk topik Anda bigtable-change-stream-topic. 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.

    Pesan log perubahan di
Pub/Sub

Opsional: Lihat perubahan di log fungsi Cloud Run

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

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

    Buka Cloud Run Functions

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

  3. Buka tab Log.

  4. Pastikan Severity disetel ke setidaknya 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"}}