重命名分区
功能描述
修改OBS分区表中某个分区的分区值。该命令仅支持操作OBS表,不支持对管理表进行操作。
语法格式
ALTER TABLE table_name PARTITION partition_specs RENAME TO PARTITION partition_specs;
参数说明
| 参数 | 描述 |
|---|---|
| table_name | 表名称。 |
| partition_specs | 分区规格,格式为 (col1=val1, col2=val2, ...)。RENAME TO 前为原分区值,后为新分区值。若分区表有多个分区列,需指定所有分区列的值,顺序可任意。 |
注意事项
- 该命令仅支持操作OBS表,不支持对管理表进行操作。
- 所要重命名分区的表和分区必须已存在,否则会出错。新分区名不能与其他分区重名,否则将出错。
- 若分区表是按照多个字段进行分区的,重命名分区时需要指定所有的分区字段,指定字段的顺序可任意。
- partition_specs 中的参数默认带有 ( ),例如:PARTITION (dt='2009-09-09', city='xxx')。
示例1:单分区列重命名
将表 log_data 中分区 year=2023 重命名为 year=2024。
ALTER TABLE log_data PARTITION (year='2023') RENAME TO PARTITION (year='2024');
示例2:多分区列重命名
将表 student 中分区 city='city1', dt='2023-01-01' 重命名为 city='city2', dt='2023-06-01'。
ALTER TABLE student PARTITION (city='city1', dt='2023-01-01') RENAME TO PARTITION (city='city2', dt='2023-06-01');
示例3:日期分区重命名
将表 sales 中日期分区 dt='2023-12-31' 重命名为 dt='2024-01-01'。
ALTER TABLE sales PARTITION (dt='2023-12-31') RENAME TO PARTITION (dt='2024-01-01');
示例4:分区值变更(仅修改部分分区列值)
将表 event_log 中分区 region='east', type='click' 重命名为 region='west', type='click',仅修改 region 列值。
ALTER TABLE event_log PARTITION (region='east', type='click') RENAME TO PARTITION (region='west', type='click');