flink CDC 当第一次全量正常输出后,源表中数据任何变更就无法再被捕获到了,为什么?

flink CDC 同步高可用mysql8.0库中表数据时,当第一次全量正常输出后,源表中数据任何变更就无法再被捕获到了,日志中好像也没什么报错信息,请问大概是什么原因呢? 图片.png

展开
收起
wenti 2023-02-13 14:19:13 314 分享 版权
1 条回答
写回答
取消 提交回答
  • Flink CDC 第一次全量输出后无法再捕获源表数据变更的原因可能是:

    开启了 checkpoint 事务机制:在默认情况下,Flink CDC 会开启 checkpoint 事务机制,这意味着它只会在 checkpoint 完成后提交偏移量。如果源表在 checkpoint 之间发生了变更,这些变更将不会被捕获。

    偏移量提交失败:如果 Flink CDC 在提交偏移量时遇到错误,它将停止捕获数据变更。检查 Flink CDC 的日志以获取有关错误的更多信息。

    源表架构变更:如果源表在 Flink CDC 启动后发生了架构变更,Flink CDC 可能无法再捕获数据变更。这是因为 Flink CDC 依赖于源表的架构信息来解析变更数据。

    并行度不匹配:Flink CDC 的并行度必须与源表的并行度匹配。如果并行度不匹配,Flink CDC 可能无法捕获所有数据变更。

    数据类型不兼容:Flink CDC 要求源表的列数据类型与 Flink 表的数据类型兼容。如果数据类型不兼容,Flink CDC 可能无法正确解析变更数据。

    建议:

    禁用 checkpoint 事务机制,以便 Flink CDC 在每次读取数据时立即提交偏移量。
    检查 Flink CDC 的日志以获取有关偏移量提交错误的更多信息。
    确保源表在 Flink CDC 启动后没有发生架构变更。
    确保 Flink CDC 的并行度与源表的并行度匹配。
    检查源表列的数据类型是否与 Flink 表的数据类型兼容。
    如果您尝试了以上建议但问题仍然存在,请联系华为云技术支持。

    2024-02-23 15:08:29
    赞同 展开评论

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

收录在圈子:
实时计算 Flink 版(Alibaba Cloud Realtime Compute for Apache Flink,Powered by Ververica)是阿里云基于 Apache Flink 构建的企业级、高性能实时大数据处理系统,由 Apache Flink 创始团队官方出品,拥有全球统一商业化品牌,完全兼容开源 Flink API,提供丰富的企业级增值功能。
还有其他疑问?
咨询AI助理