Routine Load如何支持partial update

Viewed 9

CREATE TABLE test_user (
id INT,
name VARCHAR(255),
nick_name VARCHAR(255),
age INT
)
ENGINE = OLAP
UNIQUE KEY (id)
DISTRIBUTED BY HASH(id) BUCKETS 10
PROPERTIES (
"replication_num" = "1",
"enable_unique_key_merge_on_write" = "true"
);

CREATE ROUTINE LOAD test_user_routine_load ON test_user
COLUMNS(id, name, nick_name, age)
PROPERTIES
(
"format" = "json",
"max_batch_interval" = "10",
"max_batch_rows" = "200000",
"max_batch_size" = "104857600",
"strict_mode" = "false",
"max_error_number" = "1000",
"max_filter_ratio" = "0.1",
"timezone" = "UTC",
"partial_columns" = "true"
)
FROM KAFKA
(
"kafka_broker_list" = "172.30.180.22:29092",
"kafka_topic" = "test_user_topic",
"property.kafka_default_offsets" = "OFFSET_END",
"property.group.id" = "routine-load-consumer"
);

发送 json string {"id":1,"age":25} to kafka,其他列被置为 NULL.
也尝试将routine load定义里面的COLUMNS写为(id, age),结果一样。

另外,stream load也支持Flexible partial update,请问有计划在routine load中支持这种吗?不能支持的原因是什么呢?谢谢

2 Answers

这个routine load的部分列更新应该是支持的,你这个是什么版本的?

是3.1版本,按文档https://doris.apache.org/zh-CN/docs/3.x/data-operate/update/update-of-unique-model 中下面部分配置的
“可以使用以下导入方式进行部分列更新 StreamLoad/BrokerLoad/RoutineLoads ”