主题
实时集成(Flink CDC)作业
场景 业务库(MySQL)里的数据在不停变化,想让它实时同步进湖仓做分析,而不是像 DATA_SYNC 那样按周期批量抽一次——批量抽会有小时级延迟,CDC 能做到秒级。
能干什么
| 你想做的事 | 配置成 Flink CDC 长这样(示意) |
|---|---|
| MySQL 一张表实时入湖 | 「新建实时集成」向导:选数据源 → 选源表 → 配目标 catalog/库/表 |
| 挑字段、改字段名 | 字段映射表里勾选要同步的字段,新建表时可改目标字段名 |
| 换个更保守/更激进的实时性 | 调 checkpoint 间隔(默认 10s)、并行度、JM/TM 规格 |
亮点
- 向导式配置,不用手写 SQL——跟 Flink SQL 作业不同,Flink CDC 是结构化表单:选数据源、选源表后自动列出字段(含类型、主键标注),勾选要同步的字段、可改目标字段名,平台在服务端拼出建表 + INSERT 语句,不用自己写
mysql-cdc-ds连接器参数。 - 跟 Flink SQL、Flink Jar 共用同一套部署与生命周期——没有独立的执行器,三者都在同一个部署服务里按
job.getJobType()分支各自编译成 spec,统一走 native k8s application 模式(每作业一个专属 Flink 集群);作业详情页同一个「实时集成部署」面板,启动/停止(savepoint)/checkpoint 监控完全通用。 - 前置条件很明确,不是"开箱即用"——MySQL 源要能被 CDC 连接器读 binlog:
binlog_format=ROW、账号有REPLICATION SLAVE/REPLICATION CLIENT权限,这是外部 MySQL 侧的标准要求,不满足的话作业会在启动阶段直接报连接/权限错误。 - upsert 主键自动识别——源表的主键会被自动标注并作为目标 Iceberg 表的 upsert 主键,源库的增删改通过主键在湖表里做 upsert,不用手工声明。
- 凭证同样不进 SQL 明文——跟 Flink SQL 一样,连接器只引用已注册数据源的
ds.ref,真实的账号密码由平台运行时注入。
完整操作示例:MySQL orders 表实时同步进 Iceberg
「新建实时集成」向导选数据源 mysql_10_biz_source,源库自动绑定为 demo_source,源表选 orders;目标 catalog 选 iceberg_lake,目标表填 site_demo_ws10.cdc_orders,采用新建表方式。字段映射自动列出全部 5 个字段,主键 id 已被识别为 upsert 主键:

点「启动」部署后很快进入 RUNNING,产出第一个 checkpoint。用「数据查询」查一下目标表,行数(23)跟源库当前行数一致——CDC 先做了一次全量快照。接着直接往源库 orders 表插入一条新订单,等下一个 checkpoint(10s)过后再查一次,行数变成 24、last_create_time 精确对应刚插入的这条记录,证明增量变更被实时捕获并写进了湖表:

想批量抽取而不追求秒级实时性,看离线集成(DATA_SYNC)作业;想直接写流式 SQL,看Flink SQL 作业。
看全部作业类型 →