【hudi学习笔记】hudi基础教程-Timeline时间轴

. Hudi Timeline(时间轴

Hudi维护着一条对Hudi数据集所有操作的不同Instant组成的Timeline(时间轴),通过时间轴,用户可以轻易的进行增量查询或基于某个历史时间点的查询,这也是Hudi对外提供基于时间点查询的核心能力之一。

条 Timeline必须包含零或多个 Instant所有 Instant构成了 Timeline, InstantHudi中被定义为 HoodieInstant,其主要包含三组件(字段:

State state = State.COMPLETED;

String action;

String timestamp;

1.action操作类型 

action:操作,对数据集执行的操作类型,如commitdeltacommit等。

执行的关键操作包括:

COMMITS - 一次提交表示将一组记录原子写入到数据集中。

CLEANS - 删除数据集中不再需要的旧文件版本的后台活动。

DELTA_COMMIT - 增量提交是指将一批记录原子写入MergeOnRead存储类型的数据集中,其中一些/所有数据都可以只写到增量日志中。

COMPACTION - 协调Hudi中差异数据结构的后台活动,例如:将更新从基于行的日志文件变成列格式。在内部,压缩表现为时间轴上的特殊提交。

ROLLBACK - 表示提交/增量提交不成功且已回滚,删除在写入过程中产生的所有部分文件。

SAVEPOINT - 将某些文件组标记为"已保存",以便清理程序不会将其删除。在发生灾难/数据恢复的情况下,它有助于将数据集还原到时间轴上的某个点。

2.tmiestamp时间戳 

tmiestamp:时间戳,发生的时间戳,Hudi会保证单调递增。

即时时间 : 即时时间通常是一个时间戳(例如:20190117010349),该时间戳按操作开始时间的顺序单

3.state状态

state:即时的状态,如requestedinflightcompleted等状态,状态会转变,如当提交完成时会从inflight状态转变为completed状态。任何给定的即时都可以处于以下状态之一。

REQUESTED - 表示已调度但尚未启动的操作。

INFLIGHT - 表示当前正在执行该操作。

COMPLETED - 表示在时间轴上完成了该操作。

4.总结

Timeline(时间轴)是Hudi中非常重要的概念,基于历史时间点的查询及增量查询均需由Timeline提供支持,因此了解Timeline对于理解Hudi支持何种查询非常有用。

我的理解时间轴上记录的每一个点,都是一组增量的数据变更,同时记录有操作类型 状态和时间戳,这样我们就可以从一个点或连续的多个点来查看历史增量视图,也可以看最新的全量的数据视图。

你可能感兴趣的:(技术学习,数据仓库,大数据,etl,数据架构)