天天看點

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

作者 張良模 阿裡雲智能資深産品專家

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

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

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

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

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

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

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

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

第三 難以共享企業資料資産、資料創新成本高

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

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

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

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

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

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

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

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

第二 實時化,企業基于資料驅動能實時對業務作出支撐和決策的資訊,這裡有更高時效性的要求。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MaxCompute 産品官網 >>

更多關于大資料計算、雲數倉技術交流,可掃碼加入 “MaxCompute開發者社群” 釘釘群

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