Flink CDC 钉钉群 阿里云开发者社区
Flink 社区微信公众号 阿里云开发者“藏经阁”
卷首语:数据集成的发展和未来
作者:伍翀(云邪)
Apache Flink PMC Member & Committer
阿里巴巴技术专家
在信息爆炸的时代,为了从海量数据中洞察业务价值,
驱动运营决策,企业通常会构建用于数据分析的数据仓
库。数据仓库的数据一般来源于多个分散的、异构的数
据源,通过数据集成技术将数据整合在一起,消除数据
孤岛,便于后续的分析。近年来,面向分析的数据系统
发展迅速,各种新型的 OLAP 系统开始显露锋芒,数据
湖和 Lakehouse 的概念也变得炙手可热。然而,数据
集成仍然是人们通往数据分析之路上的主要障碍。
构建一个中心化的数据仓库本身是一个艰巨的任务,每
个数据源都需要单独的程序和工具来摄取、清洗和导入
数据。尤其是随着业务的发展,企业对于数据实时性的
要求越来越高。在 2021 年 6 月,Apache 董事会宣布决
定终止 Apache Sqoop 项目,以 Apache Sqoop 为
代表的传统离线数据同步开始退出历史舞台。这也代表
着传统的离线数据同步已经无法满足用户的需求,人们
开始追求更为实时的数据同步方案。基于数据库事务日
志的 Change Data Capture (CDC) 技术作为一种更
为优雅和先进的实时数据同步方案,开始广泛应用于增
量数据集成中。然而诸如 Canal 等专注于纯增量数据
同步的开源项目也逐渐面临活跃度越来越低的困境,因
为用户想要集成的数据从来不是单独的历史数据部分,
或是单独的增量数据部分,而是历史数据和增量数据一
体化地集成到数据仓库。这也是为什么如 Debezium、
Flink CDC 等全增量一体化数据集成框架能越来越受
欢迎的原因之一。
Flink CDC 是 Apache Flink 的一个重要组件,主要使
用了 CDC 技术从各种数据库中获取变更流并接入到
Flink 中。Apache Flink 作为一款非常优秀的流处理引
擎,其 SQL API 又提供了强大的流式计算能力,因此
结合 Flink CDC 能带来非常广阔的应用场景。例如,
Flink CDC 可以替代传统的 DataX 和 Canal 工具做
实时数据同步,将数据库的全量和增量数据同步到消息
队列和数据仓库中。也可以做实时数据集成,将数据库
数据实时入湖入仓。还可以做实时物化视图,通过 SQL
对数据库数据做实时关联、打宽、聚合,并将物化结果
写入到湖仓中。
为了帮助读者能更全面地了解 Flink CDC,我们特地编
撰了这本中文专刊。在这本专刊里你可以了解到:Flink
CDC 的底层原理设计是什么样的?Flink CDC 如何保
证数据读取的一致性?如何一步步快速上手 Flink CD
C?以及 Flink CDC 在生产实践上的宝贵经验!
作为新一代数据集成框架,Flink CDC 希望解决的问题
很简单:“成为数据从源头连接到数据仓库的管道,屏
蔽过程中的一切复杂问题,让用户专注于数据分析”。
但是为了让数据集成变得简单,其中的挑战仍然非常多:
比如百亿数据如何高效入湖入仓?千表数据如何稳定入
湖入仓?如何“一键”整库同步?表结构频繁变更,如
何自动同步表结构变更到湖和仓中?我们会在本专刊中
介绍 Flink CDC 在这些方向取得的一些初步进展,
Flink CDC 未来也会持续朝着这些方向改进。我们后续
还会组织发布更多关于这些场景的 Flink CDC 系列专
刊。
目录
5
6
23
33
50
67
68
82
93
105
106
116
130
141
原理技术篇
Flink CDC 2.0 正式发布,详解核心改进
Flink CDC 2.1 正式发布,稳定性大幅提升,新增 Oracle、MongoDB 支持
Flink CDC 端到端一致性分析
Flink CDC 如何简化实时数据入湖入仓
快速入门篇
基于 Flink CDC 构建 MySQL 和 Postgres 上的 Streaming ETL
基于 Flink CDC 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
Flink CDC 实现 MySQL 数据实时写入 Apache Doris 数仓
生产实践篇
37 手游基于 Flink CDC + Hudi 湖仓一体方案实践
Flink CDC 上线!我们总结了 13 条生产实践经验
Flink CDC 实时抽取 Oracle 数据,实践和调优
Flink MongoDB CDC 在 XTransfer 的生产实践
实时计算 Flink 版与开源 Flink CDC 版本对比
155