数据湖新突破:Hudi让实时数据分析更高效!

开源数据湖对比 

Hudi的使用收益

Hudi使用成效

Hudi内部机制

增量摄入与更新

  • Hudi使用一种混合日志存储模式(称为Copy-on-Write),可以同时处理基础数据文件(Parquet)和增量日志(HoodieLogFile)。
  • MergeOnReadTable 的 upsert 操作为例,当有新数据到来时,Hudi会先将数据以行级别的增量形式高效地写入 HoodieLogFile,而不是直接更新基础文件。
  • 相关代码可以参考 HoodieAppendHandle 的 makeNewBlock 方法,将 HoodieRecord 序列化为 HoodieLogBlock。

异步Compaction

  • 为了避免日志量无限增大,Hudi会启动异步Compaction操作,定期将增量日志合并回基础文件。
  • Compaction由Spark的map、reduce任务来并行执行,相关逻辑在HoodieRealtimeTableCompactor类中。
  • 通过 scheduleCompaction 方法,Hudi根据日志大小等条件判断是否触发 Compaction,并通过Spark driver调度执行。

快照级别的一致性读

  • Hudi会为数据文件生成定期快照,保证某个时间点的一致性读取。
  • 当查询请求到来时,Hudi根据要求的时间点,将增量日志回放到对应的基础文件快照版本,对外提供统一的数据视图。
  • 这部分由 HoodieTableFileSystemView 的 getLatestBaseFiles 等方法配合各个 FileSlice 来实现。

变更流支持

  • Hudi原生支持将数据表的变更记录(HoodieRecord)直接流式发送到Kafka等消息队列。
  • 下游的实时计算引擎可以直接消费这些变更事件,减少端到端延迟。
  • 通过编写自定义的 Kafka 生产者代码,结合 Hudi 的数据处理机制,将 HoodieRecord 批量推送到 Kafka。

Global Index 

  • Hudi 支持在写入时指定 indexing 字段,会自动提取这些字段的值建立索引。
  • 索引文件以 Hudi 表的形式单独存储,可以被高效查询,加速数据导出。
  • 相关功能由 HoodieIndex 的实现类如 HBaseIndex, BloomIndex 等完成。

相关文档

Overview | Apache Hudi

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894792.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OpenMMLab】MMagic入门

1. 概述 OpenMMLab 概述:OpenMMLab 是上海人工智能实验室的计算机视觉算法开源体系,是深度学习时代全球领域最全面、最具影响力的视觉算法开源项目,也是全球最大最全的开源计算机视觉算法库。特点: 丰富的算法库:已累…

第三天-128.最长连续序列

这道题我完全没有思路,求助gpt,让它给我思路: 这个问题要求找出数组中数字连续的最长序列,并且时间复杂度必须是 O(n),可以采用 哈希集(HashSet)来帮助我们高效地判断数字是否存在。以下是解决…

AI周报(10.13-10.19)

AI应用-清华校友用AI破解162个高数定理 加州理工、斯坦福和威大的研究人员提出了LeanAgent——一个终身学习,并能证明定理的AI智能体。LeanAgent会根据数学难度优化的学习轨迹课程,来提高学习策略。并且,它还有一个动态数据库,有效…

Ubuntu如何显示pcl版本

终端输入: apt-cache show libpcl-dev可以看到,Ubuntu20.04,下载的pcl,应该都是1.10版本的

百易云资产管理运营系统 ufile.api.php SQL注入漏洞复现

0x01 产品描述: 百易云资产管理运营系统,是专门针对企业不动产资产管理和运营需求而设计的一套综合解决方案。该系统能够覆盖资产的全生命周期管理,包括资产的登记、盘点、评估、处置等多个环节,同时提供强大的运营分析功能&#…

执行php artisan storage:link报错

php artisan storage:link Call to undefined function Illuminate\Filesystem\symlink() 参考文章 https://learnku.com/laravel/t/73729

基于web的酒店客房管理系统【附源码】

基于web的酒店客房管理系统(源码L文说明文档) 目录 4 系统设计 4.1 系统概述 4.2系统结构 4.3.数据库设计 4.3.1数据库实体 4.3.2数据库设计表 5系统详细实现 5.1 用户信息管理 5.2 会员信息管理 5.3 客房信息管理 5.…

基于SpringBoot健康生活助手微信小程序【附源码】

基于SpringBoot健康生活助手微信小程序 效果如下: 管理员登录界面 管理员主界面 用户管理界面 健康记录管理界面 健康目标管理界面 微信小程序首页界面 活动信息界面 留言反馈界面 研究背景 近年来,由于计算机技术和互联网技术的飞速发展,…

SAP PP之功能 动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试

SAP动态安全库存(Dynamic Safety stock)配置及计算逻辑说明测试 概念及计算逻辑: 动态安全库存(Dynamic Safety stock): 它根据平均的日需求(Average daily requirements)数量&am…

父子元素中只有子元素设置margin-bottom的问题

问题代码如下所示 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.div1 {background-color: red;width: 80px;height: 80px;border: 1px solid orange;}.div2 {bac…

STM32—FLASH闪存

1.FLASH简介 STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分&#xff0c;通过闪存存储器接口&#xff08;外设&#xff09;可以对程序存储器和选项字节进行擦除和编程 我们怎么操作这些存储器呢&#xff1f;这就需要用到这个闪存存储器接口了&#xff0c;闪…

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键

联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键 文章目录 联系拯救者Y9000P2022笔记本电脑进入BIOS快捷键1. 进入BIOS快捷键2. 快速进入BIOS设置界面3. 快速进入启动项选择界面 1. 进入BIOS快捷键 进入BIOS设置界面的快捷键为F2快速进入启动项选择界面的快捷键为F12 2. 快速进…

充电桩高压快充发展趋势

一、为什么要升级充电电压 1、新能源发展的困境 随着电动汽车加快发展&#xff0c;用户对电动汽车接受度不断提高&#xff0c;充电问题是影响电动车普及的重要因素&#xff0c;用户快速补能的需求强烈&#xff0c;例如节假日经常会遇到&#xff0c;高速充电1小时&#xff0c;…

jmeter中设置属性值的注意事项

jmeter中&#xff0c;可以在beanshell sampler, jsr223 sampler中对变量、属性等做一些操作&#xff0c;使得测试脚本变得更有关联性和一致性&#xff0c;以便完成更好的测试工作。 但是&#xff0c;在实际运用中&#xff0c;设置属性值经常会有些情况需要注意。不是我们以为的…

全能PDF工具集 | PDF Shaper Ultimate v14.6 便携版

软件简介 PDF Shaper是一款功能强大的PDF工具集&#xff0c;它提供了一系列用于处理PDF文档的工具。这款软件使用户能够轻松地转换、分割、合并、提取页面以及旋转和加密PDF文件。PDF Shaper的界面简洁直观&#xff0c;使得即使是新手用户也能快速上手。它支持广泛的功能&…

智能体网络时代即将来临,我们需要新的连接技术

备注&#xff1a;如果你也对这个话题感兴趣&#xff0c;欢迎联系我们&#xff1a; email: chgaoweigmail.com Discord: https://discord.gg/CDYdTPXXMB 官网: https://pi-unlimited.com 我们的方案代码已经开源&#xff0c;github&#xff1a;https://github.com/chgaowei/…

鸿蒙开发 四十四 ArkTs BuilderParam传递UI(二)

子组件多个BuilderParam&#xff0c;必须通过参数的方式传入&#xff0c;如果界面中有多个界面需要传递&#xff0c;可以定义多个尾随闭包&#xff0c;如图&#xff1a; 在自定义组件中调用&#xff1a; 在使用时候调用是作为参数传递给自定义的组件&#xff0c;参数是界面&…

KUKA外部自动配置(上)

通过外部PLC对机器人自动运行进程进行控制&#xff0c;其控制原理是&#xff1a;外部PLC通过外部自动运行接口向机器人控制系统发出机器人进程的相关信号&#xff08;如&#xff1a;运行许可、故障确认、程序启动等&#xff09;&#xff0c;机器人控制系统向外部PLC系统发送有关…

探索YOLO v11:3D人工智能的RGB-D视觉革命

哈喽&#xff0c;各位OAK中国的朋友们! 大家好我是张伯生 今天&#xff0c;我想给大家演示一下最新发布的Yolo V11神经网络 下面我将演示的一个程序是&#xff1a;同时在我们的OAK相机上跑Yolo V11和RGB-D&#xff0c;也就是彩色相机和深度图的一个叠加的一个效果 RGB-D和Yo…

uniapp uni.uploadFile errMsg: “uploadFile:fail

uniapp 上传后一直显示加载中 1.检查前后端上传有无问题 2.检查失败信息 await uni.uploadFile({url,filePath,name,formData,header,timeout: 30000000, // 自定义上传超时时间fail: async function(err) {$util.hideAll()// 失败// err 返回 {errMsg: "uploadFile:fai…