
# 更新表分区信息
#### 功能描述
恢复（恢复注册）分区表中所有尚未在元数据库中注册的分区信息。典型应用场景：当手动在OBS上添加分区目录后，通过本命令将新增的分区信息刷新到元数据库中，之后即可通过 SHOW PARTITIONS 查看到新增的分区。
Spark SQL提供两种等价语法：MSCK REPAIR TABLE 和 ALTER TABLE ... RECOVER PARTITIONS。
#### 语法格式
- 方式一：MSCK REPAIR TABLE
  ```
  MSCK REPAIR TABLE table_name;
  ```
  
- 方式二：RECOVER PARTITIONS
  ```
  ALTER TABLE table_name RECOVER PARTITIONS;
  ```
  
 
#### 参数说明
| **参数**         | **描述**              |
|:---|:---|
| **table_name** | 表名称。分区表的名称，该表必须已存在。 |
   
#### 注意事项
- 分区目录名称必须按照指定的格式输入，即 tablepath/partition_column_name=partition_column_value。
- 两条语法功能等价，可任选其一使用。
- 本命令主要用于OBS分区表场景，手动在OBS上添加分区目录后刷新元数据。
 
#### 示例1：使用 MSCK REPAIR TABLE 更新分区信息
更新表 ptable 在元数据库中的分区信息。
MSCK REPAIR TABLE ptable;
#### 示例2：使用 RECOVER PARTITIONS 更新分区信息
使用等价语法更新表 ptable 的分区信息。
ALTER TABLE ptable RECOVER PARTITIONS;
#### 示例3：添加OBS目录后修复分区
假设已手动在OBS上创建了分区目录 obs://bucketName/datapath/dt=2024-01-01，执行以下命令将新分区注册到元数据中。
MSCK REPAIR TABLE sales_data;
#### 示例4：修复分区后查看分区列表
修复分区信息后，通过 SHOW PARTITIONS 验证新分区已注册。
```
-- 修复分区
ALTER TABLE sales_data RECOVER PARTITIONS;
-- 查看所有分区
SHOW PARTITIONS sales_data;
```
