数据模型概览
建表时,您需要指定数据模型 (Data Model),这样数据导入至数据模型时,StarRocks 会按照排序键对数据进行排序、处理和存储。本文介绍 StarRocks 支持的各种数据模型,满足您在不同业务场景下的需求。
基本概念
数据模型
StarRocks 支持四种数据模型,分别是明细模型 (Duplicate Key Model)、聚合模型 (Aggregate Key Model)、更新模型 (Unique Key Model) 和主键模型 (Primary Key Model)。这四种数据模型能够支持多种数据分析场景,例如日志分析、数据汇总分析、实时分析等。
排序键
数据导入至 使用某个数据模型的表,会按照建表时指定的一列或多列排序后存储,这部分用于排序的列就称为排序键。排序键通常为查询时过滤条件频繁使用的一个或者多个列,用以加速查询。
明细模型中,数据按照排序键 DUPLICATE KEY
排序,并且排序键不需要满足唯一性约束。
聚合模型中,数据按照排序键 AGGREGATE KEY
聚合后排序,并且排序键需要满足唯一性约束。
更新模型中,数据按照排序键 UNIQUE KEY
REPLACE 后排序,并且排序键需要满足唯一性约束。
主键模型支持分别定义主键和排序键,主键 PRIMARY KEY
需要满足唯一性和非空约束,主键相同的数据进行 REPLACE。排序键是用于排序,由 ORDER BY
指定 。
说明
- 3.0 版本之前,主键模型不支持分别定义主键和排序键。
- 排序键的更多说明,请参见排序键和前缀索引。
注意事项
-
建表后,表类型不支持修改(比如不能将已有的明细表修改为主键表)。如果需要修改表类型,请重新建表。
-
在建表语句中,排序键必须定义在其他列之前。
-
在创建表时,您可以将一个或多个列定义为排序键。排序键在建表语句中的出现次序,为数据存储时多重排序的次序。
-
不支持排序键的数据类型为 BITMAP、HLL。
-
前缀索引的长度限制为 36 字节。如果排序键中全部列的值的长度加起来超过 36 字节,则前缀索引仅会保存限制范围内排序键的若干前缀列。