簡介:阿里雲智能研究員 林偉 :阿里巴巴從湖到倉的演進給我們帶來了湖倉一體的思考,使得湖的靈活性、數據種類豐富與倉的可成長性和企業級管理得到有機融合,這是阿里巴巴最佳實踐的寶貴資產,是大數據的新一代架構。
本篇內容將從三個部分為讀者講述離線實時一體化數倉與湖倉一體—雲原生大數據平台的持續演進。通過從數據湖到數倉的歷史,反思為什么要做湖倉一體,以及湖倉一體在今天這個階段為什么開始做離線和實時湖倉一體化的數倉。
- 湖倉一體
- 離線在線數倉一體化
- 智能數倉
希望這次的分享讓大家進一步理解我們為什么做湖倉一體。
一、湖倉一體
(1) 阿里巴巴從數據湖到數倉歷程
2007年的寧波戰略會議確定建立一個開發、協同、繁榮的電子商務生態系統,其中生態系統的核心是數據。但這個時候各個業務部門都在垂直式發展數據能力,用數據支撐商業的決策服務。這些數據中台支撐了業務部門的發展。但我們發展到一個階段的時候,希望進一步挖掘出各個業務部門數據之間的關聯性,從而利用這些高階數據分析挖掘更高商業價值,我們遇到了很多的困難,因為數據來自不同的部門,不同的人會提供你不同的數據集,沒有清晰數據質量監控,你也不知道這些數據是不是完整的,你就需要花費很多時間不停的去校准數據。這個過程耗時太長且多數情況會做了非常多的無用功,這樣其實整體下降了公司的效率。
所以到了2012年,我們決定將所有的業務部門的數據都關聯起來,決心做『One Data,One Service』。其實這個過程就是典型一個數據湖升級到數倉的過程,但是因為我們缺乏很好湖倉一體的系統沉淀,這個過程非常艱難,我們稱之這個過程為“登月”。大家可以從這個名字可見中間的艱難。在這個時間段,各個團隊甚至需要停下日常的自身業務發展來配合整理數據,把所以原來已有的數據分析過程,搬到統一一套數倉系統上面。最終我們歷經18個月,在花了非常大的代價,於2015年的12月完成建立了統一大數據倉庫平台建立,這就是阿里巴巴的MaxCompute。通過這個統一數倉平台,無論是業務團隊、服務商家還是物流或其它環節都可以方便,迅捷,更好的挖掘商機。所以大家可以看到在阿里巴巴統一的大數據平台完成后,業務成長也進入了快車道。這正是因為有更好的數據支撐,才使得商家、客戶都能快速的進行一些商業決策。
(2) 數據倉庫和數據湖的關系
從開發人員的角度看,數據湖更為靈活,更喜歡這種隨心所欲的模式,任意的引擎都可以去讀、寫,沒有約束,啟動也非常容易。
從數據管理者角度看,數據湖能作為起步,但達到特定規模時,把數據當作資產或者需要做更大的商業決策的時候,都希望有一個很好的數倉。
(4) 湖倉一體
正是因為我們經歷過堪比“登月”的痛苦,所以我們不希望MaxCompute未來的企業客戶也經歷這么痛苦過程,所以我們構建湖倉一體的開發平台。當公司規模較小的時候,可以運用數據湖能力更快定制自己的分析。公司成長到一定的階段,需要更好的數據管理和治理方式的時候,湖倉一體平台可以無縫把數據以及數據分析進行有效的升級管理,使得公司對於數據管理更加規范。這就是湖倉一體整體設計背后的核心思想。
同時,在數據倉庫湖倉一體的平台上面,我們有效支持很多分析引擎,有任務型的計算引擎,包括像MaxCompute是批處理、Flink是流式處理、機器學習等,還有開源的組件可以分析我們的數據;也有服務性質數據引擎可以支持交互式查詢服務,能夠去更加實時性很好的展示我們的數據,從而使得用戶可以在這個服務性引擎上去構建自己數據服務應用。
在引擎之上我們構建豐富數據管理工具從而能夠讓業務部門能夠進行高效整體的數據治理。而這都得益於我們把湖和倉的數據打通,這也是整體湖倉一體設計的核心。
二、離線在線數倉一體化
現今社會越來越便捷,客戶需要更快的做出商業決策。在雙十一GMV實時大屏、春晚直播實時大屏等數據分析,以及機器學習從離線模型走向在線模型的趨勢中我們都可以看到。這些需求推動了實時數倉的發展。
其實實時數倉和離線數倉有着相似的發展過程。當時實時系統發展的早期,我們首先考慮的是引擎,因為只有先有引擎了你才可以進行實時數據分析,所以阿里巴巴把研發精力放在Flink這樣的流計算引擎上。但是只有流計算引擎,類似數據湖的階段,我們缺乏將分析出來的結果數據進行管理,所以到了第二階段,我們利用我們離線數倉產品來管理這些分析結果,從而把分析結果納管到我們整體數據倉庫和數據管理中。但是把實時分析之后的結果放在離線數倉里面,顯然這樣是對於實時商業決策是不夠的及時。所以我們現在發展第三個階段:實時數倉。
這就是離線和在線數倉一體化的設計。
有了一體化的設計,就可以給客戶帶來一個非常平衡的系統。根據數據的場景或者是業務的場景,你可以用批處理。並且通過數據的壓縮、冷存,數據根據熱和冷的方式做不同梯度的存儲,就可以得到更低成本的離線分析。
當對於數據的實時性的價值更加重視,可以用流計算的引擎去做。同時又希望有很快的交互式,希望快速通過各種方式的、各種維度、角度去觀察已生成好的報表。這時候可以利用交互式引擎,在高度提純過數據后的進行各個維度的洞察。
希望用湖倉一體化平台就能夠達到一個好的平衡,根據實際的業務體量、要求、規模成本達到更好點。
三、智能數倉
有了統一的數倉平台,我們就可以在此之上建立強大的數據治理或者是分析平台,這個就是我們的DataWorks。在這個平台上面有很多數據建模工具,提供數據的質量和標准、提供血緣的分析、提供編程助理等等。正是因為湖倉一體在線和離線的一體化的底座能力,才賦予了我們有這樣的可能性去做到大數據開發和治理平台更加智能化的方式。從而將更多經過驗證過有效數據治理經驗分享到我們企業客戶上。
原文鏈接
本文為阿里雲原創內容,未經允許不得轉載。








