什么是 Flink CDC?
Flink CDC 是一个使用 Apache License 2.0 协议的开源项目,支持从 MySQL、MariaDB、RDS MySQL、Aurora MySQL、PolarDB MySQL、PostgreSQL、Oracle、MongoDB、SqlServer、TiDB、OceanBase 等数据库中实时地读取存量历史数据和增量变更数据,整个过程提供 exactly-once 语义保证。Flink CDC 同时提供了 SQL API 和 DataStream API 两套 API,很好地满足了不同开发者的需求。
作为新一代数据集成框架,Flink CDC 既可以替代传统的 DataX 和 Canal 工具做实时数据同步,将数据库的全量和增量数据一体化地同步到消息队列和数据仓库中;也可以做实时数据集成,将数据库数据实时入湖入仓;同时还支持强大的数据加工能力,可以通过 SQL 对数据库数据做实时关联、打宽、聚合,并将物化结果写入到各种存储中。相对于其他数据集成框架,Flink CDC 具有全增量一体化、无锁读取、并发读取、分布式架构等技术优势,在开源社区中非常受欢迎。
Flink CDC 项目地址:
https://github.com/ververica/flink-cdc-connectors
一、GitHub star 超过 2000
自 2020 年 7 月份开源以来,Flink CDC 社区发展迅速,在 GitHub 的关注度持续走高。回顾 Flink CDC 项目的发展,在 2021 年 9 月初,Flink CDC 项目的 GitHub star 首次超过 1000,也是这个时候 Flink CDC 发布了 2.0 版本,正式进入大规模生产可用阶段,社区的发展速度也犹如装上了加速引擎。
越来越多的人知道并开始使用 Flink CDC,众多的开发者参与到 Flink CDC 的贡献中。仅过去半年,Flink CDC 项目的 GitHub star 数就完成了翻番。截至发稿前,Flink CDC 项目的 GitHub star 数达到 2015,fork 数达到了 660,issue 数达到了 582。这就是开源的力量!
社区的发展离不开全体社区开发者的贡献和用户的支持,目前 Flink CDC 项目的贡献者已增加至 34 人,贡献者来自 Cloudera、RedHat、Vinted、阿里巴巴、蚂蚁、网易、XTransfer 等国内外公司。Flink CDC 社区用户群发展也非常迅速,中文用户群成立半年多便达到 3800+ 人。
根据社区用户群和公开资料统计,目前使用 Flink CDC 的公司包括 Cloudera、Vinted、阿里巴巴、蚂蚁、网易、腾讯、哔哩哔哩、XTransfer、37 手游、农业银行、民生银行、深圳市领星网络、大健云仓等国内外云厂商和知名企业。通过这些云厂商提供的流计算服务和多家企业实践,我们发现正有越来越多的用户借助 Flink CDC 来快速实现数据实时集成和数据湖实时构建。
二、新增 Maintainer 成员
Flink CDC 社区的快速发展离不开贡献者们的努力,在 Flink CDC 社区高速发展的过程中,涌现了一批活跃的高质量的贡献者。经过 Flink CDC 社区 Maintainer 小组讨论, Flink CDC 社区已经邀请 Jiabao-Sun (孙家宝) 加入 Flink CDC 社区的 Maintainer 列表。
孙家宝老师是 XTransfer 基础架构部的资深 Java 开发工程师,负责 XTransfer 基础设施和大数据平台建设,他长期活跃在 Flink CDC 社区,作为核心贡献者在社区贡献了包括 MongoDB CDC Connector 在内的多个 PR,同时在社区 issue 列表和 Flink CDC 社区群非常积极,帮助社区开发者和用户解答了非常多的问题,为社区发展做出了极大的贡献。
期待孙家宝老师作为 Flink CDC 项目的 Maintainer,为 Flink CDC 的发展带来更多元的视角,帮助更多的社区贡献者和用户。也希望未来能有更多的贡献者可以加入 Maintainer 列表,不断推动社区的发展。
三、Flink CDC 2.2 版本前瞻
经过社区 3 个月的开发,已经合并了 47 commits,Flink CDC 2.2 版本也即将与大家见面,包含了许多用户期待已久的功能。
2.2 版本会新增 SqlServer CDC,TiDB CDC,OceanBase CDC 三个 Connector,支持从上三种数据库中读取全量和增量 CDC 数据。
MySQL CDC 支持动态加表,如果你一个 CDC pipeline 监控了4张表,突然有天老板想让你加几张表,你肯定不想另起作业 (浪费资源),那么这个 feature 可以让你在已有 pipeline 中增加需要监控的表,而无需重新读取已同步的表。
所有 CDC Connector 都可以兼容 Flink 1.13 和 Flink 1.14 版本,意味着同一个 Connector 可以跑在不同版本的集群上。
增量快照读取算法抽象成通用框架,便于其他 connector 接入。只需额外实现少量代码,新 connector 便能支持无锁读取、多并发读取、全程断点续传等功能。
MongoDB CDC 支持正则表达式过滤集合, 在 2.1 版本里 MongoDB CDC 只能捕获单个集合或者 DB 下的全部集合,2.2 版本将提供正则匹配集合支持。
MySQL CDC 将支持 MySQL 5.6,这对低版本的 MySQL 用户来讲绝对是个好消息。
此外,2.2 版本也修复了很多用户反馈 bug 和小的改进。
社区的贡献者们正在紧锣密鼓地筹备 2.2 版本的发布,目前预计 3 月中下旬便能与用户见面,也欢迎感兴趣的小伙伴成为 Flink CDC 的贡献者,一起参与设计、研发和测试,共同推动社区的发展!
延伸阅读
《Flink CDC 新一代数据集成框架》由阿里巴巴技术专家,Apache Flink PMC Member & Committer 伍翀 (云邪) 出品,旨在帮助读者能更全面地了解 Flink CDC。
专刊下载链接:
https://developer.aliyun.com/topic/download?id=8256
▼ 关注「Apache Flink」,获取更多技术干货 ▼
更多 Flink 相关技术问题,可扫码加入社区钉钉交流群~
戳我,查看更多技术内容~