Flink CDC初次用【flink run】从 oceanbase 全量同步数据到 doris,同步完成后,数据量小的表随着源表的增删改操作能正常同步,但是差不多2亿多条数据量的表在源表有变动的情况下,就没有任何变动。大家有见过这种情况么?
flink 版本: 1.17.0
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,Flink CDC 在初次全量同步完成后,小数据量的表能够正常进行增量同步,但大数据量(约 2 亿条记录)的表在源表发生变动时无法同步。以下是可能的原因分析及解决方案:
在 OceanBase 数据库中,增量同步依赖于源端数据库的增量日志(如 Redo Log 或 Binlog)。如果增量同步的起始位点未正确设置,可能导致大数据量表的增量数据无法被捕捉。
Flink CDC 在处理大数据量表时,可能会因为状态管理不当导致增量同步失败。
execution.checkpointing.interval: 60000 # 每 60 秒触发一次 Checkpoint
execution.checkpointing.timeout: 300000 # Checkpoint 超时时间为 5 分钟
OceanBase 数据库在处理大数据量表的增量日志时,可能会因为性能瓶颈导致增量数据无法及时生成或读取。
source.parallelism: 8 # 设置较低的并发数
Doris 数据库在接收大数据量表的增量数据时,可能会因为写入性能不足导致同步失败。
sink.parallelism: 16 # 设置较高的并发数
sink.rate-limit: 10000 # 每秒最多写入 10,000 行数据
如果源表在增量同步过程中发生了 DDL 操作(如新增列、删除列等),可能会导致同步任务中断。
ALTER TABLE ADD COLUMN
的所有选项。为了进一步定位问题,建议通过以下方式排查:
针对您描述的问题,建议从以下几个方面入手: 1. 检查增量同步位点是否正确配置。 2. 调整 Flink 的 Checkpoint 和并发配置,确保状态管理正常。 3. 优化源端和目标端的性能配置,避免性能瓶颈。 4. 确保 DDL 操作在 Flink CDC 的支持范围内。 5. 通过日志和监控工具进一步排查问题。
如果以上方法仍无法解决问题,建议联系阿里云技术支持团队,提供详细的日志和配置信息以协助排查。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。