
# Hudi Cleaning操作说明
#### 操作场景
Hudi是一个开源框架，用于在Hadoop兼容的存储系统上实现高效的数据管理和增量处理。Hudi支持多种操作，包括插入、更新、删除和增量处理。其中，Cleaning操作是Hudi的一个重要功能，用于清理过时的数据文件，以优化存储和查询性能。
- 优化存储：随着时间的推移，Hudi表中会积累大量的小文件和过时的数据文件。这些文件会占用大量的存储空间，并且会影响查询性能。
- 提高查询性能：通过定期清理过时的数据文件，可以减少文件数量，从而提高查询性能。
 
#### 执行Cleaning
Hudi使用Cleaner后台作业，不断清除不需要的旧版本数据。通过配置hoodie.cleaner.policy和hoodie.cleaner.commits.retained可以使用不同的清理策略和保存的commit数量。
执行cleaning有两种方式：
- 同步clean由参数hoodie.clean.automatic控制，默认自动开启。 关闭同步clean：
  datasource写入时可以通过**.option("hoodie.clean.automatic", "false")**来关闭自动clean。
  spark-sql写入时可以通过**set hoodie.clean.automatic=false;**来关闭自动clean。
  
- 异步clean可以使用spark-sql来执行，详情可以参考章节[CLEAN](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24801.html)。
 
#### 相关文档
更多clean相关参数请参考[compaction\&cleaning配置](https://support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_24032.html#mrs_01_24032__section1529461811174)章节。
