更新时间:2024-12-25 GMT+08:00
分享

Hudi Archive操作说明

什么是Archive

Archive用户清理Hudi表的元数据文件(位于.hoodie目录下,格式为 ${时间戳}.${操作类型}.${操作状态},比如20240622143023546.deltacommit.request)。对Hudi表进行的每次操作都会产生元数据文件,而元数据文件过多会导致性能问题,所以元数据文件数量最好控制在1000以内。

如何执行Archive

  1. 写完数据后archive
    • Spark SQL(set设置如下参数,写数据时触发)
      hoodie.archive.automatic=true
      hoodie.keep.max.commits=30 // 默认值为30,根据业务场景指定
      hoodie.keep.min.commits=20 // 默认值为20,根据业务场景指定
    • SparkDataSource(option里设置如下参数,写数据时触发)

      hoodie.archive.automatic=true

      hoodie.keep.max.commits=30 // 默认值为30,根据业务场景指定

      hoodie.keep.min.commits=20 // 默认值为20,根据业务场景指定

    • Flink(with属性里设置如下参数,写数据时触发)

      hoodie.archive.automatic=true

      archive.max_commits=30 // 默认值为30,根据业务场景指定

      archive.min_commits=20 // 默认值为20,根据业务场景指定

  2. 手动触发1次archive
    • Spark SQL(设置如下参数,手动触发1次)
      hoodie.archive.automatic=true
      hoodie.keep.max.commits=30 // 默认值为30,根据业务场景指定
      hoodie.keep.min.commits=20 // 默认值为20,根据业务场景指定

      随后执行SQL,当执行过clean,Timeline中存在数据文件已经被清理的Instant,且总Instant数量超过30时,会触发archive。

      run archivelog on ${table_name}

相关文档