數(shù)據(jù)湖 Hudi | 致廣大數(shù)據(jù)湖用戶的一封信
隨著數(shù)據(jù)湖概念的流行,涌現(xiàn)了很多關(guān)于Apache Hudi的文章,但很多文章在闡述時(shí)僅僅將Hudi當(dāng)做一種表格式,這引發(fā)了社區(qū)的思考,思考Hudi的愿景到底是什么,并且在Hudi社區(qū)發(fā)起了討論重新審視Hudi。
我們更傾向于將Hudi當(dāng)做一個(gè)數(shù)據(jù)湖平臺(tái),不僅包含表格式,還包含支持事務(wù)的存儲(chǔ)層?;?strong style="font-family: Optima-Regular, Optima, PingFangSC-light, PingFangTC-light, "PingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;font-size: 15px;letter-spacing: 1.5px;text-align: left;white-space: normal;-webkit-tap-highlight-color: transparent;color: rgb(15, 76, 129);line-height: 1.75;">數(shù)據(jù)湖平臺(tái)的新愿景重新設(shè)計(jì)了Hudi的生態(tài)架構(gòu)圖。

至此Hudi已經(jīng)提供了如下能力:
?表格式:存儲(chǔ)表Schema;Metadata表,存儲(chǔ)文件列表,未來(lái)該表還會(huì)擴(kuò)展存儲(chǔ)列信息及其他助于寫(xiě)入和查詢優(yōu)化的信息,更多詳情請(qǐng)參考 RFC-27 Data skipping index to improve query performance?輔助元數(shù)據(jù):bloom filters,記錄級(jí)別索引,bitmap/interval tree和其他更高級(jí)的基于硬盤(pán)的數(shù)據(jù)結(jié)構(gòu)。?并發(fā)控制:支持MVCC(將寫(xiě)入按時(shí)間排序序列化至日志中),現(xiàn)在0.8.0版本還支持批處理合并工作負(fù)載的OCC樂(lè)觀并發(fā)控制,未來(lái)計(jì)劃多表和完全非阻塞寫(xiě)入,更多詳情請(qǐng)參考RFC - 22 : Snapshot Isolation using Optimistic Concurrency Control for multi-writers?更新/刪除:這是Hudi提供的關(guān)鍵能力,支持主鍵/唯一鍵約束,將來(lái)支持跨表事務(wù)后還可支持外鍵。?表服務(wù):現(xiàn)在Hudi pipeline是自管理的,如文件大小、自動(dòng)清理、壓縮、聚簇?cái)?shù)據(jù)、冷啟動(dòng)數(shù)據(jù)。所有的服務(wù)絕多數(shù)情況都可以獨(dú)立運(yùn)行而不阻塞其他服務(wù)。?數(shù)據(jù)服務(wù):提供實(shí)用工具程序Deltastreamer,提供更高級(jí)別的功能,如攝取DFS數(shù)據(jù)源,Kafka源和即將推出的Pulsar數(shù)據(jù)源等等),增量ETL支持,重復(fù)數(shù)據(jù)刪除,提交回調(diào),即將到來(lái)的預(yù)提交驗(yàn)證、錯(cuò)誤表等。另外還可以朝著流出口、數(shù)據(jù)監(jiān)控方向擴(kuò)展。
我們也可以構(gòu)建以下內(nèi)容(視情況而定討論/RFC)
?緩存服務(wù):提供Hudi特有的緩存服務(wù),可以保存可變數(shù)據(jù)并為跨引擎提供查詢數(shù)據(jù)。?時(shí)間軸元服務(wù)器:現(xiàn)在已經(jīng)在Spark中支持元服務(wù)器,可由RocksDB甚至Hudi的元數(shù)據(jù)表支持,我們可以把它變成一個(gè)可擴(kuò)展、分片的元數(shù)據(jù)存儲(chǔ)服務(wù),所有引擎都可以使用它來(lái)獲取任何元數(shù)據(jù)。
為此我建議將我們更名為數(shù)據(jù)湖平臺(tái),而不是“通過(guò)DFS(HDFS或云存儲(chǔ))來(lái)攝取和管理大型分析數(shù)據(jù)集的存儲(chǔ)和管理”。并傳達(dá)我們的愿景,其實(shí)我們已經(jīng)為此做了一些努力,新的愿景也將為新的貢獻(xiàn)者提供一個(gè)很好的視角來(lái)審視該項(xiàng)目。
這與Kafka從Pub-Sub系統(tǒng)演變?yōu)榱魇录脚_(tái)(加上MirrorMaker / Connect等)非常類似。
具體討論鏈接如下:
https://lists.apache.org/thread.html/r1490dc439430594482ad0db45d1cb95dc0a53ea2765866d443e809c8%40%3Cdev.hudi.apache.org%3E
