首页/数据/数据工程与 ETL 速查/Flink CDC YAML 管道:整库同步
CDC 与同步53 条

Flink CDC YAML 管道:整库同步

Flink CDC 3.x 提供 YAML 管道:用 source/sink/pipeline 三段声明数据流,bin/flink-cdc.sh 提交,适合把整库或一批表同步到消息队列、湖仓等目标,并可做库表改名路由,减少逐表写 SQL 的重复工作。

Flink CDC 管道是什么

Flink CDC 3.x 提供声明式的 YAML 数据管道:用 source、sink、pipeline 三段描述一条从源库到目标端的数据流,通过 bin/flink-cdc.sh 提交给 Flink 集群运行。它把原本需要逐表编写 SQL 或 DataStream 代码的整库同步变成一份配置文件,适合把一批表同时同步到消息队列、数据湖或数仓,并在管道内完成库表改名路由。

基本信息

版本范围Flink CDC 3.x 起提供 Data Pipeline 与 YAML 作业
提交方式bin/flink-cdc.sh <pipeline.yaml> 提交到 Flink 集群
三段结构source(源连接与表范围)、sink(目标与写入参数)、pipeline(名称、并行度等)
表范围用 tables 显式列库表或用正则批量匹配
路由能力route 段可把源库表改名映射到目标库表
运行依赖需要可用 Flink 集群或本地会话,MySQL 源端需具备 binlog 读取权限

典型使用场景

  • 整库入湖:把业务库多张表一次性同步到湖仓,免去逐表建作业
  • 库表改名:源端库表命名不规范时用 route 映射到目标端规范名
  • 批量实时接入:新业务库接入时先生成 YAML 管道跑通链路,再按需细化
  • 同步到消息队列:把变更流投递到 Kafka,供下游流式加工消费
  • 迁移验证:用同一份管道配置对比不同目标端的写入效果

mysql-to-kafka.yaml 示例

mysql-to-kafka.yaml 示例
source:
  type: mysql
  hostname: 10.0.0.5
  port: 3306
  username: cdc_ro
  password: '***'
  tables: app\.orders, app\.users   # 显式列出要同步的表
  server-id: 5400-5404             # 与从库及其他 CDC 实例错开
  server-time-zone: Asia/Shanghai

sink:
  type: kafka
  properties.bootstrap.servers: 10.0.0.6:9092

route:
  - source-table: app.orders
    sink-table: ods.orders_cdc       # 目标端改名,避免与原表名混淆

pipeline:
  name: mysql-to-kafka
  parallelism: 2                     # 并行度受源端表数量与库压力约束

提交与运行状态

提交与运行状态
# 提交管道作业到 Flink
bin/flink-cdc.sh mysql-to-kafka.yaml
# 查看运行中的作业
flink list
# 关键日志:关注快照阶段进度与 binlog 位点是否推进
tail -f log/flink-*-taskexecutor-*.log | grep -i 'snapshot\|binlog'

配置段落职责

段落配置什么常见坑
source连接信息、表范围、server-id 区间server-id 与从库冲突,或表范围过宽
sink目标类型与连接参数、写入语义不同版本参数名有差异,需对照版本示例
route源表到目标表的改名映射映射遗漏导致部分表落到默认命名
pipeline作业名、并行度、重启策略并行度过高把源库读压力拉满
管道配置随版本演进,3.0 与 3.1 的 sink 参数存在差异;上线前按所用版本的官方示例逐项核对,不要直接套用别处的配置文件。
整库同步必须配置排除清单:业务库里的日志表、审计表、超大流水表按需排除,否则带宽、目标端存储与 Flink 状态都会被意外消耗。

易错点

  • tables 用正则匹配全库却不排除日志表与大表,带宽和存储被意外吃掉
  • server-id 区间与已有 CDC 实例或从库冲突,导致源端复制异常
  • 管道首次启动时源端 binlog 已被清理,快照可以跑但增量阶段直接失败
  • route 只配了部分表,其余表按默认命名落到目标端,下游取数找不到表
  • 并行度按集群上限直接拉满,源库连接数与读压力瞬间升高影响在线业务

数据来源与参考

  • Flink CDC 官方文档(Data Pipeline / YAML 作业)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌