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