作用
doris的unique模型保证主键唯一。但是在数据加载的时候,无法保证同一个key的数据是哪条替换那条,也就是说无法确定同一个Key的数据是哪一条入表。
为了解决这个问题,doris支持在建表的时候指定序列列,同一个Key的数据,会根据序列列的值,序列列较大的是的数据会替换掉较小的值的数据。
限制
序列列sequence目前只支持unique模型。
使用
可以在建表语句中指定
properties(
"function_column.sequence_type"="int" -- 指定序列列类型.只能整数型或者日期/时间类型(date,datetime)
);
或者
properties(
"function_column.sequence_col"="col列" -- 指定序列列是哪一列,只能整数型或者日期/时间类型(date,datetime)
);
也可以在建表后修改表结构
alter table doris_ts.incr_tb4 enable feature "sequence_load" with properties(
"function_column.sequence_type"="Date" -- 只能整数型或者日期/时间类型(date,datetime)
)
查看表是否开启序列列
SET show_hidden_columns=true;
desc dbname.tablename;
例子
-- 序列列
create table if not exists doris_ts.sequence_tb(
user_id bigint,
date date,
group_id bigint,
modify_date date,
keyword VARCHAR(128)
)engine=olap
unique key (user_id,date,group_id)
comment "XXX"
distributed by hash(user_id) buckets 10
properties(
"replication_num"="1",
"function_column.sequence_type"="int" -- 指定序列列类型
);
desc doris_ts.sequence_tb;