• 正文
    • █ 為什么會有“數據湖倉”?
    • █ 數據湖倉的主要特點
    • █ 數據湖倉的參考架構
    • █ 最后的話
  • 相關推薦
申請入駐 產業(yè)圖譜

到底是什么是“數據湖倉”?

03/28 09:58
870
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

之前寫了數據倉庫和數據湖:寫給小白的“數據倉庫”科普到底什么是“數據湖”?

今天是大數據專題的最后一篇,來講講數據湖倉。

█ 為什么會有“數據湖倉”?

前面我們提到,數據倉庫出現于1990年代,主要基于MPP(Massively Parallel Processing,大規(guī)模并行處理)或者關系型數據庫實現,用于企業(yè)做數據存儲、處理和分析,發(fā)展數據看板、BI(商業(yè)智能)等用途。

而數據湖,出現于2010年代,主要基于大數據技術(Hadoop等)生態(tài),用于支撐多樣化的數據存儲,實時性更強,適合滿足批處理、流式計算等業(yè)務場景。

數據倉庫的特點是,先做數據處理,搞得規(guī)范整齊之后,存起來。用的時候就直接用。它主要存的是結構化(行列)數據。

數據湖的特點是,什么數據(結構化、非結構化、半結構化)都能存,不做預處理,先全部都存起來,等要用的時候,再處理。

兩種技術,各有優(yōu)缺點:

從成本的角度來看,數據湖的起步成本很低,但隨著數據體量的增大,成本會迅速飆升。而數據倉庫恰好相反,前期建設開支很大,后期成本增加趨緩。

數據倉庫和數據湖,都是基于數據進行價值挖掘,只是側重點不同。對于企業(yè)來說,兩者都有價值,所以,會選擇同時建設。

很顯然,這不僅導致了高昂的建設投資成本,也使得數據存在冗余和重復。

基于以上種種原因,業(yè)界就開始思考:是不是可以將數據倉庫和數據湖進行結合,充分發(fā)揮兩者的優(yōu)勢,彌補各自的缺陷呢?

于是,就有一些服務商,開始研究如何將兩者的能力進行“打通”。

主要思路包括兩種:一種是讓數據倉庫支持對數據湖的訪問。還有一種,是讓數據湖具備數據倉庫的一些能力。

前者比較有代表性的,是2017年Redshift推出的Redshift Spectrum。它支持Redsift數據倉庫用戶訪問AWS S3數據湖的數據。

后者有代表性的比較多,包括2017年Hortonworks孵化出的Apache Atlas和Ranger項目,2018年Nexflix開源的內部增強版本元數據服務系統(tǒng)Iceberg。2018-2019年,Uber和Databricks相繼推出了Apache Hudi和DeltaLake,推出增量文件格式,用以支持Update/Insert、事務等數據倉庫功能。

所有這些嘗試和努力,都多多少少存在一些缺陷(數據倉庫和數據湖存在本質的區(qū)別,整合難度很大),并不算成功。

2020年,數據智能獨角獸企業(yè)Databricks(沒錯,就是提出Delta Lake的那個公司,數據湖的代表企業(yè))正式提出了數據湖倉(Data Lakehouse)概念。

Databricks聯合創(chuàng)始人兼首席執(zhí)行官阿里·戈德西(Ali Ghodsi)表示:

“從長遠來看,所有數據倉庫都將被納入數據湖倉,這不會在一夜之間發(fā)生——這些東西會共存一段時間——在價格和性能上,數據湖倉完勝數據倉庫。”

數據湖倉,也被稱為湖倉一體。

2021年,“湖倉一體”首次被寫入Gartner數據管理領域成熟度報告。2023年6月,大數據技術標準推進委員會發(fā)布了《湖倉一體技術與產業(yè)研究報告(2023年)》。這一年的6月26日,“湖倉一體”在中國大數據產業(yè)發(fā)展大會上成功入選“2023大數據十大關鍵詞”。

數據湖倉的主要特點

數據湖倉(湖倉一體),說白了,就是一種將數據倉庫和數據湖打通的新型開放式架構。它既具備數據湖的靈活性,也具備數據倉庫的高性能及管理能力,為企業(yè)進行數據治理帶來了更大的便利和更高的效率。

在數據湖倉的底層,支持多種數據類型并存,能實現數據間的相互共享。

在數據湖倉的上層,可以通過統(tǒng)一接口進行訪問,可同時支持實時查詢和分析。

數據倉庫和數據湖這兩套體系相互打通之后,數據可以在兩者之間自由流動。

也就是說,數據湖里的“新鮮”數據(熱數據),可以流到數據倉庫里,直接被數據倉庫使用。

而數據倉庫里的“不新鮮”數據(冷數據),也可以流到數據湖里,低成本長久保存,供未來使用。

數據湖倉的特點,其實就是數據倉庫的優(yōu)點+數據湖的優(yōu)點。

在數據存儲方面,繼承了數據湖的優(yōu)勢,支持多樣化數據,且以HDFS或云對象存儲為基礎,實現了低成本、高可用。數據以原始格式或開放文件格式(如 Parquet、ORC)存儲,具備高效的壓縮比與列存儲特性,方便查找。

開放文件格式,也保障了數據在不同計算引擎間的通用性。

數據湖倉同樣支持Iceberg、Hudi、Delta Lake等開放表格式。它們不僅支持數據的近實時更新、高效的快照管理,還兼容 SQL 標準,使得數據既可以像傳統(tǒng)數據庫表一樣進行事務性操作,又能充分利用數據湖的分布式存儲與彈性計算優(yōu)勢。

在計算引擎方面(采用存算分離架構),整合了Spark、Flink、Presto、Doris等多樣的計算引擎。通過統(tǒng)一的調度與資源管理,不同引擎可以共享存儲資源,協(xié)同處理復雜的數據工作流,滿足企業(yè)從實時監(jiān)控到深度分析的全方位計算需求。

阿里云數據湖倉架構(來自阿里云官網)

在數據一致性方面,提供ACID(原子性、一致性、隔離性、持久性)保證,確保數據寫入的一致性,保證了多方同時讀取或寫入數據時的數據準確性。

在數據管理方面,數據湖倉實現了統(tǒng)一的元數據管理,支持全鏈路血緣,提供統(tǒng)一的命名空間、全局的數據目錄。無論數據存儲在何處,使用何種計算引擎,用戶都能通過統(tǒng)一的API進行快速檢索、理解與訪問數據。數據治理,變得非常高效。

數據安全方面,數據湖倉一般還支持多租戶和庫表列級數據權限,能夠很好地進行租戶隔離和數據權限管控,確保了數據的安全性和隱私性。

當然了,數據湖倉也不是沒有缺點。

作為一項融合的技術架構,它的復雜性比較高,需要很高的技術門檻。而且,它的早期投資比較大,對企業(yè)來說有一定的成本壓力。

數據湖倉的性能優(yōu)化、數據治理以及安全防護,也存在一定的挑戰(zhàn)。這些門檻和挑戰(zhàn),往往會讓企業(yè)用戶望而卻步。

數據湖倉的參考架構

數據湖倉誕生至今的時間并不是很長。從最開始的倉和湖獨立建設,到后來,逐漸形成了“湖上建倉”“倉外掛湖”兩種實踐路徑。

湖上建倉,是指基于數據湖架構,或者以數據湖作為數據存儲中間層,實現多源異構數據的統(tǒng)一存儲。然后,以統(tǒng)一調用接口方式調用計算引擎,最終實現上下結構的湖倉一體架構。

倉外掛湖,是指以MPP數據庫為基礎,使用可插拔架構,通過開放接口對接外部存儲,實現統(tǒng)一存儲。

隨著時間的推移,也有企業(yè)開始推出兩種架構的深入融合。

目前,在數據湖倉領域比較有代表性的服務商,包括國外的AWS(亞馬遜云科技)、微軟Azure?、Databricks、Snowflake,以及國內的阿里云、騰訊云、華為云、星環(huán)科技等。

各大服務商的架構有較差的差異,但基本上都包括存儲層、元數據管理層、計算引擎層、服務與治理層等。

最后的話

目前來看,數據湖倉正在加速成為企業(yè)重要的戰(zhàn)略性基礎設施,用于長期的數據價值挖掘,以及發(fā)展AI應用。

根據畢馬威的報告顯示,86%的海外企業(yè)計劃統(tǒng)一其分析數據,以支持AI業(yè)務的開發(fā)。國內也是如此。例如騰訊、B站、小紅書等頭部互聯網企業(yè),都采用了數據湖倉架構,用于不同程度的AI應用。

數據湖倉在實時流處理與機器學習方面表現出色,能夠很好地滿足大模型的訓練需求,相信未來幾年會得到更好的發(fā)展。

好啦,以上就是關于數據湖倉的介紹。鮮棗課堂大數據專題系列到此結束。感謝大家的耐心觀看!

參考文獻:

1、《數據庫、數據湖、數據倉庫、湖倉一體、智能湖倉,分別都是什么鬼》,特大號;2、《從數據湖到湖倉一體:統(tǒng)一數據架構演進之路》,Light Gao,知乎;3、《數據倉庫、數據湖、湖倉一體,究竟有什么區(qū)別?》,SelectDB,知乎;4、《什么是湖倉一體?湖倉一體解決了什么問題?》,帆軟;5、《2024大數據“打假”:什么才是真湖倉一體?》,張友東;大數據在線;
6、《大數據架構系列:如何理解湖倉一體?》,葉強盛,騰訊云開發(fā)者社區(qū);
7、百度百科,維基百科,各大服務商官網。

相關推薦

登錄即可解鎖
  • 海量技術文章
  • 設計資源下載
  • 產業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

通信行業(yè)知名新媒體鮮棗課堂創(chuàng)始人,通信行業(yè)資深專家、行業(yè)分析師、自媒體作者,《智聯天下:移動通信改變中國》叢書作者。通信行業(yè)13年工作經驗,曾長期任職于中興通訊股份有限公司,從事2/3/4G及5G相關技術領域方面的研究,曾擔任中興通訊核心網產品線產品經理、能力提升總監(jiān)、中興通訊學院二級講師、中興通訊高級主任工程師,擁有豐富的行業(yè)經驗和積累。