基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
管理一级分区表组
更新时间:2023-08-09 14:11:21
将一级分区表添加到表组后,您可以通过表组来管理分区。
分区操作支持概览
当分区表加入表组后,表组内的表就不能单独进行分区管理操作,只能通过表组对分区表进行分区的统一管理。
一级分区表表组的分区管理操作支持情况如下表所示。
| 分区类型 | 添加一级分区 | 删除一级分区 |
|---|---|---|
| Range Columns | 支持 | 支持 |
| List Columns | 支持 | 支持 |
| Hash | 不支持 | 不支持 |
| Key | 不支持 | 不支持 |
向表组中添加一级分区
您可以为一级分区表的表组添加一级分区。操作前请确认当前用户拥有全局 ALTER 权限。
SQL 语句如下:
ALTER TABLEGROUP tablegroup_name ADD PARTITION partition_option;
partition_option:
range_partition_option | list_partition_option
range_partition_option:
( PARTITION partition_name VALUES LESS THAN partition_expr
[, PARTITION partition_name VALUES LESS THAN partition_expr]...
)
list_partition_option:
(PARTITION partition_name VALUES IN partition_expr
[, PARTITION partition_name VALUES IN partition_expr]...
)
向 Range Columns 分区表组添加一级分区
创建 Range Columns 分区的一级分区表表组。
obclient> CREATE TABLEGROUP tblgroup1 PARTITION BY RANGE COLUMNS 1 ( PARTITION p0 VALUES LESS THAN (100), PARTITION p1 VALUES LESS THAN (200) ); Query OK, 0 rows affected向表组中添加一级分区。
obclient> ALTER TABLEGROUP tblgroup1 ADD PARTITION ( PARTITION p2 VALUES LESS THAN(300), PARTITION p3 VALUES LESS THAN(400), PARTITION p4 VALUES LESS THAN(500) ); Query OK, 0 rows affected完成后,执行以下命令,查看表组信息。
obclient> SHOW CREATE TABLEGROUP tblgroup1\G *************************** 1. row *************************** Tablegroup: tblgroup1 Create Tablegroup: CREATE TABLEGROUP IF NOT EXISTS `tblgroup1` BINDING = FALSE partition by range columns 1 (partition p0 values less than (100), partition p1 values less than (200), partition p2 values less than (300), partition p3 values less than (400), partition p4 values less than (500)) 1 row in set
向 List Columns 分区表组添加一级分区
创建 List Columns 分区的一级分区表表组。
obclient> CREATE TABLEGROUP tblgroup2 PARTITION BY LIST COLUMNS 1 ( PARTITION p0 VALUES IN('A','B'), PARTITION p1 VALUES IN('C','D') ); Query OK, 0 rows affected向表组中添加一级分区。
obclient> ALTER TABLEGROUP tblgroup2 ADD PARTITION ( PARTITION p2 VALUES IN('E','F'), PARTITION p3 VALUES IN('H','I'), PARTITION p4 VALUES IN('J','K') ); Query OK, 0 rows affected完成后,执行以下命令,查看表组信息。
obclient> SHOW CREATE TABLEGROUP tblgroup2\G *************************** 1. row *************************** Tablegroup: tblgroup2 Create Tablegroup: CREATE TABLEGROUP IF NOT EXISTS `tblgroup2` BINDING = FALSE partition by list columns 1 (partition p0 values in ('A','B'), partition p1 values in ('C','D'), partition p2 values in ('E','F'), partition p3 values in ('H','I'), partition p4 values in ('J','K')) 1 row in set
从表组中删除一级分区
您可以从表组中删除一级分区。操作前请确认当前用户拥有全局 ALTER 权限。
SQL 语句如下:
obclient> ALTER TABLEGROUP tablegroup_name DROP PARTITION partition_name[, partition_name]...;
示例:
创建 Range Columns 分区的一级分区表表组。
obclient> CREATE TABLEGROUP tblgroup1 PARTITION BY RANGE COLUMNS 1 ( PARTITION p0 VALUES LESS THAN (100), PARTITION p1 VALUES LESS THAN (200), PARTITION p2 VALUES LESS THAN(300), PARTITION p3 VALUES LESS THAN(400), PARTITION p4 VALUES LESS THAN(500) );从表组中删除一级分区。
obclient> ALTER TABLEGROUP tblgroup11 DROP PARTITION p0,p1; Query OK, 0 rows affected