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

Flink CDC从select开始时间那个位置的binlog开始增量读取是吧?

Flink CDC读取数据的时候在读取全量select的时候就开始记录select开始那会的binlog的位置,然后全量读完了,就从select开始时间那个位置的binlog开始增量读取是吧?

展开
收起
真的很搞笑 2023-11-22 08:14:57 64 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,您说的没错。Flink CDC 会先从源数据库中读取全量数据,然后从全量读取开始的时间点开始读取 binlog,以获取增量数据。
    具体来说,Flink CDC 会先执行全量快照(Snapshot),在 Snapshot 中,它会扫描源数据库的所有数据并复制一份副本,然后从该副本中计算出差异数据,这就是增量数据。
    在执行 Snapshot 后,Flink CDC 会注册一个 binlog consumer,以监听源数据库的变化。每当发生数据变更时,binlog consumer 会接收相应的 binlog 事件,并将其转换为增量数据。这样,Flink CDC 就可以实时地从源数据库中读取增量数据,而无需再次执行全量快照。
    需要注意的是,binlog 是按照事务发生的顺序记录的,因此 Flink CDC 必须遵循 binlog 的顺序才能正确地捕获增量数据。

    2023-11-29 14:33:40
    赞同 展开评论 打赏
  • 是的,Flink CDC 在启动全量读取之前会记录 Binlog 的位置,当全量读取结束后,Flink CDC 会从记录的 Binlog 位点开始读取增量数据。这种机制允许 Flink CDC 精准地跟踪源数据库中的数据变更,并且只同步变更的数据,从而提高数据处理的效率。

    需要注意的是,如果全量读取耗时太长,超过了 MySQL Binlog 的淘汰周期(默认为 7200 秒),可能会导致 Flink CDC 在全量读取结束后无法找到对应的 Binlog 位点,因为该位点的数据可能已经被 MySQL 清理掉了。在这种情况下,你可能需要重新运行一次全量读取操作。

    2023-11-22 09:14:20
    赞同 1 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 热门讨论

    热门文章

    相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载