数据划分
基本概念
Row&Column
一张表包含行(Row)和列(Column).
Column可以分为两大类:Key和Value.
Tablet & Partition
- 在Doris的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶).每个Tablet包含若干数据行.各个Tablet之间的数据没有交集,并且在物理上是独立存储的.
- 多个Tablet在逻辑上归属于不同的分区(Partition).一个Tablet只属于一个Partition.而一个Partition包含若干个Tablet.因为Tablet在物理上是独立存储的,所以可以视为独立存储的,所以可以视为Partition在物理上也是独立.Tablet是数据移动、复制等操作的最小物理存储单元.
- 若干个Partition组成一个Table.Partition可以视为逻辑上最小的管理单元.数据的导入与删除,都可以或仅能针对一个Partition进行.
数据划分
列定义
- AGGREGATE KEY数据模型中,所有没有指定聚合方式(SUM、REPLACE、MAX、MIN)的列视为Key列.而其余则为Value列.
- 定义Key列时,可参照如下建议:
- Key 列必须在所有 Value 列之前。
- 尽量选择整型类型。因为整型类型的计算和查找比较效率远高于字符串。
- 对于不同长度的整型类型的选择原则,遵循 够用即可。
- 对于 VARCHAR 和 STRING 类型的长度,遵循 够用即可。
- 所有列的总字节长度(包括 Key 和 Value)不能超过 100