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:NUM_COMMITS和TIME_ELAPSED同时满足时触发压缩
- NUM_OR_TIME:NUM_COMMITS或TIME_ELAPSED同时满足时触发压缩
本文介绍了Hudi的压缩(compaction)在MergeOnRead表中的作用,详细阐述了压缩的触发策略、压缩策略选择以及压缩的异步、同步和离线方式。并详细展示了异步压缩的流程,包括生成压缩计划、执行压缩、检查压缩状态等步骤。
订阅专栏 解锁全文
1410

被折叠的 条评论
为什么被折叠?



