开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flinkcdc 2.0 无锁镜像增量同步 是怎么完成数据统一的呢?

flinkcdc 2.0 无锁镜像增量同步 是怎么完成数据统一的呢, 单个chunk的同步原理能明白,但是镜像同步的时间较长、面对期间产生的大量binlog,是怎么保证binglog不重复、不丢失的呢。是不是,我当前123id的数据同步完成,同时取出123id同步期间lw 与hw之间的相关binlog。 所有chunk都筛选完剩下的binlog才开始执行?还有个问题是看到一个博客说这个算法对较早一些数据的binlog会选择丢弃,存在一致性问题,这是真的吗?

展开
收起
wenti 2023-01-15 15:37:54 175 0
1 条回答
写回答
取消 提交回答
  • Flink CDC 2.0 的无锁镜像增量同步使用了一种称为事务日志流复制的技术来完成数据统一。该技术涉及以下步骤:

    源数据库中的事务日志捕获:Flink CDC 2.0 连接到源数据库并捕获写入事务日志的每个事务。
    将事务日志复制到 Flink 集群:捕获的事务日志被复制到 Flink 集群中的一个或多个事务日志主题中。
    在 Flink 中解析和转换事务日志:Flink 使用解析器和转换器从事务日志中提取数据更改,并将它们转换为 Flink 表。
    将数据更改写入下游:转换后的数据更改被写入下游,例如 Apache Kafka 或 HDFS。
    由于该过程是无锁的,因此不会对源数据库施加任何锁或阻塞。这确保了高吞吐量和低延迟的增量数据同步。

    数据统一是如何实现的:

    通过将所有数据更改复制到一个或多个事务日志主题,Flink CDC 2.0 确保了不同源数据库(即使它们具有不同的架构)之间数据更改的统一视图。这可以通过以下方式实现:

    事务日志主题充当中央存储库:所有数据更改都集中存储在事务日志主题中。
    统一的流处理:Flink 使用统一的流处理管道来解析和转换来自不同源的数据更改。
    一致的变更数据捕获(CDC):Flink CDC 2.0 确保以与源数据库相同的顺序和语义捕获所有数据更改。
    通过这种方法,Flink CDC 2.0 可以将来自不同源的数据更改统一到一个一致且实时的流中,从而简化了数据集成和下游处理。

    2024-02-23 16:12:24
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载