數倉架構的持續演進與發展 — 雲原生、湖倉一體、離線實時一體、SaaS模式


簡介: 數據倉庫概念從1990年提出,經過了四個主要階段。從最初的數據庫演進到數據倉庫,到MPP架構,到大數據時代的數據倉庫,再到今天的雲原生的數據倉庫。在不斷的演進過程中,數據倉庫面臨着不同的挑戰。

作者 張良模 阿里雲智能資深產品專家

image.png

談到數據倉庫,我們往往容易忽略“數據”兩個字,阿里雲有着很多業務場景和業務體系,在這些數據應用之下我們如何管理數據的呢?數據倉庫是如何幫到我們以及它自身是如何演進的?

 

數據倉庫概念從1990年提出,經過了四個主要階段。從最初的數據庫演進到數據倉庫,到MPP架構,到大數據時代的數據倉庫,再到今天的雲原生的數據倉庫。在不斷的演進過程中,數據倉庫面臨着不同的挑戰。

image.png

第一 啟動成本高、建設周期長,價值難以快速驗證

對於數倉的建設人員,面臨的挑戰是業務人員希望數倉建設周期能更短。而傳統數據倉庫往往要面臨從采購服務器,建立物理倉庫到邏輯倉庫等一個較長的周期,所以數據倉庫面臨的第一個挑戰就是怎樣去降低建設周期。

 

第二 如何處理多樣數據,擁抱新技術,充分挖掘數據價值

隨着大數據的到來,傳統數據倉庫管理的大多是結構化數據。如何對半結構化的數據進行統一全面的管理就成為傳統數據倉庫面臨的第二個挑戰。

 

第三 難以共享企業數據資產、數據創新成本高

數據倉庫更加強調管理和安全,在強調安全的情況下如何在組織里以及整個生態上下游中更好的共享和交換數據,成為了新的挑戰。例如在企業的部門間或業務間依然存在為數不少的數據孤島,數據共享成本高,缺乏企業級別的統一的數據獲取出口,由此導致數據消費方獲取數據困難,難於自助分析,嚴重依賴IT部門支持來滿足企業更廣泛的數據需求。

 

第四 平台架構復雜、運營成本高

隨着數據處理種類的多樣化和數據量的不斷變大,不同的技術被疊加在一起從而使得數據倉庫架構變得越發復雜。同一企業里往往會同時存在各種技術類型的數據倉庫。所以如何簡化數據倉庫的架構也是面臨的一個重要挑戰。一般需要投入專業團隊負責管理復雜的數據平台,同時對資源利用率不高的情況進行管理和治理。

 

第五 滿足業務需要的擴展性、彈性、靈活性

業務快速發展的企業,經常會有大促活動,補數據,處理非常規事件的需求,如何快速擴展數倉性能,提高業務峰谷的響應時效,也帶來很多挑戰。

 

對於傳統數據倉庫面臨的這些挑戰,在技術和業務的驅動下新型數據倉庫如何應對呢?這里可以看到六個主要的驅動力。

image.png

 

   第一 我們希望有一個統一的數據平台,能去連接,去存儲和處理多種數據。

   第二 實時化,企業基於數據驅動能實時對業務作出支撐和決策的信息,這里有更高時效性的要求。

   第三 數據量變得非常龐大,在海量數據中如何找到想要的數據,就需要有一張地圖,要對數據進行管理和治理。

   第四 傳統數據倉庫中,數據的存儲采用集中的方式,一定要把數據集中在同一個存儲中。而在新的業務驅動下,需要去連接數據而不是統一存儲在一起。

  第五 數據倉庫之上如何支持更多智能化的應用,信息化的業務以及業務的信息化等關系。這就是數倉智能化和智能化數倉的需求驅動力。

  第六  數據領域的不同角色對數據平台有着不同需求。例如數據工程師,數據分析人員,數據科學家等,他們對數據平台的響應時間,處理速度,數據量,開發語言等有着不同的需求。所以更多的做好分析服務,成為數據管理平台第六個驅動力。

 

據倉庫在不斷地演進過程中,從30年前的概念來看已經注入了更多新的內涵。對於新的內涵,我們可以從數據倉庫的基礎架構,數據架構,數據分析以及服務模型四個角度來明顯看到雲原生,湖倉一體,離線實時一體化、服務模型的SAAS化的演進趨勢。

 

雲原生 — 數倉基礎架構的演進方向

 

雲原生是數倉基礎架構的一個基本的演進方向。傳統數據倉庫是基於物理服務器或雲上托管服務器的模式。而雲原生的情況下可以更多去應用雲的基礎服務,包括存儲服務,網絡服務以及更多的監控服務。這就意味着在雲上用原生服務可以獲得雲的自服務、彈性等能力,雲數倉就可以更好的去集成更多的雲上服務,包括如何把日志數據從各種數據源抽取到數據倉庫中,也包括如何進行全鏈路的數據管理和機器學習等。所以雲原生往往包含了如何構建和如何與雲上服務原生的集成。

image.png

 

如圖,雲原生的情況下在底層充分利用了雲的彈性計算,存儲以及安全能力。在此之上可以看到我們把所有雲的復雜性都屏蔽掉,作為數據平台的用戶,只需開通服務,通過web方式創建項目空間,五分鍾開通一個數據倉庫進行數據倉庫后面模型的開發。大大簡化了服務交付的周期以及數據倉庫整個底層架構,技術架構構建過程。另一方面是雲原生數倉的擴展性,不管你提交了一個只需要1CU的作業還是提交一個可能需要10000CU的作業,平台都會按你的需要調度資源來進行數據處理。所以雲原生又給我們帶來近乎無限的擴展性。

 

湖倉一體 — 數倉數據架構的演進方向

 

講到湖倉一體,先來看湖倉一體背后的原因。不得不說到今天為止數據倉庫仍然是企業管理數據最優的解決方案。各個企業大都有自己的數據倉庫,只不過可能是基於不同的技術形態構建的數據倉庫。在處理策略,對語義的支持上,對場景的優化上以及工程經驗上,數據倉庫是目前沉淀下來的一個最優的方案。在此之上,企業數據量越來越大,需要更靈活更敏捷的數據探索能力。同時,對未知數據存在先存儲下來再進一步探索的訴求。由此,企業在架構上需要融合數據分析的最優化和可探索兩個方面的優勢,從處理策略到語義支持,以及使用案例上,數據倉庫和數據湖分別帶給企業不同的優勢。數據倉庫在易管理,數據質量高,而數據湖在可探索,靈活性強方面為我們帶來優勢。我們要思考和討論如何將兩種方式結合起來共用,這就是提出“湖倉一體”的背景。

image.png

在MaxCompute以數據倉庫為主的場景下,將數據倉庫對數據管理的最優工程經驗,管理經驗和數據湖對數據管理的靈活性,數據處理的靈活性更好的結合在一起, 2019年我們在全球率先提出了“湖倉一體”的全新數據管理架構。基於MaxCompute數據倉庫來提供安全可靠的,結構化的數據管理方式,以及在此之上由DataWorks提供數據血緣,數據地圖和數據治理等能力。這些能力如何延伸到數據湖中?今天我們可見的數據湖包括基於雲上的對象存儲OSS,也包含企業中基於Hadoop HDFS的數據湖,對於這兩類數據湖如何基於已有的靈活性能夠獲得更容易探索能力,能提升它們得數據處理性能,管理能力和安全性?

 

我們所做的就是把數據倉庫和數據湖兩者打通,通過數據湖構建DLF,發現數據湖的元數據,進行結構化的統一管理,融合湖的靈活和便捷優勢。這就是以倉為中心的湖倉一體新型數據管理的架構,數據倉庫在企業數據的管理方式上往前又推進了一步。

image.png

 

離線實時一體 — 數倉數據分析的演進方向

 

在企業的數據倉庫中,通過SLS、Kafka等訂閱的方式進行數據采集,通常有三種路徑。第一種可能是將一部分數據歸檔在數據倉庫中,然后進行全量的分析。第二種是進行實時的查詢分析,比如風控場景下查一個電話號碼過去三年的通話記錄,要馬上查出來,就需要進行實時的連接分析。第三種是進行一些關聯的多維度查詢,對這些實時數據等進行關聯的基礎上,后面再來進行批量的處理,實時處理以及點查。實時數據的獲取,計算以及應用這三方面,構成了整個數倉由離線向實時發展的三個核心含義。這里最核心的就是計算。計算的本質無外乎兩個,一個是主動計算,另一個是被動計算。離線計算往往是被動計算,需要數倉工程師通過定義任務來調度作業,才能計算出新的結果。在實時離線一體化中,除了被動計算,還要有主動計算能力。當數據流入后,不做人工干預,任何作業的插入和重啟都能自動算出新的結果或中間結果。參與實時計算就最大程度的增加了主動計算的過程,而主動的結果帶給我們的好處就是無需重新調度任何作業就能拿到想要的結果數據。

image.png

 

在離線和實時一體的情況下雖然可以解決業務上的一些問題,但架構會非常復雜。所以阿里雲提出離線實時一體化的數倉架構。簡化是說我們只需要核心的幾個產品,就可以實現離線和實時一體化的架構。數據源包括了交易數據以及各個服務器生成的人的行為數據和物的行為數據,通過日志服務,定期歸檔到Hologres,之后,實時數倉加上流計算來進行實時計算,然后在下面是全量的數倉,整個完成了主動計算、被動計算和數據的實時獲取。結果數據可以不用做任何搬遷,直接通過Hologres來做實時分析。將實時的數據獲取,實時的數據計算和實時的數據分析服務三者打通為一體,架構上做了最大程度的簡化,這就是今天所說的離線實時一體化的雲數據倉庫。

 

SaaS模式 — 數倉服務模式的演進方向

 

基於數倉基礎架構、數據管理架構、數據分析架構的演進,這些產品的服務是如何被交付的呢?那就是通過SaaS化的方式向客戶來交付數據倉庫,可以最簡化的去使用數據倉庫的服務。

image.png

 

數據倉庫的構成有幾種方式,第一種是說基於物理服務器自建數據倉庫,這是大家最為熟悉的方式。第二種是在雲上基於Hadoop,也可以基於各種MPP的數據庫去構建和搭建半托管的雲上數據倉庫。第三種和第四種就屬於比較深的雲原生的形式,第三種是典型Snowflake的方式,這種方式下雲基礎服務其實並不會暴露給數據倉庫的管理者,所以我們把它叫做嵌入式的,將IaaS這一層嵌入到PaaS層中,但最終數據倉庫是通過SaaS的完全web的方式暴露出來的。2021年全球Forrester評測中有13家廠商參與了評估,其中以SaaS模式交付數據倉庫服務的只有三家,分別是谷歌的BigQuery,Snowflake和阿里雲MaxCompute。

image.png

可以看到通過雲計算的數據倉庫服務,從自建到雲原生,幫我們最大化的降低了數據倉庫的管理復雜度,整個架構少了很多層,無需管理集群和軟件,通過服務化的方式達到免運維,將底層的所有這些需管理的內容去掉,后台升級是由雲廠商來提供服務的,只需要管理自己的數據和數據模型,通過web方式來使用數據倉庫服務。在數據倉庫里存儲的數據與雲存儲一樣,按存儲量付費。計算也是一樣的,不計算不花錢。充分體現了SaaS化的優勢。同時,在匹配業務需求上具備非常強的彈性能力,我們有很多客戶日常只需要一萬核的算力,在雙十一當天需要三萬核的算力。在這種SaaS模式的服務下,用戶在完全無感知的情況下我們就可以保證充沛的彈性能力去滿足數據倉庫的各種工作需求了。

image.png

綜上,數據倉庫從1990年的數據庫演進到數據倉庫,到MPP架構,到大數據時代的數據倉庫,再到今天的雲原生的數據倉庫的一路演進,基礎架構的雲原生,數據架構的湖倉一體,數據分析的離線實時一體化以及數倉服務模式的SaaS化,是最為主要的四個演進的方向和特征。 阿里雲正在通過全新數據倉庫架構給企業帶來具備更優體驗的數據管理的方式。

原文鏈接

本文為阿里雲原創內容,未經允許不得轉載。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM