首页/数据/数据工程与 ETL 速查/Flink CDC:把 CDC 做成 Flink 连接器
CDC 与同步53 条

Flink CDC:把 CDC 做成 Flink 连接器

Flink CDC 将 CDC 数据源封装为 Flink 连接器(mysql-cdc、postgres-cdc、oracle-cdc、mongo-cdc 等),用 SQL 或 DataStream 直接消费增量并流式加工;2.x 的增量快照算法支持并发快照与断点续读,3.x 提供 YAML 管道做多表整库同步。

定位Flink 生态的 CDC 连接器与整库同步工具
引擎连接器底层基于 Debezium 引擎解析日志
关键能力增量快照(无锁并发)、checkpoint 位点提交、整库同步
入口Flink SQL / DataStream API / YAML pipeline(3.x)

SQL 声明 CDC 源表并直接加工

SQL 声明 CDC 源表并直接加工
CREATE TABLE orders (order_id BIGINT, status STRING, PRIMARY KEY (order_id) NOT ENFORCED)
WITH ('connector' = 'mysql-cdc', 'hostname' = '10.0.0.5', 'database-name' = 'app', 'table-name' = 'orders');

SELECT status, COUNT(*) FROM orders GROUP BY status;
CDC 源表是持续变更流:SELECT 是长跑作业,聚合要配合窗口或连续查询,不能当批表反复扫描。

易错点

  • 作业没开 checkpoint,位点不提交,重启后从头回放或重复消费
  • 把 CDC 表当普通维表反复 join 全量扫描,源库压力与作业状态失控

数据来源与参考

  • Apache Flink 官方文档(CDC Connectors)
  • Flink CDC 官方文档(ververica/flink-cdc)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌