Flink 并发或短时间频繁修改 Doris 同一张表, 报错: There is an update operation in progress for the current table.

  • Post author:
  • Post category:其他

2022/12/06 菜鸟记录.

场景1: Flink任务1: 监听Kafka TopicA 修改表1某条数据的a字段. 

           Flink任务2: 监听Kafka TopicB 修改表1某条数据的b字段. 

           当后端人员同时向TopicA和TopicB发送数据, 两个任务对 Doris 的 update 并发执行, 发生报错.

场景2: Flink 自定义 Sink, 用 jdbc 方式连接 Doris, 流式进行 update, 并行度为2. 发生报错.

报错: java.sql.SQLException: errCode = 2, detailMessage = There is an update operation in progress for the current table. Please try again later, or set enable_concurrent_update in fe.conf to true.

背景: Flink版本 1.14.4

         Doris版本 1.1.0

原因: 默认情况下, Doris 不允许同一时间对同一张表并发进行多个 update 操作. 场景1, 2都是对 Doris 的并发修改, 场景2用 Flink 流式修改速度过快, 上一次 update 没完成, 下一次 update 已经发送.

解决: 修改 FE 配置文件 fe.conf, 添加 enable_concurrent_update = true. 将 Doris 的并发 update 打开.

场景2也可以不改配置, 将 Sink 的并行度设置为1. 并在每次 update 之后 sleep 一下.


版权声明:本文为qq_43554613原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。