Flink CDC 大佬们,整库读,specific_offset 启动,checkpoint里面的点位信息不会更新吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用Flink CDC进行整库读取时,如果配置了'scan.startup.mode'为'specific-offset'来从特定的Binlog位点启动任务,关于Checkpoint中的点位信息更新情况是这样的:
当Flink作业运行时,它会定期执行Checkpoint操作以记录当前的处理进度。对于MySQL CDC源而言,这意味着会记录下正在读取的Binlog的文件名和位置(或GTID)。
如果作业因故重启,Flink会尝试从最近成功完成的Checkpoint恢复,这包括MySQL CDC Source的读取位置。因此,即使初始启动时指定了'specific-offset',一旦作业至少完成了一次Checkpoint,之后的重启将不再使用'specific-offset'指定的位置,而是使用Checkpoint中保存的最新位点继续读取。
重要提醒:根据文档说明,在无状态启动时(即没有从Checkpoint恢复),'scan.startup.mode'配置才会生效。一旦作业开始并产生了Checkpoint,后续的启动行为将优先依赖于Checkpoint中存储的偏移信息,而非初始配置的'specific-offset'。
综上所述,一旦Flink作业进行了Checkpoint,Checkpoint里记录的位点信息会在作业重启时被用来继续数据处理,而不是始终使用'specific-offset'配置的初始位点。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。