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 表。
流水线要求
模板参数
参数 | 说明 |
---|---|
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 提供的模板列表。