一、Flink CDC 概述
Flink CDC 是基于数据库日志 CDC(Change Data Capture)技术的实时数据集成框架,支持全增量一体化、无锁读取、并行读取、表结构变更自动同步、分布式架构等高级特性。配合Flink 优秀的管道能力和丰富的上下游生态,Flink CDC 可以高效实现海量数据的实时集成。
Flink CDC 于2023年12月7日重磅推出其全新的 3.0 版本,3.0版本的发布对 Flink CDC 而言具有里程碑的意义,自此 Flink CDC 从捕获数据变更的Flink 数据源正式迈向为以 Flink 为基础的端到端流式 ELT 数据集成框架。
在该版本中,社区首先支持实时同步MySQL数据至 Apache Doris 和 StarRocks两条链路。
二、Flink CDC 3.0 设计动机
2.1 Flink CDC与数据同步面临的挑战
虽然 Flink CDC 有很多技术优势,社区用户增长很快,但随着 Flink CDC 项目用户基数的日益增长,以及应用场景的不断扩大,社区收到了很多用户反馈:
-
用户体验:只提供 Flink source,不支持端到端数据集成, SQL 和 DS API 构建作业流程复杂
-
维护频繁:上游数据库表结构变更非常常见 ,增加、删除表的业务需求普遍存在
-
扩展性:全量和增量阶段资源难以灵活扩缩容 ,千表同步、万表入湖入仓资源消耗大
-
中立性:项目使用 Apache License V2 协议,不属于 Apache Flink ,版权归属于 Alibaba (Ververica)
针对这些反馈,社区的 Maintainer 也在思考在 Flink CDC 的不足,思考 CDC 乃至数据集成领域面临的技术挑战:
-
历史数据规模大:数据库的历史数据规模大,100T+ 规模很常见
-
增量数据实时性要求高:数据库的增量数据业务价值高,且价值随时间递减,需要实时处理
-
数据的保序性:CDC 数据的加工结果通常需要强一致性语义,需要处理工具支持全局保序
-
表结构动态变化:增量数据随时间增长,数据对应的表结构会不断演进
在梳理这些问题时,我们也在思考,能否在 Flink CDC 项目中帮助用户解决这些技术挑战?能否为用户打磨一款面向 CDC 和海量数据集成的开源产品?
2.2 Flink CDC 3.0 定位
针对这些想法,我们在Flink CDC社区里面与Maintainer