本文目錄:
一、前言
二、概念決議
-
資料倉庫
-
資料湖
-
資料中臺
三、具體區別
-
資料倉庫 VS 資料湖
-
資料倉庫 VS 資料中臺
-
總結
四、湖倉一體
-
目前資料存盤方案
-
Data Lakehouse(湖倉一體)
一、前言
數字化轉型浪潮卷起各種新老概念滿天飛,資料湖、資料倉庫、資料中臺輪番在朋友圈刷屏,有人說“資料中臺算個啥,資料湖才是趨勢”,有人說“再見了資料湖、資料倉庫,資料中臺已成氣候”……
企業還沒推開數字化大門,先被各種概念絆了一腳,那么它們 3 者究竟有啥區別?別急,先跟大家分享兩個有趣的比喻,
50000字詳解數倉建設保姆級教程,涵蓋離線和實時
https://mp.weixin.qq.com/s?__biz=Mzg2MzU2MDYzOA==&mid=2247491812&idx=1&sn=cd20944f96ce51eae48e71c5273596fa&chksm=ce741635f9039f23a569f7943a0b470cc72d17aa6c8a13e76fe061778c685b1186eb620fc581#rd
1、圖書館VS地攤
如果把資料倉庫比喻成“圖書館”,那么資料湖就是“地攤”,去圖書館借書(資料),書籍質量有保障,但你得等,等什么?等管理員先查到這本書屬于哪個類目、在哪個架子上,你才能精準拿到自己想要的書;而地攤上沒有人會給你把關,什么書都有,你自己翻找、隨用隨取,流程上比圖書館便捷多了,但大家找書的程序是沒有經驗可復用的,偶爾多拿少拿咱們可能也不知道,
2、升級版銀行
假定資料倉庫、資料湖、資料中臺都是銀行,可以提供現金、黃金等多種服務,過去大家進銀行前都得先問門衛,里面每個門牌上的數字對應哪個服務呢?是現金還是黃金呢?然后推開對應的門把東西取出來,而有了“資料中臺”這個銀行,大家一進來就能看到標著“現金”、“黃金”漢字的視窗,一目了然,你只需要走到視窗前,就有專人幫你辦理,
以上兩個例子不一定全面,但基本能解釋三者的優劣勢,資料倉庫具備規范性,但取數用數流程長;資料湖取數用數更實時、存盤量大,但資料質量難以保障;資料中臺能精準快速地回應業務需求,離業務側最近,
為了更清晰地區別三者,接下來咱們再來看看它們各自的定義以及應用區別,
二、概念決議
1. 資料倉庫
資料倉庫誕生于 1990 年,絕對算得上是“老前輩”了,它是一個相對具體的功能概念,目前對資料倉庫的主流定義是位于多個資料庫上的大容量存盤庫,它的作用在于存盤大量的結構化資料,并能進行頻繁和可重復的分析,幫助企業構建商業智能(BI),
具體定義:
資料倉庫(Data Warehouse)是一個面向主題的(Subject Oriented)、集成的(Integrated)、相對穩定的(Non-Volatile)、反映歷史變化的(Time Variant)資料集合,用于支持管理決策和資訊的全域共享,其主要功能是將組織透過資訊系統之聯機事務處理(OLTP)經年累月所累積的大量資料,透過資料倉庫理論所特有的資料儲存架構,分析出有價值的資訊,
-
所謂主題:是指用戶使用資料倉庫進行決策時所關心的重點方面,如:收入、客戶、銷售渠道等;所謂面向主題,是指資料倉庫內的資訊是按主題進行組織的,而不是像業務支撐系統那樣是按照業務功能進行組織的,
-
所謂集成:是指資料倉庫中的資訊不是從各個業務系統中簡單抽取出來的,而是經過一系列加工、整理和匯總的程序,因此資料倉庫中的資訊是關于整個企業的一致的全域資訊,
-
所謂隨時間變化:是指資料倉庫內的資訊并不只是反映企業當前的狀態,而是記錄了從過去某一時點到當前各個階段的資訊,通過這些資訊,可以對企業的發展歷程和未來趨勢做出定量分析和預測,
資料倉庫的作用:
資料倉庫系統的作用能實作跨業務條線、跨系統的資料整合,為管理分析和業務決策提供統一的資料支持,資料倉庫能夠從根本上幫助你把公司的運營資料轉化成為高價值的可以獲取的資訊(或知識),并且在恰當的時候通過恰當的方式把恰當的資訊傳遞給恰當的人,

-
是面向企業中、高級管理進行業務分析和績效考核的資料整合、分析和展現的工具;
-
是主要用于歷史性、綜合性和深層次資料分析;
-
資料來源是ERP(例:SAP)系統或其他業務系統;
-
能夠提供靈活、直觀、簡潔和易于操作的多維查詢分析;
-
不是日常交易作業系統,不能直接產生交易資料;
實時數倉
實時數倉和離線數倉非常的像,誕生的背景主要是近幾年企業對于資料服務的實時性需求日益增多,里面的資料模型也會像中臺一樣分好幾層:ODS 、CDM、ADS,但整體對于實時性要求極高,因此一般存盤會考慮采用Kafka這種log base的MQ,而計算引擎會采用Flink這種流計算引擎,
2. 資料湖
資料湖是一種不斷演進中、可擴展的大資料存盤、處理、分析的基礎設施,它就像一個大型倉庫存盤企業多樣化原始資料以資料為導向,實作任意來源、任意速度、任意規模、任意型別資料的全量獲取、全量存盤、多模式處理與全生命周期管理,擁有強大的資訊處理能力和處理幾乎無限的并發任務或作業的能力,

資料湖從企業的多個資料源獲取原始資料,資料可能是任意型別的資訊,從結構化資料到完全非結構化資料,并通過與各類外部異構資料源的互動集成,支持各類企業級應用,結合先進的資料科學與機器學習技術,能幫助企業構建更多優化后的運營模型,也能為企業提供其他能力,如預測分析、推薦模型等,這些模型能刺激企業能力的后續增長,

進入互聯網時代,有兩個最重要的變化,
一個是資料規模前所未有,一個成功的互聯網產品榷訓可以過億,就像你熟知的頭條、抖音、快手、網易云音樂,每天產生幾千億的用戶行為,傳統資料倉庫難于擴展,根本無法承載如此規模的海量資料,
另一個是資料型別變得異構化,互聯網時代的資料除了來自業務資料庫的結構化資料,還有來自 App、Web 的前端埋點資料,或者業務服務器的后端埋點日志,這些資料一般都是半結構化,甚至無結構的,傳統資料倉庫對資料模型有嚴格的要求,在資料匯入到資料倉庫前,資料模型就必須事先定義好,資料必須按照模型設計存盤,
所以,資料規模和資料型別的限制,導致傳統資料倉庫無法支撐互聯網時代的商業智能,
05年的時候,Hadoop誕生了,Hadoop 相比傳統資料倉庫主要有兩個優勢:
-
完全分布式,易于擴展,可以使用價格低廉的機器堆出一個計算、存盤能力很強的集群,滿足海量資料的處理要求;
-
榷訓資料格式,資料被集成到 Hadoop 之后,可以不保留任何資料格式,資料模型與資料存盤分離,資料(包含了原始資料)在被使用的時候,可以按照不同的模型讀取,滿足異構資料靈活分析的需求,而數倉更加關注可以作為事實依據的資料,
隨著Hadoop與物件存盤的成熟,資料湖的概念在10年被提出:資料湖(Data Lake)是一個以原始格式存盤資料的存盤庫或系統(這意味著資料湖的底層不應該與任何存盤耦合),
對應的來說,如果資料湖沒有被治理好(缺乏元資料、定義資料源、制定資料訪問策略和安全策略,并移動資料、編制資料目錄),則會變成資料沼澤,
而從產品形態上來說,數倉往往是獨立標準化的產品,而資料湖更像是一種架構指導——需要配合一系列的周邊工具,來實作業務需要的資料湖,
3. 資料中臺
大規模資料的應用,也逐漸暴露出現一些問題,
業務發展前期,為了快速實作業務的需求,煙囪式的開發導致企業不同業務線,甚至相同業務線的不同應用之間,資料都是割裂的,兩個資料應用的相同指標,展示的結果不一致,導致運營對資料的信任度下降,如果你是運營,當你想看一下商品的銷售額,發現兩個報表上,都叫銷售額的指標出現了兩個值,你的感受如何? 你第一反應肯定是資料算錯了,你不敢繼續使用這個資料了,
資料割裂的另外一個問題,就是大量的重復計算、開發,導致的研發效率的浪費,計算、存盤資源的浪費,大資料的應用成本越來越高,
-
如果你是運營,當你想要一個資料的時候,開發告訴你至少需要一周,你肯定想是不是太慢了,能不能再快一點兒?
-
如果你是資料開發,當面對大量的需求的時候,你肯定是在抱怨,需求太多,人太少,活干不完,
-
如果你是一個企業的老板,當你看到每個月的賬單成指數級增長的時候,你肯定覺得這也太貴了,能不能再省一點,要不吃不消了,
這些問題的根源在于,資料無法共享,2016 年,阿里巴巴率先提出了“資料中臺”的口號,資料中臺的核心,是避免資料的重復計算,通過資料服務化,提高資料的共享能力,賦能資料應用,之前,資料是要啥沒啥,中間資料難于共享,無法積累,現在建設資料中臺之后,要啥有啥,資料應用的研發速度不再受限于資料開發的速度,一夜之間,我們就可以根據場景,范訓出很多資料應用,這些應用讓資料產生價值,![]()
資料中臺樣板
在建設中臺的程序中,一般強調這樣幾個重點:
-
效率、質量和成本是決定資料能否支撐好業務的關鍵,構建資料中臺的目標就是要實作高效率、高質量、低成本,
-
資料只加工一次是建設資料中臺的核心,本質上是要實作公共計算邏輯的下沉和復用,
-
如果你的企業擁有 3 個以上的資料應用場景,資料產品還在不斷研發和更新,你必須要認真考慮建設資料中臺,
那么接下來就看一下阿里巴巴對于資料中臺的實踐,
正如上述提到的資料只加工一次是建設資料中臺的核心,本質上是要實作公共計算邏輯的下沉和復用,阿里資料中臺提到了各種one思想,如:
-
OneData:公共資料只保存一份
-
OneService:通過一個服務介面進行暴露
三、具體區別
1. 資料倉庫 VS 資料湖
相較而言,資料湖是較新的技術,擁有不斷演變的架構,資料湖存盤任何形式(包括結構化和非結構化)和任何格式(包括文本、音頻、視頻和影像)的原始資料,根據定義,資料湖不會接受資料治理,但專家們一致認為良好的資料管理對預防資料湖轉變為資料沼澤不可或缺,資料湖在資料讀取期間創建模式,與資料倉庫相比,資料湖缺乏結構性,而且更靈活,并且提供了更高的敏捷性,值得一提的是,資料湖非常適合使用機器學習和深度學習來執行各種任務,比如資料挖掘和資料分析,以及提取非結構化資料等,

2. 資料倉庫 VS 資料中臺
資料倉庫和傳統的資料平臺,其出發點為一個支撐性的技術系統,即一定要先考慮我具有什么資料,然后我才能干什么,因此特別強調資料質量和元資料管理;而資料中臺的第一出發點不是資料而是業務,一開始不用看你系統里面有什么資料,而是去解決你的業務問題需要什么樣的資料服務,
在具體的技術處理環節,二者也有明顯不同,資料的預處理流程正在從傳統的ETL結構向ELT結構轉變,傳統的資料倉庫集成處理架構是ETL結構,這是構建資料倉庫的重要一環,即用戶從資料源抽取出所需的資料,經過資料清洗,將資料加載到資料倉庫中去,而大資料背景下的架構體系是ELT結構,其根據上層的應用需求,隨時從資料中臺中抽取想要的原始資料進行建模分析,

3. 總結
根據以上資料倉庫、資料湖和資料中臺的概念論述和對比,我們進行如下總結:
-
資料中臺、資料倉庫和資料湖沒有直接的關系;
-
資料中臺、資料倉庫和資料湖在某個維度上為業務產生價值的形式有不同的側重;
-
資料中臺是企業級的邏輯概念,體現企業資料向業務價值轉化的能力,為業務提供服務的主要方式是資料 API;
-
資料倉庫是一個相對具體的功能概念,是存盤和管理一個或多個主題資料的集合,為業務提供服務的方式主要是分析報表;
-
資料中臺距離業務更近,能夠更快速的回應業務和應用開發需求,從而為業務提供速度更快的服務;
-
資料倉庫是為了支持管理決策分析,而資料中臺則是將資料服務化之后提供給業務系統,不僅限于分析型場景,也適用于交易型場景;
-
資料中臺可以建立在資料倉庫和資料平臺之上,是加速企業從資料到業務價值的程序的中間層,
四、湖倉一體
有人說“湖倉一體成為下一站燈塔,數倉、資料湖架構即將退出群聊”,
2020年,大資料DataBricks公司首次提出了湖倉一體(Data Lakehouse)概念,希望將資料湖和資料倉庫技術合而為一,此概念一出各路云廠商紛紛跟進,
Data Lakehouse(湖倉一體)是新出現的一種資料架構,它同時吸收了資料倉庫和資料湖的優勢,資料分析師和資料科學家可以在同一個資料存盤中對資料進行操作,同時它也能為公司進行資料治理帶來更多的便利性,
1. 目前資料存盤的方案
一直以來,我們都在使用兩種資料存盤方式來架構資料:
-
資料倉庫:主要存盤的是以關系型資料庫組織起來的結構化資料,資料通過轉換、整合以及清理,并匯入到目標表中,在數倉中,資料存盤的結構與其定義的schema是強匹配的,
-
資料湖:存盤任何型別的資料,包括像圖片、檔案這樣的非結構化資料,資料湖通常更大,其存盤成本也更為廉價,存盤其中的資料不需要滿足特定的schema,資料湖也不會嘗試去將特定的schema施行其上,相反的是,資料的擁有者通常會在讀取資料的時候決議schema(schema-on-read),當處理相應的資料時,將轉換施加其上,
現在許多的公司往往同時會搭建數倉、資料湖這兩種存盤架構,一個大的數倉和多個小的資料湖,這樣,資料在這兩種存盤中就會有一定的冗余,
2. Data Lakehouse(湖倉一體)
Data Lakehouse的出現試圖去融合數倉和資料湖這兩者之間的差異,通過將數倉構建在資料湖上,使得存盤變得更為廉價和彈性,同時lakehouse能夠有效地提升資料質量,減小資料冗余,在lakehouse的構建中,ETL起了非常重要的作用,它能夠將未經規整的資料湖層資料轉換成數倉層結構化的資料,
下面詳細解釋下:
湖倉一體(Data Lakehouse):
依據DataBricks公司對Lakehouse 的定義:一種結合了資料湖和資料倉庫優勢的新范式,解決了資料湖的局限性,Lakehouse 使用新的系統設計:直接在用于資料湖的低成本存盤上實作與資料倉庫中類似的資料結構和資料管理功能,
解釋拓展:
湖倉一體,簡單理解就是把面向企業的資料倉庫技術與資料湖存盤技術相結合,為企業提供一個統一的、可共享的資料底座,
避免傳統的資料湖、資料倉庫之間的資料移動,將原始資料、加工清洗資料、模型化資料,共同存盤于一體化的“湖倉”中,既能面向業務實作高并發、精準化、高性能的歷史資料、實時資料的查詢服務,又能承載分析報表、批處理、資料挖掘等分析型業務,
湖倉一體方案的出現,幫助企業構建起全新的、融合的資料平臺,通過對機器學習和AI演算法的支持,實作資料湖+資料倉庫的倍訓,提升業務的效率,資料湖和資料倉庫的能力充分結合,形成互補,同時對接上層多樣化的計算生態,
Lakehouse有如下關鍵特性:
-
事物支持:Lakehouse 在企業級應用中,許多資料管道通常會同時讀取和寫入資料,通常多方同時使用 SQL 讀取或寫入資料,Lakehouse 保證支持ACID事務的一致性,
-
模式實施和治理:Lakehouse 應該有一種支持模式實施和演變的方法,支持 DW 模式規范,例如 star /snowflake-schemas,該系統應該能夠推理資料完整性,并且應該具有健壯的治理和審核機制,
-
BI支持:Lakehouse 可以直接在源資料上使用BI工具,這樣可以減少陳舊度和等待時間,提高新近度,并且降低必須在資料湖和倉庫中操作兩個資料副本的成本,
-
存盤與計算分離:事實上,這意味著存盤和計算使用單獨的群集,因此這些系統能夠擴展到更多并發用戶和更大資料量,一些現代資料倉庫也具有這種屬性,
-
兼容性:Lakehouse 使用的存盤格式是開放式和標準化的,例如 Parquet,并且它提供了多種 API,包括機器學習和 Python/R 庫,因此各種工具和引擎都可以直接有效地訪問資料,
-
支持從非結構化資料到結構化資料的多種資料型別:Lakehouse 可用于存盤,優化,分析和訪問許多新資料應用程式所需的資料型別,包括影像,視頻,音頻,半結構化資料和文本,
-
支持各種作業場景:包括資料科學,機器學習和 SQL 分析,這些可能依賴于多種工具來支持的作業場景,它們都依賴于相同的資料存盤庫,
-
端到端流式任務:實時報告是許多企業的日常需要,對流處理的支持消除了對專門服務于實時資料應用程式的單獨系統的需求,

上面這張圖是DataBricks給出的架構演化參考圖,
我們可以看到,傳統的數倉目標非常明確,適用于將各業務資料源合并后,進行商務BI分析和報表,隨著企業需要處理的資料型別越來越多,包括客戶行為,IoT,圖片,視頻等, 資料規模也成指數增加,
資料湖技術被引入,并用于承擔通用資料存盤和處理平臺的作用,資料湖由于其分布式存盤和計算能力的特點,也可以更好的支持機器學習計算, 在資料湖時代,我們通常可以看到DataLake和Data Warehouse還是會同時存在的,
隨著大資料時代的到來,是不是有可能讓大資料技術可以取代傳統數倉,形成一個統一的資料處理架構,湖倉一體的概念被提出,并由DataBricks和云廠商們在進行快速的推演和實踐,
?參考
2022年最強大資料面試寶典
數倉建設保姆級教程
美團資料平臺及數倉建設實踐,超十萬字總結
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431078.html
標籤:其他
下一篇:realloc中的無效指標
