
# RUN_TABLE_SERVICE
#### 约束与限制
本章节仅适用于MRS 3.3.1-LTS及之后版本。
#### 命令功能
对Hudi MOR表一键式执行Compaction/Clean/Archive，其中Compaction仅执行已存在的Schedule。
#### 单表执行表服务命令
- **命令格式**
  call run_table_service(table =\> 'table', clean_hours_retained =\> 'clean_hours_retained', archive_hours_retained =\> 'archive_hours_retained')
  

- **参数描述**
  表1参数描述 
  | **参数**                    | **描述**                                                                                                                                                                                                                                                             | 是否必填 |
  |:---|:---|:---|
  | table                     | 表名。                                                                                                                                                                                                                                                                | 是    |
  | clean_policy              | clean使用的执行策略，默认使用时间策略。                                                                                                                                                                                                                                             | 否    |
  | clean_trigger_strategy    | clean触发的周期，默认按时间周期触发，每clean_hours_retained个小时触发1次clean。                                                                                                                                                                                                            | 否    |
  | clean_hours_retained      | clean保留多长时间内的数据文件，默认24小时。                                                                                                                                                                                                                                          | 否    |
  | clean_commits_retained    | clean保留多少commits写的数据文件，默认10。                                                                                                                                                                                                                                       | 否    |
  | archive_policy            | archive使用的执行策略，默认使用时间策略。                                                                                                                                                                                                                                           | 否    |
  | archive_hours_retained    | archive保留多长时间的timeline，默认24小时。                                                                                                                                                                                                                                     | 否    |
  | max_commit_to_keep        | archive保留多少commits元数据文件的最大值，默认30。                                                                                                                                                                                                                                  | 否    |
  | min_commit_to_keep        | archive保留多少commits元数据文件的最小值，默认20。                                                                                                                                                                                                                                  | 否    |
  | compact_inline            | 是否开启compact，默认true。                                                                                                                                                                                                                                                | 否    |
  | schedule_compact_inline   | 开启compact后，是否只做schedule，默认false。 注意： 如果需要run_table_service命令只产生compaction plan且不执行，需要设置schedule_compact_inline等于true，run_compact_inline等于false。                                                    | 否    |
  | run_compact_inline        | 开启compact后，是否只做run，默认true。 注意： run_table_service命令的默认行为是仅执行Hudi表中已有的compaction plan。如果需要run_table_service命令产生1个新的compaction plan并执行，需要设置schedule_compact_inline等于false，run_compact_inline等于false。 | 否    |
  | compact_max_delta_commits | 多少commits会触发compact，默认5。                                                                                                                                                                                                                                           | 否    |
     
  
- **示例**
  ```
  // clean和archive按时间策略执行
  call run_table_service(table => 'hudi_table', clean_hours_retained => 1, archive_hours_retained => 1)
  // clean和archive按commits策略执行
  call run_table_service(table => 'hudi_table', clean_policy => 'KEEP_LATEST_COMMITS', clean_trigger_strategy => 'NUM_COMMITS', clean_commits_retained => 2, archive_policy => 'KEEP_META_FILES_BY_COMMITS', min_commit_to_keep => 3, max_commit_to_keep => 4);
  ```
  
- **系统响应**
  可在客户端中查看结果。
  
 
#### 多表并行执行表服务命令
- **命令格式**
  call run_table_service(tables =\> 'table1;table2;table3', cleanNums =\> 'clean_commits_retained', archiveNums=\> 'archive_commits_retained')
  
- **参数描述**
  表2参数描述 
  | **参数**      | **描述**                                                    | 是否必填 |
  |:---|:---|:---|
  | tables      | 待执行表服务的表名列表。 多个表名以";"分隔。 | 是    |
  | cleanNums   | clean保留commits次数。                                         | 否    |
  | archiveNums | archive保留commits次数，如果配置该项，该值必须大于cleanNums配置项。             | 否    |
     
  
- **示例**
  ```
  // clean和archive按时间策略执行
  call run_table_service(tables => 'tb1;tb2;tb3', cleanNums  => '10', archiveNums => '12')
  ```
  
- **系统响应**
  可在客户端中查看结果。
  
 
