1. 简介
压缩(compaction)仅作用于MergeOnRead类型表,MOR表每次增量提交(deltacommit)都会生成若干个日志文件(行存储的avro文件),为了避免读放大以及减少文件数量,需要配置合适的压缩策略将增量的log file合并到base file(parquet)中。
1.1 环境
- flink 1.13.6
- hudi 0.11.0
1.2 触发策略
提供4种触发策略,可通过hoodie.compact.inline.trigger.strategy / compaction.trigger.strategy进行配置:
- NUM_COMMITS:达到N次commit时触发压缩,默认的触发策略,默认值为5次,通过hoodie.compact.inline.max.delta.commits / compaction.delta_commits配置
- TIME_ELAPSED:自上次压缩以来经过的时间 > N 秒时触发压缩,通过hoodie.compact.inline.max.delta.seconds / compaction.delta_seconds配置
- NUM_AND_TIME