各位大佬,Flink CDC中动态加表是不是要在全量模式的checkpoint下才能加啊?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在 Flink CDC 中动态添加表不需要全量模式的检查点(checkpoint),默认情况下,Flink CDC 是基于增量的检查点工作的。
具体来说: - Flink CDC 默认执行增量检查点,记录状态变更。 - 当动态添加表时,Flink CDC 会自动从 MySQL binlog 中找到该表最新的位点,并从该位点开始消费数据。 - 因此,即使之前没有进行全量检查点,Flink CDC 也能正确处理新添加的表。
Flink CDC 会检查该表的 binlog 日志,并从最新位点开始提取(ingest)数据。因此,总的来说: - Flink CDC 的默认检查点模式是增量检查点。 - 在动态添加表时,Flink CDC 可以根据 binlog 定位最新位点,并从该位点开始消费该表的数据。 - 不需要额外的全量检查点就可以处理新添加的表。
因此,在作业启动后,只要有新的 binlog 事件产生,就可以动态添加表,而无需进行全量检查点。
然而,如果您希望在动态添加表后保持准确一致性,则可以执行以下步骤: 1. 执行一个全量检查点,记录当前所有表的状态。 2. 然后再添加新的表,并基于该全量检查点继续运行作业。
这样可以确保在动态添加表后保持精确一致
link CDC中动态添加表,不需要全量检查点就可以工作。
具体来说:
Flink CDC默认只做增量 checkpoints,记录状态变更。
动态添加表时,Flink CDC 会自动从 MySQL binlog 中找出该表最新的位点,基于此位点开始消费。
所以,就算之前没有做全量检查点,也能正确处理新添加的表。
Flink CDC会检查该表的binlog日志,基于最新位点开始 ingest 数据。
所以,总的来说:
Flink CDC的默认检查点模式是增量检查点
动态添加表时,Flink CDC会自动根据binlog定位最新位点
然后基于此位点开始消费该表的数据
不需要额外的全量检查点也能处理新添加的表
因此,在作业启动后,只要有新 binlog 事件产生,就可以动态添加表,无需全量检查点。
如果需要动态添加表并且保证精确一致,则需要:
做一个全量检查点,记录当前所有表的状态
然后再添加新表,基于该全量检查点继续运行
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。