语法格式
partition_options:
PARTITION BY LIST(expr)
(partition_definition [, partition_definition] ...)
[SUBPARTITION BY]
{
[LINEAR] HASH(expr) |
[LINEAR] KEY(column_list) }
[SUBPARTITIONS num]
partition_definition:
PARTITION partition_name
VALUES IN (value_list)
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
968
[(subpartition_definition [, subpartition_definition] ...)]
subpartition_definition:
SUBPARTITION logical_name
说明
expr 是某列值或一个基于某个列值、并返回一个整数值的表达式;
value_list 是一个通过逗号分隔的整数列表。
列的类型和表达式支持的函数及运算符参考概述内的具体描述
示例
示例1:创建LIST 分区表。
gbase> create table t1 (a int, b varchar(10))
partition by list(a) (
partition p0 values in (3,5,6,9,17),
partition p1 values in (1,2,10,11,19,20),
partition p2 values in (4,12,13,14,18),
partition p3 values in (7,8,15,16)
);
Query OK, 0 rows affected (Elapsed: 00:00:00.11)
示例2:创建LIST 分区表,带hash 子分区,不指定子分区名。
gbase> create table t1 (a int, b int)
partition by list(a)
subpartition by hash (b)
subpartitions 4
(
partition p0 values in (3,5,6,9,17),
partition p1 values in (1,2,10,11,19,20),
partition p2 values in (4,12,13,14,18)
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
969
);
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
示例3:创建LIST 分区表,带hash 子分区,指定子分区名。
gbase> create table t1 (a int, b int)
partition by list(a)
subpartition by hash (b)
(
partition p0 values in (3,5,6,9,17)
(
subpartition part0_q1,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
partition p1 values in (1,2,10,11,19,20)
(
subpartition part1_q1,
subpartition part1_q2,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values in (4,12,13,14,18)
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_q4
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
970
)
);
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
示例4:创建LIST 分区表,带key 子分区,不指定子分区名。
gbase> create table t1 (a int, b int)
partition by list(a)
subpartition by key (b)
subpartitions 4
(
partition p0 values in (3,5,6,9,17),
partition p1 values in (1,2,10,11,19,20),
partition p2 values in (4,12,13,14,18)
);
Query OK, 0 rows affected (Elapsed: 00:00:00.16)
示例5:创建LIST 分区表,带key 子分区,指定子分区名。
gbase> create table t1 (a int, b int)
partition by list(a)
subpartition by key (b)
(
partition p0 values in (3,5,6,9,17)
(
subpartition part0_q1,
subpartition part0_q2,
subpartition part0_q3,
subpartition part0_q4
),
GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-04-10)
南大通用数据技术股份有限公司
971
partition p1 values in (1,2,10,11,19,20)
(
subpartition part1_q1,
subpartition part1_q2,
subpartition part1_q3,
subpartition part1_q4
),
partition p2 values in (4,12,13,14,18)
(
subpartition part2_q1,
subpartition part2_q2,
subpartition part2_q3,
subpartition part2_q4
)
);
Query OK, 0 rows affected (Elapsed: 00:00:00.18)