Template Change Data Capture dari MySQL ke BigQuery menggunakan Debezium dan Pub/Sub adalah pipeline streaming yang membaca pesan Pub/Sub dengan data perubahan dari database MySQL dan menulis data ke BigQuery. Konektor Debezium merekam perubahan pada database MySQL dan memublikasikan data yang diubah ke Pub/Sub. Template ini kemudian membaca pesan Pub/Sub dan menulisnya ke BigQuery.
Anda dapat menggunakan template ini untuk menyinkronkan database MySQL dan tabel BigQuery. Pipeline tersebut menulis data yang diubah ke tabel staging 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 staging, 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 ke tempat data CDC didorong.
- updateFrequencySecs : Interval saat pipeline memperbarui tabel BigQuery yang mereplikasi database MySQL.
- useSingleTopic : Tetapkan ke true jika Anda telah mengonfigurasi konektor Debezium untuk memublikasikan semua pembaruan tabel ke satu topik. Defaultnya adalah: false.
- useStorageWriteApi : Jika benar, pipeline akan menggunakan BigQuery Storage Write API (https://cloud.google.com/bigquery/docs/write-api). Nilai defaultnya adalah
false
. Untuk 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 tulis. 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, menentukan jumlah aliran tulis. Jika
useStorageWriteApi
adalahtrue
danuseStorageWriteApiAtLeastOnce
adalahfalse
, Anda harus menetapkan parameter ini. Setelan defaultnya adalah: 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.
- Dengan 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 project Google Cloud 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 selanjutnya
- Pelajari template Dataflow.
- Lihat daftar template yang disediakan Google.