
# remove_orphan_files
#### 语法参数说明
**remove_orphan_files**可用于移除未在Iceberg表的任何元数据文件中引用的文件，这些文件可被视为 "孤立文件"。
表1**remove_orphan_files** 参数介绍 
| 参数名称                   | 是否必选 | 参数类型      | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| table                  | 必选   | string    | 必须参数，表示要清理的表名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| older_than             | 可选   | timestamp | 表示移除在此时间戳之前创建的孤立文件，默认值为3天前。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| location               | 可选   | string    | 表示要查找文件的目录，默认为表的存储位置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| dry_run                | 可选   | boolean   | 配置为"true"时，不实际删除文件，默认值为"false"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| max_concurrent_deletes | 可选   | int       | 用于删除文件操作的线程池大小，默认情况下不使用线程池。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| file_list_view         | 可选   | string    | 用于查找文件的数据集（跳过目录列表）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| equal_schemes          | 可选   | map       | 被视为相等的文件系统方案映射，键是用逗号分隔的方案列表，值是一个方案，默认值为"map ('s3a,s3n','s3')"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| equal_authorities      | 可选   | map       | 被视为相等的文件系统权限映射，键是用逗号分隔的权限列表，值是一个权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| prefix_mismatch_mode   | 可选   | string    | 当位置前缀（方案/权限）不匹配时的行为，包括： - ERROR：抛出异常（默认值）。  - IGNORE：不执行任何操作。  - DELETE：删除文件。   |
   
输出结果：
表2输出结果参数介绍 
| 参数名称                 | 参数类型   | 参数说明                |
|:---|:---|:---|
| orphan_file_location | String | 此命令确定为孤立文件的每个文件的路径。 |
   
#### 示例
- 对表执行**remove_orphan_files** 命令的试运行，列出所有候选删除文件但不实际删除：
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', dry_run => true);
  ```
  
- 移除表**db.sample** 的"tablelocation/data"文件夹中所有不被该表识别的文件：
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', location => 'tablelocation/data');
  ```
  
- 当文件除位置前缀（方案/权限）外与元数据文件中的引用匹配时，默认会抛出错误。通过将"prefix_mismatch_mode"设置为"IGNORE"，可忽略该错误并跳过文件：
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', prefix_mismatch_mode => 'IGNORE');
  ```
  
- 通过将"prefix_mismatch_mode"设置为"DELETE"，仍可删除该文件：
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', prefix_mismatch_mode => 'DELETE');
  ```
  也可通过将不匹配的前缀视为相等来删除文件：
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', equal_schemes => map('file', 'file1'));
  ```
  ```
  CALL prod.system.remove_orphan_files(table => 'db.sample', equal_authorities => map('ns1', 'ns2'));
  ```
  
 
