2.1cdc 设置initial 设置了2个并行度 ,正常读了全量后,增量读不到;设置一个并行度就没问题
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
问题描述: 用户在使用CDC(Change Data Capture)时,配置了initial并行度为2,发现全量数据能够正常读取,但切换到增量读取阶段后,无法读取到增量数据。而当将并行度设置为1时,全量与增量数据的读取均表现正常。
可能原因: - 并行度与Checkpoint不匹配:在全量读到增量读的切换过程中,如果使用多并发读取,需要等待至少一个Checkpoint以确保全量数据完全写入下游。这可能是由于Checkpoint间隔时间过长或并行度导致的同步点协调问题。 - 并发读取与Binlog同步冲突:多并发读取全量数据时,最后一个分片可能因数据量过大等原因未能及时完成,影响到增量数据读取的启动条件或状态确认。
解决步骤: 1. 检查Checkpoint配置:确认Checkpoint间隔时间是否合理,建议根据业务需求调整至一个较短的时间间隔,以减少从全量到增量切换的等待时间。
调整并行度策略:
监控与日志分析:
currentEmitEventTimeLag
指标和TM日志,确认全量数据读取的确完成,并且增量读取阶段已经开始尝试启动。优化作业配置:
parallelism
)和Checkpoint相关的设置。注意事项: - 数据一致性:在调整并行度和Checkpoint策略时,需确保不会影响到数据的一致性和完整性。 - 资源管理:高并行度虽然能加速处理,但也可能增加系统资源负担,需权衡利弊。
如果以上步骤不能解决问题,建议深入查看具体错误日志,并考虑咨询相关技术支持或查阅更详细的官方文档获取帮助。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。