HUDI基础

2023-05-15  本文已影响0人  阿猫阿狗Hakuna

什么是Hudi?

image.png

HUDI(Hadoop Upserts Deletes and Incrementals)是一个开源的数据湖工具,用于管理大规模数据湖中的数据。

HUDI旨在解决数据湖中常见的一些挑战,如数据的增量更新、删除和查询等。它提供了一套API和工具,可以帮助用户在数据湖中进行写入、更新、删除和查询等操作,并提供了高效的数据索引和存储机制,以加速数据的访问和处理。

HUDI的核心理念是将数据分为小的、可修改的单元,称为"写时复制(copy-on-write)"。当数据需要更新或删除时,HUDI会创建一个新的数据文件,而不是直接修改原始数据文件。这种设计可以保证数据的不可变性,同时提供了高效的增量更新和删除操作。

HUDI还提供了用于数据管理的元数据存储和查询功能,可以跟踪数据的版本、变更历史和元数据信息。这使得用户可以轻松地追踪和管理数据的变更,同时支持time-travel查询,即可以查询数据在不同时间点的版本。

Hudi Timeline

Hudi timeline是HUDI用于跟踪和管理数据变更历史的一种机制。它记录了数据湖中各个数据集的不同版本和变更操作,以及它们在时间上的顺序。

Timeline的核心概念是HUDI数据集的不可变性。每当对HUDI数据集进行写入、更新或删除操作时,HUDI会创建一个新的数据文件或目录,而不是直接修改原始数据文件。每个数据文件或目录都被分配一个唯一的时间戳,用于表示它的创建时间。

Timeline维护了所有数据文件和目录的时间戳信息,并按照时间顺序组织它们。这使得HUDI能够追踪数据集的完整变更历史,并支持time-travel query。通过Timeline,用户可以查询数据集在不同时间点的版本,回溯到过去的数据状态。

HUDI Timeline还提供了一些其他功能,如支持增量数据拉取(incremental data pull)和增量数据合并(incremental data merge)。增量数据拉取允许用户只拉取数据集中发生变化的部分,而不必处理整个数据集。增量数据合并则可以将多个HUDI数据集合并为一个数据集,并保持数据的一致性和有序性。

Hudi的Timeline由一系列按时间顺序的Instants组成,Instant有下面三部分:

Instant Action主要有以下几种:

Instant State主要有以下几种:

Hudi Table/Query Type

在Hudi中,有几种常见的表类型,用于满足不同的数据管理和处理需求。下面是Hudi中常见的表类型:

在Hudi中,有几种常见的查询类型可以用来检索和分析数据。下面是Hudi中常用的查询类型:

Hudi File Layout

上一篇 下一篇

猜你喜欢

热点阅读