湖倉一體架構(gòu):數(shù)字化的終局之選!
大家好,我是夢想家Alex ~ 之前我已經(jīng)分享過不少有關(guān)數(shù)據(jù)湖,數(shù)據(jù)倉庫,數(shù)據(jù)中臺的文章,但今天想為大家介紹的是被譽為“數(shù)字化終局之選” 的湖倉一體架構(gòu),希望對大家有所啟發(fā),歡迎轉(zhuǎn)發(fā)收藏!
參與文末留言,還有機會獲取大數(shù)據(jù)架構(gòu),中臺相關(guān)書籍!
下圖是一張非常經(jīng)典的數(shù)據(jù)分析技術(shù)演進圖,從中可一窺整體發(fā)展歷程。本文將按時間順序盤點下各階段產(chǎn)品及技術(shù)特點,并預(yù)測下未來發(fā)展方向。
1 簡單可用階段:數(shù)據(jù)庫(DataBase)
早在1980年代初中期,是沒有專門面向數(shù)據(jù)分析場景的產(chǎn)品。當(dāng)時還是以面向事務(wù)交易場景為主,數(shù)據(jù)分析僅作為附帶提供的場景。主要是面對管理層提供固定報表,滿足宏觀管理決策。
作為底層數(shù)據(jù)庫,通過標(biāo)準(zhǔn)SQL提供數(shù)據(jù)分析能力。這一架構(gòu)在面對數(shù)據(jù)分析場景的缺點很明顯,擴展性差,很難支持大規(guī)模數(shù)據(jù)分析,性能也無法滿足需求。這也催生專門解決數(shù)據(jù)分析的產(chǎn)品出現(xiàn),即后面出現(xiàn)的數(shù)據(jù)倉庫。
02 規(guī)范標(biāo)準(zhǔn)階段:數(shù)倉(Data Warehouse)
到了1980年代中后期,為解決數(shù)據(jù)庫面對數(shù)據(jù)分析的不足,孕育出新一類產(chǎn)品數(shù)據(jù)倉庫。
讓我們先來看下數(shù)據(jù)倉庫的定義,數(shù)據(jù)倉庫(Data Warehouse)是一個面向主題的、集成的、相對穩(wěn)定的、反映歷史變化的數(shù)據(jù)集合,用于支持管理決策和信息的全局共享。上圖是數(shù)據(jù)倉庫的應(yīng)用架構(gòu),從中可見其做了若干階段劃分,簡單可分為數(shù)據(jù)集成(裝載)、數(shù)據(jù)加工(ETL)、數(shù)據(jù)匯聚、數(shù)據(jù)展示及挖掘。
數(shù)據(jù)經(jīng)過這一過程,被抽取到數(shù)據(jù)倉庫中,并嚴(yán)格按照預(yù)先定義的模式被裝載進來,經(jīng)過多層加工形成數(shù)據(jù)集市,并最終提供給終端應(yīng)用或進一步供挖掘使用。在技術(shù)實現(xiàn)上,主流采用MPP無共享存儲架構(gòu),基于標(biāo)準(zhǔn)X86服務(wù)器,可實現(xiàn)數(shù)百節(jié)點的擴展。其對外提供標(biāo)準(zhǔn)的SQL能力和ACID特性,整體計算性能可在一定程度上隨節(jié)點擴展可提升。
數(shù)據(jù)倉庫架構(gòu)非常經(jīng)典,在一定時期內(nèi)滿足了數(shù)據(jù)分析需求,也促進數(shù)據(jù)分析場景的演進發(fā)展。從上圖我們看到數(shù)據(jù)倉庫的發(fā)展,經(jīng)歷了多個階段。從固定報表,滿足T+1時效性即可;到分析型需求增加,需提供靈活深度查詢能力;到預(yù)測型需求,需滿足多維度分析預(yù)測能力;到運營型數(shù)倉,不再局限在后臺提供服務(wù),而強調(diào)實時變化、分析學(xué)習(xí)、反饋控制;再到智慧型數(shù)倉,強調(diào)人工智能全面感知能力。
可以說,數(shù)據(jù)倉庫一路走來,不斷演進變化,大大促進了數(shù)據(jù)在企業(yè)內(nèi)的應(yīng)用水平,直到今日仍然是很多企業(yè)應(yīng)對數(shù)據(jù)分析的不二之選。
當(dāng)然,隨著數(shù)據(jù)在企業(yè)內(nèi)角色愈發(fā)重要,對其分析的要求不斷提高。傳統(tǒng)的數(shù)據(jù)倉庫架構(gòu)也面臨很多的挑戰(zhàn)。例如,隨著數(shù)據(jù)規(guī)模擴大,對數(shù)據(jù)承載能力(容量、算力)的要求也不斷增大,數(shù)倉架構(gòu)的擴展能力急需考驗;上述規(guī)模的擴展會面臨大量資源的投入,硬件資源缺乏彈性,會導(dǎo)致高峰時資源不足,低谷時資源閑置浪費問題;隨著對數(shù)據(jù)鮮活程度要求提高,對數(shù)據(jù)處理時長有著更為嚴(yán)格的要求,否則將無法指導(dǎo)業(yè)務(wù)運營;針對數(shù)據(jù)類型,也不再局限于結(jié)構(gòu)化數(shù)據(jù),更多半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)被更多利用起來;此外,在數(shù)據(jù)價值挖掘、數(shù)據(jù)安全等方面都提出了更高的要求。針對上述難點,也催生了一系列技術(shù)的發(fā)展,例如HTAP、大數(shù)據(jù)分析等,也包括后面重點談到的數(shù)據(jù)湖。
03 開放自由階段:數(shù)據(jù)湖(Data Lake)
Data Lake,是在2011年由James Dixon提出,其與數(shù)據(jù)倉庫的主要區(qū)別在于數(shù)據(jù)倉庫中數(shù)據(jù)在進入倉庫之前是需要實現(xiàn)歸類,而數(shù)據(jù)庫是把大量原始數(shù)據(jù)通過廉價存儲保存下來。數(shù)據(jù)倉庫具有高度結(jié)構(gòu)化的架構(gòu),用戶可直接獲得分析數(shù)據(jù);而數(shù)據(jù)湖是將數(shù)據(jù)直接加載到湖中,然后根據(jù)分析的需求再轉(zhuǎn)換數(shù)據(jù)。
數(shù)據(jù)湖架構(gòu)的特點可總結(jié)為:低成本、原始數(shù)據(jù)、需靈活可使用、面向任務(wù)數(shù)據(jù)綁定、不提前定義數(shù)據(jù)模型。在實現(xiàn)技術(shù)上面,多采用基于Hadoop生態(tài)的產(chǎn)品,兼具有MPP、Hive/Spark、NoSQL、Stream/Batch能力。具備良好的擴展能力,可支持?jǐn)?shù)千節(jié)點的超大規(guī)模集群。但對SQL支持偏弱、ACID特性支持差,較難從傳統(tǒng)數(shù)據(jù)倉庫遷移過來。業(yè)務(wù)上更為強調(diào)數(shù)據(jù)資產(chǎn)管理與數(shù)據(jù)服務(wù)。
這里我們對數(shù)據(jù)倉庫和數(shù)據(jù)湖做個簡單對比,可以看出兩者差異很多。基本上屬于互補關(guān)系,各有其適合覆蓋場景。前者更多是解決固定的、明確的數(shù)據(jù)問題;后者則為應(yīng)對隨機性、探索式的數(shù)據(jù)問題。下圖可以更為準(zhǔn)確地描述兩者差異。
04 融合共享階段:湖倉一體(LakeHouse)
提到湖倉一體,就不得不從上世紀(jì)80年代說起。當(dāng)時市場還是數(shù)據(jù)倉庫的天下,主要用來處理BI、儀表盤、報表等結(jié)構(gòu)化數(shù)據(jù),用于分析企業(yè)的內(nèi)部的業(yè)務(wù)數(shù)據(jù)。
這種狀態(tài)一直持續(xù)到2010年前后,越來越多企業(yè)產(chǎn)生對語音、視頻等數(shù)據(jù)的處理分析需求,非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù)的增長促使企業(yè)提升了高多樣性,高速度和高容量的數(shù)據(jù)分析要求,數(shù)據(jù)倉庫慢慢不能滿足用戶的需求。
隨著數(shù)據(jù)倉庫局限性的逐步顯現(xiàn),數(shù)據(jù)湖的概念也隨之衍生出來,它能夠存儲各式各樣的原始數(shù)據(jù),解決了數(shù)據(jù)倉庫的局限性。但相比于優(yōu)勢來講,湖的短板也同樣明顯,比如不支持事務(wù),SQL性能差,無法支撐報表需求。雖然數(shù)據(jù)湖和數(shù)據(jù)倉都各自有各自的優(yōu)勢和不足,但不難發(fā)現(xiàn),二者在某些層面是非?;パa的。
于是乎,是否有一種能兼具兩者優(yōu)點的架構(gòu)出現(xiàn),于是誕生了“湖倉一體”。
湖倉一體1.0
早期的湖倉一體,更多是一種處理思想,處理上直接將數(shù)據(jù)湖和數(shù)據(jù)倉庫互相“打通”。數(shù)據(jù)湖從各類數(shù)據(jù)源獲得原始數(shù)據(jù),存儲在廉價存儲上,永久不刪除。數(shù)據(jù)保持原始簡單格式、機構(gòu),無數(shù)據(jù)治理,也沒有數(shù)倉豐富的功能及高性能統(tǒng)一數(shù)據(jù)模型。當(dāng)需要支持分析場景在成熟時從數(shù)據(jù)湖到數(shù)據(jù)倉庫的遷移。
這種架構(gòu)優(yōu)點在于可充分利用先前的數(shù)據(jù)湖和數(shù)據(jù)倉庫資源,利用ETL將二者“打通”,數(shù)據(jù)湖用來存儲各種原始數(shù)據(jù),分析報表交給數(shù)據(jù)倉庫來完成,這也可以算是湖倉一體的一個雛形,但湖和倉基本上還是處于各自一體的狀態(tài),架構(gòu)仍然較為復(fù)雜,在滿足需求的同時也持續(xù)提高了企業(yè)的運維成本。
湖倉一體2.0
為了解決湖倉一體1.0的諸多問題,2.0應(yīng)運而生。目前這一架構(gòu)還在快速發(fā)展之中,尚無明確統(tǒng)一的技術(shù)框架。
總的來說,可按照上圖劃分多層次,并在每層解決對應(yīng)問題。從底層數(shù)據(jù)源,需對接多種數(shù)據(jù)源(包括結(jié)構(gòu)化、半結(jié)構(gòu)化及非結(jié)構(gòu)化數(shù)據(jù))。之上的數(shù)據(jù)集成需提供針對不同特征數(shù)據(jù)的集成能力(包括批量、流式)。處理過后的數(shù)據(jù)放入統(tǒng)一存儲層,為面對不同結(jié)構(gòu)的數(shù)據(jù),需提供多模態(tài)存儲能力,甚至為滿足性能要求提供不同存儲引擎。再之上是統(tǒng)一的元數(shù)據(jù)、安全、管控層,通過對全局?jǐn)?shù)據(jù)的完整視角管理。為滿足不同加工需求的統(tǒng)一處理層,層內(nèi)提供多種加工能力。最上面是數(shù)據(jù)應(yīng)用層。
從技術(shù)上看,云原生數(shù)據(jù)倉庫,為湖倉一體2.0提供有利支持,其技術(shù)上天然具備的存算分離、彈性擴展、多租戶、可插拔存儲、多計算引擎、分級資源管理等眾多特性可滿足上述要求。功能上兼具數(shù)據(jù)倉庫的標(biāo)準(zhǔn)SQL、ACID能力,數(shù)據(jù)湖的大規(guī)模原始數(shù)據(jù)存儲等。對上提供多種接入方式,包括標(biāo)準(zhǔn)數(shù)據(jù)庫接入方式,支持高并發(fā)讀寫;對下支持多云、混合云及跨云部署,防止廠商綁定。其技術(shù)架構(gòu)可簡化為類似如下架構(gòu):
展開說明下,其底層依舊是低成本、開放的存儲,上層基于類似 Delta lake/ Iceberg/ Hudi 建設(shè)數(shù)據(jù)系統(tǒng),提供數(shù)據(jù)管理特性和高效訪問性能,支持多樣數(shù)據(jù)分析和計算,綜合了數(shù)據(jù)倉庫以及數(shù)據(jù)湖的優(yōu)點形成了新的架構(gòu)。
存算分離架構(gòu)可以進行靈活擴展;減少數(shù)據(jù)搬遷,數(shù)據(jù)可靠性、一致性和實時性得到了保障;支持豐富的計算引擎和范式;此外,支持?jǐn)?shù)據(jù)組織和索引優(yōu)化,查詢性能更優(yōu)。當(dāng)前湖倉一體還處于快速發(fā)展期,關(guān)鍵技術(shù)迭代快且成熟的產(chǎn)品和系統(tǒng)少。與之前架構(gòu)的對比,這里借用《DataFunCon 2021》大會上的一張圖片加以說明。
未來趨勢、終極之選:湖倉一體2.0
湖倉一體2.0,當(dāng)前仍處于相對早期的階段,它已經(jīng)不只是一個純粹的技術(shù)概念,而是被賦予了更多與廠商產(chǎn)品層面相關(guān)的含義。在湖倉一體越來越火的同時,不同廠商也為它做出了各自的解讀。這其中比較有代表性的產(chǎn)品是Snowflake和國內(nèi)的偶數(shù)科技等。作為2020年的現(xiàn)象級產(chǎn)品-Snowflake,無疑是標(biāo)桿型企業(yè),其核心產(chǎn)品思想可參考下圖。
國內(nèi)的偶數(shù)科技的技術(shù)路線與Snowflake在湖倉一體的思路非常相似。主要是依托云原生特性、存算分離架構(gòu)、強事務(wù)特性、完整SQL標(biāo)準(zhǔn)、高性能并行執(zhí)行等技術(shù)能力,實現(xiàn)高彈性、高性能、強擴展性、強兼容性以及上層支持機器學(xué)習(xí)等,幫助企業(yè)有效應(yīng)對大規(guī)模、強敏態(tài)、高時效、智能化發(fā)展趨勢。其產(chǎn)品技術(shù)架構(gòu)可參考如下:
在這一架構(gòu)中,偶數(shù)科技通過自研的新一代存算分離架構(gòu)產(chǎn)品,實踐湖倉一體2.0理念。其中核心技術(shù)亮點眾多。包括功能強大的基于代價的優(yōu)化器,實現(xiàn)系統(tǒng)自動選擇最優(yōu)執(zhí)行計劃;可充分利用最新CPU特性SIMD單指令多數(shù)據(jù)流,能做到指令內(nèi)并行的新一代執(zhí)行器引擎;多級資源隊列,可通過DDL方便地定義和修改資源隊列;原生Magma存儲引擎與S3、HDFS混合使用,解決高性能與低成本的存儲問題;多種優(yōu)化存儲格式,包括AO、Parquet、ORC等等。下圖簡單對比了包括Snowflake、偶數(shù)科技產(chǎn)品與傳統(tǒng)數(shù)倉產(chǎn)品。
寫在最后:任重道遠(yuǎn),無限潛能
隨著數(shù)據(jù)在數(shù)字化轉(zhuǎn)型中發(fā)揮著愈發(fā)重要的作用,如何挖掘、利用、提升數(shù)據(jù)價值成為核心重點。湖倉一體的出現(xiàn),突破了原有數(shù)據(jù)倉庫架構(gòu)和數(shù)據(jù)湖架構(gòu)的局限,兼具兩者之優(yōu)點。為企業(yè)提供功能完整、可擴展、低成本、高收益的數(shù)據(jù)分析能力。相信,隨著這一技術(shù)不斷演進發(fā)展,必將加速企業(yè)數(shù)字化進程,享受到更多數(shù)據(jù)紅利。也期待有更多的廠商、產(chǎn)品誕生,助力企業(yè)數(shù)字化轉(zhuǎn)型!
作者:韓鋒頻道 | 責(zé)編:大數(shù)據(jù)夢想家
作者:韓鋒頻道Alex
歡迎關(guān)注:大數(shù)據(jù)夢想家