Hudi Archive操作说明
什么是Archive
Archive用户清理Hudi表的元数据文件(位于.hoodie目录下,格式为 ${时间戳}.${操作类型}.${操作状态},比如20240622143023546.deltacommit.request)。对Hudi表进行的每次操作都会产生元数据文件,而元数据文件过多会导致性能问题,所以元数据文件数量最好控制在1000以内。
如何执行Archive
- 写完数据后archive
- Spark SQL(set设置如下参数,写数据时触发)
hoodie.archive.automatic=true hoodie.keep.max.commits=30 // 默认值为30,根据业务场景指定 hoodie.keep.min.commits=20 // 默认值为20,根据业务场景指定
- SparkDataSource(option里设置如下参数,写数据时触发)
hoodie.keep.max.commits=30 // 默认值为30,根据业务场景指定
hoodie.keep.min.commits=20 // 默认值为20,根据业务场景指定
- Flink(with属性里设置如下参数,写数据时触发)
archive.max_commits=30 // 默认值为30,根据业务场景指定
archive.min_commits=20 // 默认值为20,根据业务场景指定
- Spark SQL(set设置如下参数,写数据时触发)
- 手动触发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}
- Spark SQL(设置如下参数,手动触发1次)