了解Doris的朋友都知道,Doris是一个MPP的分析型数据库。可以支持大数据下的实时分析。
说到数据分析,不得不提的是Doris的数据模型。
目前Doris支持三种数据模型,分别是:
相同的key情况下,value列会进行聚合操作。
目前Doris支持的聚合类型只有四种:
replace:使用最新的数据覆盖历史数据
sum:把最新的结果和历史结果进行累计求和
max:把最新结果和历史数据进行求最大值操作
min:把最新结果和历史数据进行求最小值操作
适合固定报表类场景。
保证key列的唯一性。也就是说,相同的数据会进行replace操作。
适用对数据有唯一性要求的场景。
不会对数据做任何操作,也就是原始数据存储。
方便灵活,支持ad-hoc即席查询。
create table t1(
id int,
name string replace,
age int replace,
address string replace
)
aggregate key(id)
distributed by hash (id) buckets 1
properties("replication_num"="1");
insert into t1 values(1,'zhangsan',20,'深圳');
insert into t1 values(2,'zhangsan',21,'广州');
insert into t1 values(3,'zhangsan',22,'上海');
insert into t1 values(4,'zhangsan',23,'北京');
update t1 set name = 'lisi' where id = 4;
delete from t1 where id = 4;
select * from t1;
Aggregate Model支持数据的增、删、查,不支持修改
。
create table t2(
id int,
name string ,
age int,
address string
)
unique key(id)
distributed by hash (id) buckets 1
properties("replication_num"="1");
insert into t2 values(1,'zhangsan',20,'深圳');
insert into t2 values(2,'zhangsan',21,'广州');
insert into t2 values(3,'zhangsan',22,'上海');
insert into t2 values(4,'zhangsan',23,'北京');
update t2 set name = 'lisi' where id = 4;
delete from t2 where id = 3;
select * from t2;
Uniq Model支持数据的增、删、改、查操作
。
create table t3(
id int,
name string,
age int ,
address string
)
duplicate key(id)
distributed by hash (id) buckets 1
properties("replication_num"="1");
insert into t3 values(1,'zhangsan',20,'深圳');
insert into t3 values(2,'zhangsan',21,'广州');
insert into t3 values(3,'zhangsan',22,'上海');
insert into t3 values(4,'zhangsan',23,'北京');
update t3 set name = 'lisi' where id = 4;
delete from t3 where id = 3;
select * from t3;
Duplicate Model支持数据的增、删、查操作,不支持修改
。
Doris的不同模型,对数据的增、删、改、查支持不同。
只有Uniq Model模型才全部支持,其他两种模型不支持数据的修改操作,仅支持数据的增、删、查操作。