更新时间:2025-12-26 GMT+08:00
分享

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

相关文档

更多clean相关参数请参考compaction&cleaning配置章节。

相关文档