开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

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

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

展开
收起
wenti 2023-02-13 14:19:13 265 0
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版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载