
# Compaction
#### 约束与限制
本章节仅适用于MRS 3.3.0-LTS及之后版本。
#### 命令功能
对Hudi表进行compaction操作，具体作用可以参考[Hudi Compaction操作说明](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24090.html)章节。
#### 命令格式
**call run_compaction(op =\> '\[op\]', table=\>'\[table\]', path=\>'\[path\]', timestamp=\>'\[timestamp\]');**
#### 参数描述
表1参数描述 
| **参数**    | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                | 是否必填 |
|:---|:---|:---|
| op        | 指定Compaction操作类型，即生成Compaction计划还是执行已有的Compaction计划。取值如下： - schedule：生成Compaction计划。适用于首次执行Compaction或需要生成新的Compaction调度计划的场景。  - run：执行已生成的Compaction计划。适用于已有待执行的Compaction计划的场景。   | 是    |
| table     | 指定目标Hudi表的表名，支持database.tablename格式。与path参数二选一，当通过表名可以定位到表时使用此参数。                                                                                                                                                                                                                                                                                                                                                                     | 否    |
| path      | 指定目标Hudi表的存储路径。与table参数二选一，当通过表名无法定位到表（如表未注册到元数据中）时使用此参数。                                                                                                                                                                                                                                                                                                                                                                             | 否    |
| timestamp | 在op指定为"run"时，可以指定timestamp来执行该时间戳对应的compaction计划以及该时间戳之前未执行的compaction计划                                                                                                                                                                                                                                                                                                                                                              | 否    |
   
#### 示例
以下示例中，hudi_table1为待操作的Hudi表名，需替换为实际的表名；xxx需替换为实际的Compaction计划时间戳。
```
call run_compaction(table => 'hudi_table1', op => 'schedule');
call run_compaction(table => 'hudi_table1', op => 'run');
call run_compaction(table => 'hudi_table1', op => 'run', timestamp => 'xxx');
call run_compaction(path => '/user/hive/warehouse/hudi_table1', op => 'run', timestamp => 'xxx');
```
#### 注意事项
compaction操作仅支持MOR表。
#### 系统响应
可在客户端中查看查询结果。
