实时捕获数据库变革的流式框架Flink CDC
Flink CDC 介绍Flink CDC 是 Apache Flink 提供的一个流式数据集成框架,用于实时捕获和处理数据库中的数据变更。它通过读取数据库的日记(如 MySQL 的 Binlog、PostgreSQL 的 WAL 等),实现全量和增量数据的实时同步。
核心功能
[*] 全量 + 增量同步:Flink CDC 支持从数据库中读取历史数据,并自动切换到增量捕获模式,确保数据的完整性和实时性。
[*] Schema Evolution:自动处理表结构变更,支持在不重启作业的情况下将上游的 DDL 变更同步到下游。
[*] 低延迟流式处理:以流式方式运行,提供亚秒级的端到端延迟,实用于实时数据同步场景。
[*] 数据转换与预处理:支持数据转换操作(如列投影、过滤、计算列等),并提供丰富的内置函数。
[*] 高可用性:依托 Flink 的 HA 机制(如 ZooKeeper 或 Kubernetes),确保体系的高可用性。
最新特性(3.0 版本)
[*] YAML API:引入了基于 YAML 的配置方式,用户可以通过 YAML 文件定义数据集成流程,包括数据摄取、转换、路由和写入。
[*] 独立流式数据集成框架:Flink CDC 3.0 被捐赠至 Apache 软件基金会,成为一个独立的流式数据集成框架。
[*] 加强的生态体系集成:支持直接写入 Kafka 等下游体系,无需额外摆设 Debezium 或 Canal。
摆设方式
Flink CDC 可以在多种环境中摆设,包括独立集群、YARN 或 Kubernetes。以下是基于 Flink on YARN 的摆设步调:
[*] 环境准备:
[*] 安装 JDK、Maven 和 Hadoop。
[*] 下载并配置 Flink。
[*] Mysql数据库设置(设置时区)
https://i-blog.csdnimg.cn/direct/3fd4d8ea9cf24588ac25029f0cd95ffc.png
[*] 配置 Flink 集群:
[*] 编辑 flink-conf.yaml 和 yarn-site.xml 文件。
[*] 提交 Flink 作业:
[*] 使用 Flink CLI 提交作业,例如从 PostgreSQL 捕获数据并打印到控制台。
可以参考视频配置Flink CDC+kafka+mysql完成数据实时监听:
【IT老齐575】极简代码Flink CDC监听MySQL变革投递至Kafka分发_哔哩哔哩_bilibili
这个案例基于flink1.19.0版本,干系的pom配置如下:
https://i-blog.csdnimg.cn/direct/e646c24b53044dd2814389815c07840e.png
https://i-blog.csdnimg.cn/direct/693b0d4dd38441f08812acd25126b65b.png
https://i-blog.csdnimg.cn/direct/3d62cda6df3f47649810f595b4ade6ff.png
https://i-blog.csdnimg.cn/direct/b9f006770cba4e2289d1f4e635b54a8f.png
https://i-blog.csdnimg.cn/direct/a89d25dab70f43fab3909367c36c0cc7.png
https://i-blog.csdnimg.cn/direct/69f043c966f243e3870b1830cceea3f0.png
https://i-blog.csdnimg.cn/direct/9a04b00ec4e64d74b54ffc5eb70f2ea1.png
使用场景
[*] 实时数据同步:将数据库变更实时同步到消息队列(如 Kafka)或数据仓库。
[*] 数据入湖入仓:支持将数据实时同步到数据湖或数据仓库,满足实时分析需求。
[*] 微服务集成:为微服务架构提供实时数据共享和同步。
总结
Flink CDC 是一个功能强大的分布式数据集成工具,特别适合必要低延迟、高可用性和灵活数据处理的实时数据同步场景。其最新的 3.0 版本通过引入 YAML API 和加强的生态体系集成,进一步提升了易用性和灵活性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]