Apache Hudi核心概念一网打尽

1. 场景

https://hudi.apache.org/docs/use_cases.html

  • 近实时写入
    • 减少碎片化工具的使用
    • CDC 增量导入 RDBMS 数据
    • 限制小文件的大小和数量
  • 近实时分析
    • 相对于秒级存储 (Druid, OpenTSDB) ,节省资源
    • 提供分钟级别时效性,支撑更高效的查询
    • Hudi 作为 lib,非常轻量
  • 增量 pipeline
    • 区分 arrivetime 和 event time 处理延迟数据
    • 更短的调度 interval 减少端到端延迟 (小时 -> 分钟) => Incremental Processing
  • 增量导出
    • 替代部分 Kafka 的场景,数据导出到在线服务存储 e.g. ES

2. 概念/术语

https://hudi.apache.org/docs/concepts.html

2.1 Timeline

Apache Hudi核心概念一网打尽_第1张图片

Timeline 是 HUDI 用来管理提交(commit)的抽象,每个 commit 都绑定一个固定时间戳,分散到时间线上。在 Timeline 上,每个 commit 被抽象为一个 HoodieInstant,一个 instant 记录了一次提交 (commit) 的行为、时间戳、和状态。
HUDI 的读写 API 通过 Timeline 的接口可以方便的在 commits 上进行条件筛选,对 history 和 on-going 的 commits 应用各种策略,快速筛选出需要操作的目标 commit。

2.2 Time

Arrival time: 数据到达 Hudi 的时间,commit time

Event time: record 中记录的时间

Apache Hudi核心概念一网打尽_第2张图片

上图中采用时间(小时)作为分区字段,从 10:00 开始陆续产生各种 commits,10:20 来了一条 9:00 的数据,该数据仍然可以落到 9:00 对应的分区,通过 timeline 直接消费 10:00 之后的增量更新(只消费有新 commits 的 group),那么这条延迟的数据仍然可以被消费到。

2.3 文件管理

你可能感兴趣的:(ApacheHudi)