一、架构设计

Hudi 的定位是一套完整的数据湖平台,最上层面向用户可以写各种各样的 SQL,Hudi 作为平台提供的各种能力,下面一层是基于 SQL 以及编程的 API,再下一层是 Hudi 的内核,包括索引、并发控制、表服务,后面社区要构建的基于 Lake Cache 构建缓存,文件格式是使用的开放 Parquet、ORC、HFile 存储格式,整个数据湖可以构建在各种云上。

二、阅读环境准备

三、Kernel

3.1. Table Format

Hudi 提供了两类表格式 COW 和 MOR,两种表格式会在数据的写入和查询性能上有一些不同。

3.2. Table

3.3. Timeline Server

3.4. Table Service

Table format 是当前流行的三种数据湖格式的基础属性,而 Hudi 从项目之初就一直朝着平台方向去演化,拥有比较完善的数据治理和 Table Service。Table Service 提供了一个强大的工具包,比如用户在写入的时候可以并发地优化文件的布局。

$Hudi\ is\ Not\ Just\ a\ Table\ Format\ !$

四、API/SQL

4.1. Catalog

五、User Interface

5.1. Platform Services

5.1.1. Metaserver

Hudi Metaserver 是 Hudi 的元数据服务,用于管理 Hudi 表的元数据信息,包括 Hudi 表的结构信息,分区信息、数据文件信息、以及表的版本信息等。Hudi Metaserver 可以在Hadoop集群上运行,通过 REST API 提供元数据服务。

5.2. Query Engines