本文讨论的方案将是本博客以往介绍的所有关于 CDC 数据同步方案中最贴合实际生产需要的,因为以往介绍的开箱即用方案往往都是一张表对应一个 Kafka Topic,在数据库和数据表数量很大的情况下,这种模式是不实用的,主要问题在于:每张表都对应一个单独的 Flink 作业,占用一个单独的数据库连接,表的数量一多,对数据库造成的压力是不可接受的。此外,针对每张表使用 Flink SQL 定义 CDC 作业也是一项繁重的重复性工作,如果能简化或省略也是很实用的一项改进。
另一防文章来源:https://www.toymoban.com/news/detail-855279.html
用户真正需要的是:将多张数据表或整个数据库写入到一个 Kafka Topic 中,然后下游再对 Kafka 消息进行分流,也就是把同一张表中的数据分离出来写入到下游表中。要实现这样的设计目标,有一个非常重要的前提条件:Kafka 中的消息必须要包含两个关键字段,就是这条 CDC 数据所属的数据库名和数据表名。本文我们将详细介绍这一方案的具体实现并给出可执行的源代码(订阅用户可以私信博主获得完整的项目源码)。文章来源地址https://www.toymoban.com/news/detail-855279.html
- 一条消息推送后,每一个 Flink 单表同步的 Job 都是需要解析 Json 的,但实际上只有一个 Job 会正确解析出对象,所以 debezium-json.ignore-parse-errors 必须要设置为 true,这种处理方式是有一些 hacking 的味道,效率并不高。
- 由于 Kafka 不支持 DateTime 类型,Flink CDC 会将 DateTime 类型转换为毫秒数进行传输,当从 Kafka 上创建分流表时,源表中所有 DateTime 类型必须重定义为 BIGINT,然后再进行 CAST 才能得到 TIMESTAMP 数据,这使得大量
到了这里,关于Flink CDC 整库 / 多表同步至 Kafka 方案(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!