Routine Job 消费 kafka 数据失败

【starrocks 集群信息】

版本:1.19.5
节点:3 个 FE,3 个 BE

【背景】

创建了 routinue job 后,指定了 kafka 的分区和 offeset 点。创建成功后正常运行,但是 kafka 那边的数据一致在堆积,没有被消费,查看 progress 发现 offset 点没有变化!

【日志信息】

kafka 消费记录:


routine 运行状态:

image

【疑问】

1、为什么 routine job 创建成功,但是无法消费?
2、如何去定位问题(哪些日志可以查看)?
3、遇到这种问题,怎么去快速解决呢?

be的配置: max_consumer_num_per_group设置的多大。kafka中只有一个分区么?routine load 任务desired_concurrent_number这个参数设置的多大。图中有进行消费数据,只是消费延迟。topic怎么是空呀,可以发一下脱敏的任务创建完整语句。

1、max_consumer_num_per_group 使用的默认值
2、desired_concurrent_number = 3

创建的语句(表名、列名、topic名都脱敏了):

CREATE ROUTINE LOAD db.mytable ON mytable
COLUMNS (...)
PROPERTIES
(
    "desired_concurrent_number"="3",
    "max_error_number"="100000",
    "max_batch_interval" = "5",
    "max_batch_size" = "104857600",
    "strict_mode" = "false",
    "format" = "json",
    "jsonpaths" = "...",
    "strip_outer_array" = "true"
)
FROM KAFKA
(
    "kafka_broker_list"= "kafka-node:9092",
    "kafka_topic" = "mytopic",
    "kafka_partitions" = "0",
    "kafka_offsets" = "804248",
    "property.client.id" = "client01",
    "property.group.id" = "starrocks"
);

任务创建没有问题。当前kafka一共几个分区?一个分区调整到三个分区可以增大消费能力。

我建了两个分区,创建了两个 routine job 去消费。那个 progress 还是不会变化,而且没有任何报错…

两个routine load的receivedBytesRate一直是0么?

是的!我发现表结构(目前主键模型)改成默认的明细模型就可以导入了,这是什么原因呢?

您是在导入数据过程中进行的schema change操作么?

不是的,我是直接把表删除后重建(貌似官方不支持在线 schema change 明细模型 => 主键模型),然后新建个消费任务从未消费的点开始进行。但是不用主键模型的话会有重复数据,所以能麻烦看看什么问题吗?升级 2.0 是否能解决呢?

找到原因了,是因为主键模型的 key 超出限制了,但是为什么 routine job 那里还是显示 RUNNING,而且没有报错信息,希望官方能跟进下这个问题 :handshake:

be 日志:
W0402 16:21:17.786199 13972 tablets_channel.cpp:312] Fail to close tablet writer, tablet_id=4602774 transaction_id=10628859 err=Cancelled: primary key size exceed the limit.

你的最大错误数太大了"max_error_number"=“100000”,你试着把这个参数改为10,估计启动就报错了