什么是 Hudi Timeline (时间线)

14 篇文章 1 订阅

Timeline

不同时刻对表的所有操作都被 Hudi 维护在一条时间线上,这有助于提供表的瞬时的视图查询,同时还能根据数据的到达顺序支持高校的数据检索服务。Hudi instant 核心概念包含以下几点:

  • Instant action (瞬时动作):动作的类型
  • Instant time (瞬时时间):是一个时间戳(如:20190117010349),单调递增
  • Instant state (瞬时状态):instant 的当前状态

基于 instant time, Hudi 可保证时间线之上的操作是具有原子性和一致性的。

Instant action (瞬时动作)

Hudi Instant action (瞬时动作) 主要有以下几种:

  • COMMITS - commit 表明一批数据原子写入到表中
  • CLEANS - 后台进程,清理不再需要的旧版本数据
  • DELTA_COMMIT - delta commit 表明一批数据原子写入MergeOnRead 类型的表中的 delta logs文件。
  • COMPACTION - 后台进程,把行存的数据合并到列存格式文件,是一种特殊的 commit
  • ROLLBACK - 表明 commit/delta commit 失败并回滚,删除不完整的文件
  • SAVEPOINT - 对文件标记为“saved”,清理程序就不会删除这些文件,在遇到故障或者数据需要修复时,可以把表恢复到时间线的这个保存点
Instant state (瞬时状态)

任何给定的 instant 都有可能是以下的其中一种状态:

  • REQUESTED - 表明 Instant action 已在排队中,但还没有初始化
  • INFLIGHT - 表明 Instant action 正在执行中
  • COMPLETED - 表明 Instant action 上时间线执行完毕

Timeline 的例子

在这里插入图片描述

上图的例子展示了10:00至10:20,每5分钟在 Hudi 表的 upsert 操作,时间线有 commit,clean 和 compact。同时还可以观察到 commit time 记录的是数据到达时间(如,10:20AM),而实际是按 event time (事件时间) 从7:00每小时一个分区来组织数据的。到达时间和事件事件是平衡数据延迟及完整性的两个主要概念。

迟到的数据到来(如,事件时间是9:00,在>1小时之后的10:20到达),会根据事件数据写入到对应的分区。在时间线的帮助下,增量查询只需要读取所有在某一瞬间(instant time)以来 commit 成功的变更文件就可以获取到新数据,而不通过扫描所有的文件。

Hudi(Hadoop Upserts anD Incrementals)是一个开源的数据湖增量处理框架,旨在提供高效、可靠的数据管理和处理能力。以下是Hudi的一些优点: 1. **增量写入和更新**:Hudi允许将新数据追加到现有数据集中,或者更新已有数据,而无需重新处理整个数据集。这减少了处理时间和资源消耗,使得数据的写入和更新更加高效。 2. **ACID事务支持**:Hudi提供了原子性、一致性、隔离性和持久性(ACID)事务的支持。这意味着你可以执行复杂的事务操作,如插入、更新和删除,同时保证数据的一致性和完整性。 3. **时间旅行查询**:Hudi支持时间旅行查询,允许你在不同时间点上查询表的历史快照。这对于分析、审计和数据回溯非常有用。 4. **灵活的数据管理**:Hudi提供了表级别和分区级别的元数据管理功能,使得管理和维护大规模数据集更加灵活和高效。它支持动态分区和自动合并操作,简化了数据管理任务。 5. **跨框架兼容性**:Hudi可以与多个数据处理框架集成,如Apache Spark、Apache Hive和Apache Flink。这使得使用Hudi的应用程序可以在不同的计算框架中灵活运行和扩展。 综上所述,Hudi通过增量处理、ACID事务支持、时间旅行查询和灵活的数据管理等功能,为数据湖提供了高效可靠的数据处理能力,使得数据工程师和分析师能够更好地管理和使用大规模数据集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修破立生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值