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

问下:Flink CDC中查一遍数据库的数据,是基于表查还是基于日志文件? 如果binlog是后面加

问下:Flink CDC中查一遍数据库的数据,是基于表查还是基于日志文件? 如果binlog是后面加的,没有历史数据,应该查不到吧?

展开
收起
真的很搞笑 2023-07-31 14:26:20 93 0
2 条回答
写回答
取消 提交回答
  • 在 Flink CDC 中,查看一遍数据库的数据是基于日志文件的变更事件,而不是直接基于表进行查询。

    Flink CDC 连接到数据库的 binlog(例如 MySQL 的二进制日志)或其他日志文件,实时捕获数据库中的变更事件。这些变更事件包括插入、更新和删除等操作。

    当你启动 Flink CDC 作业时,它会从 binlog 或者日志文件的当前位置开始,获取增量变更事件,并将其转换为数据流供 Flink 进行处理。因此,Flink CDC 并不基于表的当前状态进行查询,而是基于变更事件流来构建数据流。

    如果你使用的是 binlog,并且在后期才启用了 binlog,那么在启用之前的历史数据将无法被 Flink CDC 获取到。因为 Flink CDC 只能通过解析 binlog 中的变更事件来捕获增量数据,并不能回溯读取历史数据。

    如果你需要处理历史数据,可以考虑使用其他方式,如全量数据导入或者手动加载历史数据到 Flink 中。这样可以确保在处理增量数据之前,历史数据已经被正确加载。

    总结起来,在 Flink CDC 中,查看一遍数据库的数据是基于日志文件中的变更事件。如果 binlog 是在后面加入的,Flink CDC 将无法获取到启用前的历史数据。如需处理历史数据,可以使用其他方式来加载或导入历史数据。

    2023-07-31 21:27:25
    赞同 展开评论 打赏
  • 你看下debezium怎么采集数据的就知道了,此回答整理自钉群“Flink CDC 社区”

    2023-07-31 14:33:20
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
    Kubernetes下日志实时采集、存储与计算实践 立即下载
    日志数据采集与分析对接 立即下载