更新時間:2025-04-08來源:網絡
之前寫了數(shù)據(jù)倉庫和數(shù)據(jù)湖:
寫給小白的“數(shù)據(jù)倉庫”科普
到底什么是“數(shù)據(jù)湖”?
今天是大數(shù)據(jù)專題的最后一篇,來講講數(shù)據(jù)湖倉。
█為什么會有“數(shù)據(jù)湖倉”?
前面我們提到,數(shù)據(jù)倉庫出現(xiàn)于 1990 年代,主要基于 MPP(Massively Parallel Processing,大規(guī)模并行處理)或者關系型數(shù)據(jù)庫實現(xiàn),用于企業(yè)做數(shù)據(jù)存儲、處理和分析,發(fā)展數(shù)據(jù)看板、BI(商業(yè)智能)等用途。
而數(shù)據(jù)湖,出現(xiàn)于 2010 年代,主要基于大數(shù)據(jù)技術(Hadoop 等)生態(tài),用于支撐多樣化的數(shù)據(jù)存儲,實時性更強,適合滿足批處理、流式計算等業(yè)務場景。
數(shù)據(jù)倉庫的特點是,先做數(shù)據(jù)處理,搞得規(guī)范整齊之后,存起來。用的時候就直接用。它主要存的是結構化(行列)數(shù)據(jù)。
數(shù)據(jù)湖的特點是,什么數(shù)據(jù)(結構化、非結構化、半結構化)都能存,不做預處理,先全部都存起來,等要用的時候,再處理。
兩種技術,各有優(yōu)缺點:
從成本的角度來看,數(shù)據(jù)湖的起步成本很低,但隨著數(shù)據(jù)體量的增大,成本會迅速飆升。而數(shù)據(jù)倉庫恰好相反,前期建設開支很大,后期成本增加趨緩。
數(shù)據(jù)倉庫和數(shù)據(jù)湖,都是基于數(shù)據(jù)進行價值挖掘,只是側重點不同。對于企業(yè)來說,兩者都有價值,所以,會選擇同時建設。
很顯然,這不僅導致了高昂的建設投資成本,也使得數(shù)據(jù)存在冗余和重復。
基于以上種種原因,業(yè)界就開始思考:是不是可以將數(shù)據(jù)倉庫和數(shù)據(jù)湖進行結合,充分發(fā)揮兩者的優(yōu)勢,彌補各自的缺陷呢?
于是,就有一些服務商,開始研究如何將兩者的能力進行“打通”。
主要思路包括兩種:一種是讓數(shù)據(jù)倉庫支持對數(shù)據(jù)湖的訪問。還有一種,是讓數(shù)據(jù)湖具備數(shù)據(jù)倉庫的一些能力。
前者比較有代表性的,是 2017 年 Redshift 推出的 Redshift Spectrum。它支持 Redsift 數(shù)據(jù)倉庫用戶訪問 AWS S3 數(shù)據(jù)湖的數(shù)據(jù)。
后者有代表性的比較多,包括 2017 年 Hortonworks 孵化出的 Apache Atlas 和 Ranger 項目,2018 年 Nexflix 開源的內部增強版本元數(shù)據(jù)服務系統(tǒng) Iceberg。2018-2019 年,Uber 和 Databricks 相繼推出了 Apache Hudi 和 DeltaLake,推出增量文件格式,用以支持 Update / Insert、事務等數(shù)據(jù)倉庫功能。
所有這些嘗試和努力,都多多少少存在一些缺陷(數(shù)據(jù)倉庫和數(shù)據(jù)湖存在本質的區(qū)別,整合難度很大),并不算成功。
2020 年,數(shù)據(jù)智能獨角獸企業(yè) Databricks(沒錯,就是提出 Delta Lake 的那個公司,數(shù)據(jù)湖的代表企業(yè))正式提出了數(shù)據(jù)湖倉(Data Lakehouse)概念。
Databricks 聯(lián)合創(chuàng)始人兼首席執(zhí)行官阿里?戈德西(Ali Ghodsi)表示:
“從長遠來看,所有數(shù)據(jù)倉庫都將被納入數(shù)據(jù)湖倉,這不會在一夜之間發(fā)生 —— 這些東西會共存一段時間 —— 在價格和性能上,數(shù)據(jù)湖倉完勝數(shù)據(jù)倉庫。”
數(shù)據(jù)湖倉,也被稱為湖倉一體。
2021 年,“湖倉一體”首次被寫入 Gartner 數(shù)據(jù)管理領域成熟度報告。2023 年 6 月,大數(shù)據(jù)技術標準推進委員會發(fā)布了《湖倉一體技術與產業(yè)研究報告(2023 年)》。這一年的 6 月 26 日,“湖倉一體”在中國大數(shù)據(jù)產業(yè)發(fā)展大會上成功入選“2023 大數(shù)據(jù)十大關鍵詞”。
█ 數(shù)據(jù)湖倉的主要特點
數(shù)據(jù)湖倉(湖倉一體),說白了,就是一種將數(shù)據(jù)倉庫和數(shù)據(jù)湖打通的新型開放式架構。它既具備數(shù)據(jù)湖的靈活性,也具備數(shù)據(jù)倉庫的高性能及管理能力,為企業(yè)進行數(shù)據(jù)治理帶來了更大的便利和更高的效率。
在數(shù)據(jù)湖倉的底層,支持多種數(shù)據(jù)類型并存,能實現(xiàn)數(shù)據(jù)間的相互共享。
在數(shù)據(jù)湖倉的上層,可以通過統(tǒng)一接口進行訪問,可同時支持實時查詢和分析。
數(shù)據(jù)倉庫和數(shù)據(jù)湖這兩套體系相互打通之后,數(shù)據(jù)可以在兩者之間自由流動。
也就是說,數(shù)據(jù)湖里的“新鮮”數(shù)據(jù)(熱數(shù)據(jù)),可以流到數(shù)據(jù)倉庫里,直接被數(shù)據(jù)倉庫使用。
而數(shù)據(jù)倉庫里的“不新鮮”數(shù)據(jù)(冷數(shù)據(jù)),也可以流到數(shù)據(jù)湖里,低成本長久保存,供未來使用。
數(shù)據(jù)湖倉的特點,其實就是數(shù)據(jù)倉庫的優(yōu)點 + 數(shù)據(jù)湖的優(yōu)點。
在數(shù)據(jù)存儲方面,繼承了數(shù)據(jù)湖的優(yōu)勢,支持多樣化數(shù)據(jù),且以 HDFS 或云對象存儲為基礎,實現(xiàn)了低成本、高可用。數(shù)據(jù)以原始格式或開放文件格式(如 Parquet、ORC)存儲,具備高效的壓縮比與列存儲特性,方便查找。
開放文件格式,也保障了數(shù)據(jù)在不同計算引擎間的通用性。
數(shù)據(jù)湖倉同樣支持 Iceberg、Hudi、Delta Lake 等開放表格式。它們不僅支持數(shù)據(jù)的近實時更新、高效的快照管理,還兼容 SQL 標準,使得數(shù)據(jù)既可以像傳統(tǒng)數(shù)據(jù)庫表一樣進行事務性操作,又能充分利用數(shù)據(jù)湖的分布式存儲與彈性計算優(yōu)勢。
在計算引擎方面(采用存算分離架構),整合了 Spark、Flink、Presto、Doris 等多樣的計算引擎。通過統(tǒng)一的調度與資源管理,不同引擎可以共享存儲資源,協(xié)同處理復雜的數(shù)據(jù)工作流,滿足企業(yè)從實時監(jiān)控到深度分析的全方位計算需求。
阿里云數(shù)據(jù)湖倉架構(來自阿里云官網)
在數(shù)據(jù)一致性方面,提供 ACID(原子性、一致性、隔離性、持久性)保證,確保數(shù)據(jù)寫入的一致性,保證了多方同時讀取或寫入數(shù)據(jù)時的數(shù)據(jù)準確性。
在數(shù)據(jù)管理方面,數(shù)據(jù)湖倉實現(xiàn)了統(tǒng)一的元數(shù)據(jù)管理,支持全鏈路血緣,提供統(tǒng)一的命名空間、全局的數(shù)據(jù)目錄。無論數(shù)據(jù)存儲在何處,使用何種計算引擎,用戶都能通過統(tǒng)一的 API 進行快速檢索、理解與訪問數(shù)據(jù)。數(shù)據(jù)治理,變得非常高效。
在數(shù)據(jù)安全方面,數(shù)據(jù)湖倉一般還支持多租戶和庫表列級數(shù)據(jù)權限,能夠很好地進行租戶隔離和數(shù)據(jù)權限管控,確保了數(shù)據(jù)的安全性和隱私性。
當然了,數(shù)據(jù)湖倉也不是沒有缺點。
作為一項融合的技術架構,它的復雜性比較高,需要很高的技術門檻。而且,它的早期投資比較大,對企業(yè)來說有一定的成本壓力。
數(shù)據(jù)湖倉的性能優(yōu)化、數(shù)據(jù)治理以及安全防護,也存在一定的挑戰(zhàn)。這些門檻和挑戰(zhàn),往往會讓企業(yè)用戶望而卻步。
█ 數(shù)據(jù)湖倉的參考架構
數(shù)據(jù)湖倉誕生至今的時間并不是很長。從最開始的倉和湖獨立建設,到后來,逐漸形成了“湖上建倉”與“倉**湖”兩種實踐路徑。
湖上建倉,是指基于數(shù)據(jù)湖架構,或者以數(shù)據(jù)湖作為數(shù)據(jù)存儲中間層,實現(xiàn)多源異構數(shù)據(jù)的統(tǒng)一存儲。然后,以統(tǒng)一調用接口方式調用計算引擎,最終實現(xiàn)上下結構的湖倉一體架構。
倉**湖,是指以 MPP 數(shù)據(jù)庫為基礎,使用可插拔架構,通過開放接口對接外部存儲,實現(xiàn)統(tǒng)一存儲。
隨著時間的推移,也有企業(yè)開始推出兩種架構的深入融合。
目前,在數(shù)據(jù)湖倉領域比較有代表性的服務商,包括國外的 AWS(亞馬遜云科技)、微軟 Azure、Databricks、Snowflake,以及國內的阿里云、騰訊云、華為云、星環(huán)科技等。
各大服務商的架構有較差的差異,但基本上都包括存儲層、元數(shù)據(jù)管理層、計算引擎層、服務與治理層等。
以下是幾個比較有代表性的架構,供參考。
科杰的數(shù)據(jù)湖倉架構:
Azure 的數(shù)據(jù)湖倉架構:
AWS 的數(shù)據(jù)湖倉(他們叫智能湖倉)架構:
基于 Apache Doris 的湖倉一體架構:
█ 最后的話
目前來看,數(shù)據(jù)湖倉正在加速成為企業(yè)重要的戰(zhàn)略性基礎設施,用于長期的數(shù)據(jù)價值挖掘,以及發(fā)展 AI 應用。
根據(jù)畢馬威的報告顯示,86% 的海外企業(yè)計劃統(tǒng)一其分析數(shù)據(jù),以支持 AI 業(yè)務的開發(fā)。國內也是如此。例如騰訊、B站、小紅書等頭部互聯(lián)網企業(yè),都采用了數(shù)據(jù)湖倉架構,用于不同程度的 AI 應用。
數(shù)據(jù)湖倉在實時流處理與機器學習方面表現(xiàn)出色,能夠很好地滿足大模型的訓練需求,相信未來幾年會得到更好的發(fā)展。
好啦,以上就是關于數(shù)據(jù)湖倉的介紹。鮮棗課堂大數(shù)據(jù)專題系列到此結束。感謝大家的耐心觀看!
參考文獻:
1、《數(shù)據(jù)庫、數(shù)據(jù)湖、數(shù)據(jù)倉庫、湖倉一體、智能湖倉,分別都是什么鬼》,特大號;
2、《從數(shù)據(jù)湖到湖倉一體:統(tǒng)一數(shù)據(jù)架構演進之路》,Light Gao,知乎;
3、《數(shù)據(jù)倉庫、數(shù)據(jù)湖、湖倉一體,究竟有什么區(qū)別?》,SelectDB,知乎;
4、《什么是湖倉一體?湖倉一體解決了什么問題?》,帆軟;
5、《2024 大數(shù)據(jù)“打假”:什么才是真湖倉一體?》,張友東;大數(shù)據(jù)在線;
6、《大數(shù)據(jù)架構系列:如何理解湖倉一體?》,葉強盛,騰訊云開發(fā)者社區(qū);
7、百度百科,維基百科,各大服務商官網。
本文來自微信公眾號:鮮棗課堂(ID:xzclasscom),作者:小棗君