Flink CDC 完整上手指南一条 YAML 搭出 MySQL 到 Doris 的实时数据同步作业【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdcFlink 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.yamlsource 段描述源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 指向 Dorisfenodes填前端节点地址。2. 提交作业。在 flink-cdc 发行包的bin目录中找到flink-cdc.sh用 YAML 路径作为参数提交bin/flink-cdc.sh /path/to/your/mysql-to-doris.yaml下图左半是 YAML 配置右半是提交后作业在 Flink Web UI 中运行的样子跑起来之后确认成功再避开 3 个坑怎么确认同步成功看 Flink Web UI作业状态应为 RUNNING且没有反复重启。核对目标端数据。到 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),仅供参考
