文章目录
- 数据分片
- 副本
- 关于副本
数据分片
Doris 表按两层结构进行数据划分,分别是分区和分桶。示意如下:
每个分桶文件
就是一个数据分片(Tablet)
,Tablet是数据划分的最小逻辑单元
。每个 Tablet 包含若干数据行。各个 Tablet 之间的数据没有交集,并且在物理上是独立存储的。
一个 Tablet 只属于一个 Partition,相应的多个 Tablet 在逻辑上归属于不同的分区(Partition)
。而一个 Partition 包含若干个 Tablet。因为 Tablet 在物理上是独立存储的
,所以可以视为 Partition 在物理上也是独立。Tablet 是数据移动、复制等操作的最小物理存储单元。
副本
为了提高保存数据的可靠性和计算时的性能,Doris 对每个表复制多份进行存储。数据的每份复制就叫做一个副本。Doris 按 Tablet 为基本单元对数据进行副本存储,默认一个分片有3个副本。建表时可在 PROPERTIES 中设置副本的数量:
PROPERTIES
(
"replication_num" = "3"
);
下图示例,有两个表分别导入 Doris,表1 导入后按3副本存储,表2 导入后按2副本存储。
关于副本
- 每个分片的副本数量默认为3,建议保持默认即可。在建表语句中,所有 Partition 中的 Tablet 副本
数量统一指定
。而在增加新分区时,可以单独指定新分区中分片的副本数量。 - 最大副本数量
取决于
集群中部署BE服务的独立IP 的数量(注意不是 BE 数量)
。Doris 中副本分布的原则是:不允许同一个 Tablet 的副本分布在同一台物理机上,而识别物理机即通过 IP。所以,即使在同一台物理机上部署了 3 个或更多 BE 实例,如果这些 BE 的 IP 相同,则依然只能设置副本数为 1。 - 副本数量可以在运行时修改。
- 副本数量强烈建议保持为
奇数