Apache Flink 社区很高兴地宣布 Flink CDC 3.6.0 版本正式发布!本版本聚焦Flink 多版本兼容升级、端到端 Schema Evolution 增强、数据湖生态全面覆盖与连接器扩展,吸引了 46 位贡献者完成了 96 个 issue 的修复与改进(累计 173 次提交)。现在,您可以访问 Flink CDC Release 页面 下载 CDC 3.6.0 的二进制包,也可以在文档网站上访问最新版本的文档。如果您在使用时遇到任何问题,欢迎在 Flink 用户邮件列表 或 Flink JIRA 上提出问题或发起讨论。

本文将深度解析 3.6.0 版本的核心特性、关键优化和重点改进,帮助您全面理解新版本的技术价值。
一、核心特性速览
:::
这个版本将 Flink 版本支持扩展到 1.20.x 和 2.2.x,并将 JDK 版本升级至 11,引入了全新的 Oracle Source 和 Apache Hudi Sink Pipeline 连接器,Fluss Pipeline 连接器支持 Lenient 模式的表结构演进策略,新增 PostgreSQL Schema Evolution 支持,提升了多表同步场景下的 Schema Evolution 能力和表名映射的灵活性,增强了 Transform 框架对 VARIANT 类型和 JSON 解析的支持。
:::

二、核心特性和关键优化汇总
2.1 MySQL&PostgreSQL 入湖入流支持 Schema Evolution
在生产环境中,上游数据库的表结构变更(如新增列、修改列类型等)是常见且不可避免的。Schema Evolution 能够将这些 DDL 变更自动同步至下游存储,避免因表结构不一致导致的同步中断或数据丢失。
此前 Flink CDC 已支持 MySQL 作为 Pipeline Source 的 Schema Evolution 能力,在 3.6 版本中 PostgreSQL Pipeline Source 同样实现了这一支持,至此两大主流关系型数据源均具备了表结构变更的自动感知与下发能力。在 Sink 侧,数据湖格式 Apache Paimon 与 Apache Iceberg 均已支持接收并应用上游的 Schema Change 事件,流存储 Apache Fluss 也支持以 Lenient 模式处理列变更。这意味着用户在构建 MySQL / PostgreSQL 到数据湖或流存储的实时同步链路时,能够实现端到端的 Schema Evolution,大幅降低因表结构变更带来的人工运维成本。
2.2 Flink 多版本支持与 JDK 升级
Flink CDC 3.6.0 扩展 Flink 版本支持至 1.20.x 和 2.2.x,同时升级 JDK 版本至 11。同时支持 Flink 1.20.x 和 2.2.x 意味着用户可以根据自身业务需求灵活选择 Flink 版本,而无需受限于 CDC 连接器的版本兼容性。对于尚未完成 Flink 2.x 迁移的用户,可以继续在 Flink 1.20.x 上使用最新的 CDC 功能;对于希望尽早采用 Flink 2.x 新特性的用户,同样能够获得一致的 CDC 能力支持。这也降低了 Flink 版本升级过程中的风险——用户无需担忧因底层引擎版本变更而导致数据同步链路的功能差异或行为不一致。
⚠️ 重要变更提示:
JDK 最低版本要求从 8 提升至 11,升级前请确认运行环境满足要求
DataStream 用户需同步更新
pom.xml中的 JDK 版本和 connector 依赖,详见官方升级指南
2.3 新增 Pipeline 连接器
本版本新增了 Apache Hudi Pipeline Sink 连接器和 Oracle Pipeline 连接器。随着 Hudi Sink 连接器的加入,Flink CDC 已实现对当前主流数据湖格式(Apache Iceberg、Apache Paimon、Apache Hudi)的全面覆盖,为用户提供了完整的 CDC 入湖解决方案。更广泛的数据湖生态支持能够让更多开发者和用户在实际业务中对比、选型并实践数据库 CDC 入湖方案,持续打磨和提升产品在该场景下的成熟度与可靠性。
Apache Hudi Pipeline Sink 连接器:Apache Hudi 作为业界广泛使用的数据湖格式,此次集成使得用户可以基于 Flink CDC 轻松构建基于 Hudi 的实时数据湖架构。
Oracle Pipeline 连接器:增强 Flink CDC 在企业级数据库生态中的兼容性,满足企业用户对 Oracle 数据整库实时同步的需求。
2.4 框架增强
优化全量到增量切换性能,特别针对大规模分片场景,显著降低切换耗时,提升大规模数据同步效率。
新增对表和列变更事件的解析,实现更全面的表结构变更处理能力,包括表和列注释的同步。
YAML Pipeline Router 支持基于正则表达式的路由,为高级表路由场景提供更强大的配置能力。
引入
VARIANT类型和PARSE_JSON函数,实现对半结构化数据的灵活处理,满足现代数据集成场景中对 JSON 等复杂数据格式的处理需求。YAML Transform 模块支持嵌套类型,实现更灵活的数据转换。
2.5 连接器优化
MySQL Pipeline 连接器
- 新增 Flink CDC 对 MySQL 8.4 版本的适配,确保与最新版 MySQL 的兼容性。
PostgreSQL Pipeline 连接器
支持 PostgreSQL Pipeline 连接器中的 Schema Changes,实现表结构变更的自动同步。
为 PostgreSQL Pipeline Connector 添加元数据列支持,提供更多上下文信息。
Fluss Pipeline 连接器
支持 Lenient 模式的表结构变更演进策略。
- 扩展复杂数据类型支持,兼容 ARRAY、MAP 和 ROW 类型。
Iceberg Pipeline 连接器
为 Iceberg Pipeline 连接器支持 AWS Glue Catalog 和 BigQuery Catalog。
在 Iceberg Sink 中支持分区转换(partition transforms),优化数据分布策略。
StarRocks Pipeline 连接器
- 支持重命名列和修改列类型 DDL,实现 StarRocks 表结构的动态调整。
Kafka Pipeline 连接器
- YAML Kafka Sink 连接器支持序列化复杂类型,提升消息队列数据写入的灵活性。

三、其他改进
在这个版本,社区还了带来下述缺陷修复和改进:
[FLINK-38247][MySQL] 使用 BIGINT UNSIGNED 作主键时,可能持续生成 splits
[FLINK-38218][MySQL] 修改正则匹配新增表时可能因为分片分发问题忽略新增表的增量数据
[FLINK-38279][MySQL] 流模式下设置 scan.startup.mode=snapshot 时作业恢复失败
[FLINK-38531][MySQL] gtidSet 相同时 BinlogOffset.compareTo 方法失效,可能导致基于 GTID 恢复时丢失数据
[FLINK-39056][Iceberg] 两阶段提交期间 Iceberg Sink 出现数据重复问题
[FLINK-39209][Doris] 序列化时间类型列时抛出异常
[FLINK-38455][elasticsearch] - ElasticSearch8 在有表结构变更时无法继续运行
四、升级注意事项
我们建议升级到 Flink CDC 3.6.0 版本,因为这个版本同时支持Flink 1.20 和Flink 2.2, 所以用户需要根据自己的Flink版本选择下载不同的依赖,具体参考:
致谢
感谢以下 46 名贡献者对 Flink CDC 3.6.0 版本做出的贡献(按字母排序):
5herhom, big face cat, chengcongchina, chenhongyu, Dustin Washington, Edward Zhuang, fcfangcc, HUANG XIAO, Hongshun Wang, Jia Fan, Junbo Wang, Kevin Liu, Kunni, Lanny Boarts, Leonard Xu, linjianchang, Luca Occhipinti, lvyanquan, Martijn Visser, Mingliang Zhu, moses, Mukhutdinov Artur, ouyangwulin, Pei Yu, Sachin Mittal, Sergei Morozov, Shuo Cheng, SkylerLin, suhwan, Tejansh, Thorne, Tianzhu Wen, voonhous, Wink, wudi, Xin Gong, yuxiqian
欢迎 star 🌟 和加入 Flink CDC 贡献:
https://github.com/apache/flink-cdc
欢迎加入“Flink CDC 社区交流群”群的钉钉群号: 80655011780

更多内容

活动推荐
复制下方链接或者扫描左边二维码
即可免费试用阿里云 Serverless Flink,体验新一代实时计算平台的强大能力!
了解试用详情:https://free.aliyun.com/?productCode=sc
