一、Hudi是什么
Hudi(Hadoop Upserts anD Incrementals):用于管理分布式文件系统DFS上大型分析数据集存储。
Hudi是一种针对分析型业务的、扫描优化的数据存储抽象,它能够使DFS数据集在分钟级的时延内支持变更,也支持下游系统对这个数据集的增量处理。
二、Hudi功能
Hudi是在大数据存储上的一个数据集,可以将Change Logs通过upsert的方式合并进Hudi
Hudi对上可以暴露成一个普通Hive或spark表,通过API或命令行可以获取到增量修改的信息,继续供下游消费
Hudi保管修改历史,可以做时间旅行或回退
Hudi内部有主键到文件级的索引,默认是记录到文件的布隆过滤器。
三、Hudi特性
Hudi使得用户能在Hadoop兼容的存储之上存储大量数据,同事它还提供两种原语,不仅可以批处理,还可以在数据湖上进行流处理
update/delete记录:Hudi使用细粒度的文件/记录级别索引来支持update/delete记录,同时还提供写操作的事务保证。查询会处理最后一个提交的快照,并基于此输出结果。
变更流:Hudi对获取数据变更提供了一流的支持:可以从给定的时间点获取给定表中已updated/inserted/deleted的所有记录的增量流,并解锁新的查询类别。
四、Hudi基础架构
1.通过DeltaStreammer、Flink、Spark等工具,将数据读取到数据湖存储,可使用HDFS作为数据湖的数据存储
2.基于HDFS可以构建Hudi的数据湖
3.Hudi提供统一的访问spark数据源和flink数据源
4.外部通过不同引擎,如:spark、flink、presto、hive、impala、Aliyun DLA、AWS Redshit访问接口
四、历史节点
五、新架构:湖仓一体
Hudi对于flink友好支持以后,可以使用Flink+Hudi构建实时湖仓一体架构,数据的时效性可以到分钟级,能很好的满足业务准实时数仓的需求
通过湖仓一体、流批一体,准实时场景做到了:数据同源、同计算引擎、同存储、同计算口径