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

flink cdc 2.4.1 数据源设置启动模式:这个是什么地方设置问题导致的?

flink cdc 2.4.1 数据源设置启动模式:StartupOptions.initial(),并配置了本地存储的checkpoint ,但是springboot服务每次启动打印显示都是表里的全部数据 这个是什么地方设置问题导致的?

展开
收起
真的很搞笑 2023-11-01 14:52:04 200 0
3 条回答
写回答
取消 提交回答
  • 您好,这个问题可能是由于Flink CDC的启动模式设置不正确导致的。在Flink CDC中,如果设置了startupOptions的initial选项,那么在第一次启动作业时,它会读取原表已有的历史数据,操作类型为READ,之后不断做检查点存储。当您第二次启动作业时,一定要指明检查点文件的具体位置,这样就可以断点续传;即使Flink宕机了,重启后也是从上次offset开始读,而不是latest检查点。需要注意的是,检查点只有在打包部署后才有用。

    如果您是第一次启动Flink CDC且选择了initial选项,但未读取到历史数据,可能是因为initial选项只适用于未处理的新数据变更,而不会触发对历史数据的读取和处理。此外,如果您通过Flink的保存点机制进行故障恢复,并使用initial选项设置为earliest或指定了一个特定的时间戳,Flink CDC应该能够从设置的起始点开始读取数据。请确保选择的保存点包含了所需的历史数据。

    2023-11-02 14:39:30
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    根据您的描述,您在使用Flink CDC 2.4.1作为数据源时设置了StartupOptions.initial(),并配置了本地存储的checkpoint。在这种情况下,如果每次服务启动时都会重新加载整个表的数据,则可能是由于以下几个原因:

    1. 如果您未正确地启用或配置检查点,则每次服务重启时都不会恢复到最近的检查点,而是从头开始处理所有数据。
    2. 在设置StartupOptions.initial()后,Flink会从初始位置开始读取数据。如果初始位置设置不正确,它可能不会从上次检查点的位置开始恢复,而是从表的开头开始读取所有数据。
    3. 如果表中的数据发生变化,则即使正确设置了检查点,Flink也会再次读取整个表。
    2023-11-02 14:32:57
    赞同 展开评论 打赏
  • springboot不要和flink搞在一起,到处是i坑,比如你现在就是给你自己挖坑,StartupOptions.initial() 默认是就是全量数据,每次启动都是,除非你启动的时候指定了上次的checkpoint的快照,从checkpoint启动,此回答整理自钉群“Flink CDC 社区”

    2023-11-01 21:46:19
    赞同 展开评论 打赏

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

相关产品

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

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