一. 什麼是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/
二. 發展歷史
2015 年:發表了增量處理的核心思想/原則(O'reilly 文章)
2016 年:由 Uber 創建併爲所有數據庫/關鍵業務提供支持
2017 年:由 Uber 開源,並支撐 100PB 數據湖
2018 年:吸引大量使用者,並因雲計算普及
2019 年:成爲 ASF 孵化項目,並增加更多平臺組件
2020 年:畢業成爲 Apache 頂級項目,社區、下載量、採用率增長超過 10 倍
2021 年:支持 Uber 500PB 數據湖,SQL DML、Flink 集成、索引、元服務器、緩存。
三. Hudi 功能和特性
- 快速upsert,可插入索引
- 以原子方式操作數據並具有回滾功能
- 寫入器之和查詢之間的快照隔離
- savepoint用戶數據恢復的保存點
- 管理文件大小,使用統計數據佈局
- 異步壓縮行列數據
- 具有時間線來追蹤元數據血統
- 通過聚類優化數據集
四. Hudi 基礎架構
通過DeltaStreammer、Flink、Spark等工具,將數據攝取到數據湖存儲。
支持 HDFS、S3、Azure、雲等等作爲數據湖的數據存儲。
支持不同查詢引擎,如:Spark、Flink、Presto、Hive、Impala、Aliyun DLA。
支持 spark、flink、map-reduce 等計算引擎對 hudi 的數據進行讀寫操作。
五. 使用公司
六. 小結
Apache Hudi 本身不存儲數據,僅僅管理數據,藉助外部存儲引擎存儲數據,比如HDFS、S3;
此外,Apache Hudi 也不分析數據,需要使用計算分析引擎,查詢和保存數據,比如Spark或Flink