閱讀526 返回首頁    go 阿裏巴巴


《阿裏巴巴全域數據建設》

前沿

幹貨

數據觀導讀

近日,在2017杭州•雲棲大會-阿裏大數據分論壇上,阿裏巴巴數據技術及產品部高級技術專家張磊發表了主題為《阿裏巴巴全域數據建設》的演講,分享了阿裏在大數據領域沉澱的技術能力和應用實踐。

阿裏巴巴數據技術及產品部定位阿裏數據中台:以全域大數據建設為中心,技術上覆蓋整個大數據從采集、加工、服務、消費的全鏈路的各個環節,對內對外提供服務。豐富的大數據生態組件,構成了阿裏的核心數據能力,通過大數據生態組件,可以迅速的提升數據應用的迭代能力,人人都有可能成為大數據專家。

在全域數據建設過程中,還構建了阿裏巴巴OneData體係作為大數據標準化規範,從方法論到落地實踐;從對指標定義、數據研發、數據服務的口徑管理到數據規範定義、模型規範定義、研發流程的規範化;每個環節均有對應工具進行嚴格保障,並做到方便管理、問題追溯。

詳情參看下文實錄+PPT

單擊圖片可縮放查看高清大圖

{ Part1 }

數據中台-阿裏數據技術及產品部定位

2016年阿裏巴巴集團提出中台概念,阿裏巴巴數據技術及產品部承載了集團數據中台的工作,其核心就是建設全域大數據。

從內容上看,我們管理和運維著阿裏巴巴集團最核心的基礎數據;

從技術上看,我們覆蓋了從數據采集、計算加工到數據服務、數據應用等數據鏈路上的每一個環節,為阿裏生態內外的業務、用戶、中小企業提供全鏈路、全渠道的數據服務。

舉個例子,被大家熟知的雙11當天可見炫酷數據大屏就是由我們部門負責的。

【阿裏數據中台全景圖】

上圖是阿裏數據中台的全景圖,從這個圖中我們可以看見實際上阿裏數據中台在架構的組成上,呈現了一個“四橫三縱”的結構,底層的基礎設施來自於阿裏雲平台。

先來講四橫——

整張架構圖從下往上看,最下麵這塊內容主要從數據采集和接入為角度,按照業態接入數據(比如淘寶、天貓、盒馬等),我們把這些數據抽取到計算平台;接著通過OneData體係,以“業務板塊+分析維度”為架構去構建“公共數據中心”;再基於公共數據中心在上層根據業務需求去建設:消費者數據體係、企業數據體係、內容數據體係等;經過深度加工後,數據就可以發揮其價值被產品、業務所用;最後通過統一的數據服務中間件“OneService”提供統一數據服務。

在阿裏內部,阿裏數據平台上的數據產品已有幾十種,每天有上萬內部員工在使用數據產品;我們的官方統一數據產品平台“生意參謀”累計服務了超2000萬商家……

接下來是三縱——

基於阿裏巴巴如此大體量的數據體係建設背後,我們必須要通過大量工具去保證快速、高效、高質量數據接入,這部分我們通過智能數據研發平台來實現,將我們的理論及實踐過程,通過一整套的工具體係及研發流程去保障落地,確保每一個團隊,每一個BU,通過統一規則去建設數據體係;同時,當數據多了以後最直接問題就是成本,因此我們還建立了統一的數據質量管理平台。

{ Part2 }

全域數據到底是什麼?

阿裏巴巴目前生態建設包括了核心的電商業務,淘寶、天貓、聚劃算等,同時還有文娛板塊的優酷、土豆、UC瀏覽器等,當然還有本地化服務比如口碑、餓了麼等。基於業態背後還有螞蟻、菜鳥、阿裏媽媽、阿裏雲等等。

這一係列的生態數據我們都會集中進行存儲和管理,並構成了我們的全域數據所覆蓋的範圍。

一方麵,上述每一種業態都是全域數據的來源;另外一方麵基於這些優質的數據,進行解析和處理,再反哺給到業務。我們要實現的是:利用全域數據去驅動業務,讓數據發揮更大價值。

以手淘為例,手機屏幕是非常小的,我們如何在有限的空間內展示給到用戶看到他們真正希望看見的內容?“千人千麵”這一應用的背後,實際上就是基於大數據的算法應用場景,來實現的。還有芝麻信用、菜鳥的智能物流、阿裏媽媽的精準營銷等等,它們都是通過大數據驅動之下,構成了業務與數據聯通的閉環。

{ Part3 }

阿裏全域數據建設的初衷

我們為什麼要做全域數據?

首先,降低成本——

大家都知道大數據建設的資金投入其實是非常巨大的。比如基礎建設的投入、機房、機架、服務器、網絡帶寬,包括軟件平台建設,開發運維團隊的組建等等,都會耗費企業大量的資金和人力。以優土(優酷土豆的簡稱)為例,優土去年加入阿裏巴巴集團之後,我們開始啟動數據融合項目:在此之前,優土有自己的Hadoop集群,阿裏巴巴的數據規模則大的多,將優土數據融合到阿裏大平台上,可以讓優土獲得更多彈性資源,也可以在基礎設施運維、人力運維、平台運維上複用集團的技術體係;基於OneData大數據建設體係、統一的數據采集規範等,減少人力及運維成本。當項目完結後,我們發現目前優土在數據建設上的成本不到原來50%。

其次,技術賦能——

客觀來說,在阿裏生態內公司的數據能力參差不齊,因此為了賦能其他生態公司,我們通過短時間的數據體係遷移,讓他們擁有和阿裏集團同樣的大數據能力。上述的優土融合項目就是通過半年時間,實現了技術賦能。

第三,數據連接——

我們知道數據孤島的現象不光存在於傳統行業,互聯網行業也是一樣。所以隻有把數據連接起來,它才能發揮更大的價值,消除數據孤島,讓數據連接起來,也是我們進行全域數據建設的目的之一。

最後,賦能業務——

無論我們的集群規模有多大,服務體量有多大,最終還是要回歸業務、通過業務的數據表現來體現我們的價值——把數據體係統一後,除了讓業務可以更加準確、快速的獲取決策分析數據外,還能提供業務快速試錯的機會,最終為業務創新降低了門檻。

{ Part4 }

如何建設全域數據

在整個全域數據接入過程中,盡管基礎設施建設已經非常強大,但在實際過程中,我們仍然麵對了諸多困難和挑戰。仍以優土為例,它的大數據機房在青島,阿裏集團大部分數據集群都在內蒙古和張北,而涉及到數據遷移也絕不是“拉一根網線”這麼簡單——其中涉及到應用體係、大數據架構都需要定製方案去做;

另外,統一數據采集在接入的過程中也會就原有業務進行統一梳理,包括後麵的數據驗證,做過數據的人應該都知道其中的痛點;同時在遷移過程中,原有的數據對業務的服務還不能停,這事情我們叫——飛機上換輪子,一邊要進行核心零部件更新,一邊還要保持高速飛行;

最後就是項目周期,基於現實情況,大數據建設一般需要較長的周期,無法在幾周內完工,因為大數據建設不是一蹴而就,而是一根體係化過程。

從基礎設施來看,阿裏經過電商發展,包括多年雙11這種特殊場景下的考驗,在基礎設施上,從數據中心到網絡到服務器,到數據庫中間件、計算平台、數據平台、算法平台都有了非常多的沉澱。

因此,在建設全域數據的時候,我們要做的第一步就是將生態公司的數據在基礎設施階段就進行融合。

▊我們的數據組件劃分如下:

最底層——數據采集,這是數據的來源;中間——計算存儲平台:實時計算采用自主研發的Blink,離線則采用MaxCompute。

上圖詳細介紹了我們的數據組件:

基於用戶的網上行為去做數據采集(我們有PC和無線的采集體係)然後放到實時、離線計算平台上來,這兩個計算平台除本身計算能力外,還有許多基於SQL、Graph等可編程的能力,最上麵就是研發工具、產品服務、BI工具。

有如此強有力的基礎支撐外,長在上麵的應用能力也非常給力:以研發工具為例,阿裏有約兩萬名研發工程師,而每天基於阿裏數據平台開展工作的同學就有近一萬人!

基於這些豐富的大數據組件,大部分的研發同學、專業的或非專業的同學都能在上麵基於大數據做一些探索和嚐試。

下麵介紹我們在全域數據建設中的幾個體係:

首先看流量體係——

這是互聯網行業和傳統行業最大的區別。

打個比方,如果我們把淘寶可以看做流量分發中心,用戶進來後把流量給到商品、給到賣家。那麼在進行流量數據采集時,大家可能會給出不同的方案。

我們基於阿裏巴巴多年的電商經驗,也沉澱出來了一套統一的流量采集規範——超級位置模型:

以淘寶的頁麵為例:

—————————

站點就是淘寶,下麵會有頁麵、區塊、位置,這些都是可以根據業務實際需求去埋點,並直觀獲取頁麵任何位置的數據,比如頁麵概況分析、路徑分析、跳轉分析、頁麵點擊、用戶分析等等。業務方隻需要按照規範埋點,我們就能夠迅速給到基礎的流量分析能力,而基於此,配套對應的數據產品就可以解決80%的流量方麵的數據問題。

其次看計算組件化——

眾所周知,基於互聯網的基礎內容其實是能夠固化下來特定需求,中間過程可以通過工程化能力去解決,然後迅速把這些東西配置出來,而不需要每一個需求都去做代碼開發計算——這就是計算組件化。

這樣做的好處首先就是;配置簡單、複用性高,同時,在注意統一規範後,未來接入uc、接入高德等業務,我們可以做到一鍵接入。

OneData體係,全域數據建設最核心的體係——

目前,從整個大數據建設過程來看,它分為數據接入、規範定義、計算加工、數據驗證、數據穩定性,這幾個部分合並構成了整體的數據研發流程。

OneData體係工具是全域建設的保障——我們知道現在存儲和計算可能已不是瓶頸。隨著分布式技術的發展,以Hadoop為典型代表,廉價的pc服務器即可搭建出超強的計算能力,因此存儲和計算未來會變的越來越便宜,但相對昂貴的是工程師的時間成本。

所以,工具化是解決研發效率的關鍵一環。我們把大量機械、人肉、不產生價值的工作,通過工具去完成,比如從數據的接入開始,我們有OneClick保證高效接入,根據阿裏巴巴完善的元數據,我們有能力把基於業務db的數據一鍵拉到計算平台,這個過程幾乎不需要人的參與。

同時,通過OneDefine工具來確保數據建設過程是規範的,比如:模型分層、表命名規範、字段命名規範等。

再看計算過程——

阿裏數據應用的群體在能力上是參差不齊的,有專業的數據研發、有算法工程師、有分析師、可能還有業務運營,很多人可能簡單自學SQL後,就可以自己跑數據:通常情況下,SQL質量無法保證,如果查詢的數據量非常大,可能後台幾千台機器就轉起來了,為避免類似情況發生,我們會在提交任務過程中做代碼校驗,對於性能問題、規範問題、代碼質量問題都會給出必要的提示,比如sql代碼對於除數為0沒有做代碼兼容,比如我們的ddl語句中沒有做數據生命周期的設置,比如sql的query中沒有做分區的條件限製,甚至你的sql代碼別人已經計算過,可以複用結果不需要重新計算這些問題,我們都會給出精確到提示。

在數據研發過程中,代碼編寫可能隻占工作量的20%,那麼大部分時間都去幹嗎了?是數據驗證,代碼修改前和代碼修改後,數據到底差多少,差在哪兒?過去如果沒有工具隻能寫一堆角本,再去驗證,效率極其低下,而且極易出錯,現在有了“在彼岸”工具我們可以通過簡單的勾勾選選就知道前後差異到底差在哪?然後迅速給測試報告,保證整個研發過程的數據質量是有保障的。

最後,任務上線後,大量時間都在運維,監控數據質量、監控產出時間等等,這些日常要去關注的工作我們也會有相關的工具去支持,因此OneData體係工具是全域數據建設的重要保障。

工具有了,規範有了,我們還需要與研發流程全程打通,我們就可以確保規範真正的落實到每位開發者身上,因此我們可以這樣來理解研發流程:某位研發同學在做數據需求,要先把規範定義完成才能繼續進行代碼開發。

代碼開發中會有兩道檢查:

第一道是SQLscan:這裏麵會檢查代碼規範性、代碼質量、可能出現的性能問題,把這些問題避免掉;

另一道是“在彼岸”數據測試:重要的數據做了數據變更後,會要求做回歸測試流程,輕鬆簡單的勾選,就可以快速給出測試。如果任務需在生產環境運行,這兩個環節必須完成後才能夠提交,上述過程就是整個基於OneData體係的研發流程。

目前阿裏巴巴數據總量已超EB級別,總表數也已經超百萬,這麼大體量下,如何能夠做到高效靈活卻又不失規範的大數據建設,我們確實探索了很長時間。

隨著阿裏業務的不斷拓展,對於大數據能力的要求會越來越高,技術上,如何突破傳統數倉etl架構?我們從基礎設施的計算存儲分離、離線在線混布等事情上已經開始探索,相信在不久的將來,我們會對傳統數倉etl進行重新的定義。

最後更新:2017-10-18 14:56:54

  上一篇:go 電商+加油站:阿裏巴巴和京東開辟無人智能加油站“新戰場”
  下一篇:go 阿裏巴巴·百城千校 百萬英才 百年橙師師資培訓班在長春隆重舉行