本文档介绍了创建LIST-HASH分区表的方法。
语法
创建LIST-HASH分区表。一级分区是LIST [COLUMNS]类型,二级分区是HASH/KEY类型。
CREATE TABLE [ schema. ]table_name
table_definition
PARTITION BY LIST {(expr) | COLUMNS(column_list)}
SUBPARTITION BY {[LINEAR] HASH(expr) [SUBPARTITIONS number]
| [LINEAR] KEY [ALGORITHM={1 | 2}] (column_list)}
(partition_definition [, partition_definition] ...);
其中,partition_definition为
PARTITION partition_name
VALUES IN ( value_list)
(subpartition_definition [, subpartition_definition] ...)
subpartition_definition为
SUBPARTITION subpartition_name
参数
参数名称 | 参数说明 |
expr | 分区字段表达式,目前只支持INT类型,不支持字符类型。 |
number | 子分区的数量。 |
column_list | 分区字段列表,不支持表达式。 |
value_list | 多个字段的边界值。 |
partition_name | 分区名称,同一个表中不可重复。 |
subpartition_name | 子分区名称,同一个表中不可重复。 |
示例
LIST-HASH类型的使用示例:
CREATE TABLE sales_list_hash
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY LIST(amount)
SUBPARTITION BY HASH(dept_no) SUBPARTITIONS 2
(
PARTITION p0 VALUES in (1, 2),
PARTITION p1 VALUES in (3, 4),
PARTITION p2 VALUES in (5, 6)
);
LIST COLUMNS-HASH类型的使用示例:
CREATE TABLE sales_list_columns_hash
(
dept_no INT,
part_no INT,
country varchar(20),
date DATE,
amount INT
)
PARTITION BY LIST COLUMNS(country)
SUBPARTITION BY HASH(dept_no) SUBPARTITION 2
(
PARTITION europe VALUES in ('FRANCE', 'ITALY'),
PARTITION asia VALUES in ('INDIA', 'PAKISTAN'),
PARTITION americas VALUES in ('US', 'CANADA')
);