hudi系列-文件压缩(compaction)

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同时满足时触发压缩

1.3 压缩策略

压缩策略是用来决定那些文件组将会被压缩,通过hoodie.compactio

你可能感兴趣的:(hudi系列,hudi,compact,压缩)