大數(shù)據(jù)之路

1.總述

人類從“IT時代”進入“DT時代”屎债。本書介紹了阿里巴巴的大數(shù)據(jù)系統(tǒng)架構(gòu),為了滿足不斷變化的業(yè)務需求拜英,同時實現(xiàn)系統(tǒng)的高擴展性静汤、靈活性以及數(shù)據(jù)展現(xiàn)的高性能
數(shù)據(jù)體系主要包括:數(shù)據(jù)采集數(shù)據(jù)計算虫给、數(shù)據(jù)服務數(shù)據(jù)應用四大層次藤抡。

大數(shù)據(jù)系統(tǒng)體系架構(gòu)

1.數(shù)據(jù)采集層包括兩大體系:Aplus.JS是Web端日志采集技術(shù)方案,UserTrack是APP端日志采集技術(shù)方案抹估。
2.數(shù)據(jù)計算層包括兩大體系:數(shù)據(jù)存儲及計算云平臺(離線計算平臺:MaxCompute缠黍;實時計算平臺:StreamCompute);數(shù)據(jù)整合和管理體系(阿里內(nèi)部稱為“OneData”)药蜻。數(shù)倉的加工鏈路包括:ods(操作數(shù)據(jù)層)瓷式、dwd(明細數(shù)據(jù)層)、dws(匯總數(shù)據(jù)層)谷暮、ads(應用數(shù)據(jù)層)蒿往。
3.數(shù)據(jù)服務層通過接口服務化方式對外提供數(shù)據(jù)服務,數(shù)據(jù)服務層架構(gòu)在多種數(shù)據(jù)庫之上(例如:mysql湿弦、Hbase等)瓤漏,數(shù)據(jù)服務層對外提供服務通過統(tǒng)一的數(shù)據(jù)服務平臺(OneService)。

11.事實表設(shè)計

11.1 事實表基礎(chǔ)

事實表包括引用的維度和描述具體業(yè)務的度量颊埃。

事實表中一條記錄描述的業(yè)務的細節(jié)程度稱為粒度蔬充。粒度可以使用兩種方式來表示:(1)維度屬性組合(2)所表示的具體業(yè)務含義。

事實包括可加性班利、半可加性和不可加性三種類型:
半可加性:只可以針對特定維度做聚合饥漫,例如庫存(不能按照日期,可按照倉庫聚合)罗标。
可加性:可以按照任意維度聚合庸队。
不可加性:完全不具備可加性。(例如:比率闯割,事實表可以拆分存儲分子分母)

維度屬性也可以存到事實表中彻消,稱為退化維度

事實表有三種類型:事務事實表宙拉、周期快照事實表宾尚、累計快照事實表。
事務事實表描述的是業(yè)務過程上的原子事務谢澈,也稱為原子事實表煌贴。
周期快照事實表是按照周期性規(guī)律的時間間隔記錄事實。
累計快照事實表:累計快照事實表用來表示過程開始和結(jié)束過程之間的關(guān)鍵步驟事件锥忿,覆蓋整個生命周期牛郑,通常用多個日期字段記錄關(guān)鍵時間點,記錄會隨著時間變化而修改敬鬓。

事實表設(shè)計原則:
原則1: 盡可能包含所有與業(yè)務過程相關(guān)的事實淹朋。
即時存在冗余灶似,也盡可能存儲。

原則2:只選擇與業(yè)務過程相關(guān)的事實瑞你。

原則3:分解不可加事實為可加的組件。
例如:不存成單率希痴,轉(zhuǎn)而存儲成單數(shù)和提單數(shù)者甲。

原則4:選擇維度和事實前,必須先聲明粒度砌创。
建議粒度設(shè)置的越細越好虏缸,這樣可以最大限度的提高靈活性∧凼担可以通過業(yè)務描述或者維度屬性組合的方式來定義粒度刽辙。

原則5:在同一個事實表中,不應該有不同粒度的事實甲献。
例如:一個事實表中不應該包含某些精確到訂單粒度的度量宰缤,同時又包含只精確到城市的度量。

原則6:事實的單位一致晃洒。

原則7:盡量處理掉事實表中的null值慨灭。
SQL中大于,小于的條件不適用與null值球及,所以盡量用數(shù)值替代null氧骤,例如0.

原則8:使用退化維度增加事實表的易用性。
在Kimball的維度設(shè)計模型中吃引,分拆出單獨的維度表筹陵,為了節(jié)省存儲。但是為了減少使用時的關(guān)聯(lián)次數(shù)镊尺,可以多使用退化維度提供事實表易用性朦佩。

事實表設(shè)計方法:
1.選擇業(yè)務過程及確定事實表類型。2. 聲明粒度鹅心。3.確定維度吕粗。4.確定事實。5.冗余維度(設(shè)計退化維度)旭愧。

11.2 事務事實表

事務事實表,即針對業(yè)務過程構(gòu)建的一類事實表输枯,用來跟蹤定義業(yè)務過程的個體行為,提供豐富的分析能力先口,作為數(shù)據(jù)倉庫原子的明細數(shù)據(jù)型奥。

11.2.1 單事務事實表

單事務事實表,即針對每一個業(yè)務過程設(shè)計一個事實表碉京,這樣可以方便地對每一個業(yè)務過程進行分析研究。

11.2.2 多事務事實表

表示同一個事實表包含不同的業(yè)務過程烫葬。多事務事實表有兩種實現(xiàn)方法:(1)使用兩個不同的事實字段來保存各自業(yè)務過程。(2)使用同一個字段保存凡蜻,但是增加一個業(yè)務過程標簽搭综。
下面舉例說明,淘寶交易事務事實表同時包含下單兑巾、支付和成功完結(jié)三個過程忠荞,三個過程粒度一致,可以放在一個事實表奋姿。下面確定維度和事實素标,該表中的下單度量、支付度量和成功完結(jié)度量信息分別存在不同字段寓免,如果不是當前業(yè)務處理计维,則用0來處理。
當不同業(yè)務過程的度量比較相似蜈首、差異不大時使用第二種事實表(使用一個字段保存)欠母,當不同業(yè)務過程的度量差異大時,使用第一種(多字段保存)踩寇。

11.2.3 比較

對于單事務事實表和多事務事實表的選擇上六水,可以從以下一些方面來區(qū)分:
業(yè)務過程辣卒、粒度和維度(不同業(yè)務過程粒度相同睛榄,并且維度相似時场靴,可以選用單事務事實表)、事實、下游業(yè)務使用叉趣、計算存儲成本疗杉。電商環(huán)境下,有父子訂單的概念梢什,店鋪多商品各生成一個訂單朝聋,在一個店鋪合成一個父訂單。

事務事實表類型 單事務事實表 多事務事實表
業(yè)務過程 一個 多個
粒度 相互不相關(guān) 相同粒度
維度 相互不相關(guān) 一致
事實 只取當前業(yè)務過程中的事實 保留多個事實,非當前業(yè)務度量置0
冗余維度 多個業(yè)務過程言蛇,冗余多次 不同業(yè)務過程只冗余一次
理解成本 易于理解腊尚,不易混淆 難以理解,需要通過標簽限定
計算存儲成本 較多劝篷,每個業(yè)務過程都需要計算存儲一次 較少民宿,增加了存儲量勘高,存在大量零值數(shù)據(jù)

11.2.4 事實的設(shè)計準則

1.事實完整性:事實表包含與其描述的過程有關(guān)的所有事實坟桅。
2.事實一致性:明確存儲每一個事實以確保度量一致性蕊蝗。例如蓬戚,有下單商品數(shù)和商品價格2個事實,同時保存下單金額(價格*商品數(shù))豫喧。這樣下游使用時幢泼,直接取下單金額缕棵,而不是再次計算,以保證指標的一致性篙程。
3.事實可加性:為確保下游使用時别厘,指標的可聚合性,盡量保存原始數(shù)郭厌,而不是計算后的比率指標雕蔽。

11.3 周期性快照事實表

對于事務度量批狐,事務性事實表可以很好地表征。但是對于一些狀態(tài)度量承冰,例如買賣家累計交易金額食零、商品庫存贰谣、買賣家星級迁霎、溫度(事務事實表無法聚合得到)等考廉,事務事實表的效率較低或者無法處理携御。為了解決狀態(tài)度量問題,引入周期性快照事實表(也稱為快照事實表)涮坐。

11.3.1 快照事實表特性

1.用快照采樣狀態(tài):快照事實表以預定的間隔采樣狀態(tài)度量袱讹。
2.快照粒度:快照事實表通程菲螅總是被多維聲明评肆,即快照需要采樣的周期以及什么將被采樣瓜挽。
3.密度和稠密性:稠密性是快照事實表的重要特征。事務事實表一般都是稀疏的俄占,只要發(fā)生業(yè)務才會有相應記錄淆衷。
4.半可加性:快照事實表的狀態(tài)度量都是半可加的祝拯,例如商品庫存,只針對商品維度可加鹰贵,對日期維度不可加康嘉。

設(shè)計快照事實表亭珍,首先確定快照粒度枝哄,然后確定采樣的狀態(tài)度量膘格。下面介紹幾個快照事實表實例财松。
單維度每天快照事實表、混合維度每天快照事實表菜秦,這兩種快照表都可以從事務事實表匯總得到球昨。另外的一種產(chǎn)出模式是直接使用操作型系統(tǒng)作為數(shù)據(jù)源來加工主慰,例如淘寶賣家的星級評分是在操作型系統(tǒng)中計算得出的,倉庫直接拿來這部分數(shù)據(jù)加入事實表情竹。全量快照事實表雏蛮,是特殊類型的周期快照表阱州,例如設(shè)計無事實的事實表來記錄評論的狀態(tài)度量苔货。

總結(jié):事務事實表和周期快照表一般都是成對設(shè)計蒲赂,特別是在事務事實表基礎(chǔ)上加工周期快照事實表木蹬。一般地,快照事實表會有狀態(tài)比對的需求(和上一個時間周期)尘颓,所以周期快照表一般也會附加存儲上一個時間周期的狀態(tài)度量(防止多次使用周期快照表)。除歷史至今的狀態(tài)度量信峻,還可能需要自然年尤莺、季度颤霎、月份至今的狀態(tài)(例如年初至今的庫存量)。

11.4 累計快照事實表

對于研究事件之間的時間間隔需求時柔纵,累計快照事實表能較好符合需求壮吩。
特點:
1.數(shù)據(jù)不斷更新:例如觉啊,在下單杠人、支付和確認收貨三個業(yè)務過程中辑莫,事務事實表會生成3條記錄,而累計快照表會不斷更新一條記錄(不生成新記錄)揭蜒。
2.多業(yè)務過程日期:
累計快照表適用于具有較明確起止時間的短生命周期的實體徙融,對于每個實體都經(jīng)歷從誕生到消亡等步驟。
3.存儲歷史全量數(shù)據(jù)脚猾。

11.5 三種類型事實表的比較

事實表類型 事務事實表 周期快照事實表 累積快照事實表
時間/時期 離散事務時間點 以有規(guī)律、可預測的時間間隔產(chǎn)生數(shù)據(jù) 用于時間跨度不確定的不斷變化的工作流
日期維度 事務日期 快照日期 相關(guān)業(yè)務過程涉及的多個日期
粒度 每行代表實體的一個事務 每行代表某時間周期的一個實體 每行代表一個實體的生命周期
事實 事務事實 累積事實 相關(guān)業(yè)務過程事實和時間間隔事實
事實表加載 插入 插入 插入與更新
事實表更新 不更新 不更新 業(yè)務過程變更時更新

11.6 無事實的事實表

1.事件類的仅淑,例如瀏覽日志涯竟。
2.條件范圍資格類的银酬,例如客戶和銷售人員的分配情況揩瞪。

11.7 聚集型事實表

主要是提前聚合,為了增加數(shù)據(jù)訪問的效率(不用再聚合了),減少數(shù)據(jù)不一致的情況诽俯。這類聚集匯總數(shù)據(jù)密任,被稱為“公共匯總層”浪讳。
聚集的基本步驟:1.確定聚集維度。2.確定一致性上鉆。3.確定聚集事實辐真。

12.元數(shù)據(jù)

12.1 元數(shù)據(jù)概述:

元數(shù)據(jù)主要記錄數(shù)據(jù)倉庫中模型的定義侍咱、各層級間映射關(guān)系胯甩、監(jiān)控數(shù)據(jù)倉庫的數(shù)據(jù)狀態(tài)及ETL任務的運行狀態(tài)偎箫。元數(shù)據(jù)分為技術(shù)元數(shù)據(jù)業(yè)務元數(shù)據(jù)弄诲。
阿里巴巴技術(shù)元數(shù)據(jù)包括:
數(shù)據(jù)表、列等信息;ETL作業(yè)的信息想许;數(shù)據(jù)同步流纹、任務調(diào)度疮蹦、計算任務等信息愕乎。數(shù)據(jù)質(zhì)量和運維相關(guān)元數(shù)據(jù)。
阿里巴巴業(yè)務元數(shù)據(jù)包括:
維度屬性、業(yè)務過程薪前、指標等示括。數(shù)據(jù)應用元數(shù)據(jù)丁稀,例如數(shù)據(jù)報表线衫、數(shù)據(jù)產(chǎn)品等枯跑。

元數(shù)據(jù)價值:
元數(shù)據(jù)在數(shù)據(jù)管理方面為集團數(shù)據(jù)在計算敛助、存儲续扔、成本、質(zhì)量堡赔、安全存璃、模型等治理領(lǐng)域上提供數(shù)據(jù)支持纵东。

14.存儲和成本管理

14.1 數(shù)據(jù)壓縮

阿里MaxCompute提供了archive壓縮方法辑甜,采用了具有更高壓縮比壓縮算法猫牡,將數(shù)據(jù)以RAID file的形式存儲淌友。這樣可以節(jié)省空間,但是恢復起來也更復雜,所以適用于冷備份的數(shù)據(jù)。

14.2 數(shù)據(jù)重分布

MaxCompute基于列存儲逛球,通過修改表的數(shù)據(jù)重分布幸海,避免列熱點,將會節(jié)省一定存儲空間挡篓。

14.3 存儲治理項優(yōu)化

存儲治理項以元數(shù)據(jù)為基礎(chǔ),列出例如“62天內(nèi)未訪問的分區(qū)”、“數(shù)據(jù)無更新的任務列表”等等管理項推動ETL優(yōu)化始花。形成現(xiàn)狀分析、問題診斷、管理優(yōu)化溜族、效果反饋的存儲治理項優(yōu)化的閉環(huán)煌抒。


14.4 生命周期管理

生命周期管理的目的是用最少的存儲成本來滿足最大業(yè)務需求况既,實現(xiàn)數(shù)據(jù)價值最大化棒仍。
1.周期性刪除策略:
2.徹底刪除策略:主要針對無用表莫其,ETL中間過程表乱陡。
3.永久保存策略:
4.極限存儲策略:
5.冷數(shù)據(jù)管理策略:針對重要且訪問頻率低的數(shù)據(jù)。
6.增量表merge全量表策略:

14.5 數(shù)據(jù)成本計量

將一個數(shù)據(jù)表的成本分為存儲成本和計算成本胳徽,除此之外爽彤,上游表對該表的掃描成本也應該計入。相應的計費分別核算為:計算付費适篙、存儲付費和掃描付費匙瘪。數(shù)據(jù)資產(chǎn)的成本管理分為數(shù)據(jù)成本計量和數(shù)據(jù)使用計費。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末薄货,一起剝皮案震驚了整個濱河市碍论,隨后出現(xiàn)的幾起案子税娜,更是在濱河造成了極大的恐慌藏研,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件弧岳,死亡現(xiàn)場離奇詭異业踏,居然都是意外死亡,警方通過查閱死者的電腦和手機腹尖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門热幔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伤提,你說我怎么就攤上這事认烁〗樾冢” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵窗价,是天一觀的道長叹卷。 經(jīng)常有香客問我骤竹,道長,這世上最難降的妖魔是什么蒙揣? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任懒震,我火速辦了婚禮,結(jié)果婚禮上瓷炮,老公的妹妹穿的比我還像新娘递宅。我一直安慰自己,他們只是感情好茅主,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布诀姚。 她就那樣靜靜地躺著玷禽,像睡著了一般呀打。 火紅的嫁衣襯著肌膚如雪糯笙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天豺憔,我揣著相機與錄音够庙,去河邊找鬼耘眨。 笑死,一個胖子當著我的面吹牛剔难,可吹牛的內(nèi)容都是我干的偶宫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼彻秆,長吁一口氣:“原來是場噩夢啊……” “哼结闸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起扎附,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤留夜,失蹤者是張志新(化名)和其女友劉穎图甜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黑毅,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年愿卒,在試婚紗的時候發(fā)現(xiàn)自己被綠了琼开。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枕荞。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖改橘,靈堂內(nèi)的尸體忽然破棺而出玉控,到底是詐尸還是另有隱情狮惜,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站开泽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏惠呼。R本人自食惡果不足惜峦耘,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一辅髓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洛口,春花似錦第焰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽液荸。三九已至脱篙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绊困,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留取视,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓稽物,卻偏偏與公主長得像贝或,于是被迫代替她去往敵國和親锐秦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容