Flink|Flink CDC 2.2 正式发布,新增四种数据源,支持动态加表,提供增量快照框架
前言
Flink CDC (CDC Connectors for Apache Flink?) [1]是 Apache Flink? 的一组 Source 连接器,支持从 MySQL,MariaDB, RDS MySQL,Aurora MySQL,PolarDB MySQL,PostgreSQL,Oracle,MongoDB,SqlServer,OceanBase,PolarDB-X,TiDB 等数据库中实时地读取存量历史数据和增量变更数据,用户既可以选择用户友好的 SQL API,也可以使用功能更为强大的 DataStream API。
文章图片
作为新一代的数据集成框架, Flink CDC 不仅可以替代传统的 DataX 和 Canal 工具做实时数据同步,将数据库的全量和增量数据一体化地同步到消息队列和数据仓库中;也可以用于实时数据集成,将数据库数据实时入湖入仓;同时还支持强大的数据加工能力,可以通过 SQL 对数据库数据做实时关联、打宽、聚合,并将物化结果写入到各种存储中。
相对于其他数据集成框架,Flink CDC 具有全增量一体化、无锁读取、并发读取、表结构变更自动同步、分布式架构等技术优势,在开源社区中非常受欢迎,成长迅速,文档完善[2],目前社区已有 44 位贡献者,4 位Maintainer,社区用户群超过 4000 人。
一、Flink CDC 2.2 概览
经过3个多月的紧张开发,在社区开发者们的共同努力下,Flink CDC 2.2 版本正式发布了:https://github.com/ververica/...
2.2 版本共有 34 位社区贡献者参与贡献,累计贡献了 110+ commits。一图胜千言,本文通过下图带你一分钟快速了解 Flink CDC 2.2 版本的重大改进和核心特性。
文章图片
- 2.2 版本新增 OceanBase,PolarDB-X,SqlServer,TiDB 四种数据源接入,均支持全量和增量一体化同步。 至此,Flink CDC 已支持 12 种数据源。
- Flink CDC 兼容 Flink 1.13 和 Flink 1.14 两个大版本,2.2 版本的所有 Connector 都支持跑在 Flink 1.13. 或 Flink 1.14. 的集群上。
- 提供增量快照读取框架,方便其他连接器接入,其他连接器采用该框架后,便可以提供无锁算法,并发读取,断点续传等功能。
- MySQL CDC 支持动态加表,该功能可以在无需重新读取已有表的基础上,增加需要监控的表,添加的表会自动先同步该表的全量数据再无缝切换到同步增量数据。
- MongoDB CDC 支持正则表达式过滤集合,该功能可以让用户在作业中指定所需监控的库名和集合名,用户可以用一个作业中监控多个数据库或多个集合。
- OceanBase CE
- PolarDB-X
- SqlServer
- TiDB
三、详解核心 feature 和重要改进 3.1 核心 feature
- 提供增量快照读取框架
文章图片
在增量框架完成后,其他 connector 只需要接入这个框架便可以提供无锁算法,并发读取,断点续传的能力。社区提供了一个基于增量快照框架的样例实现[7],开发者可以参考该样例实现一个支持增量快照读取的 CDC Source。
- 兼容 Flink 1.13 & Flink 1.14
- MySQL CDC 支持动态加表
- MongoDB CDC 支持自定义数据库,自定义集合
- MySQL CDC 支持 MySQL 5.6
3.2 重要改进
- MySQL CDC 通过心跳信息解决 binlog 过期问题
- MySQL CDC 修复数组越界问题
- Oracle CDC 修复 Numeric 类型映射问题
四、总结和展望 作为一个发起时间不到两年的新兴项目,Flink CDC 项目取得了现象级的发展和关注,这得益于 Flink CDC 开源社区所有贡献者们的无私贡献和开源布道, 更离不开广大 Flink CDC 用户群体的积极反馈。作为 2022 年的第一个版本,Flink CDC 给大家带来如此多的技术改进和核心特性,相信这些改进能够帮助广大的开发者和用户在各自的领域获得更多突破。Flink CDC 社区将会继续做好开源社区建设,在接下来的社区规划中,主要有四个方向。
- 完善 CDC 技术
- 扩展数据集成场景
进一步降低 CDC 数据入湖入仓的门槛,解决整库同步、表结构变更同步等痛点。
- 提升 Connector 性能
- 扩大数据库生态
致谢:
感谢所有为该版本做出贡献的 34 位社区贡献者,特别感谢来自 OceanBase 团队的 He Wang 贡献的 OceanBase CDC 连接器,来自大健云仓公司的 gongzhognqiang 贡献的 Sqlserver CDC 连接器,来自云账户公司的 eastfisher 贡献的 TiDB CDC 连接器, 来自 PolarDB-X 团队的 hele.kc 对 PolarDB-X 支持与适配。
完整贡献者列表:
Dian Qi, He Wang, Jark Wu, Jiabao Sun, Jingsong Lee, Junwang Zhao, Konstantin Knauf, Leonard Xu, Mustang Kong, Paul Zhang, Qingsheng Ren, Sergey Nuyanzin, Shengkai, Tuple, Xianxun Ye, Xuebing Li, Zongwen Li, camelusluo, eastfisher, ehui, fangpc, gongzhongqiang, hele.kc, hiscat, luoyuxia, paul8263, skylines, szgeqin, taox, tsreaper, wangxiaojing, wysstartgo, yexianxun, 元组 (从commit 信息提取,按字母排序)
[1] https://github.com/ververica/...
[2] https://ververica.github.io/f...
[3] https://open.oceanbase.com
[4] https://polardbx.com
[5] https://www.microsoft.com/en-...
[6] https://docs.pingcap.com/zh/t...
[7] https://github.com/ververica/...
[8] https://ververica.github.io/f...
线上 Flink CDC Meetup 筹备中
点击下方链接,参与 Flink CDC 问卷调查,我们会认真听取你的想法
https://survey.aliyun.com/app...
更多 Flink 相关技术问题,可扫码加入社区钉钉交流群
第一时间获取最新技术文章和社区动态,请关注公众号~
【Flink|Flink CDC 2.2 正式发布,新增四种数据源,支持动态加表,提供增量快照框架】
文章图片
推荐阅读
- flink|flink问题汇总
- 基于Confluent+Flink的实时数据分析最佳实践
- Flink|Flink Next(Beyond Stream Processing)
- c++|【Rust日报】2022-03-23 RustSBI软件发布v0.2.2版本
- Spring|Spring Cloud Function 3.0.0.RELEASE~3.2.2版本SPEL 表达式注入
- Flink|Flink 在米哈游的落地实践
- StreamX|StreamX 1.2.2 正式发布, 迄今最稳定可用版本重磅发布!
- 图数据库的易用性—GES与Flink的对接
- Java学习|Cannot resolve org.springframework.boot:spring-boot-starter-logging:2.2.1.RELEASE解决办法
- Apache|Apache Flink 在国有大型银行智能运营场景下的应用