在 Doris 中,数据都以关系表(Table)的形式进行逻辑上的描述。
3.2.1 Row & Column
一张表包括行(Row)和列(Column)。Row 即用户的一行数据。Column 用于描述一
行数据中不同的字段。
⚫ 在默认的数据模型中,Column 只分为排序列和非排序列。存储引擎会按照排序列
对数据进行排序存储,并建立稀疏索引,以便在排序数据上进行快速查找。
⚫ 而在聚合模型中,Column 可以分为两大类:Key 和 Value。从业务角度看,Key 和
Value 可以分别对应维度列和指标列。从聚合模型的角度来说,Key 列相同的行,
会聚合成一行。其中 Value 列的聚合方式由用户在建表时指定。
3.2.2 Partition & Tablet
在 Doris 的存储引擎中,用户数据首先被划分成若干个分区(Partition),划分的规则通
常是按照用户指定的分区列进行范围划分,比如按时间划分。而在每个分区内,数据被进一
步的按照 Hash 的方式分桶,分桶的规则是要找用户指定的分桶列的值进行 Hash 后分桶。
每个分桶就是一个数据分片(Tablet),也是数据划分的最小逻辑单元。
⚫ Tablet 之间的数据是没有交集的,独立存储的。Tablet 也是数据移动、复制等操作
的最小物理存储单元。
⚫ Partition 可以视为是逻辑上最小的管理单元。数据的导入与删除,都可以或仅能针
对一个 Partition