0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Hudi系列:Hudi核心概念之文件布局(Storage Layouts)

京东云 来源:jf_75140285 作者:jf_75140285 2025-10-14 16:06 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Hudi系列:Hudi核心概念(版本1.0)

•Hudi架构

◦一. 时间轴(TimeLine)

▪1.1 时间轴(TimeLine)概念

▪1.2 Hudi的时间线由组成

▪1.3 时间线上的Instant action操作类型

▪1.4 时间线上State状态类型

▪1.5 时间线官网实例

◦二. 文件布局

◦三. 索引

▪3.1 简介

▪3.2 对比Hive没有索引的区别

▪3.3 Hudi索引类型

▪3.4 全局索引与非全局索引

◦四. 表类型

▪4.1 COW:(Copy on Write)写时复制表

▪4.1.1 概念

▪4.1.2 COW工作原理

▪4.1.3 COW表对表的管理方式改进点

▪4.2 MOR:(Merge on Read)读时复制表

▪4.2.1 概念

▪4.2.2 MOR表工作原理

▪4.3 总结了两种表类型之间的权衡

◦五. 查询类型

▪5.1 Snapshot Queries

▪5.2 Incremental Queries

▪5.3 Read Optimized Query

下面描述了 Hudi 表存储文件的一般组织方式。

•Hudi 将数据表组织到存储中基本路径下的目录结构中。

•根据表架构中定义的分区列,表可以选择性地分为多个分区。

•在每个分区中,文件被组织成文件组,由文件 ID (uuid) 唯一标识

•每个文件组包含多个文件切片。

•每个切片包含一个基本文件 (parquet/orc/hfile)(由配置 - hoodie.table.base.file.format 定义),由在特定时刻完成的提交写入,以及一组日志文件 (.log.),由在下一个基本文件请求时刻之前完成的提交写入。

•Hudi 采用多版本并发控制 (MVCC),其中压缩操作合并日志和基本文件以生成新的文件切片,清理操作删除未使用/较旧的文件切片以回收文件系统上的空间。

•所有元数据(包括时间线、元数据表)都存储在基本路径下的特殊 .hoodie 目录中。

wKgZPGjuBHWAfLVnAAT8nIrydeA039.png

1.基础文件

基础文件存储完整记录,而更改记录则存储在下面的增量日志文件中。Hudi 目前支持以下基础文件格式。

用于矢量化读取、列压缩和高效列式访问的列式格式,适用于分析/数据科学
用于快速扫描以读取整个记录的行式 avro 文件
用于高效搜索索引记录的随机访问优化 HFile(基于 SSTable 格式)

wKgZO2juBHaAWNLIAAVuJTHTIG8925.png



2.日志文件

日志文件存储基础文件创建后对基础文件的增量更改(部分或全部),例如更新、插入和删除。日志文件包含不同的块(数据、命令、删除块等),这些块对基础文件的特定更改进行编码。数据块对基础文件的更新/插入进行编码,并可自定义以支持不同的需求。

面向行的 avro 文件,用于快速/轻量级写入
随机访问优化的 HFile,用于高效搜索索引记录(基于 SSTable 格式)
列式 parquet 文件,用于矢量化日志合并。

3. 存储格式版本控制

Hudi 存储格式的元素(如日志格式、日志块结构、时间线文件/数据模式)都是版本化的,并与给定的表版本相关联。表版本是一个单调递增的数字,每次存储中产生的某些位发生变化时,该数字就会增加。

Backwards compatible reading

Hudi 版本向后兼容,以确保新软件版本可以读取最近的旧表版本。跨不同引擎升级 Hudi 的推荐方法是首先升级所有读取器(例如使用表的交互式查询引擎),然后升级任何/所有写入器和表服务。
Hudi 存储引擎还实现了自动升级功能,可以在后续写入操作中优雅地执行表版本升级,通过自动执行任何必要的步骤而无需停机查询/读取。

Backwards compatible writing

但是,这可能并非总是可行的,因为基于 Hudi 构建的数据平台可能具有可以同时充当读取器和写入器的多阶段管道。在这种情况下,Hudi 升级需要通过首先升级最下游的作业来执行,一直跟踪
到可能由摄取系统写入的第一个 Hudi 表。为了简化此过程,Hudi 还允许写入最近的旧表版本,以便可以首先在同一个旧表版本之上在整个部署中推出新的 Hudi 软件二进制文件。一旦所有作
业和引擎都有了新的二进制文件,那么就可以按任何顺序升级到较新的表版本,并且读者将动态适应

4. 配置

以下写入器配置控制写入旧表版本和自动升级行为。

配置名称 默认 描述
hoodie.write.table.version latest (Optional) 此写入器存储表的表版本。如果表已存在,则此版本应与当前表版本匹配。按上述方法升级时,请将此版本设置为较低的版本。
hoodie.write.auto.upgrade true (Optional) 假如设置为enabled, 如果当前表版本较低,则写入器会自动将表迁移到指定的写入表版本。



文献: https://hudi.apache.org/docs/overview

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储
    +关注

    关注

    13

    文章

    4693

    浏览量

    89569
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IBM Storage Scale System 6000焕新升级

    没有数据的 AI 工厂就像没有燃料的引擎,根本无法运转。IBM Storage Scale System 6000 的全局命名空间和 Active File Management (AFM) 功能
    的头像 发表于 11-30 09:12 363次阅读

    从设计到量产:Gerber文件如何让你的产品‘零缺陷’?

    一站式PCBA加工厂家今天为大家讲讲高频Gerber文件对PCBA加工的影响有哪些?Gerber文件对PCBA加工的影响。Gerber文件作为PCBA加工的核心数据载体,对生产流程、产
    的头像 发表于 11-24 09:47 287次阅读

    RK 平台 Vendor Storage 开发指南:基础知识、流程与实用技巧

    在瑞芯微(RK)平台的嵌入式开发中,vendor_storage 是一个核心模块,专门用于存储 SN(序列号)、MAC 地址、DRM 密钥等厂商专属数据。它不仅提供了跨环境的数据读写能力,还具
    的头像 发表于 11-22 07:11 96次阅读
    RK 平台 Vendor <b class='flag-5'>Storage</b> 开发指南:基础知识、流程与实用技巧

    速通音频处理:掌握TTS播放、文件播放与录音核心,实现完整功能

    播放TTS、播放音频文件及录音是构建完整音频处理功能的三大核心模块。若想快速掌握并实现完整音频处理能力,无需深挖底层细节,只需聚焦“资源加载、播放控制、状态同步与异常处理”四大关键环节——本文将拆解
    的头像 发表于 11-21 19:27 85次阅读
    速通音频处理:掌握TTS播放、<b class='flag-5'>文件</b>播放与录音<b class='flag-5'>核心</b>,实现完整功能

    睿擎派文件系统指南:从开发到发布全流程实践 | 技术解析

    在嵌入式系统开发中,文件系统扮演着至关重要的角色,它负责数据的持久化存储、配置文件管理和资源访问等核心功能。睿擎平台提供了一套完整的文件系统解决方案,从开发阶段的API调用到调试阶段的
    的头像 发表于 11-05 18:13 7697次阅读
    睿擎派<b class='flag-5'>文件</b>系统指南:从开发到发布全流程实践 | 技术解析

    Hudi系列:Hudi核心概念索引(Indexs)

    Hudi系列:Hudi核心概念(版本1.0) •Hudi架构 ◦一. 时间轴(TimeLine)
    的头像 发表于 10-21 09:47 193次阅读
    <b class='flag-5'>Hudi</b><b class='flag-5'>系列</b>:<b class='flag-5'>Hudi</b><b class='flag-5'>核心</b><b class='flag-5'>概念</b><b class='flag-5'>之</b>索引(Indexs)

    一文读懂大模型常见的10个核心概念

    这些常见的专业术语,你又了解多少?这篇文章将帮助你快速掌握AI行业常见的核心概念。1、大模型型号每个大模型都有其独特的设计和功能,有些大模型可能在语言理解方面表现出
    的头像 发表于 09-22 17:02 1136次阅读
    一文读懂大模型常见的10个<b class='flag-5'>核心</b><b class='flag-5'>概念</b>

    电机转子永磁体布局怎么选?一文GET!

    转子永磁体布局是永磁电机转子设计的核心环节,直接影响电机的转矩输出、功率密度、调速性能和运行稳定性。不同永磁体布局的特点及设计逻辑,是匹配电机应用场景、提升电机性能的关键。下面从布局
    的头像 发表于 09-18 08:33 617次阅读

    文件高效传输不求人!Ymodem协议实战示例与核心技巧揭秘

    分享优化传输效率的核心技巧! Ymodem—— 是一种基于串行通信的文件传输协议,由Chuck Forsberg于1980年代初期在Xmodem协议基础上改进而来。通过引入1024字节数据块和批量文件传输机制,显著提升传输效率与
    的头像 发表于 07-28 17:38 732次阅读
    大<b class='flag-5'>文件</b>高效传输不求人!Ymodem协议实战示例与<b class='flag-5'>核心</b>技巧揭秘

    辰专利布局,深挖传感技术发展护城河

    深圳市瑞辰科技有限公司成立于2007年,成立多年来在MEMS传感器领域展现出了惊人的创新能力和技术实力。瑞辰深知知识产权的重要性,已经申请和获取了数十项以MEMS为核心的专利,涵盖了传感器芯片
    的头像 发表于 07-04 13:57 1078次阅读
    瑞<b class='flag-5'>之</b>辰专利<b class='flag-5'>布局</b>,深挖传感技术发展护城河

    harmony-utilsFileUtil,文件相关工具类

    harmony-utilsFileUtil,文件相关工具类
    的头像 发表于 07-03 18:23 378次阅读

    harmony-utilsPreviewUtil,文件预览工具类

    harmony-utilsPreviewUtil,文件预览工具类 harmony-utils 简介与说明 [harmony-utils] 一款功能丰富且极易上手的HarmonyOS工具库,借助众多
    的头像 发表于 07-03 11:40 354次阅读

    harmony-utilsPickerUtil,拍照、文件选择和保存,工具类

    harmony-utilsPickerUtil,拍照、文件选择和保存,工具类 harmony-utils 简介与说明 harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库
    的头像 发表于 06-27 16:03 355次阅读

    Linux系统管理的核心概念

    在前一篇文章中,我们深入探讨了Linux中的文件操作命令,如cp、mv、rm,以及文本处理命令grep、wc和管道符。本文将继续深入Linux系统管理的核心概念,包括root用户的角色、用户和用户组
    的头像 发表于 05-15 17:05 492次阅读

    IBM Storage - 支持AI应用场景的数据存储软硬件解决方案

    为了解决数据和工作负载在各地分散的现状,需要实现对存储在分布式文件和对象存储系统中的大量非结构化数据的高速访问。IBM Storage利用人工智能(AI)、机器学习(ML)和高级分析手段,对数据存储基础架构进行现代化改造。
    的头像 发表于 12-30 15:00 859次阅读
    IBM <b class='flag-5'>Storage</b> - 支持AI应用场景的数据存储软硬件解决方案