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

我这边遇到个Flink CDC问题新增的分表采集不到数据,版本是2.4.0,有没有大佬了解是个啥原因

我这边遇到个Flink CDC问题,就是table-name给的正则表达式,数据库有按日期分表,新增的分表采集不到数据,版本是2.4.0,有没有大佬了解是个啥原因?重启下是有了,但是有两个问题,第一个,每天要重启这个有点麻烦了,第二个,现在周末两天的那两张分表数据我得手动用批量导入工具补数据。。

展开
收起
cuicuicuic 2023-07-31 14:09:39 108 0
2 条回答
写回答
取消 提交回答
  • 对于 Flink CDC 中表名称采用正则表达式的情况,在某些特定场景下可能会遇到新增分表数据无法被采集的问题。这是由于 Flink CDC 在启动时只会获取匹配正则表达式的已存在的表,而不会动态检测并添加新的分表。

    为了解决这个问题,你可以尝试以下两种方法:

    1. 配置动态表发现(Dynamic Table Discovery):从 Flink 1.13 版本开始,CDC 支持动态表发现功能。你可以在 Flink SQL 的 DDL 语句中使用 LIKE 来表达正则表达式,并配置 table-name-patterns 参数来启用动态表发现。例如:

      CREATE TABLE my_table (
        ...
      ) WITH (
        'connector' = '...',
        'format' = '...',
        ...
      )
      OPTIONS (
        'scan.startup.mode' = 'latest-offset',
        'table-name-patterns' = 'my_table_[0-9]{8}' -- 此处使用正则表达式
      );
      

      这样配置后,Flink CDC 将根据指定的正则表达式自动发现和采集匹配的分表数据。

    2. 自定义逻辑处理新增分表:如果你使用的是较早版本的 Flink CDC 或者动态表发现功能无法满足需求,你可以考虑编写自定义逻辑来处理新增分表。通过监控数据库的元数据变更,例如使用数据库触发器或其他方式,当有新的分表创建时,自动向 Flink CDC 注册并添加相应的表名。

    需要注意的是,以上两种方法都需要在 Flink CDC 中进行一定的配置和代码编写。你可以根据具体情况选择适合你的解决方案。

    关于手动补充周末两天的分表数据的问题,可以考虑使用批量导入工具或者自定义脚本来实现自动化的数据补充流程。通过定时任务或其他方式,在指定时间点运行数据补充脚本,将数据批量导入到相关分表中。

    2023-07-31 22:17:29
    赞同 展开评论 打赏
  • 重启下就有了,你应该是分区表?正则匹配新增的表吧,此回答整理自钉群“Flink CDC 社区”

    2023-07-31 14:13:18
    赞同 展开评论 打赏

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

相关产品

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

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