從數(shù)據(jù)庫思維到數(shù)據(jù)湖思維的轉(zhuǎn)變
在數(shù)據(jù)庫和數(shù)據(jù)湖的工作中,有幾個(gè)關(guān)鍵的概念性差異。
在這篇文章中,讓我們來確定其中的一些差異,這些差異在第一眼看到時(shí)可能并不直觀,特別是對(duì)于具有強(qiáng)大關(guān)系型數(shù)據(jù)庫背景的人來說。
服務(wù)器是一次性的。數(shù)據(jù)在云中。
解耦存儲(chǔ)和計(jì)算。在談?wù)摂?shù)據(jù)湖時(shí),這是一個(gè)典型的問題。
在傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)(以及最初的基于Hadoop的數(shù)據(jù)湖)中,存儲(chǔ)與計(jì)算服務(wù)器緊密結(jié)合。服務(wù)器要么有內(nèi)置的存儲(chǔ),要么直接連接到存儲(chǔ)。
在現(xiàn)代基于云的數(shù)據(jù)湖架構(gòu)中,數(shù)據(jù)存儲(chǔ)和計(jì)算是獨(dú)立的。數(shù)據(jù)被保存在云對(duì)象存儲(chǔ)(例如:AWS S3、Azure Storage)中,通常是以一種開放的格式,如parquet,而計(jì)算服務(wù)器是無狀態(tài)的,它們可以在必要時(shí)啟動(dòng)/關(guān)閉。
擁有一個(gè)解耦的存儲(chǔ)和計(jì)算使。
- 降低計(jì)算成本。服務(wù)器在必要時(shí)運(yùn)行。當(dāng)不使用時(shí),它們可以被關(guān)閉,從而降低了計(jì)算成本。
- 可擴(kuò)展性。你不必為高峰期的使用而購置硬件。服務(wù)器/中央處理器/內(nèi)存的數(shù)量可以根據(jù)當(dāng)前的使用情況動(dòng)態(tài)地增加/減少。
- 沙盒化。相同的數(shù)據(jù)可以被多個(gè)計(jì)算服務(wù)器/集群同時(shí)讀取。這使得你可以讓多個(gè)團(tuán)隊(duì)在不同的集群中并行工作,讀取相同的數(shù)據(jù),而不影響彼此。
RAW數(shù)據(jù)才是王道!策劃的數(shù)據(jù)只是衍生的。
在數(shù)據(jù)庫范式中,來自源系統(tǒng)的數(shù)據(jù)被轉(zhuǎn)化并加載到數(shù)據(jù)庫表中后,它就不再有用了。在數(shù)據(jù)湖范式中,RAW數(shù)據(jù)被保留為真理的源泉,最終永遠(yuǎn)保留,因?yàn)樗钦嬲馁Y產(chǎn)。
然而,RAW數(shù)據(jù)通常不適合商業(yè)用戶的消費(fèi),因此它要經(jīng)過一個(gè)策劃過程,以提高其質(zhì)量,提供結(jié)構(gòu)并方便消費(fèi)。經(jīng)過整理的數(shù)據(jù)最終被儲(chǔ)存起來,供數(shù)據(jù)科學(xué)團(tuán)隊(duì)、數(shù)據(jù)倉庫、報(bào)告系統(tǒng)以及業(yè)務(wù)用戶的一般消費(fèi)使用。
數(shù)據(jù)湖整理(來源:作者的圖片
典型的數(shù)據(jù)湖消費(fèi)者只看到策劃過的數(shù)據(jù),因此他們對(duì)策劃過的數(shù)據(jù)的重視程度遠(yuǎn)遠(yuǎn)超過產(chǎn)生這些數(shù)據(jù)的RAW數(shù)據(jù)。
然而,數(shù)據(jù)湖的真正資產(chǎn)是RAW數(shù)據(jù)(連同策展管道),從某種意義上說,策展的數(shù)據(jù)類似于一個(gè)可以隨時(shí)刷新的物化視圖。
主要收獲:
- 可以在任何時(shí)候從RAW中重新創(chuàng)建。
- 可以通過改進(jìn)策展過程來重新創(chuàng)建。
- 我們可以有多個(gè)策劃好的視圖,每個(gè)視圖都用于特定的分析。
今天做出的模式?jīng)Q定不會(huì)制約未來的需求
通常情況下,信息需求會(huì)發(fā)生變化,一些原先沒有從源頭/運(yùn)營系統(tǒng)中收集的信息需要被分析。
在一個(gè)典型的情況下,如果原始的RAW數(shù)據(jù)沒有被存儲(chǔ),歷史數(shù)據(jù)就會(huì)永遠(yuǎn)丟失。
然而,在數(shù)據(jù)湖架構(gòu)中,今天決定不把某個(gè)字段加載到策劃的模式中,以后可以推翻,因?yàn)樗械脑敿?xì)信息都安全地存儲(chǔ)在數(shù)據(jù)湖的RAW區(qū)域,歷史策劃的數(shù)據(jù)可以用額外的字段重新創(chuàng)建。
策劃的模式演變(圖片由作者提供
主要收獲:
- 如果你現(xiàn)在不需要,就不要花大量的時(shí)間去創(chuàng)建一個(gè)通用的一刀切的策劃模式。
- 迭代地創(chuàng)建一個(gè)策劃的模式,從添加你現(xiàn)在需要的字段開始。
- 當(dāng)需要額外的字段時(shí),將它們添加到策展過程中并重新處理。
最后的思考
數(shù)據(jù)湖不是數(shù)據(jù)庫的替代品,每種工具都有它的優(yōu)勢(shì)和致命弱點(diǎn)。
將數(shù)據(jù)湖用于OLTP可能是一個(gè)壞主意,就像使用數(shù)據(jù)庫來存儲(chǔ)數(shù)千兆字節(jié)的非結(jié)構(gòu)化數(shù)據(jù)一樣。
我希望這篇文章有助于闡明兩個(gè)系統(tǒng)之間的一些關(guān)鍵設(shè)計(jì)差異。



























