本文筆者將從數據采集層、數據計算層、數據服務層、數據應用層四大層次來帶大家了解阿里大數據的產品技術架構。
2014年,馬云提出:“人類正從IT時代走向DT時代”。
如果說在IT時代是以自我控制、自我管理為主,那么到了DT (Data Technology)時代,則是以服務大眾、激發生產力為主。以互聯網(或者物聯網)、云計算、大數據和人工智能為代表的新技術革命正在滲透至各行各業,悄悄地改變著我們的生活。
在DT時代,人們比以往任何時候更能收集到更豐富的數據。
IDC的報告顯示:預計到2020年,全球數據總量將超過40ZB (相當于40萬億GB),這一數據量是2011年的22倍!正在呈“爆炸式”增長的數據,其潛在的巨大價值有待發掘。數據作為一種新的能源,正在發生聚變,變革著我們的生產和生活,催生了當下大數據行業發展熱火朝天的盛景。
但是,如果不能對這些數據進行有序,有結構地分類組織和存儲。如果不能有效利用并發掘它,繼而產生價值,那么它同時也成為一場“災難”。無序、無結構的數據猶如堆積如山的垃圾,給企業帶來的是令人昨舌的高額成本。
在阿里巴巴集團內,我們面臨的現實情況是:集團數據存儲達到EB級別,部分單張表每天的數據記錄數高達幾千億條,在2016年“雙”購物狂歡節”的24小時中,支付金額達到了1207 億元人民幣,支付峰值高達12萬筆/秒,下單峰值達17.5萬筆/秒,媒體直播大屏處理的總數據量高達百億且所有數據都需要做到實時、準確地對外披露……
這些給數據采集、存儲和計算都帶來了極大的挑戰。
在阿里內部,數據工程師每天要面對百萬級規模的離線數據處理工作。阿里大數據井噴式的爆發,加大了數據模型、數據研發、數據質量和運維保障工作的難度。
同時,日益豐富的業態,也帶來了各種各樣、紛繁復雜的數據需求。如何有效地滿足來自員工、商家、合作伙伴等多樣化的需求?提高他們對數據使用的滿意度,是數據服務和數據產品需要面對的挑戰。
如何建設高效的數據模型和體系,使數據易用,避免重復建設和數據不一致性,保證數據的規范性?如何提供高效易用的數據開發工具?如何做好數據質量保障:如何有效管理和控制日益增長的存儲和計算消耗?如何保證數據服務的穩定,保證其性能?如何設計有效的數據產品高效賦能于外部客戶和內部員…..這些都給大數據系統的建設提出了更多復雜的要求。
本文介紹的阿里巴巴大數據系統架構,就是為了滿足不斷變化的業務需求,同時實現系統的高度擴展性、靈活性以及數據展現的高性能而設計的。
如圖1.1所示是阿里巴巴大數據系統體系架構圖,從圖中可以清晰地看到數據體系主要分為數據采集、數據計算、數據服務和數據應用四大層次。
一、數據采集層
阿里巴巴是一家多業態的互聯網公司,幾億規模的用戶(如商家、消費者、商業組織等)在平臺上從事商業、消費、娛樂等活動,每時每刻都在產生海量的數據。
數據采集作為阿里大數據系統體系的第一環尤為重要。因此,阿里巴巴建立了一套標準的數據采集體系方案,致力全面、高性能、規范地完成海量數據的采集,并將其傳輸到大數據平臺。
阿里巴巴的日志采集體系方案包括兩大體系: Aplus.JS 是Web端日志采集技術方案; UserTrack 是App端日志采集技術方案。
在采集技術基礎之上,阿里巴巴用面向各個場景的埋點規范,來滿足通用瀏覽、點擊、特殊交互、APP事件、H5及APP里的HS和Native日志數據打通等多種業務場景。
同時,還建立了一套高性能、高可靠性的數據傳輸體系,完成數據從生產業務端到大數據系統的傳輸。在傳輸方面,采用TimeTunnel (TT), 它既包括數據庫的增量數據傳輸,也包括日志數據的傳輸。
TT作為數據傳輸服務的基礎架構,既支持實時流式計算,也支持各種時間窗口的批量計算。另外,也通過數據同步工具(DataX和同步中心,其中同步中心是基于DataX易用性封裝的)直連異構數據庫(備庫)來抽取各種時間窗口的數據。
二、數據計算層
數據只有被整合和計算,才能被用于洞察商業規律,挖掘潛在信息,從而實現大數據價值,達到賦能于商業和創造價值的目的。
從采集系統中收集到的大量原始數據,將進人數據計算層中被進一步整合與計算。
面對海量的數據和復雜的計算,阿里巴巴的數據計算層包括兩大體系:數據存儲及計算云平臺(離線計算平臺MaxCompute和實時計算平臺StreamCompute)和數據整合及管理體系(內部稱之為“OneData”)。
其中,MaxCompute 是阿里巴巴自主研發的離線大數據平臺,其豐富的功能和強大的存儲及計算能力使得阿里巴巴的大數據有了強大的存儲和計算引擎: StreamCompute 是阿里巴巴自主研發的流式大數據平臺,OneData是數據整合及管理的方法體系及工具。
阿里巴巴的大數據工程師在這一體系下,構建統一、規范、可共享的全域數據體系,避免數據的冗余和重復建設,規避數據煙囪和不一致性,充分發揮阿里巴巴在大數據海量、多樣性方面的獨特優勢。
借助這一統一化數據整合及管理的方法體系,我們構建了阿里巴巴的數據公共層,并可以幫助相似大數據項目快速落地實現。
從數據計算頻率角度來看:阿里數據倉庫可以分為離線數據倉庫和實時數據倉庫。
離線數據倉庫主要是指:傳統的數據倉庫概念,數據計算頻率主要以天(包含小時、周和月)為單位——如T-1,則每天凌晨處理上一天的數據。
但是,隨著業務的發展特別是交易過程的縮短,用戶對數據產出的實時性要求逐漸提高,所以阿里的實時數據倉庫應運而生。“雙11”實時數據直播大屏,就是實時數據倉庫的種典型應用。
阿里數據倉庫的數據加工鏈路也是遵循業界的分層理念,包括:操作數據層(Operational Data Store, ODS)、 明細數據層(Data WarehouseDetail, DWD)、匯總數據層(Data Warehouse Summary, DWS)和應用數據層(Application Data Store, ADS)。通過數據倉庫不同層次之間的加工過程實現從數據資產向信息資產的轉化,并且對整個過程進行有效的元數據管理及數據質量處理。
在阿里大數據系統中,元數據模型整合及應用是一個重要的組成部分,主要包含:數據源元數據、數據倉庫元數據、數據鏈路元數據、工具類元數據、數據質量類元數據等。
元數據應用主要面向數據發現、數據管理等,如用于存儲、計算和成本管理等。
三、數據服務層
當數據已被整合和計算好之后,需要提供給產品和應用進行數據消費。
為了有更好的性能和體驗,阿里巴巴構建了自己的數據服務層,通過接口服務化方式對外提供數據服務。針對不同的需求,數據服務層的數據源架構在多種數據庫之上,如:MySQL和HBase等。后續將逐漸遷移至阿里云2數據庫ApsaraDB for RDS(簡稱”RDS )和表格仔儲(Table Store)等。
開放給集團內部各應用使用:現在,數據服務每天擁有幾十億的數據調用量,如何在性能、穩定性、擴展性等方面更好地服務于用戶?如何滿足應用各種復雜的數據服務需求?如何保證“雙11” 媒體大屏數據服務接口的高可用……
隨著業務的發展,需求越來越復雜,因此數據服務也在不斷地前進。
數據服務可以使應用對底層數據存儲透明,將海量數據方便高效的開放給集團內部各應用使用。現在,數據服務每天擁有幾十億的數據調用量,如何在性能、穩定性、擴展性等方面更好地服務于用戶?如何滿足應用各種復雜的數據服務需求?如何保證“雙11”媒體大屏數據服務接口的高可用……隨著業務的發展,需求越來越復雜,因此數據服務也在不斷地前進。
數據服務層對外提供數據服務主要是通過統一的數據服務平臺 (為方便閱讀,簡稱為“OneService”)。
OneService 以數據倉庫整合計算好的數據作為數據源,對外通過接口的方式提供數據服務,主要提供簡單數據查詢服務、復雜數據查詢服務(承接集團用戶識別、用戶畫像等復雜數據查詢服務)和實時數據推送服務三大特色數據服務。
四、數據應用層
數據已經準備好,需要通過合適的應用提供給用戶,讓數據最大化地發揮價值。
阿里對數據的應用表現在各個方面,如:搜索、推薦、廣告、金融、信用、保險、文娛、物流等。商家,阿里內部的搜索、推薦、廣告、金融等平臺,阿里內部的運營和管理人員等,都是數據應用方:ISV、研究機構和社會組織等也可以利用阿里開放的數據能力和技術。
我們相信:數據作為新能源,為產業注人的變革是顯而易見的。我們對數據新能源的探索也不僅僅停留在狹義的技術、服務和應用上。我們正在挖掘大數據更深層次的價值,為社會經濟和民生基礎建設等提供創新方法。
作者:Wilton(董超華),曾任職科大訊飛,現任富力環球商品貿易港大數據產品經理。公眾號名稱:改變世界的產品經理。