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

    文章

    4894

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    TDK-Lambda DRF系列电源:工业应用的可靠

    TDK-Lambda DRF系列电源:工业应用的可靠选 在工业和过程控制应用中,电源的稳定性、效率和可靠性至关重要。TDK-Lambda的DRF系列电源以其出色的性能和丰富的功能,成为了众多工程师
    的头像 发表于 04-18 09:15 169次阅读

    STM32 STR750Fxx系列:32位MCU的卓越

    、STR752Fxx和STR755Fxx系列MCU,凭借ARM7TDMI - S 32位RISC核心以及丰富的外设,在众多应用场景中脱颖而出。今天,我们就来深入剖析一下这个系列MCU的特性与应用。
    的头像 发表于 04-17 15:20 186次阅读

    浅谈Kubernetes的六个核心概念

    运维工程师在学习 Kubernetes 时,往往会在某些核心概念上反复卡住。这些概念不是孤立的知识点,而是相互关联、层层递进的体系。理解这些概念的关键在于动手实践,而非仅仅阅读文档。
    的头像 发表于 04-13 13:55 220次阅读

    MEAN WELL RPS - 160系列160W医疗电源:可靠

    MEAN WELL RPS - 160系列160W医疗电源:可靠选 在医疗设备的设计中,电源的稳定性和安全性至关重要。今天要给大家介绍的是MEAN WELL的RPS - 160系列160W可靠绿色
    的头像 发表于 04-05 14:10 659次阅读

    天合储能亮相Energy Storage Summit USA 2026

    近日,在全球储能行业备受瞩目的Energy Storage Summit USA 2026上,天合储能受邀发表主题演讲,围绕“大规模燃烧测试的关键经验”展开分享,从系统级安全验证出发,展示了储能系统在极端工况下的安全设计能力,获得现场广泛关注。
    的头像 发表于 03-30 16:05 698次阅读

    瑞萨RA系列FSP库开发实战指南FatFs文件系统介绍

    即使读者可能不了解文件系统,读者也一定对“文件”这个概念十分熟悉。数据在PC上是以文件的形式储存在磁盘中的,这些数据的形式一般为ASCII 码或二进制形式。
    的头像 发表于 03-18 13:47 4605次阅读
    瑞萨RA<b class='flag-5'>系列</b>FSP库开发实战指南<b class='flag-5'>之</b>FatFs<b class='flag-5'>文件</b>系统介绍

    TDK IBQ系列磁性片:RFID应用的理想

    TDK IBQ系列磁性片:RFID应用的理想选 在电子工程领域,RFID(射频识别)技术的应用日益广泛,而磁性片作为其中关键的组成部分,其性能的优劣直接影响着整个系统的表现。今天,我们就来深入
    的头像 发表于 12-25 15:40 438次阅读

    IBM Storage Scale System 6000焕新升级

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

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

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

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

    Hudi系列:Hudi核心概念(版本1.0) •Hudi架构 ◦一. 时间轴(TimeLine)
    的头像 发表于 10-21 09:47 530次阅读
    <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)

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

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

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

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

    harmony-utilsFileUtil,文件相关工具类

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

    harmony-utilsPreviewUtil,文件预览工具类

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

    Linux系统管理的核心概念

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