Doris 数据分布—Bucket(Tablet)
分桶的意义在于极大减少了数据的扫描范围、提高了查询的效率*
在 Doris 的存储引擎中,用户数据被水平划分为若干个数据分片(Tablet,也称作数据分桶)。每个 Tablet 包含若干数据行。各个 Tablet 之间的数据没有交集,并且在物理上是独立存储的。
多个 Tablet 在逻辑上归属于不同的分区(Partition)。一个 Tablet 只属于一个 Partition。而一个 Partition 包含若干个 Tablet。因为 Tablet 在物理上是独立存储的,所以可以视为 Partition 在物理上也是独立。Tablet 是数据移动、复制等操作的最小物理存储单元。
若干个 Partition 组成一个 Table。Partition 可以视为是逻辑上最小的管理单元。数据的导入与删除,仅能针对一个 Partition 进行。
Bucket 的定义
在Doris 中我们通过 DISTRIBUTED BY 来指定分桶,其实这个和hive 的有点区别,在hive中我们是通过CLUSTERED BY 来指定
下面我们通过一个例子来看一下
-- Bucket
CREATE TABLE IF NOT EXISTS example_db.example
Doris 使用 Bucket(Tablet)进行数据分布,提高查询效率。每个 Tablet 包含一部分数据,属于一个 Partition,Partition 包含多个 Tablet。分桶列的选择影响查询性能,合适的分桶数量取决于数据量和查询需求。Auto Bucket 功能可根据数据量自动推算分桶数,以保持 Tablet 大小在 1GB - 10GB 范围内,优化系统性能。
订阅专栏 解锁全文
542

被折叠的 条评论
为什么被折叠?



