一、简介
Hudi是Uber公司开源的数据湖架构,它是围绕数据库内核构建的流式数据湖。
Hudi设计文件存储和管理,数据模型有2种:COW和MOR
基本使用:
- hudi底层的数据可以存储到hdfs
- hudi的数据文件是parquet列式存储
- hudi可以使用spark/flink 来消费 kafka消息队列的数据
- hudi先将数据处理为 hudi 格式的 row tables (原始表),然后原始表被 Incremental ETL (增量处理)生成一张 hudi 格式的 derived tables(派生表)
- hudi 支持的查询引擎有:hive、impala、spark等
支持 spark、flink、map-reduce 等计算引擎继续对 hudi 的数据进行再次加工处理
二、数据存储结构
Hudi表的数据文件,一般使用HDFS进行存储。在HDFS种,一个Hudi表的存储文件分为两类。
- .hoodie文件夹:存储文件合并操作的日志文件(每一次数据操作都会生成一个文件,这些文件会被陆续合并)
- amricas和asia相关路径:存储实际的数据文件,按分区存储,分区的路径key可以指定
- Hudi把随着时间流逝,对表的一系列CRUD操作叫做Timeline(Timeline来解决因为延迟造成的数据时序问题)