《阿里巴巴全域數據建設》(實錄/PPT干貨)
【 前沿 干貨】
— 數據觀導讀 —
近日,在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進行重新的定義。
注:本文系數據觀綜合自阿里數據「AliData」-2017杭州云棲大會大數據專場演講干貨,編輯:Fynlch(王培), 版權著作權屬原創者所有。數據觀微信公眾號(ID:cbdioreview),欲了解更多大數據行業相關資訊,可搜索數據觀(中國大數據產業觀察網www.cbdio.com)進入查看。
責任編輯:王培