Doris 的数据模型主要分为 3 类:Aggregate、Uniq、Duplicate
Aggregate: Doris 数据模型-Aggregate 模型
Uniq:Doris 数据模型-Uniq 模型
Duplicate:Doris 数据模型-Duplicate 模型
在某些多维分析场景下,用户更关注的是如何保证 Key 的唯一性,即如何获得 Primary Key 唯一性约束。因此,我们引入了 Uniq 的数据模型。该模型本质上是聚合模型的一个特例,也是一种简化的表结构表示方式。
1)建表
CREATE TABLE IF NOT EXISTS test_db.user
(
`user_id` LARGEINT NOT NULL COMMENT "用户 id",
`username` VARCHAR(50) NOT NULL COMMENT "用户昵称",
`city` VARCHAR(20) COMMENT "用户所在城市",
`age` SMALLINT COMMENT "用户年龄",
`sex` TINYINT COMMENT "用户性别",
`phone` LARGEINT COMMENT "用户电话",
`address` VARCHAR(500) COMMENT "用户地址",
`register_time` DATETIME COMMENT "用户注册时间"
) UNIQUE KEY(`user_id`, `username`)
DISTRIBUTED BY HASH(`user_id`) BUCKETS 10
PROPERTIES
(
"replication_num" = "1" -- 指定一个副本(默认三个)
);
2)插入数据
insert into test_db.user
values (10000, 'wuyanzu', ' 北 京 ', 18, 0, 12345678910, ' 北 京 朝 阳 区 ', '2017-10-01 07:00:00'),
(10000, 'wuyanzu', ' 北 京 ', 16, 0, 12345678910, ' 北 京 朝 阳 区 ', '2017-10-01 07:00:00'),
(10000, 'zhangsan', '北京', 20, 0, 12345678910, '北京海淀区', '2017-11-15 06:10:20');
3)查询表
select * from test_db.user;
Uniq 模型完全可以用聚合模型中的 REPLACE 方式替代。其内部的实现方式和数据存储方式也完全一样