Flink CDC 完整上手指南:一条 YAML 搭出 MySQL 到 Doris 的实时数据同步作业
2026/9/24 16:14:34 网站建设 项目流程

Flink CDC 完整上手指南:一条 YAML 搭出 MySQL 到 Doris 的实时数据同步作业

【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdc

Flink CDC 是一款流式数据集成工具,由 Ververica 贡献给 Apache Flink 社区,现归属 Apache 名下,仓库名为 apache/flink-cdc。它用一份 YAML 文件描述完整的数据管道,把源端到目的端的实时数据同步一次讲清。如果你想把 MySQL、Oracle 这类数据库持续同步到 Kafka、Doris 这类目标系统,又不想逐行写 ETL 代码,看这篇就够了。

🎯 什么场景值得上 Flink CDC

自己写同步程序,通常会撞上三个问题:

  • 全量与增量切换麻烦。传统做法先跑全量脚本,再切增量,衔接逻辑要自己保证不丢数、不重数。Flink CDC 把全量快照和增量变更(binlog 这类增量日志)串成一条连续管道,自动从快照推进到增量。
  • 不用写 ETL 代码。管道用 YAML 描述即可运行,数据转换也直接写在配置里,省掉单独开发转换逻辑的环节。
  • 表结构变更自动跟随。业务库里加列、建表是常事,Flink CDC 内置 schema 演变(schema evolution)能力,下游表结构会随上游自动变更。

上面任意一条戳中你,就值得花时间把它搭起来。

同步链路一张图说清

整条链路很短:

MySQL / Oracle 等(Source,读取端) │ 全量数据 + 变更事件 ▼ Flink CDC 管道(跑在 Flink 上) │ YAML 描述:源、目标、路由、转换 ▼ Kafka / Doris 等(Sink,写入端)

Source 负责读,Sink 负责写,YAML 是中间那份契约。Flink CDC 以 Java 为主要开发语言,底层依托 Flink 的流处理能力,保证管道的吞吐与故障恢复。

下面这张 Flink CDC 实时数据同步架构图,展示了它作为中枢连接大量数据源与各类目标系统的形态:

📋 环境就绪检查清单

动手前逐项核对,缺任何一项作业都跑不起来:

检查项要求
JDK版本 8 或更高
Flink已装好并设置FLINK_HOME环境变量
仓库把 flink-cdc 仓库克隆到本地
连接器 JAR源端、目标端对应的连接器 jar 已放入 Flink 的lib/目录

克隆命令:

git clone https://gitcode.com/GitHub_Trending/flin/flink-cdc

关于 JAR 有个关键点:Flink 从lib/目录加载连接器依赖。挑出你要用的数据库对应的连接器 JAR,丢进lib/,Flink 才认得这些库。

🛠️ 实战:用 Flink CDC YAML 配置搭 MySQL 同步 Doris 管道

以 MySQL 到 Doris 为例。

1. 写 YAML。新建mysql-to-doris.yaml,source 段描述源,sink 段描述目标:

source: type: mysql hostname: localhost port: 3306 username: root password: "your_password" tables: - db_name: app_db tables: "*" sink: type: doris fenodes: 127.0.0.1:8030 username: root password: ""

tables字段支持整库或按表选择;sink 指向 Doris,fenodes填前端节点地址。

2. 提交作业。在 flink-cdc 发行包的bin目录中找到flink-cdc.sh,用 YAML 路径作为参数提交:

bin/flink-cdc.sh /path/to/your/mysql-to-doris.yaml

下图左半是 YAML 配置,右半是提交后作业在 Flink Web UI 中运行的样子:

跑起来之后:确认成功,再避开 3 个坑

怎么确认同步成功:

  1. 看 Flink Web UI,作业状态应为 RUNNING,且没有反复重启。
  2. 核对目标端数据。到 Doris 里查同步后的表,全量行应当已就位,随后写入的变更也能跟进。

下图是一次 MySQL 到 Doris 的 Flink CDC 实时数据同步作业在 Web UI 中正常运行的效果:

容易踩的 3 个坑:

  • JAR 没放对位置。提交后很快失败、日志报找不到类,先确认源端和目标端连接器 JAR 都在 Flink 的lib/目录里。
  • 版本之间的配置差异。Flink CDC 的配置字段随版本会有变化,发现某个字段不生效时,对照你安装的版本去看对应文档。
  • 端点不可达。源数据库与目标系统必须对 Flink 集群网络可达、凭据正确,保证依赖的库和系统都已正确配置且可访问,否则作业会报错或卡住。

收尾

到这里,一条 YAML 就把同步管道立起来了:数据在流动,结构变更也在自动跟随。下一步可以往两个方向走——用transform在管道里做列级转换与过滤,再配合多条 route 规则,把分片表合并、多源路由到同一目标这类复杂需求也收进同一份 YAML 里。

【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdc

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询