Change Data Capture from MySQL to BigQuery using Debezium and Pub/Sub(Stream)テンプレートは、MySQL データベースの変更データを含む Pub/Sub メッセージを読み取り、レコードを BigQuery に書き込むストリーミング パイプラインです。Debezium コネクタは、MySQL データベースの変更をキャプチャして、変更データを Pub/Sub にパブリッシュします。続いて、テンプレートにより Pub/Sub メッセージが読み取られ、BigQuery に書き込まれます。
このテンプレートを使用すると、MySQL データベースと BigQuery テーブルを同期できます。パイプラインは、変更データを BigQuery のステージング テーブルに書き込み、MySQL データベースを複製する BigQuery テーブルを断続的に更新します。
パイプラインの要件
テンプレートのパラメータ
パラメータ | 説明 |
---|---|
inputSubscriptions |
読み込まれる Pub/Sub 入力サブスクリプションのカンマ区切りのリスト。<subscription>,<subscription>, ... の形式で指定します。 |
changeLogDataset |
ステージング テーブルを格納する BigQuery データセット。<my-dataset> の形式で指定します。 |
replicaDataset |
レプリカ テーブルを格納する BigQuery データセットの場所。<my-dataset> の形式で指定します。 |
updateFrequencySecs |
(省略可)MySQL データベースを複製する BigQuery テーブルを、パイプラインが更新する間隔。 |
テンプレートを実行する
このテンプレートを実行するには、次の操作を行います。
- ローカルマシンで DataflowTemplates リポジトリのクローンを作成します。
v2/cdc-parent
ディレクトリに移動します。- Debezium コネクタがデプロイされていることを確認します。
- Maven を使用して、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"
次のように置き換えます。
PROJECT_ID
: Dataflow ジョブを実行する Google Cloud プロジェクトの IDSUBSCRIPTIONS
: Pub/Sub サブスクリプション名のカンマ区切りリスト。CHANGELOG_DATASET
: 変更履歴データの BigQuery データセット。REPLICA_DATASET
: レプリカ テーブルの BigQuery データセット。
次のステップ
- Dataflow テンプレートについて学習する。
- Google 提供のテンプレートのリストを確認する。