更新日期:2024年09月11日
语法格式
partition_options:
PARTITION BY RANGE(expr)
(partition_definition [, partition_definition] ...)
[SUBPARTITION BY]
{
[LINEAR] HASH(expr)
|
[LINEAR] KEY(column_list) }
[SUBPARTITIONS num]
partition_definition:
PARTITION partition_name
VALUES LESS THAN {(expr) | MAXVALUE}
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition:
SUBPARTITION logical_name
说明
expr 是某列值或一个基于某个列值、并返回一个整数值的表达式;
各分区的expr 列表的值必须递增。
示例
示例1:创建RANGE 分区表。
gbase> CREATE TABLE t1 (
a int(11) DEFAULT NULL,
b varchar(10) DEFAULT NULL
) REPLICATED PARTITION BY RANGE (a)
(PARTITION p0
VALUES LESS THAN (10) ,
PARTITION p1
VALUES LESS THAN (20) ,
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
956
PARTITION p2
VALUES LESS THAN (30) ,
PARTITION p3
VALUES LESS THAN (40) ) ;
Query OK, 0 rows affected (Elapsed: 00:00:00.11)
示例2:创建RANGE 分区表,带hash 子分区,不指定子分区名。
gbase> create table t1 (id int, dt date)
partition by range (id)
subpartition by hash (quarter(dt))
subpartitions 4
(
partition p0 values less than (1990),
partition p1 values less than (2000),
partition p2 values less than maxvalue
);
Query OK, 0 rows affected (Elapsed: 00:00:00.17)
示例3:创建RANGE 分区表,带hash 子分区,指定子分区名。
gbase> create table t1 (id int, dt date)
partition by range (id)
subpartition by hash (quarter(dt))
(
partition p0 values less than (1990)
(
subpartition part0_一季度,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
957
partition p1 values less than (2000)
(
subpartition part1_q1,
subpartition part1_二季度,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values less than maxvalue
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_四季度
)
);
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
示例4:创建RANGE 分区表,带key 子分区,不指定子分区名。
gbase> create table t1 (id int, dt date)
partition by range (id)
subpartition by key (dt)
subpartitions 4
(
partition p0 values less than (1990),
partition p1 values less than (2000),
partition p2 values less than maxvalue
);
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
958
示例5:创建RANGE 分区表,带key 子分区,指定子分区名。
gbase> create table t1 (id int, dt date)
partition by range (id)
subpartition by key (dt)
(
partition p0 values less than (1990)
(
subpartition part0_一季度,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
partition p1 values less than (2000)
(
subpartition part1_q1,
subpartition part1_二季度,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values less than maxvalue
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_四季度
)
);
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
959
Query OK, 0 rows affected (Elapsed: 00:00:00.16)