在了解湖倉(cāng)一體化之前,我們先來(lái)看一則有關(guān)
數(shù)據(jù)倉(cāng)庫(kù)的有趣故事吧~沃爾瑪擁有世界上最大的數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),它利用數(shù)據(jù)挖掘方法對(duì)交易數(shù)據(jù)進(jìn)行分析后發(fā)現(xiàn)"跟尿布一起購(gòu)買(mǎi)最多的商品竟是啤酒!后來(lái)經(jīng)過(guò)大量實(shí)際調(diào)查和分析,發(fā)現(xiàn)在美國(guó),一些年輕的父親下班后經(jīng)常要到超市去買(mǎi)嬰兒尿布,而他們中有30%~40%的人同時(shí)也為自己買(mǎi)一些啤酒,這是因?yàn)槊绹?guó)的太太們常叮囑她們的丈夫下班后為小孩買(mǎi)尿布,而丈夫們?cè)谫I(mǎi)尿布后又隨手帶回了他們喜歡的啤酒??梢?jiàn)大數(shù)據(jù)其實(shí)很早之前就已經(jīng)伴隨在我們的日常生活之中了,那么接下來(lái)我們就來(lái)了解一下湖倉(cāng)一體化的基本概念吧。(詳見(jiàn):湖倉(cāng)一體架構(gòu)構(gòu)建與平臺(tái)應(yīng)用實(shí)踐(PPT))
01 ?什么是數(shù)據(jù)倉(cāng)庫(kù)、數(shù)據(jù)集市和數(shù)據(jù)湖?
一、數(shù)據(jù)倉(cāng)庫(kù)
早期系統(tǒng)采用數(shù)據(jù)庫(kù)來(lái)存放管理數(shù)據(jù),但是隨著大數(shù)據(jù)技術(shù)的興起,大家想要通過(guò)大數(shù)據(jù)技術(shù)來(lái)找到數(shù)據(jù)之間可能存在的關(guān)系,所以大家設(shè)計(jì)了一套新的數(shù)據(jù)存儲(chǔ)管理系統(tǒng),把所有的數(shù)據(jù)全部存儲(chǔ)到數(shù)據(jù)倉(cāng)庫(kù),然后統(tǒng)一對(duì)數(shù)據(jù)處理,這個(gè)系統(tǒng)叫做數(shù)據(jù)倉(cāng)庫(kù)。而數(shù)據(jù)庫(kù)缺少靈活和強(qiáng)大的處理能力。
在計(jì)算機(jī)領(lǐng)域,數(shù)據(jù)倉(cāng)庫(kù)(英語(yǔ):data warehouse,也稱(chēng)為企業(yè)數(shù)據(jù)倉(cāng)庫(kù))是用于報(bào)告和數(shù)據(jù)分析的系統(tǒng),被認(rèn)為是商業(yè)智能的核心組件。數(shù)據(jù)倉(cāng)庫(kù)是來(lái)自一個(gè)或多個(gè)不同源的集成數(shù)據(jù)的中央存儲(chǔ)庫(kù)。數(shù)據(jù)倉(cāng)庫(kù)將當(dāng)前和歷史數(shù)據(jù)存儲(chǔ)在一起,以利各種分析方法如在線(xiàn)分析處理(OLAP)、數(shù)據(jù)挖掘(Data Mining),幫助決策者能快速?gòu)拇罅繑?shù)據(jù)中,分析出有價(jià)值的信息,幫助建構(gòu)商業(yè)智能(BI)。盡管倉(cāng)庫(kù)非常適合結(jié)構(gòu)化數(shù)據(jù),但是許多現(xiàn)代企業(yè)必須處理非結(jié)構(gòu)化數(shù)據(jù),半結(jié)構(gòu)化數(shù)據(jù)以及具有高多樣性、高速度和高容量的數(shù)據(jù)。數(shù)據(jù)倉(cāng)庫(kù)不適用于許多此類(lèi)場(chǎng)景,并且成本效益并非最佳。(詳見(jiàn):企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)知識(shí)體系總結(jié)大全)

二、數(shù)據(jù)集市每個(gè)部門(mén)自身也有對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理分析統(tǒng)計(jì)的需求,但不涉及到和其他數(shù)據(jù),不希望在數(shù)據(jù)量大的數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行操作(因?yàn)椴僮髀?,而且可能影響到其他人處理?shù)據(jù)),所以建立一個(gè)新的存儲(chǔ)系統(tǒng),把數(shù)據(jù)倉(cāng)庫(kù)里關(guān)聯(lián)自己的數(shù)據(jù)存儲(chǔ)到這個(gè)系統(tǒng),本質(zhì)上算是數(shù)據(jù)倉(cāng)庫(kù)的一個(gè)子集。這個(gè)系統(tǒng)叫做數(shù)據(jù)集市。例如公司里的某一個(gè)部門(mén)想對(duì)投資者服務(wù)數(shù)據(jù)進(jìn)行分析,于是他們建立一個(gè)投資者服務(wù)數(shù)據(jù)的數(shù)據(jù)集市,其中數(shù)據(jù)從數(shù)據(jù)倉(cāng)庫(kù)中抽取:
三、數(shù)據(jù)湖隨著當(dāng)前大量信息化發(fā)展和電子設(shè)備產(chǎn)品普及,產(chǎn)生大量的照片、視頻、文檔等非結(jié)構(gòu)化數(shù)據(jù),人們也想通過(guò)大數(shù)據(jù)技術(shù)找到這些數(shù)據(jù)的關(guān)系,所以設(shè)計(jì)了一個(gè)比數(shù)據(jù)倉(cāng)庫(kù)還要大的系統(tǒng),可以把非結(jié)構(gòu)化和結(jié)構(gòu)化數(shù)據(jù)共同存儲(chǔ)和做一些處理,這個(gè)系統(tǒng)叫做數(shù)據(jù)湖。數(shù)據(jù)倉(cāng)庫(kù)的成長(zhǎng)性很好,而數(shù)據(jù)湖更靈活。數(shù)據(jù)倉(cāng)庫(kù)支持的數(shù)據(jù)結(jié)構(gòu)種類(lèi)比較單一,數(shù)據(jù)湖的種類(lèi)比較豐富,可以包羅萬(wàn)象。數(shù)據(jù)倉(cāng)庫(kù)更加適合成熟的數(shù)據(jù)當(dāng)中的分析和處理,數(shù)據(jù)湖更加適合在異構(gòu)數(shù)據(jù)上的價(jià)值的挖掘。

數(shù)據(jù)湖雖然適合存儲(chǔ)數(shù)據(jù),但缺少一些關(guān)鍵功能:它們不支持事務(wù)處理,不保證數(shù)據(jù)質(zhì)量,并且缺乏一致性/隔離性,從而幾乎無(wú)法實(shí)現(xiàn)混合追加和讀取數(shù)據(jù),以及完成批處理和流式作業(yè)。由于這些原因,數(shù)據(jù)湖的許多功能尚未實(shí)現(xiàn),并且在很多時(shí)候喪失了數(shù)據(jù)湖的優(yōu)勢(shì)。(詳見(jiàn):企業(yè)數(shù)據(jù)湖體系規(guī)劃與建設(shè)方案(PPT))
02 數(shù)據(jù)湖+數(shù)據(jù)倉(cāng)=湖倉(cāng)一體?
在湖倉(cāng)一體出現(xiàn)之前,數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖是被人們討論最多的話(huà)題。正式切入主題前,先跟大家科普一個(gè)概念,即大數(shù)據(jù)的工作流程是怎樣的?這里就要涉及到兩個(gè)相對(duì)陌生的名詞:數(shù)據(jù)的結(jié)構(gòu)化程度和數(shù)據(jù)的信息密度。前者描述的是數(shù)據(jù)本身的規(guī)范性,后者描述的是單位存儲(chǔ)體積內(nèi)、包含的信息量的大小。?一般來(lái)說(shuō),人們獲取到的原始數(shù)據(jù)大多是非結(jié)構(gòu)化的,且信息密度比較低,通過(guò)對(duì)數(shù)據(jù)進(jìn)行清洗、分析、挖掘等操作,可以排除無(wú)用數(shù)據(jù)、找到數(shù)據(jù)中的關(guān)聯(lián)性,在這個(gè)過(guò)程中,數(shù)據(jù)的結(jié)構(gòu)化程度、信息密度也隨之提升,最后一步,就是把優(yōu)化過(guò)后的數(shù)據(jù)加以利用,變成真正的生產(chǎn)資料。?簡(jiǎn)而言之,大數(shù)據(jù)處理的過(guò)程其實(shí)是一個(gè)提升數(shù)據(jù)結(jié)構(gòu)化程度和信息密度的過(guò)程。在這個(gè)過(guò)程中,數(shù)據(jù)的特征一直在發(fā)生變化,不同的數(shù)據(jù),適合的存儲(chǔ)介質(zhì)也有所不同,所以才有了一度火熱的數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖之爭(zhēng)。?數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、相對(duì)穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,主要用于支持管理決策和信息的全局共享。簡(jiǎn)單點(diǎn)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)就像是一個(gè)大型圖書(shū)館,里面的數(shù)據(jù)需要按照規(guī)范放好,你可以按照類(lèi)別找到想要的信息。就目前來(lái)說(shuō),對(duì)數(shù)據(jù)倉(cāng)庫(kù)的主流定義是位于多個(gè)數(shù)據(jù)庫(kù)上的大容量存儲(chǔ)庫(kù),它的作用在于存儲(chǔ)大量的結(jié)構(gòu)化數(shù)據(jù),為管理分析和業(yè)務(wù)決策提供統(tǒng)一的數(shù)據(jù)支持,雖然存取過(guò)程相對(duì)比較繁瑣,對(duì)于數(shù)據(jù)類(lèi)型有一定限制,但在那個(gè)年代,數(shù)據(jù)倉(cāng)庫(kù)的功能性已經(jīng)夠用了,所以在2011年前后,市場(chǎng)還是數(shù)據(jù)倉(cāng)庫(kù)的天下。?到了互聯(lián)網(wǎng)時(shí)代,數(shù)據(jù)量呈現(xiàn)“井噴式”爆發(fā),數(shù)據(jù)類(lèi)型也變得異構(gòu)化。受數(shù)據(jù)規(guī)模和數(shù)據(jù)類(lèi)型的限制,傳統(tǒng)數(shù)據(jù)倉(cāng)庫(kù)無(wú)法支撐起互聯(lián)網(wǎng)時(shí)代的商業(yè)智能,隨著Hadoop與對(duì)象存儲(chǔ)的技術(shù)成熟,數(shù)據(jù)湖的概念應(yīng)用而生,在2011年由James Dixon提出。?相比于數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)湖是一種不斷演進(jìn)中、可擴(kuò)展的大數(shù)據(jù)存儲(chǔ)、處理、分析的基礎(chǔ)設(shè)施。它就像一個(gè)大型倉(cāng)庫(kù),可以存儲(chǔ)任何形式(包括結(jié)構(gòu)化和非結(jié)構(gòu)化)和任何格式(包括文本、音頻、視頻和圖像)的原始數(shù)據(jù),數(shù)據(jù)湖通常更大,存儲(chǔ)成本也更為廉價(jià)。但它的問(wèn)題也很明顯,數(shù)據(jù)湖缺乏結(jié)構(gòu)性,一旦沒(méi)有被治理好,就會(huì)變成數(shù)據(jù)沼澤。從產(chǎn)品形態(tài)上來(lái)說(shuō),數(shù)據(jù)倉(cāng)庫(kù)一般是獨(dú)立標(biāo)準(zhǔn)化產(chǎn)品,數(shù)據(jù)湖更像是一種架構(gòu)指導(dǎo),需要配合著系列周邊工具,來(lái)實(shí)現(xiàn)業(yè)務(wù)需要。換句話(huà)說(shuō),數(shù)據(jù)湖的靈活性,對(duì)于前期開(kāi)發(fā)和前期部署是友好的;數(shù)據(jù)倉(cāng)庫(kù)的規(guī)范性,對(duì)于大數(shù)據(jù)后期運(yùn)行和公司長(zhǎng)期發(fā)展是友好的,那么,有沒(méi)有那么一種可能,有沒(méi)有一種新架構(gòu),能兼具數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖的優(yōu)點(diǎn)呢??于是,湖倉(cāng)一體誕生了。依據(jù)DataBricks公司對(duì)Lakehouse 的定義,
湖倉(cāng)一體是一種結(jié)合了數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)優(yōu)勢(shì)的新范式,在用于數(shù)據(jù)湖的低成本存儲(chǔ)上,實(shí)現(xiàn)與數(shù)據(jù)倉(cāng)庫(kù)中類(lèi)似的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理功能。湖倉(cāng)一體是一種更開(kāi)放的新型架構(gòu),有人把它做了一個(gè)比喻,就類(lèi)似于在湖邊搭建了很多小房子,有的負(fù)責(zé)數(shù)據(jù)分析,有的運(yùn)轉(zhuǎn)機(jī)器學(xué)習(xí),有的來(lái)檢索音視頻等,至于那些數(shù)據(jù)源流,都可以從數(shù)據(jù)湖里輕松獲取。就湖倉(cāng)一體發(fā)展軌跡來(lái)看,早期的湖倉(cāng)一體,更多是一種處理思想,處理上將數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)互相打通,現(xiàn)在的湖倉(cāng)一體,雖然仍處于發(fā)展的初期階段,但它已經(jīng)不只是一個(gè)純粹的技術(shù)概念,而是被賦予了更多與廠(chǎng)商產(chǎn)品層面相關(guān)的含義和價(jià)值。?這里需要注意的是,“湖倉(cāng)一體”并不等同于“數(shù)據(jù)湖”+“數(shù)據(jù)倉(cāng)”,這是一個(gè)極大的誤區(qū),現(xiàn)在很多公司經(jīng)常會(huì)同時(shí)搭建數(shù)倉(cāng)、數(shù)據(jù)湖兩種存儲(chǔ)架構(gòu),一個(gè)大的數(shù)倉(cāng)拖著多個(gè)小的數(shù)據(jù)湖,這并不意味著這家公司擁有了湖倉(cāng)一體的能力,湖倉(cāng)一體絕不等同于數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)簡(jiǎn)單打通,反而數(shù)據(jù)在這兩種存儲(chǔ)中會(huì)有極大冗余度。
03 ?為什么會(huì)誕生湖倉(cāng)一體化?1、打通數(shù)據(jù)的存儲(chǔ)與計(jì)算很多公司對(duì)各類(lèi)
數(shù)據(jù)應(yīng)用包括 SQL 分析、實(shí)時(shí)監(jiān)控、數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)的靈活性、高性能系統(tǒng)的需求并未減少。AI 的大部分最新進(jìn)展是基于更好地處理非結(jié)構(gòu)化數(shù)據(jù)(如 text、images、video、audio )的模型,完全純數(shù)據(jù)倉(cāng)庫(kù)的二維關(guān)系表已經(jīng)無(wú)法承接半/非結(jié)構(gòu)化數(shù)據(jù)的處理,AI 引擎不可能只跑在純數(shù)據(jù)倉(cāng)庫(kù)模型上。一種常見(jiàn)的解決方案是結(jié)合數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)優(yōu)勢(shì),建立湖倉(cāng)一體化,進(jìn)而解決了數(shù)據(jù)湖的局限性:直接在用于數(shù)據(jù)湖的低成本存儲(chǔ)上實(shí)現(xiàn)與數(shù)據(jù)倉(cāng)庫(kù)中類(lèi)似的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)管理功能。之前的微博基于大數(shù)據(jù)的需求發(fā)展了數(shù)據(jù)倉(cāng)庫(kù)平臺(tái),基于A(yíng)I的需求,發(fā)展了數(shù)據(jù)湖平臺(tái),這兩套大數(shù)據(jù)平臺(tái)在集群層面完全是割裂的,數(shù)據(jù)和計(jì)算無(wú)法在兩個(gè)平臺(tái)間自由流動(dòng)。而使用湖倉(cāng)一體,就能實(shí)現(xiàn)數(shù)據(jù)湖和數(shù)倉(cāng)之間的無(wú)縫流轉(zhuǎn),打通了數(shù)據(jù)存儲(chǔ)和計(jì)算的不同的層面。
2、靈活性與成長(zhǎng)性兼得
通過(guò)上面這張圖,可知靈活性和成長(zhǎng)性,對(duì)于處于不同時(shí)期的企業(yè)來(lái)說(shuō),重要性不同。當(dāng)企業(yè)處于初創(chuàng)階段,數(shù)據(jù)從產(chǎn)生到消費(fèi)還需要一個(gè)創(chuàng)新探索的階段才能逐漸沉淀下來(lái),那么用于支撐這類(lèi)業(yè)務(wù)的大數(shù)據(jù)系統(tǒng),靈活性就更加重要,數(shù)據(jù)湖的架構(gòu)更適用。當(dāng)企業(yè)逐漸成熟起來(lái),已經(jīng)沉淀為一系列數(shù)據(jù)處理流程,問(wèn)題開(kāi)始轉(zhuǎn)化為數(shù)據(jù)規(guī)模不斷增長(zhǎng),處理數(shù)據(jù)的成本不斷增加,參與數(shù)據(jù)流程的人員、部門(mén)不斷增多,那么用于支撐這類(lèi)業(yè)務(wù)的大數(shù)據(jù)系統(tǒng),成長(zhǎng)性的好壞就決定了業(yè)務(wù)能夠發(fā)展多遠(yuǎn)。數(shù)據(jù)倉(cāng)庫(kù)的架構(gòu)更適用。

經(jīng)過(guò)對(duì)數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)的深入闡述和比較,可以發(fā)現(xiàn):數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)一個(gè)面向初創(chuàng)用戶(hù)友好,一個(gè)成長(zhǎng)性更佳。對(duì)企業(yè)來(lái)說(shuō),數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)是否必須是一個(gè)二選一的選擇題?是否能有一種方案同時(shí)兼顧數(shù)據(jù)湖的靈活性和云數(shù)據(jù)倉(cāng)庫(kù)的成長(zhǎng)性,將二者有效結(jié)合起來(lái)為用戶(hù)實(shí)現(xiàn)更低的總體擁有成本?那么湖倉(cāng)一體化就是答案!
04 ?什么是湖倉(cāng)一體化?
隨著當(dāng)前大數(shù)據(jù)技術(shù)應(yīng)用趨勢(shì),企業(yè)對(duì)單一的數(shù)據(jù)湖和數(shù)倉(cāng)架構(gòu)并不滿(mǎn)意。越來(lái)越多的企業(yè)開(kāi)始融合數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)的平臺(tái),不僅可以實(shí)現(xiàn)數(shù)據(jù)倉(cāng)庫(kù)的功能,同時(shí)還實(shí)現(xiàn)了不同類(lèi)型數(shù)據(jù)的處理功能、數(shù)據(jù)科學(xué)、用于發(fā)現(xiàn)新模型的高級(jí)功能。湖倉(cāng)一體是一種新型開(kāi)放式架構(gòu),將數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)的優(yōu)勢(shì)充分結(jié)合,它構(gòu)建在數(shù)據(jù)湖低成本的數(shù)據(jù)存儲(chǔ)架構(gòu)之上,又繼承了數(shù)據(jù)倉(cāng)庫(kù)的數(shù)據(jù)處理和管理功能,打通數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)兩套體系,讓數(shù)據(jù)和計(jì)算在湖和倉(cāng)之間自由流動(dòng)。作為新一代大數(shù)據(jù)技術(shù)架構(gòu),將逐漸取代單一數(shù)據(jù)湖和數(shù)據(jù)倉(cāng)庫(kù)架構(gòu)。有人把“湖倉(cāng)一體”做了形象的比喻,就好像湖邊搭建了很多小房子,有的可以負(fù)責(zé)數(shù)據(jù)分析,有的來(lái)運(yùn)轉(zhuǎn)機(jī)器學(xué)習(xí),有的來(lái)檢索音視頻等等,而這些數(shù)據(jù)源流,都可以從數(shù)據(jù)湖里輕松取得。
05 ?湖倉(cāng)一體Data Lakehouse介紹Data Lakehouse(湖倉(cāng)一體)是新出現(xiàn)的一種數(shù)據(jù)架構(gòu),它同時(shí)吸收了數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖的優(yōu)勢(shì),數(shù)據(jù)分析師和數(shù)據(jù)科學(xué)家可以在同一個(gè)數(shù)據(jù)存儲(chǔ)中對(duì)數(shù)據(jù)進(jìn)行操作,同時(shí)它也能為公司進(jìn)行
數(shù)據(jù)治理帶來(lái)更多的便利性。那么何為Data Lakehouse呢,它具備些什么特性呢?一直以來(lái),我們都在使用兩種數(shù)據(jù)存儲(chǔ)方式來(lái)架構(gòu)數(shù)據(jù):
數(shù)據(jù)倉(cāng)庫(kù):數(shù)倉(cāng)這樣的一種數(shù)據(jù)存儲(chǔ)架構(gòu),它主要存儲(chǔ)的是以關(guān)系型數(shù)據(jù)庫(kù)組織起來(lái)的結(jié)構(gòu)化數(shù)據(jù)。數(shù)據(jù)通過(guò)轉(zhuǎn)換、整合以及清理,并導(dǎo)入到目標(biāo)表中。在數(shù)倉(cāng)中,數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)與其定義的schema是強(qiáng)匹配的。
數(shù)據(jù)湖:數(shù)據(jù)湖這樣的一種數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),它可以存儲(chǔ)任何類(lèi)型的數(shù)據(jù),包括像圖片、文檔這樣的非結(jié)構(gòu)化數(shù)據(jù)。數(shù)據(jù)湖通常更大,其存儲(chǔ)成本也更為廉價(jià)。存儲(chǔ)其中的數(shù)據(jù)不需要滿(mǎn)足特定的schema,數(shù)據(jù)湖也不會(huì)嘗試去將特定的schema施行其上。相反的是,數(shù)據(jù)的擁有者通常會(huì)在讀取數(shù)據(jù)的時(shí)候解析schema(schema-on-read),當(dāng)處理相應(yīng)的數(shù)據(jù)時(shí),將轉(zhuǎn)換施加其上。現(xiàn)在許多的公司往往同時(shí)會(huì)搭建數(shù)倉(cāng)、數(shù)據(jù)湖這兩種存儲(chǔ)架構(gòu),一個(gè)大的數(shù)倉(cāng)和多個(gè)小的數(shù)據(jù)湖。這樣,數(shù)據(jù)在這兩種存儲(chǔ)中就會(huì)有一定的冗余。Data Lakehouse的出現(xiàn)試圖去融合數(shù)倉(cāng)和數(shù)據(jù)湖這兩者之間的差異,通過(guò)將數(shù)倉(cāng)構(gòu)建在數(shù)據(jù)湖上,使得存儲(chǔ)變得更為廉價(jià)和彈性,同時(shí)lakehouse能夠有效地提升數(shù)據(jù)質(zhì)量,減小數(shù)據(jù)冗余。在lakehouse的構(gòu)建中,ETL起了非常重要的作用,它能夠?qū)⑽唇?jīng)規(guī)整的數(shù)據(jù)湖層數(shù)據(jù)轉(zhuǎn)換成數(shù)倉(cāng)層結(jié)構(gòu)化的數(shù)據(jù)。Data Lakehouse概念是由Databricks提出的,在提出概念的同時(shí),也列出了如下一些特性:
事務(wù)支持:Lakehouse可以處理多條不同的數(shù)據(jù)管道。這意味著它可以在不破壞數(shù)據(jù)完整性的前提下支持并發(fā)的讀寫(xiě)事務(wù)。
Schemas:數(shù)倉(cāng)會(huì)在所有存儲(chǔ)其上的數(shù)據(jù)上施加Schema,而數(shù)據(jù)湖則不會(huì)。Lakehouse的架構(gòu)可以根據(jù)應(yīng)用的需求為絕大多數(shù)的數(shù)據(jù)施加schema,使其標(biāo)準(zhǔn)化。
報(bào)表以及分析應(yīng)用的支持:報(bào)表和分析應(yīng)用都可以使用這一存儲(chǔ)架構(gòu)。Lakehouse里面所保存的數(shù)據(jù)經(jīng)過(guò)了清理和整合的過(guò)程,它可以用來(lái)加速分析。同時(shí)相比于數(shù)倉(cāng),它能夠保存更多的數(shù)據(jù),數(shù)據(jù)的時(shí)效性也會(huì)更高,能顯著提升報(bào)表的質(zhì)量。
數(shù)據(jù)類(lèi)型擴(kuò)展:數(shù)倉(cāng)僅可以支持結(jié)構(gòu)化數(shù)據(jù),而Lakehouse的結(jié)構(gòu)可以支持更多不同類(lèi)型的數(shù)據(jù),包括文件、視頻、音頻和系統(tǒng)日志。
端到端的流式支持:Lakehouse可以支持流式分析,從而能夠滿(mǎn)足實(shí)時(shí)報(bào)表的需求,實(shí)時(shí)報(bào)表在現(xiàn)在越來(lái)越多的企業(yè)中重要性在逐漸提高。
計(jì)算存儲(chǔ)分離:我們往往使用低成本硬件和集群化架構(gòu)來(lái)實(shí)現(xiàn)數(shù)據(jù)湖,這樣的架構(gòu)提供了非常廉價(jià)的分離式存儲(chǔ)。Lakehouse是構(gòu)建在數(shù)據(jù)湖之上的,因此自然也采用了存算分離的架構(gòu),數(shù)據(jù)存儲(chǔ)在一個(gè)集群中,而在另一個(gè)集群中進(jìn)行處理。
開(kāi)放性:Lakehouse在其構(gòu)建中通常會(huì)使Iceberg,Hudi,Delta Lake等構(gòu)建組件,首先這些組件是開(kāi)源開(kāi)放的,其次這些組件采用了Parquet,ORC這樣開(kāi)放兼容的存儲(chǔ)格式作為下層的數(shù)據(jù)存儲(chǔ)格式,因此不同的引擎,不同的語(yǔ)言都可以在Lakehouse上進(jìn)行操作。
Lakehouse的概念最早是由Databricks所提出的,而其他的類(lèi)似的產(chǎn)品有Azure Synapse Analytics。Lakehouse技術(shù)仍然在發(fā)展中,因此上面所述的這些特性也會(huì)被不斷的修訂和改進(jìn)。
06 ?湖倉(cāng)一體化有什么好處?湖倉(cāng)一體能發(fā)揮出數(shù)據(jù)湖的靈活性與生態(tài)豐富性,以及數(shù)據(jù)倉(cāng)庫(kù)的成長(zhǎng)性與企業(yè)級(jí)能力。幫助企業(yè)建立數(shù)據(jù)資產(chǎn)、實(shí)現(xiàn)數(shù)據(jù)業(yè)務(wù)化、進(jìn)而推進(jìn)全線(xiàn)業(yè)務(wù)智能化,實(shí)現(xiàn)數(shù)據(jù)驅(qū)動(dòng)下的企業(yè)數(shù)據(jù)智能創(chuàng)新,全面支撐企業(yè)未來(lái)大規(guī)模業(yè)務(wù)智能落地。其主要優(yōu)勢(shì)主要有以下幾個(gè)方面:
數(shù)據(jù)重復(fù)性:如果一個(gè)組織同時(shí)維護(hù)了一個(gè)數(shù)據(jù)湖和多個(gè)數(shù)據(jù)倉(cāng)庫(kù),這無(wú)疑會(huì)帶來(lái)數(shù)據(jù)冗余。在最好的情況下,這僅僅只會(huì)帶來(lái)數(shù)據(jù)處理的不高效,但是在最差的情況下,它會(huì)導(dǎo)致數(shù)據(jù)不一致的情況出現(xiàn)。湖倉(cāng)一體的結(jié)合,能夠去除數(shù)據(jù)的重復(fù)性,真正做到了唯一。
高存儲(chǔ)成本:數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)湖都是為了降低數(shù)據(jù)存儲(chǔ)的成本。數(shù)據(jù)倉(cāng)庫(kù)往往是通過(guò)降低冗余,以及整合異構(gòu)的數(shù)據(jù)源來(lái)做到降低成本。而數(shù)據(jù)湖則往往使用大數(shù)據(jù)文件系統(tǒng)和Spark在廉價(jià)的硬件上存儲(chǔ)計(jì)算數(shù)據(jù)。湖倉(cāng)一體架構(gòu)的目標(biāo)就是結(jié)合這些技術(shù)來(lái)最大力度降低成本。
報(bào)表和分析應(yīng)用之間的差異:數(shù)據(jù)科學(xué)傾向于與數(shù)據(jù)湖打交道,使用各種分析技術(shù)來(lái)處理未經(jīng)加工的數(shù)據(jù)。而
報(bào)表分析師們則傾向于使用整合后的數(shù)據(jù),比如數(shù)據(jù)倉(cāng)庫(kù)或是數(shù)據(jù)集市。而在一個(gè)組織內(nèi),往往這兩個(gè)團(tuán)隊(duì)之間沒(méi)有太多的交集,但實(shí)際上他們之間的工作又有一定的重復(fù)和矛盾。而當(dāng)使用湖倉(cāng)一體架構(gòu)后,兩個(gè)團(tuán)隊(duì)可以在同一數(shù)據(jù)架構(gòu)上進(jìn)行工作,避免不必要的重復(fù)。
數(shù)據(jù)停滯:在數(shù)據(jù)湖中,數(shù)據(jù)停滯是一個(gè)最為嚴(yán)重的問(wèn)題,如果數(shù)據(jù)一直無(wú)人治理,那將很快變?yōu)閿?shù)據(jù)沼澤。我們往往輕易的將數(shù)據(jù)丟入湖中,但缺乏有效的治理,長(zhǎng)此以往,數(shù)據(jù)的時(shí)效性變得越來(lái)越難追溯。湖倉(cāng)一體的引入,對(duì)于海量數(shù)據(jù)進(jìn)行治理,能夠更有效地幫助提升分析數(shù)據(jù)的時(shí)效性。
潛在不兼容性帶來(lái)的風(fēng)險(xiǎn):數(shù)據(jù)分析仍是一門(mén)興起的技術(shù),新的工具和技術(shù)每年仍在不停地出現(xiàn)中。一些技術(shù)可能只和數(shù)據(jù)湖兼容,而另一些則又可能只和數(shù)據(jù)倉(cāng)庫(kù)兼容。湖倉(cāng)一體的架構(gòu)意味著為兩方面做準(zhǔn)備。
07? 湖倉(cāng)一體落地路徑與成本
A:現(xiàn)在大多數(shù)企業(yè)都已經(jīng)有了自己的一套大數(shù)據(jù)架構(gòu),他們?nèi)绾位谝延械募軜?gòu)落地湖倉(cāng)一體?有哪些可行的落地路徑?成本可能主要會(huì)來(lái)自哪里?
Q:現(xiàn)在有一部分企業(yè)已經(jīng)有了自己的大數(shù)據(jù)架構(gòu),這些企業(yè)相對(duì)來(lái)說(shuō)可能誕生的比較早,大多數(shù)都是選的 Hadoop 體系,或是自建的 Hadoop 體系,或是使用云上托管的 Hadoop 體系。這些企業(yè)可以有很多選擇,他可以選擇像 Databricks 那樣的方案,也可以選擇像 MaxCompute 這樣的方案。
這兩條路徑都相對(duì)可行,那怎么選?這通常要看企業(yè)是不是希望在大數(shù)據(jù)技術(shù)棧上做更多投入。如果企業(yè)覺(jué)得沒(méi)必要在基礎(chǔ)設(shè)施上投很多資源,而是要把更多資源放在業(yè)務(wù)上,那選一個(gè)更偏全托管版的湖倉(cāng)一體解決方案更有價(jià)值。反之,如果企業(yè)技術(shù)人員很多,希望底層基礎(chǔ)設(shè)施足夠靈活并且是自己可控的,就可以選擇在湖上建倉(cāng)的模式。
還有一些比較新的企業(yè),比如過(guò)去三年內(nèi)成立的,它們有很多都處于高速增長(zhǎng)階段。這些企業(yè)其實(shí)天生就長(zhǎng)在云上,甚至一開(kāi)始選的大數(shù)據(jù)架構(gòu)就已經(jīng)是云數(shù)倉(cāng)的架構(gòu),這類(lèi)企業(yè)基于現(xiàn)有的架構(gòu)向前演進(jìn)相對(duì)比較簡(jiǎn)單。只要盡量使用云基礎(chǔ)設(shè)施,開(kāi)通幾個(gè)云服務(wù)就能形成一套湖倉(cāng)一體架構(gòu)了,這是一個(gè)簡(jiǎn)單直接且相對(duì)單一化的路徑。
那成本主要來(lái)自哪里?如果企業(yè)選擇全托管的湖倉(cāng)一體解決方案,則成本主要來(lái)自于對(duì)當(dāng)前數(shù)據(jù),比如數(shù)倉(cāng)遷移、數(shù)據(jù)整理等一次性開(kāi)支,一旦這部分工作做完,后續(xù)在數(shù)據(jù)治理上形成正循環(huán),整體成本不會(huì)太高。如果企業(yè)選擇自己維護(hù)一套湖倉(cāng)一體架構(gòu),則成本主要來(lái)自持續(xù)維護(hù)和調(diào)優(yōu)整套基礎(chǔ)設(shè)施的人力成本和硬件成本。
A:根據(jù)您的了解,當(dāng)前企業(yè)嘗試落地湖倉(cāng)一體的時(shí)候遇到的問(wèn)題和挑戰(zhàn)主要有哪些?現(xiàn)在是采用湖倉(cāng)一體的好時(shí)機(jī)嗎?
Q:現(xiàn)在大多數(shù)企業(yè)都還沒(méi)有用到湖倉(cāng)一體的新架構(gòu),他們要么選擇了數(shù)據(jù)湖方案,要么選擇了數(shù)倉(cāng)方案。湖倉(cāng)一體作為一個(gè)新興架構(gòu),很多企業(yè)目前還在早期探索階段。有些企業(yè)在把數(shù)據(jù)放到數(shù)據(jù)湖上之后,發(fā)現(xiàn)在數(shù)據(jù)湖上做好數(shù)據(jù)治理或者數(shù)據(jù)管理相對(duì)比較困難,這個(gè)時(shí)候再去采用湖倉(cāng)一體模式,在現(xiàn)有相對(duì)更靈活但不夠管理化的數(shù)據(jù)上,再抽象一層數(shù)倉(cāng)層和治理層,對(duì)數(shù)據(jù)做更好的管理和治理。對(duì)于數(shù)倉(cāng)的用戶(hù),如果采用的數(shù)倉(cāng)系統(tǒng)支持湖倉(cāng)一體架構(gòu),直接掛載數(shù)據(jù)湖就好了。
企業(yè)嘗試落地湖倉(cāng)一體時(shí)會(huì)遇到的問(wèn)題和挑戰(zhàn)主要有幾點(diǎn)。首先,如果團(tuán)隊(duì)沒(méi)有足夠好的數(shù)據(jù)治理或數(shù)據(jù)管理經(jīng)驗(yàn),挑戰(zhàn)會(huì)比較大。這也是為什么我們推出的方案幾乎都在向全托管或全服務(wù)的 SaaS 模式走,就是希望能夠降低門(mén)檻。
其次,對(duì)于自建湖倉(cāng)一體的企業(yè),他們會(huì)遇到的挑戰(zhàn)主要是湖倉(cāng)一體的高復(fù)雜度,特別是湖倉(cāng)之間如何協(xié)同的問(wèn)題,這里面涉及到兩套系統(tǒng)存儲(chǔ)打通的問(wèn)題、元數(shù)據(jù)一致性問(wèn)題、湖和倉(cāng)上不同引擎之間數(shù)據(jù)交叉引用的問(wèn)題,以及帶寬問(wèn)題、安全問(wèn)題,等等。另外,由于湖倉(cāng)一體架構(gòu)底層是一個(gè)二元體系,那向上面向用戶(hù)的時(shí)候,用戶(hù)是不是能看到兩個(gè)體系?如果用戶(hù)能夠看到兩個(gè)體系的話(huà),如何區(qū)分和引導(dǎo)?如果用戶(hù)看不到的話(huà),那底下開(kāi)發(fā)需要做什么樣的封裝?這些都是自建湖倉(cāng)體系會(huì)遇到的問(wèn)題。
總之,如果企業(yè)并不是一定要大力投入做基礎(chǔ)設(shè)施的話(huà),直接采用全托管版本的湖倉(cāng)一體的架構(gòu)會(huì)簡(jiǎn)單很多。
最后,湖倉(cāng)一體還是一個(gè)新興的方向,很多問(wèn)題還在探索中,比如哪些數(shù)據(jù)放在數(shù)倉(cāng) / 數(shù)據(jù)湖?更適合有一定探索和創(chuàng)新意愿的企業(yè)。
(部分內(nèi)容來(lái)源網(wǎng)絡(luò),如有侵權(quán)請(qǐng)聯(lián)系刪除)