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

flinkcdc从时间戳重启,是总binlog开头开始读取,然后过滤到对应时间点多数据吗?

flinkcdc从时间戳重启,是总binlog开头开始读取,然后过滤到对应时间点多数据吗?
f1f4fc47ccc0ef7b6989d386e8429be5.png
发现时间戳重启读不到数据flinkcdc2.3.0 flink1.14.5。传入一个时间戳,读取从这时间戳开始的binlog在测试。

展开
收起
十一0204 2023-08-09 09:06:28 227 0
2 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    根据您提供的信息,您正在使用 Flink CDC 2.3.0 和 Flink 1.14.5 版本,并尝试通过指定一个时间戳来重启 Flink CDC 并从该时间戳开始读取 Binlog 数据。

    根据 Flink CDC 的文档和代码片段中的描述,使用 timestamp 的启动模式可以指定一个时间戳作为启动偏移量,从该时间戳开始读取 Binlog 数据。启动后,消费者会从 Binlog 的开头开始遍历,并忽略时间戳小于指定时间戳的变更事件。

    在您的代码片段中,startupTimestampMillis 是以毫秒为单位的启动时间戳。您可以使用 StartupOptions.timestamp() 方法来创建启动选项,并将启动模式设置为 StartupMode.TIMESTAMP,同时将时间戳转换为秒级精度(startupTimestampMillis / 1000)的 Binlog 偏移量。

    然而,您提到在测试中发现无法读取从指定时间戳开始的 Binlog 数据。这可能是由于以下原因导致的:

    时间戳问题:请确保您传入的时间戳是正确的,并且与 Binlog 中的时间戳匹配。时间戳应该表示自纪元以来的毫秒数。

    CDC配置问题:请确保您在 Flink CDC 配置中正确使用了 timestamp() 方法,并将启动选项设置为启动模式 StartupMode.TIMESTAMP。检查配置文件以确保正确传递了时间戳参数。

    Binlog数据未达到指定时间戳:如果指定的时间戳在 Binlog 中没有相应的数据变更事件,那么在启动时可能不会读取到数据。请确保在指定时间戳之后有相应的数据变更事件。

    2023-08-11 21:29:18
    赞同 展开评论 打赏
  • 意中人就是我呀!

    不同启动方式状态是不兼容的。此回答整理至钉群“Flink CDC 社区”。

    2023-08-09 12:05:42
    赞同 展开评论 打赏

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

热门讨论

热门文章

相关电子书

更多
PolarDB-X 2.0 全局 Binlog 与备份恢复能 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载