目录
该篇文章介绍StarRocks-2.5.4版本的分区分桶及副本相关内容,有误请指出~
官网文章地址:
一、数据分布
1.1 概述
建表时,通过设置合理的分区和分桶,使数据均衡分布在不同节点上,查询时能够有效裁剪数据扫描量,最大限度的利用集群的并发性能,从而提升查询性能。
1.2 数据分布方式
分布式数据库中常见的数据分布方式有:Round-Robin、Range、List 和 Hash。如下图所示:
1.2.1 Round-Robin
以轮询的方式把数据逐个放置在相邻节点上。

1.2.2 Range
按照分区进行数据分区,如下图所示,区间[1-3] 、[4-6]分别对应不同的范围(Range)。
适用场景:数据简单有序,并且通常按照连续日期/数值范围来查询和管理数据,range分区是常用的分区方式。

1.2.3 List
直接基于离散的各个取值做数据分布,例如性别,省份等数据就满足这种离散的特性(离散:取值是有限的),每个离散值会映射到一个节点上,多个不同的取值可能也映射到相同节点上。适用场景:按照枚举值来查询和管理数据,比如经常按照国家和城市来查询和管理数据,则可以使用该方式,选择分区列为 city。

1.2.4 Hash
通过哈希函数把数据映射到不同节点上。

总结:可以根据具体的业务场景需求组合使用这些数据分布方式,常见的组合方式有 Hash+Hash、Range+Hash、Hash+List。
1.3 StarRocks的数据分布方式
StarRocks支持两层的数据划分。第一层是Partition分区,支持Range、List或者不分区(不分区代表全表只有一个分区)。第二层是 Bucket分桶(Tablet),StarRocks-2.5.4版本分桶方式只有Hash哈希分桶。StarRocks常见的两种数据分布方式如下:
1.3.1 不分区+ Hash分桶
概述: 一张表只有一个分区,分区按照分桶键和分桶数量进一步进行数据划分,分桶规则: Hash算法(分桶键)% 分桶数
建表语句:
#不分区+ Hash分桶,分桶键为site_id
CREATE TABLE site_access(
site_id INT DEFAULT '10',
city_code SMALLINT,
user_name VARCHAR(32) DEFAULT '',
pv BIGINT SUM DEFAULT '0'
)
AGGREGATE KEY(site_id, city_code, user_name)
DISTRIBUTED BY HASH(site_id) BUCKETS 10;
1.3.2 Range分区+Hash分桶
概述:一张表拆分成多个分区,每个分区按照分桶键和分桶数量进一步进行数据划分,分桶规则: Hash算法(分桶键)% 分桶数
建表语句:
#分区键为partition_no,分桶键为cbhtbm:
create table test.ods_cbht (
cbhtbm string comment "",
fbfbm string comment "",
cbfbm string comment "",
cbfs string comment "",
cbqxq datetime comment "",
cbqxz datetime comment "",
partition_no bigint comment ""
) engine=olap
duplicate key(cbhtbm)
comment ""
partition by range(partition_no) (
start("110000") end ("160000") every (10000),
start("210000") end ("240000") every (10000),
start("310000") end ("380000") every (10000),
start("410000") end ("470000") every (10000),
start("500000") end ("550000") every (10000),
start("610000") end ("660000") every (10000),
start("710000") end ("720000") every (10000),
start("810000") end ("830000") every (10000)
)
distributed by hash(cbhtbm) buckets 8
properties (
"replication_num" = "3",
"in_memory" = "false",
"storage_format" = "default"
);

https://docs.starrocks.io/zh/docs/2.5/table_design/table_types/
最低0.47元/天 解锁文章

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



