昆明企业网站制作,wordpress移动端插件menu,官网小程序,网站建设 金手指 排名22数据分区#xff1a;即将大表划分为小表#xff0c;数据分区主要有两个级别#xff1a;Partition和Bucket#xff08;Tablet#xff09;。 Partition#xff1a;逻辑分区#xff0c;按照一定规则将表按照行进行划分#xff0c;每个部分就是一个Partition。
Bucket即将大表划分为小表数据分区主要有两个级别Partition和BucketTablet。 Partition逻辑分区按照一定规则将表按照行进行划分每个部分就是一个Partition。
Bucket物理分区则在物理上对每个Partition内的数据进行进一步的细分(按行)。分桶时会选取一列如Id按照id的hashcode值%桶数得到数据所在桶的位置。存储时会创建文件夹对数据进行存储文件夹的名字就是桶号。
Partition Partition支持Range和List两种划分方式 Range(范围分区单列分区):
PARTITION BY RANGE(data)
(
PATITION ‘p201701’ VALUES LESS THAN(‘2017-02-01’),
PATITION ‘p201702’ VALUES LESS THAN(‘2017-03-01’),【02010301
PATITION ‘p201703’ VALUES LESS THAN(‘2017-04-01’),
) Attention:分区的上界前闭后开当分区创建完成后某个分区再被删除时其他分区的范围并不受影响(分区空洞)但分区空洞可以通过创建新的分区进行补充。 Range(范围分区多列分区)
PARTITION BY RANGE(date, id)(PARTITION p201701_1000 VALUES LESS THAN (2017-02-01, 1000), #设置分区上界和id上界PARTITION p201702_2000 VALUES LESS THAN (2017-03-01, 2000),PARTITION p201703_all VALUES LESS THAN (2017-04-01) ,#没有指定时会按照默认值同样遵守前闭后开原则) Attention:如果日期不在分界点上可以只看日期如果在分界点上先比较日期在比较后续字段的值如果值大于分界点的值就落入前者分区否则落入后者分区 List分区(单列分区)
支持BOOLEANTINYINTSMALLINTINTBIGINTLARGEINT.,CHAR...多种数据类型,当分区值为枚举值只有当数据为目标分区枚举值其中之一时才可以命中分区。
PARTITION BY List (”分区字段”)
(
PARTITION “分区名” VALUES IN (“枚举值”,”枚举值”,”枚举值”)
) Attention: 当要插入的值与该分区中的值相同时则插入该分区中 List分区(多列分区)
PARTITION BY List (”分区字段”,”分区字段”)
(
PARTITION “分区名” VALUES IN ((“枚举值”,”枚举值”),(”枚举值”,”枚举值”))
) Attention对于多列分区只有所有字段的值都与该分区中的值相同时才会插入该分区中 分桶
如果使用了分区则DISTRIBUTED..描述的数据实在各个分区内划分规则否则描述的时整张表的数据的划分规则。 Attention 分桶可以时多列但必须为KEY列分桶列可以与分区列相同或不同分桶列的选择实在查询吞吐和查询并发之间的一种权衡 如果选择多个分桶列则经过Hash散列后数据分布会更均匀 如果选择一个或少数分桶列则数据分布较为集中 复合分区和单分区
复合分区建表时不仅指定分区还会指定分桶
单分区没有分区只有分桶此时Doris底层会将整张表作为一个分区
复合分区使用场景
标中字段有时间维度或类似带有有序值的维度可以以这类维度列作的分区列。有删除历史数据的需求比如仅保留最近N天的数据可以通过删除除历史分区来达到目的。也可以通过在指定分区内发送DELETE语句进行数据出除解决数据倾斜问题每个分区可以单独指定分桶数量。如按天分区当每天的数据量差异很大时可以通过指定分区的分桶数合理划分不同分区的数据分桶列建议选择区分度大的列
PROPERTIES
在建表语句中用于设置表的属性参数
常用属性有
replication_num(分片副本数):用于指定每个Tablet的副本数量提高数据安全性并且能够在Sql执行过程中提高在本地查询命中的概率。副本数量在运行时可以进行修改最大副本数量取决于集群中独立IP的数量Storage_medium(存储介质)默认存储介质可以通过fe的配置文件指定默认为HDD如果指定为SSD则数据初始存放在SSD上在没有storage_cooldown_time的情况下默认30填后数据会从SSD上自动迁移至HDD上若指定则按照指定时间迁移。Storage_cooldown_time(热数据冷却时间)