具体问题
目前有一张表,其中有一个入库时间字段默认值为当前时间,业务数据需要实时插入和更新,针对已有的数据,更新时不需要更新入库时间。
现场使用api接口stream_load工具导入数据时指定了除入库时间以外的字段,且开启了mow ,但数据更新时任然更新了入库时间字段,
具体数据及表结构内容无法拍照
1.表结构关键结构如下
2.kettle方案及关键节点配置
目前有一张表,其中有一个入库时间字段默认值为当前时间,业务数据需要实时插入和更新,针对已有的数据,更新时不需要更新入库时间。
现场使用api接口stream_load工具导入数据时指定了除入库时间以外的字段,且开启了mow ,但数据更新时任然更新了入库时间字段,
具体数据及表结构内容无法拍照
1.表结构关键结构如下
2.kettle方案及关键节点配置
【问题状态】处理中
【问题处理】通过stream load文件可以实现部分列更新,并且如果不指定入库时间字段是不会更新的,确认以下几个问题:
验证步骤如下:
一、 insert into方式
CREATE TABLE `test_update` (
`id` int(11) NULL,
`date_time` datetime(6) NULL COMMENT 'insert时间',
`cruise_id` int(11) NULL,
`dt` datetime(6) not NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=OLAP
unique KEY(`id`, `date_time`)
COMMENT '车辆子任务'
DISTRIBUTED BY HASH(`id`) BUCKETS AUTO
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
SELECT * FROM test_update
set enable_unique_key_partial_update=true
INSERT INTO test_update (id, date_time, cruise_id) VALUES(2189990, '2024-07-06 11:17:33', 222);
INSERT INTO test_update (id, date_time, cruise_id) VALUES(2189990, '2024-07-06 11:17:33', 333);
set enable_insert_strict=false
二、stream Load 方式
数据文件:
2189990,2024-07-06 11:17:33, 333
curl --location-trusted -u root -T test_part.csv -H "format:csv" -H "columns:id,date_time,cruise_id" -H "column_separator:," -H "label:112123" -H "partial_columns:true" http://10.16.10.6:6010/api/demo/test_update/_stream_load