Hudi学习笔记(一)

大数据发展背景
  • Hudi用于管理分布式文件系统上大型分析数据集存储,支持Spark和Flink整合。它能够是DFS数据集在分钟级时延内支持变更,也支持下游系统对这个数据集的增量处理。
学习目标
  • 什么是数据湖
  • 为什么使用数据湖
  • Hudi基本功能
  • 如何编译Hudi源码
  • Hudi与Spark集成管理
  • Hudi中COW和ROW不同类型表功能
  • Hudi的三种查询方式
  • Hudi中不同表数据写入流程
数据仓库

数据仓库是一个用于存储、分析、报告的数据系统。目的是构建面向分析的集成化数据环境,分析结果为企业提供决策支持。

  • 数据仓库本身不生产数据,也不消费数据
  • 企业根据业务需求分成不同层次,数据层(ODS)\仓库层(DW)\应用层(DA)
数据湖
  • 数据湖是一个集中式的数据存储库,用于存储大量的原始数据。
  • 原始格式存储数据的系统或存储库,可以包括结构化数据、半结构化数据、非结构化数据和二进制数据。
  • 查询应用数据的时候才会开始分析数据需求和应用架构,用于报告、可视化、高级分析和机器学习等任务。

数据仓库是优化的数据库,用于分析业务的关系数据。数据湖数据来自关系数据和非关系数据。

特性数据仓库数据湖
数据分析业务的关系数据关系数据和非关系数据
Schame在写入数据仓库读取schema
性价比更快查询较高存储成本(空间代替时间,冗余存储)更快查询只需较低成本
数据质量便于管理难以监控
用户业务分析师数据科学家、数据开发人员和业务分析师
分析批处理、BI机器学习、预测分析、数据发现
数据湖框架
  • delta Lake
    支持update/delete/merge
  • Iceberg
  • Hudi(Hadoop upsert and incrementals)
    fast upsert/delete/compaction功能,管理存储在Hdfs上的数据。支持快速upsert/delete。
Hudi功能
  • Hudi是在大数据存储上的一个数据集,可以将Change Logs通过upsert的方式合并进hudi。
  • 可以暴露成普通的Hive或Spark表,通过API或命令行可以获取增量修改的信息,供下游消费。
  • Hudi保管修改历史,可以时间旅行或回退。
  • 内部有主键到文件级的索引,默认是记录到文件的布隆过滤器。
  • 提供了两种方式的原语言:
    -Update/delete记录:使用细粒度的文件/记录级别索引支持update/delete记录,同时保证写操作的事务保证,查询会处理最后一个提交的快照,并基于此输出结果。
    -变更流:Hudi对过去数据变更提供了一流的支持:可以从给定时间点获取给定表中update/insert/deleted的所有记录的增量流,并解锁新的查询姿势。
Hudi基础架构
  • 将数据摄取到数据湖存储,使用HDFS作为数据湖的数据存储。
  • 基于HDFS构建Hudi的数据湖。
  • Hudi提供统一的访问Spark和Flink数据源
  • 外部通过不同引擎访问接口。
    Hudi架构
Hudi版本
  • Hudi 0.5版本
    支持Spark,将数据批量和流式写入

  • Hudi 0.6版本
    逐渐添加新特性和功能

  • Hudi 0.7.0版本
    Flink计算引擎成熟,Flink1.12

  • Hudi 0.8
    支持Flink SQL client操作Hudi数据

  • Hudi 0.9
    重构与Flink的集成,支持CDC的能力,数据流式入湖。流式查询Hudi数据。

  • Hudi 0.10
    支持更多的数据源:如Mysql和Kafka

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

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

相关文章

抖音账号矩阵系统开发

技术自研框架开发背景: 抖音账号矩阵系统是一种基于数据分析和管理的全新平台,能够帮助用户更好地管理、扩展和营销抖音账号。 部分源码分享:计算分页$active_list_all $Video_model->getCount($where);$page_libs newLibs_Pagination_…

PyQtGraph 之PlotCurveItem 详解

PyQtGraph 之PlotCurveItem 详解 PlotCurveItem 是 PyQtGraph 中用于显示曲线的图形项。以下是 PlotCurveItem 的主要参数和属性: 创建 PlotCurveItem 对象 import pyqtgraph as pg# 创建一个 PlotCurveItem curve pg.PlotCurveItem()常用的参数和属性 setData(…

02 分解质因子

一、数n的质因子分解 题目描述&#xff1a; 输入一个数n&#xff08;n<10^6&#xff09;,将数n分解质因数&#xff0c;并按照质因数从小到大的顺序输出每个质因数的底数和指数。 输入 5 输出 5 1 输入 10 输出 2 1 5 1 朴素解法&#xff1a; 首先求出1~n的所有质数…

【数据结构】数据结构初识

前言&#xff1a; 数据结构是计算存储&#xff0c;组织数据的方式。数据结构是指相互间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。 Data Structure Vi…

BPM、低代码和人工智能:实现灵活、创新与转型的关键结合

随着零售业格局的不断演变&#xff0c;零售商正被迫在一个日益活跃、竞争日益激烈的客户驱动型市场中展开竞争。随着互联网上产品信息和评论的出现&#xff0c;消费者的态度发生了巨大的变化——购物者不再依赖销售人员来获取信息。他们现在知道的和许多零售销售人员一样多&…

uniapp 用css animation做的鲤鱼跃龙门小游戏

第一次做这种小游戏&#xff0c;刚开始任务下来我心里是没底的&#xff0c;因为我就一个‘拍黄片’的&#xff0c;我那会玩前端的动画啊&#xff0c;后面尝试写了半天&#xff0c;当即我就给我领导说&#xff0c;你把我工资加上去&#xff0c;我一个星期给你做出来&#xff0c;…

人机共融时代,节卡机器人如何持续“点亮智慧火花”?

近年来&#xff0c;协作机器人产品发展势头十分强劲&#xff0c;尤其在工业生产方面&#xff0c;由于更为灵活便捷&#xff0c;能够实现人机安全协作&#xff0c;已形成较为广泛的应用。 值得一提的是&#xff0c;协作机器人在消费场景的应用潜力也在逐步释放&#xff0c;比如…

GroupMixFormer:Advancing Vision Transformers with Group-Mix Attention论文学习笔记

论文地址&#xff1a;https://arxiv.org/pdf/2311.15157.pdf 代码地址&#xff1a;https://github.com/AILab-CVC/GroupMixFormer 摘要&#xff1a;ViT 已被证明可以通过使用多头自注意力 &#xff08;MHSA&#xff09; 对远程依赖关系进行建模来增强视觉识别&#xff0c;这通常…

C++ 之LeetCode刷题记录(十七)

&#x1f604;&#x1f60a;&#x1f606;&#x1f603;&#x1f604;&#x1f60a;&#x1f606;&#x1f603; 开始cpp刷题之旅。 依旧是追求耗时0s的一天。 101. 对称二叉树 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&…

【Chrome】浏览器怎么清除缓存并强制刷新

文章目录 1、正常刷新&#xff1a;正常刷新网页&#xff0c;网页有缓存则采用缓存。 F5 或 刷新键2、强制刷新&#xff1a;忽略缓存刷新&#xff0c;重新下载资源不用缓存。 CtrlF5 或 ShiftF5 或 CtrlShiftR3、在浏览器的设置里面清除所有数据

Tomcat Notes: Web Security, HTTPS In Tomcat

This is a personal study notes of Apache Tomcat. Below are main reference material. - YouTube Apache Tomcat Full Tutorial&#xff0c;owed by Alpha Brains Courses. https://www.youtube.com/watch?vrElJIPRw5iM&t801s 1、Overview2、Two Levels Of Web Securi…

《深入解析Java虚拟机:从JVM体系结构到垃圾回收算法》

文章目录 JVM体系结构JVM的组成 类加载器Class Loader类加载器的作用双亲委派机制JVM自带三个类加载器Bootstrap ClassLoader-根加载器ExtClassLoader-扩展加载器AppClassLoader-应用类加载器 Java历史-沙箱安全机制沙箱概念沙箱的作用本地代码和远程代码沙箱安全机制模型JDK1 …

js执行字符串代码

js将字符串作为代码执行 一、适用场景二、具体实现1. eval2. new Function() 三、两者差异 一、适用场景 在业务中我们很少去将一个字符串作为代码执行&#xff0c;因为出于安全考虑&#xff0c;尽量不要直接在客户端执行用户输入的代码。但是在造轮子或者框架开发中&#xff…

鸿蒙常用UI效果及一些处理方式总结

前言&#xff1a; DevEco Studio版本&#xff1a;4.0.0.600 详细使用介绍 1、Text的一些常用设置 Text(this.message).fontSize(50)//字体大小.fontColor(Color.White)//字体颜色.fontWeight(FontWeight.Bold)//字体加粗.backgroundColor(Color.Black)//背景颜色.fontStyle(…

将Python打包为exe+inno setup将exe程序封装成向导安装程序

为什么要打包&#xff1f; Python脚本不能在没有安装Python的机器上运行。如果写了一个脚本&#xff0c;想分享给其他人使用&#xff0c;可她电脑又没有装Python。如果将脚本打包成exe文件&#xff0c;即使她的电脑上没有安装Python解释器&#xff0c;这个exe程序也能在上面运行…

简单易懂带你入门Spring框架,循序渐进,帮助你理解IOC思想---(一)入门实验一,教你如何使用spring框架

目录 1.1 、Spring概述 1.2 、Spring家族 1.3 、Spring Framework 1.3.1 、Spring Framework特性 1.3.2 、Spring Framework五大功能模块 IOC容器 IOC思想 IOC容器在Spring中的实现 基于XML管理bean 实验一&#xff1a;入门案例 如何获取bean 1.1 、Spring概述 官网…

爬虫笔记(二):实战58二手房

第一&#xff1a;给大家推荐一个爬虫的网课哈&#xff0c;码起来 第二&#xff1a;今夜主题&#xff1a;通过xpath爬取58二手房的title信息&#xff0c;也就是标红的位置~ 第三&#xff1a;先分析一波title所在的位置 打开按下f12打开抓包工具&#xff0c;即可看到网站的源码…

代码随想录算法训练营29期|day30 任务以及具体安排

332.重新安排行程 class Solution {private LinkedList<String> res;private LinkedList<String> path new LinkedList<>();public List<String> findItinerary(List<List<String>> tickets) {Collections.sort(tickets, (a, b) -> a.…

【必剪】拼字怎么使用?哪些素材能使用拼字?

1-1 点击需要编辑文字&#xff0c;在给定的人物中选择 其中一个&#xff0c;选择【拼字】选项&#xff0c;以下的字母表 的字母读音&#xff0c;是当前人物在他的鬼畜原版里的 全部读音&#xff0c;你可以打出自己专属独特的语句 ! 1-2 在字母表中继续寻找想要的读音&#xff…

利用STM32CubeMX和Keil模拟器,3天入门FreeRTOS(4.0) —— 动态创建队列

前言 &#xff08;1&#xff09;FreeRTOS是我一天过完的&#xff0c;由此回忆并且记录一下。个人认为&#xff0c;如果只是入门&#xff0c;利用STM32CubeMX是一个非常好的选择。学习完本系列课程之后&#xff0c;再去学习网上的一些其他课程也许会简单很多。 &#xff08;2&am…