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

flinkcdc同步的时候有什么策略可以设置跳过哪些报错吗?假如报唯一性的错 这种就想让他过?

flinkcdc同步的时候有什么策略可以设置跳过哪些报错吗?假如报唯一性的错 这种就想让他过?

展开
收起
真的很搞笑 2023-11-22 08:14:59 87 0
3 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。
    1. 设置CDC源中的参数“max.error.records”:在配置文件中,您可以在CDC源参数中设置最大错误记录数。这样,当达到最大数量的错误记录后,该源将继续运行而不终止。
    2. 使用乐观复制模式:在CDC源中,您可以使用乐观复制模式来忽略重复的记录。
    3. 自定义Sink函数:您也可以创建一个自定义Sink函数,以处理重复的记录。这可以避免终止流处理作业。
    4. 您还可以尝试忽略所有错误记录,但这可能会导致数据丢失,需要谨慎处理。
    2023-11-29 14:23:36
    赞同 展开评论 打赏
  • 报错需要拍错,是有问题的,应该是下游引起的。此回答整理自钉群“Flink CDC 社区”

    2023-11-22 11:43:13
    赞同 展开评论 打赏
  • 是的,Flink CDC提供了一些策略来处理同步过程中的错误。你可以在Flink SQL中设置semantic_only参数为true,这样当遇到某些特定类型的错误时(例如唯一性约束冲突),Flink CDC只会记录这些错误,但不会停止同步。

    以下是一个示例:

    CREATE TABLE my_table (
      id INT,
      name STRING,
      PRIMARY KEY (id) NOT ENFORCED
    ) WITH ('connector' = 'kafka',
    'topic' = 'my_topic',
    'properties.bootstrap.servers' = 'localhost:9092',
    'scan.startup.mode' = 'latest-offset',
    'semantic_only' = 'true');
    

    在这个示例中,我们创建了一个名为my_table的表,并使用Kafka connector从my_topic主题中读取数据。我们还设置了semantic_only参数为true,这样当遇到唯一性约束冲突等错误时,Flink CDC只会记录这些错误,但不会停止同步。

    2023-11-22 08:55:14
    赞同 展开评论 打赏

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

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载