Flink CDC v2.3 发布

Flink CDC 是一种基于数据库变更日志的变更数据捕获(CDC)技术。它是一个数据集成框架,支持读取数据库快照并平滑切换到读取binlog(包含数据库中数据和结构的所有更改的记录的二进制日志)。这对于捕获提交的更改并将其从数据库传播到下游使用者非常有用,并有助于保持多个数据存储同步并避免双重写入。凭借强大的 Flink pipeline 及其丰富的上下游生态系统,Flink CDC 可以高效实现海量数据的实时集成。Flink CDC 作为下一代实时数据集成框架,具有无锁读取、并行读取等技术优势、表模式自动同步、分布式架构。它还有自己的独立文档,您可以在这里找到。

Flink CDC 开源 2 年多来,Flink CDC 社区发展迅速,目前已有 76 名贡献者,7 名维护者,钉钉用户群超过 7800 名用户。在社区的共同努力下,Flink CDC 2.3.0从代码分布来看,我们可以看到MySQL CDC、MongoDB CDC、Oracle CDC、增量快照框架(flink-cdc-base)、文档模块等方面的新特性和改进。特性,这篇博文将回顾此版本中的主要改进和核心特性以及未来的发展。关键特性和改进出于本文的目的,我们将探讨此版本的四个最重要的特性。

DB2 CDC 简介

ConnectorDB2是IBM开发的关系型数据库管理系统。 DB2 CDC 连接器可以捕获 DB2 数据库中表的行级更改。 DB2 基于 ASN Capture/Apply 代理启用 SQL Replication,它为捕获模式下的表生成变更数据表,并将变更事件存储在变更数据表中。 DB2 CDC Connector 首先通过 JDBC 读取表中的历史数据,然后从变更数据表中读取增量变更数据。 MongoDB CDC 和 Oracle CDC Connector 的增量快照算法支持在 Flink CDC 2.3 版本中,MongoDB CDC Connector 和 Oracle CDC Connector 对接 Flink CDC 增量快照框架,实现增量快照算法。这意味着现在它们支持无锁读取、并行读取和检查点。现在,我们有更多支持增量快照算法的 Flink CDC 源。社区还计划未来将更多的连接器迁移到增量快照框架。 MySQL CDC Connector 的稳定性改进作为 Flink CDC 项目中最受欢迎的连接器,MySQL CDC Connector 在 2.3 版本中引入了许多高级功能,并且具有许多性能和稳定性方面的改进。支持从特定偏移量开始此连接器现在支持从 binlog 的指定位置开始作业。您可以通过时间戳、binlog 偏移量或 binlog gtid 指定起始 binlog 位置。您还可以将其设置为从最早的binlog偏移量开始。 chunk分割算法的优化您现在可以在快照阶段优化chunk分割算法。当前的同步算法改为异步,并且可以选择主键中的一列作为 chunk 分割算法的分割列。拆分过程支持检查点,解决了快照阶段同步分块阻塞导致的性能问题。稳定性改进连接器现在支持将所有字符集映射到 Flink SQL,解锁更多用户场景。可以处理不同类型的默认值,提高作业对不规则DDL的容忍度,并自动获取数据库服务器的时区,解决时区问题。性能改进该版本重点优化内存和读取性能,减少JobManager的内存占用TaskManager 通过 JobManager 中的元复用和 TaskManager 中的流读取进行改进。同时,通过优化 binlog 解析逻辑,提高 binlog 读取性能。 其他改进 Flink CDC 2.3 版本兼容 Flink 四大版本(1.13、1.14、1.15、1.16)。这大大降低了用户的升级和维护成本。OceanBase CDC Connector修复了时区问题,将所有数据类型映射到Flink SQL,并提供更多选项以实现更灵活的配置,例如新增的“table-list”配置用于读取多个 OceanBase 表。MongoDB CDC 连接器支持更多数据类型,并优化捕获表的过滤过程。TiDB CDC 连接器修复快照阶段后切换的数据丢失问题,并支持读取期间的区域切换。Postgres CDC 连接器支持几何类型,更多添加了选项,可以配置changelog模式来过滤数据。SQL Server CDC连接器支持更多的SQL Server版本,并完善了文档。MySQL CDC和OceanBase CDC连接器包括中文文档以及OceanBase CDC连接器的视频教程。未来计划Flink CDC的开发可以如果没有社区的贡献和反馈以及维护者的开源精神,就不可能实现这一目标。目前,Flink CDC 社区已经在制定 2.4 版本的计划。欢迎所有用户和贡献者参与并提供反馈。该项目的主要方向将来自以下几个方面:完善的数据源 – 我们计划支持更多的数据源,并将更多的连接器迁移到增量快照框架,以解锁无锁读取和并行读取。可观察性改进 – 我们希望提供读取限速功能,减少快照阶段数据库的查询压力。新版本将提供更丰富的监控指标,让用户获取任务进度相关指标,监控任务状态。 性能改进——新版本中快照阶段支持使用批处理模式,这将提高快照阶段和发布的性能快照阶段后自动空闲读者的资源。 可用性改进 – 提高连接器的易用性,例如简化开箱即用的选项并在 DataStream API 中提供示例。Ververica Platform 计划在 2.11 版本中支持 Flink CDC。

致谢:感谢为 Flink CDC 2.3 版本做出贡献的所有 49 位社区贡献者,特别是社区的四位维护者(阮航、孙家宝、龚忠强、任庆生)为本次发布做出了出色的工作。贡献者名单: 01410172, Amber Moe, Dezhi Cai, Enoch, Hang Ruan, He Wang, Jiajia, Jiabao Sun, Junwang Zhao, Kyle Dong, Leonard Xu, Matrix42, Paul Lin, Qingsheng Ren, Qishangzhong, Rinka, Sergey Nuyanzin, Tigran Manasyan, Camelus 、dujie、ehui、embcl、fbad、gongzhongqiang、hehuiyuan、hele.kc、hsldymq、jiabao.sun、legendtkl、leixin、leozlliang、lidoudou1993、lincoln lee、lxxawfl、lzshlzsh、molsion、molsionmo、pacino、rookiegao、天际线、晴朗、 vanliu、wangminchao、wangxiaojing、xieyi888、yurunchuan、zhmin、阿阳、莫贤斌

关注公众号“大模型全栈程序员”回复“大数据面试”获取800页左右大数据面试宝典 ,回复“大数据”获取多本大数据电子书

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。更多免费资源在http://www.gitweixin.com/?p=2627