Flink CDC中scanNewlyAddedTableEnabled 加个这个选项, 现有的同步job已经到了增量阶段,我在现有的同步job里面加了2张新表,然后重新从checkpoint启动, 为什么原来的表又开始从全量同步了啊? 有人遇到这个问题的吗?cdc2.4.0
scanNewlyAddedTableEnabled 是 Flink CDC 1.14.0 版本引入的一个新功能,用于控制是否扫描新增的表。该选项的默认值为 false,表示不扫描新增的表,只处理已经存在的表。如果将该选项设置为 true,则 Flink CDC 会周期性地扫描数据库中的新增表,并将其添加到 CDC 作业中进行处理。
如果您正在使用 Flink CDC 1.14.0 及以上版本,并且需要扫描新增的表,可以将 scanNewlyAddedTableEnabled 选项设置为 true。如果您正在使用旧版本的 Flink CDC,可以考虑升级到最新版本以获得该功能。需要注意的是,启用该选项可能会增加 CDC 作业的运行负载和消耗,因此需要根据实际情况进行评估和调整。
在 Flink CDC 中,可以通过在配置文件中添加以下参数来启用该选项:
Copy
scanNewlyAddedTableEnabled: true
如果您需要在代码中动态设置该选项,可以通过 FlinkCDCConsumerBuilder 类的 scanNewlyAddedTableEnabled 方法来实现,例如:
Copy
FlinkCDCConsumer consumer = FlinkCDCConsumerBuilder.newBuilder()
.scanNewlyAddedTableEnabled(true)
.build();
在 Flink CDC 中,scanNewlyAddedTableEnabled 是一个选项,用于控制是否扫描新添加的表。当您将新表添加到现有的同步作业中并从检查点启动时,可能会出现原来的表重新进行全量同步的情况。
出现这种情况的原因可能是由于以下情况之一:
1. 检查点生成时间:如果您在添加新表之前已经执行了检查点,并且重新启动时使用该检查点,那么 Flink CDC 将从该检查点开始处理数据。在这种情况下,新表将被视为尚未同步的表,因此会进行全量同步。
2. 作业配置更改:如果您在添加新表之后修改了 Flink CDC 的作业配置(例如更改 CDC Connector 的配置),那么这也可能导致重新进行全量同步。在这种情况下,Flink 可能无法识别新表的更改,并将其视为需要全量同步的表。
要解决这个问题,可以考虑以下几点:
1. 确保在添加新表之前执行检查点,以便在重新启动时从最近的检查点开始。
2. 检查 Flink CDC 的作业配置是否正确,确保没有意外的更改导致重新进行全量同步。
3. 考虑使用 scanNewlyAddedTableEnabled 选项,通过设置为 true
来启用新表的扫描。这样,当您添加新表时,Flink CDC 将自动检测并开始增量同步。
2.2吗?他应该是从检查点开始的,肯定有一些数据会是重复的,如果第二阶段已经处理的话。会不会是第一阶段检查点还没有生成,数据已经到了第二阶段,然后第一阶段程序挂了,这个检查点后面那条异常数据之前的数据就会重复执行,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。