
# Hudi Clean操作说明
#### 什么是Clean
Cleaning用于清理Hudi表不再需要的**老版本数据文件 (parquet文件或者log文件)**，减轻存储压力，提升list操作效率。
#### 如何执行Clean
1. 写完数据后clean
   - Spark SQL（设置如下参数，随后执行任意写入SQL时，在满足条件时触发）
     ```
     hoodie.clean.automatic=true
     hoodie.cleaner.commits.retained=10 // 默认值为10，根据业务场景指定
     ```
     
   
   - SparkDataSource（option里设置如下参数，写数据时触发） **hoodie.clean.automatic** **=true**
     **hoodie.cleaner.commits.retained=10** // 默认值为10，根据业务场景指定
     
   
   - Flink（with属性里设置如下参数，写数据时触发） **clean.async.enabled** **=true**
     **clean.retain_commits** **=10** // 默认值为10，根据业务场景指定
     
    
2. 手动触发1次clean
   - Spark SQL（set设置如下参数，手动触发1次）
   
   
   ```
   hoodie.clean.automatic=true
   hoodie.cleaner.commits.retained=10 // 默认值为10，根据业务场景指定
   ```
   随后执行SQL，当Timeline中有10个以上的Instant记录时，会触发clean
   ```
   run clean on ${table_name}
   ```
   
 
