查察具体分区。返回效果表现,StarRocks 根据导入数据的分区列值自动创建一个分区 p20220401_Houston ,如果后续导入数据的分区列 dt 和 city 的值是 2022-04-01和 Houston,则都会被分别至该分区。
说明:分区中只能包含各分区列的一个值,如果须要一个分区中包含各分区列的多值,请利用 List 分区。
查询分区
SHOW PARTITIONS from test.recharge_express;
复制代码
2.3.2.2 Range 分区
Range 分区适用于简朴且具有连续性的数据,如时间序列数据(日期或时间戳)或连续的数值数据。并且经常按照连续日期/数值范围,来查询和管理数据。以及一些特别场景,比如一张表的分区粒度不同等,汗青数据须要按月分别分区,而近来数据须要按天分别分区。
StarRocks 会根据显式定义的范围与分区的映射关系将数据分配到相应的分区中。
示例:
自 v3.1 起,StarRocks 支持 List 分区,数据按照显式定义的枚举值列表进行分区,适用于按枚举值来查询和管理数据。
2.3.2.3.1 功能先容
须要显式列出每个 List 分区所包含的枚举值列表,并且值不须要连续,区别于包含连续日期或者数值范围的 Range 分区。当新数据导入表中时,StarRocks 会根据数据的分区列值与分区的映射关系将数据分配到相应的分区中。
List 分区适用于存储具有少量枚举值列的数据、并且经常按列的枚举值来查询和管理数据的场景。比方表示地理位置、状态、种别的列。列的每个值都代表一种独立的种别。按照列的枚举值对数据进行分区,可以提高查询性能和方便数据管理。
尤其适用于一个分区中须要包含各分区列的多个值的场景。比方表中存在 City 列表示个体所属的都会,并且经常按照州和都会查询和管理数据,则建表时可以利用 City 列作为分区列进行 List 分区,指定同属一个州的多个都会的数据分在同一分区 PARTITION pCalifornia VALUES IN (“Los Angeles”,“San Francisco”,“San Diego”),可以加速查询和方便数据管理。
2.3.2.3.2 利用方式
2.3.2.3.2.1 语法
PARTITION BY LIST (partition_columns)(
PARTITION <partition_name> VALUES IN (value_list)
[, ...]
)
partition_columns::=
<column> [,<column> [, ...] ]
value_list ::=
value_item [, value_item [, ...] ]
value_item ::=
{ <value> | ( <value> [, <value>, [, ...] ] ) }
复制代码
2.3.2.3.2.2 参数说明
2.3.2.3.2.3 示例
示例一
假设经常按照州或都会查询机房收费明细,则建表时可以指定分区列为都会 city ,并且指定每个分区所包含都会同属一个州,如许可以加速查询特定州或都会的数据,并且方便按照特定州或都会进行数据管理。
CREATE TABLE test.recharge_list(
id bigint,
user_id bigint,
recharge_money decimal(32,2),
city varchar(20) not null,
dt varchar(20) not null
)
DUPLICATE KEY(id)
PARTITION BY LIST (city) (
PARTITION pCalifornia VALUES IN ("Los Angeles","San Francisco","San Diego"), -- 这些城市同属一个州
PARTITION pTexas VALUES IN ("Houston","Dallas","Austin")