Flink CDC设置首尾匹配的正则 又会提示找不到相应的表 大佬们可以帮忙看下吗?

Flink CDC设置首尾匹配的正则 又会提示找不到相应的表 大佬们可以帮忙看下吗?image.png
image.png
tableName正则匹配似乎有点问题 文档上说是精准匹配的 实际上把其他的也匹配进来了image.png
image.png
如果要匹配class_student这张表的话 该如何去写呢 麻烦大佬指导下,class_student (可以匹配到 但是会把course_class_student这种无关表也匹配上)
^class_student$ 匹配不到
(^class_student$) 匹配不到
^(class_student)$ 匹配不到

展开
收起
真的很搞笑 2023-07-13 13:25:01 174 分享 版权
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在使用 Flink CDC 进行数据同步时,设置首尾匹配的正则表达式可以帮助过滤掉不需要同步的表或者以特定前缀或后缀命名的表,从而减少不必要的数据同步和网络传输。如果设置了首尾匹配的正则表达式,但是无法找到相应的表,可能有以下几个原因:

    正则表达式匹配不正确:如果设置的正则表达式不正确,可能无法匹配到需要同步的表。在设置正则表达式时,需要确保正则表达式的语法正确,并且能够匹配到需要同步的表。

    数据源中不存在匹配的表:如果数据源中不存在匹配正则表达式的表,那么 Flink CDC 就无法同步这些表的数据。这种情况下,可以检查数据源中是否存在匹配正则表达式的表,或者调整正则表达式的匹配规则。

    Flink CDC 配置不正确:如果 Flink CDC 的配置不正确,也可能导致无法找到相应的表。在使用 Flink CDC 进行数据同步时,需要确保 Flink CDC 的配置正确,并且能够连接到数据源。

    2023-07-29 22:39:15
    赞同 展开评论
  • 根据您提供的信息,如果在 Flink CDC 中设置了首尾匹配的正则表达式,并且遇到了找不到相应的表的问题,可能有以下几个原因:

    1. 正则表达式写法问题:根据您提供的示例,您尝试使用了 ^class_student$(^class_student$) 和 ^(class_student)$ 这些正则表达式。但是注意,在 Flink CDC 中,正则表达式需要使用 Java 的语法来编写。正确的写法应该是 .*class_student.*

    2. 表名大小写敏感性:请确保在正则表达式中考虑到表名的大小写敏感性,以确保匹配到正确的表。如果表名是区分大小写的,例如 "Class_Student" 和 "class_student" 是不同的表名,那么正则表达式也需要相应地进行匹配。

    3. 数据库配置和连接问题:请检查 Flink CDC 的数据库配置是否正确,包括数据库主机、端口、用户名、密码等。还要确保 Flink CDC 可以成功连接到数据库,并具有足够的权限来访问相关的表。

    4. 版本兼容性问题:Flink CDC 的不同版本可能对正则表达式的支持和解析方式有所不同。如果可能,您可以尝试升级 Flink CDC 或 Debezium(作为 Flink CDC 底层使用的库)的版本,看看是否可以解决该问题。

    另外,您可以尝试使用 filter 运算符对 CDC 数据进行过滤,以确保只处理您需要的表。例如,使用如下语句来过滤表名为 "class_student" 的数据:

    CREATE TABLE filtered_table (
        -- 定义字段和类型
    ) WITH (
        'connector' = '...',
        'properties.group.id' = '...',
        ...
    ) AS SELECT * FROM source_table WHERE table_name LIKE '%class_student%';
    

    最后,如果上述解决方法仍无法解决问题,您可以考虑向 Flink CDC 社区报告此问题,提供详细的错误日志、配置信息和版本信息,以便他们能够帮助您更好地解决这个问题。

    2023-07-29 21:38:39
    赞同 展开评论
  • 你这没按文档规则写呀,现在的解决方案就是filter过滤匹配一下image.png
    我不太确定是不是升级debezium版本产生的差异,要不开个issue 追踪下?后面会写一些test 复现下。,此回答整理自钉群“Flink CDC 社区”

    2023-07-13 16:08:47
    赞同 展开评论

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

还有其他疑问?
咨询AI助理