离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进
林偉,阿里云智能研究員、阿里云智能通用計算平臺MaxCompute、機(jī)器學(xué)習(xí)PAI平臺技術(shù)負(fù)責(zé)人
本篇內(nèi)容將從三個部分為讀者講述離線實(shí)時一體化數(shù)倉與湖倉一體—云原生大數(shù)據(jù)平臺的持續(xù)演進(jìn)。通過從數(shù)據(jù)湖到數(shù)倉的歷史,反思為什么要做湖倉一體,以及湖倉一體在今天這個階段為什么開始做離線和實(shí)時湖倉一體化的數(shù)倉。
- 湖倉一體
- 離線在線數(shù)倉一體化
- 智能數(shù)倉
希望這次的分享讓大家進(jìn)一步理解我們?yōu)槭裁醋龊}一體。
一、湖倉一體
(1)?? 阿里巴巴從數(shù)據(jù)湖到數(shù)倉歷程
2007年的寧波戰(zhàn)略會議確定建立一個開發(fā)、協(xié)同、繁榮的電子商務(wù)生態(tài)系統(tǒng),其中生態(tài)系統(tǒng)的核心是數(shù)據(jù)。但這個時候各個業(yè)務(wù)部門都在垂直式發(fā)展數(shù)據(jù)能力,用數(shù)據(jù)支撐商業(yè)的決策服務(wù)。這些數(shù)據(jù)中臺支撐了業(yè)務(wù)部門的發(fā)展。但我們發(fā)展到一個階段的時候,希望進(jìn)一步挖掘出各個業(yè)務(wù)部門數(shù)據(jù)之間的關(guān)聯(lián)性,從而利用這些高階數(shù)據(jù)分析挖掘更高商業(yè)價值,我們遇到了很多的困難,因為數(shù)據(jù)來自不同的部門,不同的人會提供你不同的數(shù)據(jù)集,沒有清晰數(shù)據(jù)質(zhì)量監(jiān)控,你也不知道這些數(shù)據(jù)是不是完整的,你就需要花費(fèi)很多時間不停的去校準(zhǔn)數(shù)據(jù)。這個過程耗時太長且多數(shù)情況會做了非常多的無用功,這樣其實(shí)整體下降了公司的效率。
所以到了2012年,我們決定將所有的業(yè)務(wù)部門的數(shù)據(jù)都關(guān)聯(lián)起來,決心做『One Data,One Service』。其實(shí)這個過程就是典型一個數(shù)據(jù)湖升級到數(shù)倉的過程,但是因為我們?nèi)狈芎煤}一體的系統(tǒng)沉淀,這個過程非常艱難,我們稱之這個過程為“登月”。大家可以從這個名字可見中間的艱難。在這個時間段,各個團(tuán)隊甚至需要停下日常的自身業(yè)務(wù)發(fā)展來配合整理數(shù)據(jù),把所以原來已有的數(shù)據(jù)分析過程,搬到統(tǒng)一一套數(shù)倉系統(tǒng)上面。最終我們歷經(jīng)18個月,在花了非常大的代價,于2015年的12月完成建立了統(tǒng)一大數(shù)據(jù)倉庫平臺建立,這就是阿里巴巴的MaxCompute。通過這個統(tǒng)一數(shù)倉平臺,無論是業(yè)務(wù)團(tuán)隊、服務(wù)商家還是物流或其它環(huán)節(jié)都可以方便,迅捷,更好的挖掘商機(jī)。所以大家可以看到在阿里巴巴統(tǒng)一的大數(shù)據(jù)平臺完成后,業(yè)務(wù)成長也進(jìn)入了快車道。這正是因為有更好的數(shù)據(jù)支撐,才使得商家、客戶都能快速的進(jìn)行一些商業(yè)決策。
(2)??數(shù)據(jù)倉庫和數(shù)據(jù)湖的關(guān)系
從開發(fā)人員的角度看,數(shù)據(jù)湖更為靈活,更喜歡這種隨心所欲的模式,任意的引擎都可以去讀、寫,沒有約束,啟動也非常容易。
從數(shù)據(jù)管理者角度看,數(shù)據(jù)湖能作為起步,但達(dá)到特定規(guī)模時,把數(shù)據(jù)當(dāng)作資產(chǎn)或者需要做更大的商業(yè)決策的時候,都希望有一個很好的數(shù)倉。
(3)??數(shù)據(jù)倉庫和數(shù)據(jù)湖系統(tǒng)的增長曲線
上圖的增長曲線,基本上也是阿里發(fā)展的曲線,最開始也是數(shù)據(jù)湖狀態(tài),各個業(yè)務(wù)部門獨(dú)立發(fā)展,起步快、靈活性強(qiáng)。但當(dāng)達(dá)到特定規(guī)模時,數(shù)據(jù)無人管理、每個業(yè)務(wù)部門的數(shù)據(jù)的邏輯語言不一致,很難對齊。所以當(dāng)時花了50%、80%的無效時間在校驗數(shù)據(jù),隨著規(guī)模的不斷擴(kuò)大,這樣的損耗越來越大,迫使我們推動公司統(tǒng)一數(shù)據(jù)倉庫的建立。
(4)??湖倉一體
正是因為我們經(jīng)歷過堪比“登月”的痛苦,所以我們不希望MaxCompute未來的企業(yè)客戶也經(jīng)歷這么痛苦過程,所以我們構(gòu)建湖倉一體的開發(fā)平臺。當(dāng)公司規(guī)模較小的時候,可以運(yùn)用數(shù)據(jù)湖能力更快定制自己的分析。公司成長到一定的階段,需要更好的數(shù)據(jù)管理和治理方式的時候,湖倉一體平臺可以無縫把數(shù)據(jù)以及數(shù)據(jù)分析進(jìn)行有效的升級管理,使得公司對于數(shù)據(jù)管理更加規(guī)范。這就是湖倉一體整體設(shè)計背后的核心思想。
我們把湖的系統(tǒng)和倉的系統(tǒng)有機(jī)結(jié)合在一起,一開始是沒有元數(shù)據(jù),你想要建立數(shù)倉的時候,我們有可以在湖上面來抽取這個元數(shù)據(jù),這個元數(shù)據(jù)是和倉的元數(shù)據(jù)放在一個一體化的元數(shù)據(jù)的分析平臺上面。在這個元數(shù)據(jù)之上可以建立很多數(shù)據(jù)倉庫的數(shù)據(jù)管理平臺。
同時,在數(shù)據(jù)倉庫湖倉一體的平臺上面,我們有效支持很多分析引擎,有任務(wù)型的計算引擎,包括像MaxCompute是批處理、Flink是流式處理、機(jī)器學(xué)習(xí)等,還有開源的組件可以分析我們的數(shù)據(jù);也有服務(wù)性質(zhì)數(shù)據(jù)引擎可以支持交互式查詢服務(wù),能夠去更加實(shí)時性很好的展示我們的數(shù)據(jù),從而使得用戶可以在這個服務(wù)性引擎上去構(gòu)建自己數(shù)據(jù)服務(wù)應(yīng)用。
在引擎之上我們構(gòu)建豐富數(shù)據(jù)管理工具從而能夠讓業(yè)務(wù)部門能夠進(jìn)行高效整體的數(shù)據(jù)治理。而這都得益于我們把湖和倉的數(shù)據(jù)打通,這也是整體湖倉一體設(shè)計的核心。
二、離線在線數(shù)倉一體化
現(xiàn)今社會越來越便捷,客戶需要更快的做出商業(yè)決策。在雙十一GMV實(shí)時大屏、春晚直播實(shí)時大屏等數(shù)據(jù)分析,以及機(jī)器學(xué)習(xí)從離線模型走向在線模型的趨勢中我們都可以看到。這些需求推動了實(shí)時數(shù)倉的發(fā)展。
其實(shí)實(shí)時數(shù)倉和離線數(shù)倉有著相似的發(fā)展過程。當(dāng)時實(shí)時系統(tǒng)發(fā)展的早期,我們首先考慮的是引擎,因為只有先有引擎了你才可以進(jìn)行實(shí)時數(shù)據(jù)分析,所以阿里巴巴把研發(fā)精力放在Flink這樣的流計算引擎上。但是只有流計算引擎,類似數(shù)據(jù)湖的階段,我們?nèi)狈⒎治龀鰜淼慕Y(jié)果數(shù)據(jù)進(jìn)行管理,所以到了第二階段,我們利用我們離線數(shù)倉產(chǎn)品來管理這些分析結(jié)果,從而把分析結(jié)果納管到我們整體數(shù)據(jù)倉庫和數(shù)據(jù)管理中。但是把實(shí)時分析之后的結(jié)果放在離線數(shù)倉里面,顯然這樣是對于實(shí)時商業(yè)決策是不夠的及時。所以我們現(xiàn)在發(fā)展第三個階段:實(shí)時數(shù)倉。
我們會把流式引擎的分析結(jié)果結(jié)果實(shí)時的寫到實(shí)時數(shù)倉Hologres里面,從而能夠讓分析的結(jié)果更實(shí)時的進(jìn)行BI的分析,從而有效的支持客戶實(shí)時商業(yè)決策。
這就是離線和在線數(shù)倉一體化的設(shè)計。
總結(jié)一下,原有的分析在離線和在線的數(shù)倉一體化之前是一個很紛繁的過程,有離線、有在線的、有很多不同的引擎,現(xiàn)在把它總結(jié)到或者簡化成上圖的架構(gòu)。我們會用實(shí)時的引擎做預(yù)處理,做完預(yù)處理后,我們把這些數(shù)據(jù)寫入到MaxCompute離線的數(shù)倉,也可以同時寫入到Hologres實(shí)時數(shù)倉中里面,從而可以做更加實(shí)時的服務(wù)化的BI分析。而MaxCompute離線的數(shù)倉存儲的成本更低,吞吐的性能更好,可以做大量的離線數(shù)據(jù)分析,這就是離在線數(shù)倉一體化的設(shè)計。
有了一體化的設(shè)計,就可以給客戶帶來一個非常平衡的系統(tǒng)。根據(jù)數(shù)據(jù)的場景或者是業(yè)務(wù)的場景,你可以用批處理。并且通過數(shù)據(jù)的壓縮、冷存,數(shù)據(jù)根據(jù)熱和冷的方式做不同梯度的存儲,就可以得到更低成本的離線分析。
當(dāng)對于數(shù)據(jù)的實(shí)時性的價值更加重視,可以用流計算的引擎去做。同時又希望有很快的交互式,希望快速通過各種方式的、各種維度、角度去觀察已生成好的報表。這時候可以利用交互式引擎,在高度提純過數(shù)據(jù)后的進(jìn)行各個維度的洞察。
希望用湖倉一體化平臺就能夠達(dá)到一個好的平衡,根據(jù)實(shí)際的業(yè)務(wù)體量、要求、規(guī)模成本達(dá)到更好點(diǎn)。
總的來說,希望湖倉一體系統(tǒng)上,不管是離線還是在線。通過不同的分析引擎,支持各類分析,同時通過在線服務(wù)型引擎能夠?qū)崟r進(jìn)行BI,能夠達(dá)到低成本、自定義能力,以及實(shí)時和在線服務(wù)的各種平衡。讓客戶能夠根據(jù)實(shí)際業(yè)務(wù)場景選擇。
三、智能數(shù)倉
有了統(tǒng)一的數(shù)倉平臺,我們就可以在此之上建立強(qiáng)大的數(shù)據(jù)治理或者是分析平臺,這個就是我們的DataWorks。在這個平臺上面有很多數(shù)據(jù)建模工具,提供數(shù)據(jù)的質(zhì)量和標(biāo)準(zhǔn)、提供血緣的分析、提供編程助理等等。正是因為湖倉一體在線和離線的一體化的底座能力,才賦予了我們有這樣的可能性去做到大數(shù)據(jù)開發(fā)和治理平臺更加智能化的方式。從而將更多經(jīng)過驗證過有效數(shù)據(jù)治理經(jīng)驗分享到我們企業(yè)客戶上。
更多關(guān)于大數(shù)據(jù)計算、云數(shù)據(jù)倉庫技術(shù)交流,歡迎掃碼查看咨詢。
原文鏈接:https://developer.aliyun.com/article/804337?
版權(quán)聲明:本文內(nèi)容由阿里云實(shí)名注冊用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報,一經(jīng)查實(shí),本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。總結(jié)
以上是生活随笔為你收集整理的离线实时一体化数仓与湖仓一体—云原生大数据平台的持续演进的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让智能客服成为企业的生产力工具?
- 下一篇: Flink Forward Asia H