当前位置:网站首页>Hudi 数据管理和存储概述
Hudi 数据管理和存储概述
2022-07-03 09:00:00 【小胡今天有变强吗】
数据管理
**Hudi 是如何管理数据? **
使用表Table形式组织数据,并且每张表中数据类 似Hive分区表,按照分区字段划分数据到不同目录中, 每条数据有主键PrimaryKey,标识数据唯一性。
Hudi 数据管理
Hudi表的数据文件,可以使用操作系统的文件系统存储,也可以使用HDFS这种分布式的文件系统存储。为了分 析性能和数据的可靠性,一般使用HDFS进行存储。以HDFS存储来看,一个Hudi表的存储文件分为两类。
.hoodie
(1).hoodie 文件:由于CRUD的零散性,每一次的操作都会生成一个文件,这些小文件越来越多后,会严重影响HDFS的 性能,Hudi设计了一套文件合并机制。 .hoodie文件夹中存放了对应的文件合并操作相关的日志文件。
Hudi把随着时间流逝,对表的一系列CRUD操作叫做Timeline,Timeline中某一次的操作,叫做Instant。
- Instant Action,记录本次操作是一次数据提交(COMMITS),还是文件合并(COMPACTION),或者是文件清理(CLEANS);
- Instant Time,本次操作发生的时间;
- State,操作的状态,发起(REQUESTED),进行中(INFLIGHT),还是已完成(COMPLETED);
amricas和asia
(2)amricas和asia相关的路径是实际的数据文件,按分区存储,分区的路径key是可以指定的。
- Hudi真实的数据文件使用Parquet文件格式存储;
- 其中包含一个metadata元数据文件和数据文件parquet列式存储。
- Hudi为了实现数据的CRUD,需要能够唯一标识一条记录,Hudi将把数据集中的唯一字段(record key ) + 数据所在 分区 (partitionPath) 联合起来当做数据的唯一键。
Hudi存储概述
Hudi数据集的组织目录结构与Hive表示非常相似,一份数据集对应这一个根目录。数据集被打散为多个分区,分区 字段以文件夹形式存在,该文件夹包含该分区的所有文件。
在根目录下,每个分区都有唯一的分区路径,每个分区数据存储在多个文件中。
每个文件都有惟一的fileId和生成文件的commit所标识。如果发生更新操作时,多个文件共享相同的fileId,但会 有不同的commit。
Metadata 元数据
- 以时间轴(timeline)的形式将数据集上的各项操作元数据维护起来,以支持数据集的瞬态视图,这部分元数据存 储于根目录下的元数据目录。一共有三种类型的元数据:
- Commits:一个单独的commit包含对数据集之上一批数据的一次原子写入操作的相关信息。我们用单调递增的时间戳来标识 commits,标定的是一次写入操作的开始。
- Cleans:用于清除数据集中不再被查询所用到的旧版本文件的后台活动。
- Compactions:用于协调Hudi内部的数据结构差异的后台活动。例如,将更新操作由基于行存的日志文件归集到列存数据上。
Index 索引
- Hudi维护着一个索引,以支持在记录key存在情况下,将新记录的key快速映射到对应的fileId。
- Bloom filter:存储于数据文件页脚。默认选项,不依赖外部系统实现。数据和索引始终保持一致。
- Apache HBase :可高效查找一小批key。在索引标记期间,此选项可能快几秒钟。
Data 数据
Hudi以两种不同的存储格式存储所有摄取的数据,用户可选择满足下列条件的任意数据格式:
读优化的列存格式(ROFormat): 缺省值为Apache Parquet;
写优化的行存格式(WOFormat): 缺省值为Apache Avro
参考资料:
边栏推荐
- 【Kotlin疑惑】在Kotlin类中重载一个算术运算符,并把该运算符声明为扩展函数会发生什么?
- 2022-2-14 learning xiangniuke project - generate verification code
- [point cloud processing paper crazy reading cutting-edge version 12] - adaptive graph revolution for point cloud analysis
- 【点云处理之论文狂读经典版11】—— Mining Point Cloud Local Structures by Kernel Correlation and Graph Pooling
- Recommend a low code open source project of yyds
- Introduction to the basic application and skills of QT
- 【点云处理之论文狂读经典版12】—— FoldingNet: Point Cloud Auto-encoder via Deep Grid Deformation
- 2022-2-13 learning the imitation Niuke project - home page of the development community
- [point cloud processing paper crazy reading classic version 10] - pointcnn: revolution on x-transformed points
- LeetCode 871. Minimum refueling times
猜你喜欢
Win10 quick screenshot
2022-1-6 Niuke net brush sword finger offer
Hudi 集成 Spark 数据分析示例(含代码流程与测试结果)
[point cloud processing paper crazy reading classic version 9] - pointwise revolutionary neural networks
LeetCode 324. Swing sort II
LeetCode 535. Encryption and decryption of tinyurl
LeetCode 241. Design priorities for operational expressions
Hudi 快速体验使用(含操作详细步骤及截图)
[point cloud processing paper crazy reading classic version 8] - o-cnn: octree based revolutionary neural networks for 3D shape analysis
即时通讯IM,是时代进步的逆流?看看JNPF怎么说
随机推荐
【点云处理之论文狂读前沿版12】—— Adaptive Graph Convolution for Point Cloud Analysis
Linxu learning (4) -- Yum and apt commands
LeetCode 715. Range 模块
AcWing 785. Quick sort (template)
In the digital transformation, what problems will occur in enterprise equipment management? Jnpf may be the "optimal solution"
C language programming specification
Low code momentum, this information management system development artifact, you deserve it!
Uc/os self-study from 0
[point cloud processing paper crazy reading classic version 11] - mining point cloud local structures by kernel correlation and graph pooling
Install third-party libraries such as Jieba under Anaconda pytorch
On a un nom en commun, maître XX.
With low code prospect, jnpf is flexible and easy to use, and uses intelligence to define a new office mode
【Kotlin学习】运算符重载及其他约定——重载算术运算符、比较运算符、集合与区间的约定
Explanation of the answers to the three questions
Temper cattle ranking problem
LeetCode 1089. 复写零
Construction of simple database learning environment
LeetCode 75. Color classification
Jenkins learning (I) -- Jenkins installation
[point cloud processing paper crazy reading classic version 13] - adaptive graph revolutionary neural networks