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

Flink CDC这个问题有没有哪位解决过呀,怎么屏蔽掉这个错误,不停止作业呀?

org.apache.flink.table.api.ValidationException: 'scan.incremental.snapshot.chunk.key-column' must be set when the table doesn't have primary keys。Flink CDC这个问题有没有哪位大佬解决过呀,怎么屏蔽掉这个错误,不停止作业呀?

展开
收起
真的很搞笑 2023-11-22 08:17:07 135 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    当 Flink CDC 需要同步没有主键的表时,会抛出此异常,因为它不知道该如何分割表数据。为了在增量快照期间分割表数据,Flink CDC 需要知道应该以哪种方式分割表,这就是为什么 Flink CDC 需要指定一个主键的原因。
    如果 Flink CDC 确实需要同步没有主键的表,并且您不想停止作业,则可以添加一个伪主键,并在创建 Table API 表时指定此伪主键。这样,您可以让 Flink CDC 使用此伪主键分割表,并同步此表的数据。您可以在 Table API 中指定此伪主键:

    tableEnv.executeSql("CREATE TABLE my_table (id BIGINT PRIMARY KEY NOT ENFORCED)");
    

    如果您只想同步有主键的表,并且不希望抛出此异常,则可以使用 Flink CDC 中提供的过滤器功能,在扫描表之前排除没有主键的表:

    tableEnv.executeSql("SELECT * FROM my_source WHERE id IS NOT NULL");
    

    此外,您也可以根据需要添加其他条件来过滤特定的行。请注意,这将阻止没有主键的表被同步到下游系统中。您需要确保下游系统不会因此出现问题,并且知道 Flink CDC 正在跳过某些表。
    当然,也可以采用另一种方式,在创建表时指定主键,并在同步完成后再次将其移除:

    tableEnv.executeSql("ALTER TABLE my_table DROP PRIMARY KEY");
    
    2023-11-29 14:04:02
    赞同 展开评论 打赏
  • 这个问题是由于在使用Flink CDC时,当表没有主键,而你又希望启用'scan.incremental.snapshot.enabled'选项时,会出现'scan.incremental.snapshot.chunk.key-column'必须设置的错误。这是因为在捕获和读取表的快照时,需要将无主键的表自动拆分为多个块,以便进行处理。

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

    1. 在Flink CDC的配置文件(如 conf/flink-conf.yaml)中添加以下参数设置:scan.incremental.snapshot.chunk.key-column: <column-names>,其中,<column-names>是您希望作为块键列的列名,可以是单个列或多个列,用逗号分隔。然后重新启动Flink CDC任务以使配置生效。

    2. 在创建表时指定主键。例如,如果你使用的是MySQL,可以在创建表语句中添加主键字段,如:CREATE TABLE mysql_binlog ( id INT NOT NULL, name STRING, description STRING, weight DECIMAL ( 10, 3 ), PRIMARY KEY(id) );

    2023-11-29 13:50:38
    赞同 展开评论 打赏
  • table 的with参数里面设置,此回答整理自钉群“Flink CDC 社区”

    2023-11-22 11:59:57
    赞同 展开评论 打赏

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

相关产品

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

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