阿里巴巴實時數據公共層助力雙11媒體直播
今年的雙11,相信大家對上面央視新聞圖片中的數字大屏不會陌生了,除了媒體之外,在阿里巴巴西溪園區的媒體報告廳、指揮部等“要地”都有它的身影。當天,這一大屏在全球400多家媒體前面驚艷出場,并***謝幕。
阿里巴巴數據技術與產品部的實時數據公共層團隊承擔了這背后的實時數據計算的工作,不僅做到了后臺數據全天24小時不間斷,而且保證了數據的準確性。
實時的后臺數據不僅用在全球媒體大屏,阿里巴巴生意參謀的商家數據實時直播、天貓賽馬的實時數據、廣告投放系統的實時數據都來自實時數據公共層。
那么,什么是數據公共層,而實時數據公共層又是什么呢?
數據公共層,是阿里巴巴服務于全集團的基礎數據中心,由數據技術與產品部承建。數據公共層分為離線數據公共層和實時數據公共層。離線數據公共層即傳統的數據倉庫ODS層和DW層,而實時數據公共層顧名思義,可以理解成經過清洗和加工后的“實時”基礎數據。
實時數據公共層的架構如下:
實時數據公共層有如下特征:
1高性能和可擴展性
實時計算的核心是基于Storm的實時計算引擎Galaxy和實時調度引擎Gallardo,系統的架構可以高性能、橫向線性擴展。目前實時公共層主備計算集群的機器數量已接近2千臺。從2012年開始,實時公共層團隊經過近3年的技術積累,積累了豐富的實時計算性能優化經驗。本次雙11全天訂單創建及支付過程有近60億的變更量, 0點瞬時訂單量超過每秒7萬筆,全天日志量更是達到數百億之多,數百個實時應用均能秒級響應。
2高可用性和SLA服務保障
為了保障服務的高可用性,實時數據公共層在各個環節都做了容災備份。如數據源層面,除了TT提供服務外,還接入了MetaQ數據源,兩個數據源都可以提供交易訂單數據;在數據計算層面,實時計算平臺Galaxy和HBase都有多套獨立提供服務。為了配合容災,OpenAPI可以做到5秒內完成接口切換,對整個前端應用透明,使整個后臺數據服務做到高可用。
3平衡高精度和高吞吐量
實時數據有兩大主要業務,交易和日志。交易數據要求高精度,在盡可能的情況下每一筆訂單數據都不能遺漏;而日志數據則要求高吞吐量,允許一定范圍內的數據誤差。因此,在這兩種不同的業務場景,公共層使用了不同的計算方式。在計算交易數據時,每一條消息都帶有事務ID,在消息接收、消費的過程中需要對事務ID進行校驗,一旦發生消息丟失可以請求數據源重發消息;而在計算日志數據時,利用了Bloom Filter特性,犧牲了精確度以換取時間和空間。
4OneData和OneService
由于阿里巴巴集團的業務繁多,對數據分析的需求量極其龐大,因此,阿里巴巴的數據公共層團隊致力于建設一個基礎的、公共的核心數據層,這里所有的數據都是經過OneData指標規范化和數據建模的,通過統一的數據服務OneService對集團的內外數據產品提供服務,從根本上避免了數據使用過程中指標定義不一致、重復建設等諸多問題。在實時數據公共層的建設過程中,通過對集團的實時交易、日志數據進行DWD建模,最終上線了100多個實時接口就服務了17個不同的團隊,OneService接口每日調用次數接近1.5億次,通過這項工作下線的重復計算任務直接節省的計算資源超過230萬元。
作者簡介:
羅金鵬,阿里巴巴集團數據技術與產品部高級技術專家,負責集團實時數據公共層和淘寶網數據公共層、應用層建設。
殷霞,阿里巴巴集團數據技術與產品部技術專家,負責集團實時數據公共層建設,熟悉實時計算Storm架構和Hadoop、Hive、HBase等多項技術。