基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
管理一级分区表表组
更新时间:2023-07-18 17:26:00
创建表组后,您可以将一级分区表加入到表组,还可以通过表组来对分区表的分区进行统一管理。
分区操作支持概览
当前版本的 Oracle 模式下,一级分区表的表组管理操作支持情况如下表所示。
| 分区类型 | 添加一级分区 | 删除一级分区 |
|---|---|---|
| Range | 支持 | 支持 |
| List | 支持 | 支持 |
| Hash | 不支持 | 不支持 |
向表组中添加一级分区
您可以向 Range 分区和 List 分区的表组中添加一级分区。操作前请确认当前用户拥有该表组中所有表的 ALTER TABLE 权限。
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 partition_expr
[, PARTITION partition_name VALUES partition_expr]...
)
语法说明:
tablegroup_name:表组名称。partition_option:要添加的分区。range_partition_option:Range 分区选项。list_partition_option:List 分区选项。partition_name:分区名称。partition_expr:分区表达式。
示例:
创建 Range 分区的表组
tg1_r。obclient> CREATE TABLEGROUP tg1_r PARTITION BY RANGE COLUMNS 1 (PARTITION p0 VALUES LESS THAN (100), PARTITION p1 VALUES LESS THAN (200) ); Query OK, 0 rows affected向表组
tg1_r中添加一级分区p2。obclient> ALTER TABLEGROUP tg1_r ADD PARTITION p2 VALUES LESS THAN (300); Query OK, 0 rows affected完成后,执行以下命令,查看表组信息。
obclient> SHOW CREATE TABLEGROUP tg1_r\G *************************** 1. row *************************** TABLEGROUP: TG1_R CREATE TABLEGROUP: CREATE TABLEGROUP "TG1_R" 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)) 1 row in set
从表组中删除一级分区
您可以从 Range 分区和 List 分区的表组中删除一级分区。操作前请确认当前用户拥有该表组中所有表的 ALTER TABLE 权限。
SQL 语法如下:
ALTER TABLEGROUP tablegroup_name DROP PARTITION partition_name[,partition_name]...;
示例:
创建 List 分区的表组
tg1_l。obclient> CREATE TABLEGROUP tg1_l PARTITION BY LIST COLUMNS 1 (PARTITION p0 VALUES('A'), PARTITION p1 VALUES('B'), PARTITION p2 VALUES('C'), PARTITION p3 VALUES('D'), PARTITION p4 VALUES('E'), PARTITION p5 VALUES('F') ); Query OK, 0 rows affected从表组
tg1_l中删除一级分区p4和p5。obclient> ALTER TABLEGROUP tg1_l DROP PARTITION p4,p5; Query OK, 0 rows affected