升级后 Routine Load 异常问题

【版本信息】

  • 升级前:2.0.8
  • 升级后:2.2.10

【遇到的问题】

  1. 创建 routine 任务后,定义了 strip_outer_array="true"

  2. 当传入的是普通 JSON 数据的时候,例如 {col1:'xxx',col2:'xxx'} ,数据不会正常同步,并且会导致后面即使传入了正确的数组类型数据 [{col1:'xxx',col2:'xxx'},{col1:'xxx',col2:'xxx'}] 也没法正常同步,只能删除这个任务重建。

  3. 在之前的 2.0.8 版本的时候并不会出现这个问题,即使传入了错误数据也可以跳过,不影响正确数据的同步。

【任务配置】

CREATE ROUTINE LOAD db01.job_01 ON t1
COLUMNS (col1,col2,col3)
PROPERTIES
(
    "desired_concurrent_number"="1",
    "max_error_number"="500000",
    "max_batch_interval" = "5",
    "max_batch_size" = "104857600",
    "strict_mode" = "false",
    "format" = "json",
    "strip_outer_array" = "true"
)
FROM KAFKA
(
    "kafka_broker_list"= "xxx:9092",
    "kafka_topic" = "mytopic",
    "property.client.id" = "consumer01",
    "property.group.id" = "starrocks",
    "property.kafka_default_offsets" = "OFFSET_END"
);

【报错日志】

  • BE 报错日志
W0203 17:42:32.754791 293204 file_scan_node.cpp:300] FileScanner[0] process failed. status=the value should be array type with strip_outer_array=true, value: {"col1":"2023-02-03 11:58:53","col2":"28","col3
W0203 17:42:32.754904 140631 plan_fragment_executor.cpp:188] Fail to open fragment, instance_id=f04bd65c-8f37-4fe7-903b-d11b56236b04, status=Data quality error: the value should be array type with strip_outer_array=true, value: {"col1":"2023-02-03 11:58:53","col2":"28","col3

新版本重写了json parser,错误检查会更清楚且严格。
2.0版本的行为,可能会导致数据解析失败,但用户忽略。
请问,是什么场景导致源端会有两种格式的数据呢?

我是在测试环境mock数据测试的,发现一条数据错了,会导致后面所有数据堆积无法消费,这种有没有参数可以控制呢?

目前没有太好的办法去绕过这个问题。
因为数据解析错误是用户需要感知的,目前可以绕过的是数据转换错误。
如果确有相关需求,我们可以讨论下。