Template Change Data Capture from MySQL to BigQuery using Debezium and Pub/Sub adalah pipeline streaming yang membaca pesan Pub/Sub dengan data perubahan dari database MySQL dan menuliskan data ke BigQuery. Konektor Debezium merekam perubahan pada database MySQL dan memublikasikan data yang diubah ke Pub/Sub. Template kemudian membaca pesan Pub/Sub dan menuliskannya ke BigQuery.
Anda dapat menggunakan template ini untuk menyinkronkan database MySQL dan tabel BigQuery. Pipeline menulis data yang diubah ke tabel penyiapan BigQuery dan secara berkala memperbarui tabel BigQuery yang mereplikasi database MySQL.
Persyaratan pipeline
- Konektor Debezium harus di-deploy.
- Pesan Pub/Sub harus diserialisasi dalam Baris Beam.
Parameter template
Parameter yang diperlukan
- inputSubscriptions: Daftar langganan input Pub/Sub yang dipisahkan koma untuk dibaca, dalam format
<SUBSCRIPTION_NAME>,<SUBSCRIPTION_NAME>, ...
. - changeLogDataset: Set data BigQuery untuk menyimpan tabel penyiapan, dalam format <DATASET_NAME>.
- replicaDataset: Lokasi set data BigQuery untuk menyimpan tabel replika, dalam format <DATASET_NAME>.
Parameter opsional
- inputTopics: Daftar topik PubSub yang dipisahkan koma tempat data CDC dikirim.
- updateFrequencySecs: Interval saat pipeline memperbarui tabel BigQuery yang mereplikasi database MySQL.
- useSingleTopic: Setel ini ke
true
jika Anda mengonfigurasi konektor Debezium untuk memublikasikan semua pembaruan tabel ke satu topik. Nilai defaultnya adalah: false. - useStorageWriteApi: Jika benar (true), pipeline akan menggunakan BigQuery Storage Write API (https://cloud.google.com/bigquery/docs/write-api). Nilai defaultnya adalah
false
. Untuk mengetahui informasi selengkapnya, lihat Menggunakan Storage Write API (https://beam.apache.org/documentation/io/built-in/google-bigquery/#storage-write-api). - useStorageWriteApiAtLeastOnce: Saat menggunakan Storage Write API, menentukan semantik penulisan. Untuk menggunakan semantik minimal satu kali (https://beam.apache.org/documentation/io/built-in/google-bigquery/#at-least-once-semantics), tetapkan parameter ini ke
true
. Untuk menggunakan semantik tepat satu kali, tetapkan parameter kefalse
. Parameter ini hanya berlaku jikauseStorageWriteApi
adalahtrue
. Nilai defaultnya adalahfalse
. - numStorageWriteApiStreams: Saat menggunakan Storage Write API, tentukan jumlah aliran penulisan. Jika
useStorageWriteApi
adalahtrue
danuseStorageWriteApiAtLeastOnce
adalahfalse
, Anda harus menetapkan parameter ini. Nilai default: 0. - storageWriteApiTriggeringFrequencySec: Saat menggunakan Storage Write API, menentukan frekuensi pemicuan, dalam detik. Jika
useStorageWriteApi
adalahtrue
danuseStorageWriteApiAtLeastOnce
adalahfalse
, Anda harus menetapkan parameter ini.
Menjalankan template
Untuk menjalankan template ini, lakukan langkah-langkah berikut:
- Di komputer lokal Anda, clone repositori DataflowTemplates.
- Ubah ke direktori
v2/cdc-parent
. - Pastikan konektor Debezium di-deploy.
- Menggunakan Maven, jalankan template Dataflow:
mvn exec:java -pl cdc-change-applier -Dexec.args="--runner=DataflowRunner \ --inputSubscriptions=SUBSCRIPTIONS \ --updateFrequencySecs=300 \ --changeLogDataset=CHANGELOG_DATASET \ --replicaDataset=REPLICA_DATASET \ --project=PROJECT_ID \ --region=REGION_NAME"
Ganti kode berikut:
PROJECT_ID
: ID Google Cloud project tempat Anda ingin menjalankan tugas DataflowSUBSCRIPTIONS
: daftar nama langganan Pub/Sub yang dipisahkan komaCHANGELOG_DATASET
: set data BigQuery Anda untuk data log perubahanREPLICA_DATASET
: set data BigQuery Anda untuk tabel replika
Langkah berikutnya
- Pelajari template Dataflow.
- Lihat daftar template yang disediakan Google.