flink cdc 2.4.1 数据源设置启动模式:StartupOptions.initial(),并配置了本地存储的checkpoint ,但是springboot服务每次启动打印显示都是表里的全部数据 这个是什么地方设置问题导致的?
您好,这个问题可能是由于Flink CDC的启动模式设置不正确导致的。在Flink CDC中,如果设置了startupOptions的initial选项,那么在第一次启动作业时,它会读取原表已有的历史数据,操作类型为READ,之后不断做检查点存储。当您第二次启动作业时,一定要指明检查点文件的具体位置,这样就可以断点续传;即使Flink宕机了,重启后也是从上次offset开始读,而不是latest检查点。需要注意的是,检查点只有在打包部署后才有用。
如果您是第一次启动Flink CDC且选择了initial选项,但未读取到历史数据,可能是因为initial选项只适用于未处理的新数据变更,而不会触发对历史数据的读取和处理。此外,如果您通过Flink的保存点机制进行故障恢复,并使用initial选项设置为earliest或指定了一个特定的时间戳,Flink CDC应该能够从设置的起始点开始读取数据。请确保选择的保存点包含了所需的历史数据。
根据您的描述,您在使用Flink CDC 2.4.1作为数据源时设置了StartupOptions.initial(),并配置了本地存储的checkpoint。在这种情况下,如果每次服务启动时都会重新加载整个表的数据,则可能是由于以下几个原因:
springboot不要和flink搞在一起,到处是i坑,比如你现在就是给你自己挖坑,StartupOptions.initial() 默认是就是全量数据,每次启动都是,除非你启动的时候指定了上次的checkpoint的快照,从checkpoint启动,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。