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

Flink CDC中数据库cdc任务启动后第二天数据库里新建的表 没有读到数据,怎么办?

Flink CDC中数据库有表按天分区,cdc任务启动后,第二天数据库里新建的表 没有读到数据,怎么解决?是正则写的有问题吗?^db.tableName\d{4}\d{2}_\d{2}$

展开
收起
小易01 2023-07-26 08:25:00 101 0
3 条回答
写回答
取消 提交回答
  • 在 Flink CDC 中,如果你的数据库表按天分区,并且希望 CDC 任务能够读取到新创建的表数据,确保你的正则表达式模式与新表的命名规则匹配是至关重要的。

    根据你提供的正则表达式 ^db.tableName\d{4}\d{2}_\d{2}$,它应该匹配类似于 db.tableName202201_01 的表名。但需要确保以下几点:

    1. 表名是否符合正则表达式:请确认新创建的表名是否符合你所定义的正则表达式模式。可以尝试手动验证这些表名是否与正则表达式相匹配。

    2. CDC 配置中是否正确配置了表名正则表达式:在 Flink CDC 的配置文件中,确保将正则表达式正确应用到了 tableList 参数。例如:

      cdc.source.table-list = db.tableName\d{4}\d{2}_\d{2}
      
    3. 重新启动 CDC 任务:如果你已经更改了正则表达式或者增加了新表,并且确认配置正确无误,尝试重新启动 CDC 任务。这样会重新扫描并匹配符合正则表达式的表,并开始捕获数据变更。

    如果以上步骤仍然没有解决问题,可以考虑进行以下调试和排查:

    • 检查 CDC 日志以查看是否有任何与新表相关的错误或警告信息。
    • 验证数据库表的分区策略和命名规则是否与 Flink CDC 的正则表达式匹配。

    确保以上步骤中的正则表达式、配置和命名规则都正确无误,CDC 任务应该可以正确捕获新创建的按天分区的表的数据变更。

    2023-07-31 22:36:23
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    如果在 Flink CDC 中启动了数据库 CDC 任务后,第二天数据库中新建的表没有读到数据,可能出现了以下几种情况:
    数据库连接断开:如果数据库连接断开,Flink CDC 将无法从数据库中读取数据,导致数据丢失。检查数据库连接是否正常,并确保连接不会断开。
    快照抽取未开启:如果您使用的是快照抽取模式,可能是因为快照抽取未能正确地识别新建的表。在快照抽取模式下,Flink CDC 会从数据库中抽取所有表的初始快照,但是如果在快照抽取完成之后新建了表,Flink CDC 将无法读取新建表的数据。检查是否开启了快照抽取,并确保快照抽取完成后不再新建表。
    数据延迟:如果您使用的是增量抽取模式,

    2023-07-29 13:55:22
    赞同 展开评论 打赏
  • 存在即是合理

    可能是由于 Flink CDC 任务的配置不正确导致的。在正则表达式中,\d{4}\d{2}
    表示匹配四位数字和两位数字,但是这个格式并不适用于日期分区表的命名方式。通常情况下,日期分区表的命名方式是 yyyyMMdd,其中 yyyy
    表示年份,MM 表示月份,dd 表示日期。可以尝试将正则表达式更改为:

    ^db\.tableName\d{8}_\d{4}$
    

    这将匹配以 db.tableName 开头,后跟八位数字和四位数字的字符串。如果表名中包含下划线或其他特殊字符,请确保在正则表达式中进行适当的转义。

    2023-07-27 16:03:44
    赞同 展开评论 打赏

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

相关产品

  • 实时计算 Flink版
  • 相关电子书

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