数据结构论坛

首页 » 分类 » 常识 » 翻译ApacheHudi重要的概
TUhjnbcbe - 2020/11/14 4:34:00
科学抗白北京中科技术精湛 http://m.39.net/pf/a_5882648.html
ApacheHudi重要的概念和术语

ApacheHudi(发音为“Hudi”)在hadoop兼容的存储上提供以下流原语:

Update/DeleteRecords 更新删除记录(如何更改表中的记录?)

ChangeStreams 改变流(我如何获取改变了的记录?)

在本节中,我们将讨论重要的概念和术语,这些概念和术语有助于理解并有效使用这些原语。

时间轴(Timeline)

在其核心,Hudi维护了一个时间轴(Timeline),记录了在不同时间瞬间(instants)在表上执行的所有操作,这有助于提供表的瞬时视图,同时还有效地支持按到达顺序检索数据。一个Hudiinstant由以下组件组成:

Instantaction:在表上执行的操作类型

Instanttime:通常是一个时间戳(例如:49),该时间戳按操作开始时间的顺序单调增加。

state:当前Instant的状态

Hudi保证在时间轴上执行的操作的原子性和基于Instanttime的时间轴一致性;执行的关键操作包括:

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

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

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

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

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

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

任何给定的即时(Instant)都可以处于以下状态之一:

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

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

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

通过官方例子理解Timeline

上面的示例显示了在Hudi表上大约10:00到10:20之间发生的更新事件,大约每5分钟一次,将提交元数据以及其他后台清理/压缩保留在Hudi时间轴上。观察的关键点是:提交时间(

1
查看完整版本: 翻译ApacheHudi重要的概