云数据库 GAUSSDB-创建分区表:创建二级分区表

时间:2024-11-13 10:04:58

创建二级分区表

二级分区表,可以看成是对一级分区表的扩展,在二级分区表中第一层分区是一张逻辑表并不实际存储数据,数据实际是存储在二级分区节点上的。从实现上而言,二级分区表的分区方案是由两个一级分区的嵌套而来,一级分区的分区方案详见章节CREATE TABLE PARTITION。常见的二级分区表组合方案有:Range-Range分区、Range-List分区、Range-Hash分区、List-Range分区、List-List分区、List-Hash分区、Hash-Range分区、Hash-List分区、Hash-Hash分区等。目前二级分区仅支持行存表,二级分区创建的示例如下:
CREATE TABLE [ IF NOT EXISTS ] subpartition_table_name
(
    [ /* 该部份继承于普通表的Create Table */
    { column_name data_type [ COLLATE collation ] [ column_constraint [ ... ] ]
    | table_constraint
    | LIKE source_table [ like_option [...] ] } [, ... ]
    ]
)
[ WITH ( {storage_parameter = value} [, ... ] ) ]
[ COMPRESS | NOCOMPRESS ]
[ TABLESPACE tablespace_name ]
/* 二级分区定义的部分,只有list分区策略支持申明AUTOMATIC */
PARTITION BY {RANGE | LIST | HASH} (partKey) [ AUTOMATIC ] SUBPARTITOIN BY {RANGE | LIST | HASH} (partKey) [ AUTOMATIC ]
(
    PARTITION partition_name partExpr…  /* 第一层分区 */
    (
        SUBPARTITION partition_name partExpr … /* 第二层分区 */
        SUBPARTITION partition_name partExpr … /* 第二层分区 */
    ),
    PARTITION partition_name partExpr…  /* 第一层分区 */
    (
        SUBPARTITION partition_name partExpr … /* 第二层分区 */
        SUBPARTITION partition_name partExpr … /* 第二层分区 */
    ),
    …
)
[ { ENABLE | DISABLE } ROW MOVEMENT ];
规格约束:
  1. 二级分区表支持LIST/HASH/RANGE分区的任意两两组合。
  2. 二级分区表支持任一层LIST申明自动扩展。
  3. 二级分区表的第二层分区采用LIST自动扩展时,建表语句中第二层分区定义不能为空。
  4. 二级分区表场景中仅支持单分区键。
  5. 二级分区表中不支持INTERVAL类型分区的组合。
  6. 二级分区表场景中,分区总数上限为1048575。
support.huaweicloud.com/fg-gaussdb-cent-v8/gaussdb-48-0072.html