Doris–基础–3.4–SQL–表的基本概念
1、基本概念
在 Doris 中,数据都以表(Table)的形式进行逻辑上的描述。
1.1、Row(行)和Column(列)
一张表包括行(Row)和列(Column)。
- Row:用户的一行数据。
- Column:用于描述一行数据中不同的字段。
1.2、Column 分为两大类
- Column 可以分为两大类:Key 和 Value。
- 从业务角度看:
- Key:对应维度列
- Value 对应指标列。
- 从聚合模型的角度来看
- Key 列相同的行,会聚合成一行。其中 Value 列的聚合方式由用户在建表时指定。
2、数据结构
- 表(Table1)拆成多个Tablet(Tablet1,Tablet2,Tablet3)
- 一个Tablet会存多个副本,存储在不同的 BE 中,从而保证数据的高可用和高可靠。
- Tablet1 分别放到BE1,BE2,BE3中
- Tablet1 分别放到Partition1,Partition2,Partition3中
- 数据主要都是存储在BE里面,BE节点上物理数据的可靠性通过多副本来实现,默认是3副本,副本数可配置且可随时动态调整,满足不同可用性级别的业务需求。FE调度BE上副本的分布与补齐。
- 如果说用户对可用性要求不高,而对资源的消耗比较敏感的话,我们可以在建表的时候选择建2副本或者1副本。
3、Tablet(数据分桶)和 Partition(分区)
3.1、Tablet(数据分桶)
- 在 Doris 的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶)。
- 每个 Tablet 包含若干数据行。
- 各个 Tablet 之间的数据没有交集,并且在物理上是独立存储的。
- 多个 Tablet 在逻辑上归属于不同的分区(Partition)。
- 一个 Tablet 只属于一个 Partition
- Tablet 是数据移动、复制等操作的最小物理存储单元。
3.2、Partition(分区)
- 一个 Partition 包含若干个 Tablet
- 因为 Tablet 在物理上是独立存储的,所以可以视为 Partition 在物理上也是独立。
- 若干个 Partition 组成一个 Table。
- Partition 可以视为是逻辑上最小的管理单元。数据的导入与删除,都可以或仅能针对一个 Partition 进行。