0
点赞
收藏
分享

微信扫一扫

Hudi数据文件格式

hudi数据类型

Hudi是一种支持增量数据处理的数据存储格式,它将数据划分为元数据和数据两个部分。

(1)元数据:.hoodie目录对应着表的元数据信息,包括表的版本管理(Timeline)、归档目录(存放过时的instant也就是版本),一个instant记录了一次提交(commit)的行为、时间戳和状态,Hudi以时间轴的形式维护了在数据集上执行的所有操作的元数据; (2)数据:和hive一样,以分区方式存放数据;分区里面存放着Base File(.parquet)和Log File(.log.*);

image.png

Hudi如何组织和管理数据表

Hudi文件通常由以下几个组成部分组成:

Hudi将数据表组织成分布式文件系统基本路径(basepath)下的目录结构,每个表被划分为多个分区,这些分区是包含该分区的数据文件的文件夹,类似于Hive表。在每个分区中,文件被组织成文件组,由文件ID唯一标识。每个文件组包含几个文件片(FileSlice),其中每个文件片包含一个基本文件(.parquet)和多个日志文件(.log.*),这些日志文件包含自生成基本文件以来对基本文件的插入/更新。

为了实现数据的一致性和可靠性,Hudi采用了多版本并发控制(Multiversion Concurrency Control, MVCC)。在Hudi中,更新操作会生成一个新的版本,并且每个版本都有一个时间戳(instant time)。当进行compaction操作时,Hudi会合并日志和基本文件以产生新的文件片,从而减少数据碎片和提高查询性能。而在clean操作中,Hudi会清除不使用的/旧的文件片以回收文件系统上的空间,确保数据的可靠性和高效性。

image.png

hudi特性:

数据分区:Hudi支持数据的分区操作,用户可以按照指定的分区键对数据进行分区,从而提高查询性能和降低查询成本。

事务支持:Hudi支持ACID事务,包括回滚、提交和撤销等操作。这些操作可以保证数据的一致性和可靠性。

增量拉取:Hudi支持增量拉取数据,即只拉取发生变化的数据,从而提高数据处理的效率和性能。

数据合并:Hudi支持数据合并操作,可以将多个数据源的数据合并成一个数据集,从而提高数据的价值和利用率。

实时查询:Hudi支持实时查询,可以在数据发生变化时即时更新查询结果。这对于需要实时监控和处理数据的应用程序非常有用。

image.png

举报

相关推荐

0 条评论