Flink CDC 通过savepoint动态加表, mysql-doris,flink任务通过savepoint重新启动了, 但是新加的表没有写入到doris , 这个大概是什么原因昂?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的情况,Flink CDC任务通过savepoint重新启动后,新增加的表没有写入到Doris中。以下是可能的原因及解决方案:
在Flink CDC中,动态添加表需要确保以下配置已正确设置: - scan.newly-added-table.enabled
:此参数需要设置为true
,以允许Flink CDC动态扫描新增的表。 - tables
配置更新:在作业配置中,tables
字段需要包含新增的表名或正则表达式匹配规则。如果未更新tables
配置,新增表不会被识别。
scan.newly-added-table.enabled
参数,并将其设置为true
。tables
字段是否已更新为包含新增表的正则表达式(如holo_test.*
)或明确列出新增表名。Flink CDC通过savepoint恢复时,仅会恢复savepoint中记录的状态。如果新增表在savepoint生成时并不存在,则savepoint中不会包含这些表的状态信息,导致新增表无法被消费。
Flink CDC任务将数据写入Doris时,需要确保下游Doris中已正确创建对应的表结构。如果新增表在Doris中未创建,数据将无法写入。
Flink CDC任务从savepoint恢复时,默认会从savepoint中记录的Binlog位点开始消费。如果新增表的Binlog位点早于savepoint记录的位点,则可能导致新增表的数据未被消费。
根据上述分析,您可以按照以下步骤逐步排查问题: 1. 确认scan.newly-added-table.enabled
和tables
配置是否正确。 2. 检查Doris中是否已为新增表创建了对应的表结构。 3. 确认新增表的Binlog位点是否在savepoint记录的位点之后。 4. 查看Flink TaskManager日志,定位可能的异常信息。
如果问题仍未解决,建议提供以下信息以便进一步分析: - Flink作业的完整配置文件。 - Flink TaskManager日志中的异常信息。 - 新增表的DDL定义及Doris中的表结构。
希望以上内容能帮助您快速定位并解决问题!您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。