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 模版是一种流处理流水线,用于从 MySQL 数据库中读取包含更改数据的 Pub/Sub 消息并将记录写入 BigQuery。Debezium 连接器捕获对 MySQL 数据库的更改,并将更改后的数据发布到 Pub/Sub。然后,该模板读取 Pub/Sub 消息并将其写入 BigQuery。

您可以使用此模板同步 MySQL 数据库和 BigQuery 表。流水线将更改后的数据写入 BigQuery 暂存表,并间歇性地更新复制 MySQL 数据库的 BigQuery 表。

流水线要求

  • Debezium 连接器必须已部署
  • Pub/Sub 消息必须在 Beam 行中序列化。

模板参数

参数 说明
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 数据集

后续步骤