
# CLUSTERING
#### 命令功能
对Hudi表进行clustering操作，具体作用可以参考[Hudi Clustering操作说明](https://support.huaweicloud.com/sqlref-hudi-dli/dli_hudi_0074.html)章节。
#### 命令格式
- 执行clustering： **call run_clustering(table=\>'\[table\]', path=\>'\[path\]', predicate=\>'\[predicate\]', order=\>'\[order\]');**
  
- 查看clustering计划： **call show_clustering(table=\>'\[table\]', path=\>'\[path\]', limit=\>\[limit\]);**
  
 
#### 参数描述
表1参数描述 
| **参数**    | **描述**                           | 是否必填              |
|:---|:---|:---|
| table     | 需要查询的表的表名，支持database.tablename格式 | table，path须选填其中之一 |
| path      | 需要查询的表的路径                        | table，path须选填其中之一 |
| predicate | 需要定义的谓语句，筛选需要Clustering的分区       | 否                 |
| order     | 指定clustering的排序字段                | 否                 |
| limit     | 展示查询结果的条数                        | 否                 |
   
#### 示例
```
call show_clustering(table => 'hudi_table1');
call run_clustering(table => 'hudi_table1', predicate => '(ts >= 1006L and ts < 1008L) or ts >= 1009L', order => 'ts');
call run_clustering(path => 'obs://bucket/path/hudi_test2', predicate => "dt = '2021-08-28'", order => 'id');
```
#### 注意事项
- table与path参数必须存在一个，否则无法判断需要执行clustering的表。
- 使用由DLI提供的元数据服务时，本命令仅支持配置table参数，不支持配置path参数。
- 如果需要对指定分区进行clustering，参考格式：predicate =\> "dt = '2023-08-28'"
 
#### 系统响应
可以检查任务状态是否成功，查看任务结果，查看任务日志确认有无异常。
