Hudi基础知识讲解

Hudi概述

Hudi是一种数据湖的存储格式,在Hadoop文件系统之上提供了更新数据和删除数据的能力以及消费变化数据的能力。支持多种计算引擎,提供IUD接口,在 HDFS的数据集上提供了插入更新和增量拉取的流原语。

基础架构图

在这里插入图片描述

Hudi特性

  • ACID事务能力,支持实时入湖和批量入湖。
  • 多种视图能力(读优化视图/增量视图/实时视图),支持快速数据分析。
  • MVCC设计,支持数据版本回溯。
  • 自动管理文件大小和布局,以优化查询性能准实时摄取,为查询提供最新数据。
  • 支持并发读写,基于snapshot的隔离机制实现写入时可读取。
  • 支持原地转表,将存量的历史表转换为Hudi数据集。

Hudi关键技术和优势

  • 可插拔索引机制:Hudi提供多种索引机制,可以快速完成对海量数据的更新和删除操作。
  • 良好的生态支持:Hudi支持多种数据引擎接入包括Hive、Spark、HetuEngine、Flink。

Hudi支持两种表类型

Copy On Write

写时复制表也简称cow表,使用parquet文件存储数据,内部的更新操作需要通过重写原始parquet文件完成。

  • 优点 读取时,只读取对应分区的一个数据文件即可,较为高效
  • 缺点 数据写入的时候,需要复制一个先前的副本再在其基础上生成新的数据文件,这个过程比较耗时。且由于耗时,读请求读取到的数据相对就会滞后

Merge On Read

读时合并表也简称mor表,使用列格式parquet和行格式Avro两种方式混合存储数据。其中parquet格式文件用于存储基础数据,Avro格式文件(也可叫做log文件)用于存储增量数据。

  • 优点 由于写入数据先写delta log,且delta log较小,所以写入成本较低
  • 缺点 需要定期合并整理compact,否则碎片文件较多。读取性能较差,因为需要将delta log 和 老数据文件合并

Hudi支持三种视图,针对不同场景提供相应的读能力

Snapshot View

实时视图:该视图提供当前hudi表最新的快照数据,即一旦有最新的数据写入hudi表,通过该视图就可以查出刚写入的新数据。
cow表和mor均支持这种视图能力。

Incremental View

增量视图:该视图提供增量查询的能力,可以查询指定COMMIT之后的增量数据,可用于快速拉取增量数据。
cow表支持该种视图能力, mor表也可以支持该视图,但是一旦mor表完成compact操作其增量视图能力消失。

Read Optimized View

读优化视图: 该视图只会提供最新版本的parquet文件中存储的数据。

该视图在cow表和mor表上表现不同:

对于cow表,该视图能力和实时视图能力是一样的(cow表只用parquet文件存数据)。

对于mor表,仅访问基本文件,提供给定文件片自上次执行compact操作以来的数据, 可简单理解为该视图只会提供mor表parquet文件存储的数据,log文件里面的数据将被忽略。 该视图数据并不一定是最新的,但是mor表一旦完成compact操作,增量log数据被合入到了base数据里面,这个时候该视图和实时视图能力一样。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用户案例 | Apache DolphinScheduler 离线调度在自如多业务场景下的应用与实践

用户案例 | 自如 随着自如业务的快速发展,不断增长的调度任务和历史逾万的存量任务对平台稳定性提出了更高的要求。同时,众多非专业开发人员也需要一种更为“亲民”的调度平台使用体验。 如何满足这些日渐凸显的需求对自如大数据平台的开发团队来说&am…

2023年最全最新的学习课程合集

WEB前端入门:从零开始做网站。 完成所有课堂练习就可以做出自己的作品,并掌握数据库和了解开源项目。 这些课程涵盖了HTML、CSS和JavaScript等前端技术,以及与之相关的设计原则和最佳实践。 前端课程的目标是培养学生在网页开发方面的技能…

冒泡排序模拟实现qsort()函数

冒泡排序模拟实现qsort函数 前言1. 分析2. 解决一,如何接受不同数据3. 解决二,如何实现不同数据的比较4. 解决三,如何实现不同数据交换5. 模拟bubble_sort()函数排序整型所有代码实现6. 结构体排序实现7. 结尾 前言 要…

应急管理大屏助力暴雨天气下的水灾防范

随着气候变化和城市化进程的加剧,暴雨天气引发的水灾风险日益凸显。在面对这种自然灾害时,如何高效、及时地应对、减轻损失成为了当务之急。水灾应急管理平台的可视化大屏为相关部门和决策者提供了实时、全面的信息展示和决策支持,大大提升了…

逻辑(css)-背景网格制作(linear-gradient)

目录 linear-gradient需求实现 linear-gradient 语法:linear-gradient([direction], color-stop1, color-stop2, ...) 第一个参数为(可选)方向参数,可以是度数也可以是方位名词,方向与读书的关系如下: 角度方位文字说明示例0degto top从下…

左神算法之中级提升(2)

目录 [案例1】 【题目描述】 【思路解析1】 【思路解析2】 【代码实现】 【案例2】 【题目描述】 【思路解析】 【代码实现】 【案例3】 【题目描述】 【思路解析】 【代码实现】 【案例4】 【题目描述】今日头条2018面试题 第四题 【输入描述】 【思路解析】 【…

零拷贝是如何实现的

零拷贝是如何实现的 零拷贝(Zero-copy)是一种优化技术,用于在数据传输过程中减少数据的拷贝次数,从而提高数据传输的效率和性能。传统的数据传输涉及多次内存拷贝操作,而零拷贝通过减少或避免这些拷贝操作来实现性能优…

​LeetCode解法汇总​979. 在二叉树中分配硬币

目录链接: 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目: https://github.com/September26/java-algorithms 原题链接:力扣 描述: 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对应…

VMware ESXi 7.0 U3n macOS Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 7.0 U3n macOS Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) ESXi 7 U3 标准版集成 Intel 网卡、USB 网卡 和 NVMe 驱动 请访问原文链接:https://sysin.org/blog/vmware-esxi-7-u3-sysin/,查看最新版。原创作品&#x…

力扣 55. 跳跃游戏

题目来源:https://leetcode.cn/problems/jump-game/description/ C题解(来源代码随想录):不断更新可覆盖范围,能达到最后一个元素即返回true,否则返回false。 class Solution { public:bool canJump(vecto…

中国移动光猫设置桥接

网上教程五花八门,有些坑有些行,我试成功了,记录一下方法。 一、流程简述 1. 使用超级管理员账号登录中国移动光猫,设置桥接,并重启 2. 用网线连接路由器和光猫,登录路由器,设置宽带拨号&…

【SAP UI5 控件学习】DAY04 Input组Part IV 完结List组Part I

1.时间选择器Time Picker 和Data Picker类似,Time Picker允许用户选择相应的时间。 它有以下一些比较常用的属性。 value用于显示Input中的时间的值,这个属性只能接受字符串的值,如果是UI5.getInstance()获取到的时间,需要转化成…