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