目录
0. 相关文章链接
1. 什么是Hudi
Apache Hudi(发音“hoodie”)是下一代流数据湖平台。Apache Hudi将核心仓库和数据库功能直接带到数据湖中。Hudi提供了表,事务,高效upserts /删除,高级索引,流式摄取服务,数据群集/压缩优化以及并发,同时保持数据以开源文件格式保留。
Apache Hudi不仅用于流媒体工作负载,还允许创建有效的增量批量流水线。包括 Uber, Amazon, ByteDance, Robinhood等以及更多的公司都在使用Hudi改造他们的生产数据湖泊。
Apache Hudi可以轻松使用在任何云存储平台上。Hudi的高级性能优化,使用任何流行的查询引擎进行分析工作负载,包括Apache Spark,Flink,Presto,Trino,Hive等。
- Hudi(Hadoop Upserts anD Incrementals缩写):用于管理分布式文件系统DFS上大型分析数据集存储。
- 一言以蔽之,Hudi是一种针对分析型业务的、扫描优化的数据存储抽象,它能够使DFS数据集在分钟级的时延内支持变更,也支持下游系统对这个数据集的增量处理。
- 官网地址:https://hudi.apache.org/
2. Hudi功能
- Hudi是在大数据存储上的一个数据集,可以将Change Logs通过upsert的方式合并进Hudi;
- Hudi 对上可以暴露成一个普通Hive或Spark表,通过API或命令行可以获取到增量修改的信息,继续供下游消费;
- Hudi 保管修改历史,可以做时间旅行或回退;
- Hudi 内部有主键到文件级的索引,默认是记录到文件的布隆过滤器;
3. Hudi特性
- Apache Hudi使得用户能在Hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,不仅可以批处理,还可以在数据湖上进行流处理。
- Update/Delete记录:Hudi使用细粒度的文件/记录级别索引来支持Update/Delete记录,同时还提供写操作的事务保证。查询会处理最后一个提交的快照,并基于此输出结果。
- 变更流:Hudi对获取数据变更提供了一流的支持:可以从给定的时间点获取给定表中已updated/inserted/deleted的所有记录的增量流,并解锁新的查询姿势(类别)。
总结:
- 快速upsert,可插入索引
- 以原子方式操作数据并具有回滚功能
- 写入器之和查询之间的快照隔离
- savepoint用户数据恢复的保存点
- 管理文件大小,使用统计数据布局
- 异步压缩行列数据
- 具有时间线来追踪元数据血统
- 通过聚类优化数据集
4. Hudi在大数据中的位置
Hudi将流处理引入大数据, 提供新鲜数据,同时比传统批处理效率高一个数据量级。
5. Hudi的基础架构
- 通过DeltaStreammer、Flink、Spark等工具,将数据摄取到数据湖存储,可使用HDFS作为数据湖的数据存储;
- 基于HDFS可以构建Hudi的数据湖;
- Hudi提供统一的访问Spark数据源和Flink数据源;
- 外部通过不同引擎,如:Spark、Flink、Presto、Hive、Impala、Aliyun DLA、AWS Redshit访问接口;
6. 使用公司
国内很多大公司,都在使用Hudi,构建数据湖,并且与大数据仓库整合,搭建湖仓一体化平台。
7. 阿里云基于Hudi构建Lakehouse实
B站分享链接:https://www.bilibili.com/video/BV19M4y1V7S6
9. Hudi各版本发布时间
github官网地址:Tags · apache/hudi · GitHub
Hudi各历史版本下载地址和特性说明:Download | Apache Hudi
注:Hudi系列博文为通过对Hudi官网学习记录所写,其中有加入个人理解,如有不足,请各位读者谅解☺☺☺
注:其他相关文章链接由此进(包括Hudi在内的各数据湖相关博文) -> 数据湖 文章汇总