Doris数据表模型

本文详细介绍了Doris的三种数据模型:Aggregate(聚合模型)、Unique(唯一模型)和Duplicate(明细模型)。聚合模型适用于预聚合,减少查询时的数据扫描和计算量,适合报表查询;唯一模型提供主键唯一性约束,但无法利用预聚合查询优势;明细模型则适合任意维度查询,可以发挥列存优势,保存所有明细数据。
摘要由CSDN通过智能技术生成

3.3 数据表模型

Doris 的数据模型主要分为3类:
• Aggregate 聚合模型
• Unique 唯一模型
• Duplicate 明细模型

# 3.3.1 Aggregate 模型

是相同key的数据进行自动聚合的表模型。表中的列按照是否设置了 AggregationType,分为 Key(维度列)和 Value(指标列),没有设置 AggregationType 的称为 Key,设置了 AggregationType 的称为 Value。当我们导入数据时,对于 Key 列相同的行会聚合成一行,而 Value 列会按照设置的AggregationType 进行聚合。AggregationType 目前有以下四种聚合方式:
• SUM:求和,多行的 Value 进行累加。
• REPLACE:替代,下一批数据中的 Value 会替换之前导入过的行中的 Value。
• REPLACE_IF_NOT_NULL :当遇到 null 值则不更新。
• MAX:保留最大值。
• MIN:保留最小值。

SQL

Select
    user_id,data,city,age,gender,
    max(visit_data) as last_visit_data,
    sum(cost) as cost,
    max(dwell_time) as max_dwell_time,
    min(dwell_time) as min_dwell_time
From  

Group by user_id,data,city,age,gender – 对应的是聚合模型型key
聚合模型

点击图片可查看完整电子表格
sql示例:
SQL
– 这是一个用户消费和行为记录的数据表
CREATE TABLE IF NOT EXISTS test.ex_user
(
user_id LARGEINT NOT NULL COMMENT “用户 id”,
date DATE NOT NULL COMMENT “数据灌入日期时间”,
city VARCHAR(20) COMMENT “用户所在城市”,
age SMALLINT COMMENT “用户年龄”,
sex TINYINT COMMENT “用户性别”,

last_visit_date DATETIME REPLACE DEFAULT “1970-01-01 00:00:00” COMMENT “用户最后一次访问时间”,
cost BIGINT SUM DEFAULT “0” COMMENT “用户总消费”,
max_dwell_time INT MAX DEFAULT “0” COMMENT “用户最大停留时间”,
min_dwell_time INT MIN DEFAULT “99999” COMMENT “用户最小停留时间”
)
ENGINE=olap
AGGREGATE KEY(user_id, date, city, age, sex)
– 分区
– 分桶
DISTRIBUTED BY HASH(user_id) BUCKETS 1;
向表中插入部分数据
SQL

insert into test.ex_user values\
(10000,'2017-10-01','北京',20,0,'2017-10-01 06:00:00',20,10,10),\
(10000,'2017-10-01','北京',20,0,'2017-10-01 07:00:00',15,2,2),\
(10001,'2017-10-01','北京',30,1,'2017-10-01 17:05:45',2,22,22),\
(10002,'2017-10-02','上海',20,1,'2017-10-02 12:59:12',200,5,5),\
(10003,'2017-10-02','广州',32,0,'2017-10-02 11:20:00',30,11,11),\
(10004,'2017-10-01','深圳',35,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值