Change Data Capture from MySQL to BigQuery using Debezium and Pub/Sub(Stream)テンプレート

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 テーブルを断続的に更新します。

パイプラインの要件

  • Debezium コネクタがデプロイされる必要があります。
  • Pub/Sub メッセージは Beam Row でシリアル化される必要があります。

テンプレートのパラメータ

パラメータ 説明
inputSubscriptions 読み込まれる Pub/Sub 入力サブスクリプションのカンマ区切りのリスト。<subscription>,<subscription>, ... の形式で指定します。
changeLogDataset ステージング テーブルを格納する BigQuery データセット。<my-dataset> の形式で指定します。
replicaDataset レプリカ テーブルを格納する BigQuery データセットの場所。<my-dataset> の形式で指定します。
updateFrequencySecs (省略可)MySQL データベースを複製する BigQuery テーブルを、パイプラインが更新する間隔。

テンプレートを実行する

このテンプレートを実行するには、次の操作を行います。

  1. ローカルマシンで DataflowTemplates リポジトリのクローンを作成します。
  2. v2/cdc-parent ディレクトリに移動します。
  3. Debezium コネクタがデプロイされていることを確認します。
  4. 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 プロジェクトの ID
    • SUBSCRIPTIONS: Pub/Sub サブスクリプション名のカンマ区切りリスト。
    • CHANGELOG_DATASET: 変更履歴データの BigQuery データセット。
    • REPLICA_DATASET: レプリカ テーブルの BigQuery データセット。

次のステップ