From 4a99964dd709b5282a646e4f22c1162803537d44 Mon Sep 17 00:00:00 2001 From: zeekling Date: Wed, 19 Jul 2023 23:45:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0hudi=E7=AE=80=E4=BB=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hudi/README.md | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/hudi/README.md b/hudi/README.md index ac743d9..191bd5d 100644 --- a/hudi/README.md +++ b/hudi/README.md @@ -1,5 +1,5 @@ -# Hudi 简介 +# 1. Hudi 简介 Apache Hudi将核心仓库和数据库功能直接带到数据湖中。Hudi提供了表、事务、高效upserts/删除、高级索引、流式摄取 服务、数据群集/压缩优化以及并发,同时保持数据以开源文件格式保留。 @@ -9,7 +9,7 @@ Hudi是`Hadoop Upserts and Incrementals`缩写,用于管理分布式文件系 处理。 -## Hudi特性和功能 +## 1.1 Hudi特性和功能 1. 支持快速Upsert以及可插拔的索引。 2. 支持原子方式操作,且支持回滚。 @@ -21,7 +21,7 @@ Hudi是`Hadoop Upserts and Incrementals`缩写,用于管理分布式文件系 8. 通过聚类优化数据集。 -## Hudi 基础架构 +## 1.2 Hudi 基础架构 ![pic](https://pan.zeekling.cn/flink/hudi/hudi_00001.png) @@ -32,3 +32,36 @@ Hudi是`Hadoop Upserts and Incrementals`缩写,用于管理分布式文件系 - 支持 spark、flink、map-reduce 等计算引擎对 hudi 的数据进行读写操作。 +## 1.3 Hudi 功能 + +- Hudi是在大数据存储上的一个数据集,可以将Change Logs 通过upsert方式合并到Hudi。 +- Hudi对上可以暴露成一个普通的Hive或者Spark表,通过API或者命令行的方式可以获取到增量修改信息,继续供下游消费。 +- Hudi保管修改历史,可以做到时间旅行以及回退。 +- Hudi内部有主键到文件级别的索引,默认记录文件的是布隆过滤器。 + + +## 1.4 Hudi的特性 + +Apache Hudi支持在Hadoop兼容的存储之上存储大量数据,不仅可以批处理,还可以在数据湖上进行流处理。 + +- Update/Delete 记录:Hudi 使用细粒度的文件/记录级别索引来支持 Update/Delete +记录,同时还提供写操作的事务保证。查询会处理后一个提交的快照,并基于此输出结果。 +- 变更流:Hudi 对获取数据变更提供了的支持,可以从给定的 时间点 获取给定表中已 updated / inserted / deleted 的所有记录的增量流,并解锁新的查询姿势(类别)。 +- Apache Hudi 本身不存储数据,仅仅管理数据。 +- Apache Hudi 也不分析数据,需要使用计算分析引擎,查询和保存数据,比如 Spark 或 Flink; +- 使用 Hudi 时,加载 jar 包,底层调用 API,所以需要依据使用大数据框架版本,编译 Hudi 源码,获取对应依赖jar包。 + +![pic](https://pan.zeekling.cn/flink/hudi/hudi_0002.jpg) + +# 2. Hudi 数据管理 + +## 2.1 Hudi 表数据结构 + +Hudi 表的数据文件一般使用 HDFS 进行存储。从文件路径和类型来讲,Hudi表的存储文件分为两类。 +- .hoodie 文件, +- amricas 和 asia 相关的路径是 实际的数据文件,按分区存储,分区的路径 key 是可以指定的。 + +### .hoodie文件 + + +