Flink CDC 10 分钟从零跑通YAML 数据管道安装配置完全指南【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdcFlink CDC 是一个构建在 Apache Flink 之上的实时数据集成工具你只需要写一份 YAML 文件它就能把 MySQL、Oracle、PostgreSQL 等数据库的存量数据和增量变更实时同步到 Doris、StarRocks、Kafka 等下游全程零代码。下面带你从零完成环境准备、JAR 放置、配置编写到作业验证的完整流程。30 秒速览Flink CDC 解决的是整库实时同步这件事全量迁移 增量 binlog 捕获 表结构变更自动跟随 库表路由合并四件事在一个 YAML 里声明式完成不需要写一行 Java。读完这篇文章你将能够独立完成 Flink Flink CDC CLI 的环境搭建与连通性验证正确放置 Pipeline 连接器 JAR 与数据库 Driver分清两个 lib 目录的区别编写一份整库同步的 YAML 并通过flink-cdc.sh提交作业在 Flink Web UI 与目标端确认全量、增量、DDL 三类事件均正常落库定位 server-id 冲突、binlog 被清理等最常见的卡点核心能力速写一条管道由三部分组成源端捕获变更MySQL、PostgreSQL、Oracle、SQL Server 等 Source 连接器→中间做投影、过滤、路由transform、route配置支持正则合并分库分表→目标端写入Doris、StarRocks、Kafka、Paimon、Iceberg、Elasticsearch、Fluss 等 Sink 连接器。源端的ADD COLUMN、ALTER TABLE等 DDL 会按schema.change.behavior配置自动透传到目标端即 Schema Evolution。项目主体是 Java 工程模块划分见 flink-cdc-common/、flink-cdc-runtime/、flink-cdc-connect/YAML API 是最常用的入口SQL API 与 DataStream API 面向更细粒度的场景。当前 3.6.x 版本要求 Flink 1.20.x 或 2.2.x版本对照表见 docs/content.zh/docs/connectors/pipeline-connectors/overview.md。环境自检动手前逐项打勾缺一项后面就会卡运行时与框架JDK 11 及以上3.6.0 起基于 JDK 11 构建java -version确认Apache Flink 1.20.x 或 2.2.x解压到本地并设置FLINK_HOMEFlink 已开启 checkpoint增量同步依赖它推进位点在conf/config.yaml中追加execution: checkpointing: interval: 3s外部服务可达性以 MySQL → Doris 为例MySQL 3306 端口、Doris FE 8030 端口从 Flink 集群机器均可访问MySQL 已开启 binlog 且binlog_format ROW、binlog_row_image FULLMySQL 为同步账号授予SELECT, REPLICATION SLAVE, REPLICATION CLIENT权限Doris 侧目标库已存在Doris 暂不支持自动建库账号有写权限凭据与位点资源源端/目标端的用户名密码下文用your_password占位一段未被其他同步工具占用的server-id区间数量 ≥ source 并行度实操流程下载 Flink CDC 并解压从 Apache 发布页下载flink-cdc-x.y-z-bin.tar.gz解压得到包含bin、lib、conf、log四个目录的发行版。执行tar -xzf flink-cdc-x.y-z-bin.tar.gz解压。进入该目录ls应能看到bin/flink-cdc.sh。如果你拿到的是 SNAPSHOT 版本但没有预编译包需要拉取源码自行构建仓库地址为 https://gitcode.com/GitHub_Trending/flin/flink-cdc 克隆后用 Maven 编译出发行版。启动 Flink 集群作业最终运行在 Flink 集群里先把它拉起来。在 Flink 目录下执行./bin/start-cluster.sh。访问http://localhost:8081看到 JobManager 与 TaskManager 均为 RUNNING 状态即就绪。放置连接器 JAR 与 Driver这一步最容易放错位置Pipeline 连接器 JAR 进Flink CDC 的 lib数据库 Driver 进Flink 的 lib。从 Maven 中央仓库下载与你版本匹配的flink-cdc-pipeline-connector-mysql和flink-cdc-pipeline-connector-doris两个 JAR复制到 Flink CDC 发行版的lib/目录。下载mysql-connector-java驱动 JAR放到 Flink 发行版的lib/目录或提交时用--jar参数传入。ls lib/核对两边文件缺哪个作业就会报找不到连接器或驱动。编写管道配置以 MySQL 整库同步到 Doris 为例创建mysql-to-doris.yamlsource: type: mysql hostname: 192.168.x.x port: 3306 username: your_user password: your_password tables: app_db.\.* server-id: 5400-5404 server-time-zone: UTC sink: type: doris fenodes: 192.168.x.x:8030 username: your_user password: your_password pipeline: name: sync-mysql-to-doris parallelism: 2 schema.change.behavior: evolvetables用正则圈定要同步的库表范围server-id区间长度要覆盖 source 并行度server-time-zone必须与 MySQL 服务端时区一致否则 timestamp 会差 8 小时。提交并验证用 CLI 把 YAML 编译成 Flink 作业并提交在 Flink CDC 目录下执行bash bin/flink-cdc.sh mysql-to-doris.yaml。看到Pipeline has been submitted to cluster并输出 Job ID说明提交成功。打开 Flink Web UI应看到名为sync-mysql-to-doris的作业在 RUNNING。登录 Doris 查询app_db全量数据应已落表随后在 MySQL 里INSERT、UPDATE、DELETE并ALTER TABLE加一列Doris 端数据与表结构应实时跟随变化。常见卡点现象可能原因快速修复只同步了全量增量数据一直不出现Flink 未开启 checkpoint位点无法推进config.yaml加execution.checkpointing.interval: 3s后重启集群报错A slave with the same server_id as this slave has connectedserver-id与其他作业/同步工具冲突换一段全局唯一的 server-id 区间区间数 ≥ source 并行度报错 binlog 位点no longer available on the server源端 binlog 保留期太短作业所需位点被清理调大 MySQL 的 binlog 保留时间如 7 天或提高并发加快消费timestamp 字段差 8 小时server-time-zone与 MySQL 实际时区不一致将配置改为与服务端一致例如server-time-zone: UTC或Asia/Shanghai增量阶段报 statement/mixed format 相关错误源端binlog_format不是 ROW在 MySQL 执行show variables like binlog_format检查并改为ROW更多排障场景GTID 位点过期、连接被重置、TINYINT(1) 误判布尔值等可翻 docs/content.zh/docs/faq/faq.md。下一步跑通第一条管道后建议按 docs/content.zh/docs/get-started/quickstart-for-2.2/mysql-to-doris.md 完整过一遍官方示例再结合route配置尝试分库分表合并部署到生产集群Standalone / Kubernetes / YARN的方式见docs/content.zh/docs/deployment/目录下的对应文档。【免费下载链接】flink-cdcFlink CDC is a streaming data integration tool项目地址: https://gitcode.com/GitHub_Trending/flin/flink-cdc创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
