阿里巴巴,作為距離大數(shù)據(jù)最近的公司之一,近幾年對大數(shù)據(jù)卻鮮有高談闊論。實際上,阿里巴巴一開始就自然生長在數(shù)據(jù)的黑洞中,并且被越來越多、越來越密集的數(shù)據(jù)風暴裹挾。從需求→設計→迭代→升華為理論,在無數(shù)次的迭代進化中,阿里巴巴對大數(shù)據(jù)的理解才逐漸成形,慢慢能夠在將數(shù)據(jù)黑洞為我所用的抗爭中扳回一局。《大數(shù)據(jù)之路:阿里巴巴大數(shù)據(jù)實踐》就是在這個過程中,由阿里巴巴數(shù)據(jù)技術及產(chǎn)品部沉淀下來的大數(shù)據(jù)知識與實踐,值得每一位與大數(shù)據(jù)相關的人閱讀。
序
大數(shù)據(jù)是什么?在過去的5年里,恐怕沒有另外一個詞比大數(shù)據(jù)更高頻;也沒有另外一個概念如大數(shù)據(jù)一樣,被紛繁解讀,著書立說。有趣的是,作為距離大數(shù)據(jù)最近的公司之一——盡管我們的初心或許和大數(shù)據(jù)沒有直接關系——在關于大數(shù)據(jù)的理論和概念的爭論中,阿里巴巴卻鮮有高談闊論。
因為自知而敬畏,因為敬畏而謙遜。甚至在大數(shù)據(jù)這個概念出現(xiàn)很久之前,阿里巴巴就不得不直面、認知、探索,并架構和大數(shù)據(jù)有關的一切。數(shù)據(jù)作為一個生態(tài)級的平臺企業(yè)最直接的沉淀,亦是最基本的再生產(chǎn)資料。如果沒有基于大數(shù)據(jù)的人工智能的應用,淘寶根本不可能面對每天億級的用戶訪問數(shù)量。因此,僅僅因為本能,阿里巴巴一開始就自然生長在這樣一個數(shù)據(jù)的黑洞中,并且被越來越多、越來越密集的數(shù)據(jù)風暴裹挾。阿里巴巴在大數(shù)據(jù)方面所做的各種艱苦努力,其實就是力圖對抗這種無序和復雜的熵增,從中梳理結構,提煉價值。
這是一個歷經(jīng)磨煉、也卓有成效的長期過程。如書中所提到的,阿里巴巴不僅數(shù)據(jù)量超宇宙級,而且更是因為業(yè)務場景的復雜和多元化,其面對著甚至超過Google和Facebook的更復雜的難題。大部分時候,阿里巴巴都是在無人區(qū)艱難跋涉。每一組功能和邏輯,每一套架構與系統(tǒng),都與業(yè)務和場景息息相關。這個黑洞膨脹之快,以至于大部分時候都是在出現(xiàn)痛點從而刺激了架構升級。換言之,大數(shù)據(jù)系統(tǒng)——如果我們非要用一個系統(tǒng)去描述的話——其復雜度之高,是幾乎不可能在一開始就完整和完美地進行自上而下定義和設計的。從需求→設計→迭代→升華為理論,在無數(shù)次的迭代進化中,我們對大數(shù)據(jù)的理解才逐漸成形,慢慢能夠在將數(shù)據(jù)黑洞為我所用的抗爭中扳回一局。
這個系統(tǒng)生長和進化的過程實際上已經(jīng)暗暗揭示了阿里巴巴對大數(shù)據(jù)真髓的理解。大、快、多樣性只是表象,大數(shù)據(jù)的真正價值在于生命性和生態(tài)性。阿里巴巴稱之為“活數(shù)據(jù)”。活數(shù)據(jù)是全本記錄、實時驅動決策和迭代,其價值是隨著使用場景和方式動態(tài)變化的。簡單地把數(shù)據(jù)定義為正/負資產(chǎn)都太簡單。數(shù)據(jù)也不是會枯竭的能源。數(shù)據(jù)可以被重復使用,并在使用中升值;數(shù)據(jù)與數(shù)據(jù)鏈接可能會像核反應一樣產(chǎn)生價值的聚變。數(shù)據(jù)使用和數(shù)據(jù)聚變又產(chǎn)生新的數(shù)據(jù)。活數(shù)據(jù)的基礎設施就需要來承載、管理和促進這個生態(tài)體的最大價值實現(xiàn)(以及相應的成本最小化)。豐富的數(shù)據(jù)形式、多樣化的參與角色和動機,以及迥異的計算場景都使得這個系統(tǒng)的復雜度無限升級。阿里巴巴的大數(shù)據(jù)之路就是在深刻理解這種復雜性的基礎上,摸索到了一些重要的秩序和原理,并通過技術架構來驗證和夯實。
如果說互聯(lián)網(wǎng)實現(xiàn)了人人互聯(lián)和通信,并沒有深度地協(xié)同計算,那么這樣的一個大數(shù)據(jù)平臺和架構就是一張升級的、智能的互聯(lián)網(wǎng)。這是人類自己設計出來的復雜的信息處理系統(tǒng),同時也將是真正意義上人類智力大聯(lián)合的基礎設施。這是一個偉大的藍圖,我們敬畏其復雜度和潛能。《大數(shù)據(jù)之路——阿里巴巴大數(shù)據(jù)實踐》便是阿里巴巴分享對大數(shù)據(jù)的認知、與世界共創(chuàng)數(shù)據(jù)智能的重要基石。數(shù)據(jù)技術及產(chǎn)品部作為阿里巴巴集團的數(shù)據(jù)中臺,一直致力為阿里巴巴集團內(nèi)、外提供大數(shù)據(jù)方面的系統(tǒng)服務,承載了阿里巴巴集團大數(shù)據(jù)夢想至關重要的數(shù)據(jù)平臺建設。相信他們的實踐和思考對同行會有很大的啟發(fā)和借鑒意義。
曾鳴教授
阿里巴巴集團學術委員會主席、湖畔大學教務長
阿里巴巴數(shù)據(jù)技術及產(chǎn)品部,定位于阿里集團數(shù)據(jù)中臺,為阿里生態(tài)內(nèi)外的業(yè)務、用戶、中小企業(yè)提供全鏈路、全渠道的數(shù)據(jù)服務。作為阿里大數(shù)據(jù)戰(zhàn)略的核心踐行者,致力于“讓大數(shù)據(jù)賦能商業(yè),創(chuàng)造價值”。經(jīng)過多年的實踐,數(shù)據(jù)技術及產(chǎn)品部已經(jīng)構建了從底層的數(shù)據(jù)采集、數(shù)據(jù)處理,到挖掘算法、數(shù)據(jù)應用服務以及數(shù)據(jù)產(chǎn)品的全鏈路、標準化的大數(shù)據(jù)體系。通過這個體系,超過EB級別的海量數(shù)據(jù)能夠高效融合,并以秒級的響應速度,服務并驅動阿里巴巴自身的業(yè)務和外部千萬用戶的發(fā)展。現(xiàn)在,阿里巴巴數(shù)據(jù)技術及產(chǎn)品部正通過技術和產(chǎn)品上的創(chuàng)新,探索全域數(shù)據(jù)的價值,將阿里在大數(shù)據(jù)上沉淀的能力對外分享,為各行各業(yè)的發(fā)展帶來更多可能性。
第1章 總述1
第1篇 數(shù)據(jù)技術篇
第2章 日志采集 8
2.1 瀏覽器的頁面日志采集 8
2.1.1 頁面瀏覽日志采集流程 9
2.1.2 頁面交互日志采集 14
2.1.3 頁面日志的服務器端清洗和預處理 15
2.2 無線客戶端的日志采集 16
2.2.1 頁面事件 17
2.2.2 控件點擊及其他事件 18
2.2.3 特殊場景 19
2.2.4 H5 & Native日志統(tǒng)一 20
2.2.5 設備標識 22
2.2.6 日志傳輸 23
2.3 日志采集的挑戰(zhàn) 24
2.3.1 典型場景 24
2.3.2 大促保障 26
第3章 數(shù)據(jù)同步 29
3.1 數(shù)據(jù)同步基礎 29
3.1.1 直連同步 30
3.1.2 數(shù)據(jù)文件同步 30
3.1.3 數(shù)據(jù)庫日志解析同步 31
3.2 阿里數(shù)據(jù)倉庫的同步方式 35
3.2.1 批量數(shù)據(jù)同步 35
3.2.2 實時數(shù)據(jù)同步 37
3.3 數(shù)據(jù)同步遇到的問題與解決方案 39
3.3.1 分庫分表的處理 39
3.3.2 高效同步和批量同步 41
3.3.3 增量與全量同步的合并 42
3.3.4 同步性能的處理 43
3.3.5 數(shù)據(jù)漂移的處理 45
第4章 離線數(shù)據(jù)開發(fā) 48
4.1 數(shù)據(jù)開發(fā)平臺 48
4.1.1 統(tǒng)一計算平臺 49
4.1.2 統(tǒng)一開發(fā)平臺 53
4.2 任務調(diào)度系統(tǒng) 58
4.2.1 背景 58
4.2.2 介紹 60
4.2.3 特點及應用 65
第5章 實時技術 68
5.1 簡介 69
5.2 流式技術架構 71
5.2.1 數(shù)據(jù)采集 72
5.2.2 數(shù)據(jù)處理 74
5.2.3 數(shù)據(jù)存儲 78
5.2.4 數(shù)據(jù)服務 80
5.3 流式數(shù)據(jù)模型 80
5.3.1 數(shù)據(jù)分層 80
5.3.2 多流關聯(lián) 83
5.3.3 維表使用 84
5.4 大促挑戰(zhàn)&保障 86
5.4.1 大促特征 86
5.4.2 大促保障 88
第6章 數(shù)據(jù)服務 91
6.1 服務架構演進 91
6.1.1 DWSOA 92
6.1.2 OpenAPI 93
6.1.3 SmartDQ 94
6.1.4 統(tǒng)一的數(shù)據(jù)服務層 96
6.2 技術架構 97
6.2.1 SmartDQ 97
6.2.2 iPush 100
6.2.3 Lego 101
6.2.4 uTiming 102
6.3 最佳實踐 103
6.3.1 性能 103
6.3.2 穩(wěn)定性 111
第7章 數(shù)據(jù)挖掘 116
7.1 數(shù)據(jù)挖掘概述 116
7.2 數(shù)據(jù)挖掘算法平臺 117
7.3 數(shù)據(jù)挖掘中臺體系 119
7.3.1 挖掘數(shù)據(jù)中臺 120
7.3.2 挖掘算法中臺 122
7.4 數(shù)據(jù)挖掘案例 123
7.4.1 用戶畫像 123
7.4.2 互聯(lián)網(wǎng)反作弊 125
第2篇 數(shù)據(jù)模型篇
第8章 大數(shù)據(jù)領域建模綜述 130
8.1 為什么需要數(shù)據(jù)建模 130
8.2 關系數(shù)據(jù)庫系統(tǒng)和數(shù)據(jù)倉庫 131
8.3 從OLTP和OLAP系統(tǒng)的區(qū)別看模型方法論的選擇 132
8.4 典型的數(shù)據(jù)倉庫建模方法論 132
8.4.1 ER模型 132
8.4.2 維度模型 133
8.4.3 Data Vault模型 134
8.4.4 Anchor模型 135
8.5 阿里巴巴數(shù)據(jù)模型實踐綜述 136
第9章 阿里巴巴數(shù)據(jù)整合及管理體系 138
9.1 概述 138
9.1.1 定位及價值 139
9.1.2 體系架構 139
9.2 規(guī)范定義 140
9.2.1 名詞術語 141
9.2.2 指標體系 141
9.3 模型設計 148
9.3.1 指導理論 148
9.3.2 模型層次 148
9.3.3 基本原則 150
9.4 模型實施 152
9.4.1 業(yè)界常用的模型實施過程 152
9.4.2 OneData實施過程 154
第10章 維度設計 159
10.1 維度設計基礎 159
10.1.1 維度的基本概念 159
10.1.2 維度的基本設計方法 160
10.1.3 維度的層次結構 162
10.1.4 規(guī)范化和反規(guī)范化 163
10.1.5 一致性維度和交叉探查 165
10.2 維度設計高級主題 166
10.2.1 維度整合 166
10.2.2 水平拆分 169
10.2.3 垂直拆分 170
10.2.4 歷史歸檔 171
10.3 維度變化 172
10.3.1 緩慢變化維 172
10.3.2 快照維表 174
10.3.3 極限存儲 175
10.3.4 微型維度 178
10.4 特殊維度 180
10.4.1 遞歸層次 180
10.4.2 行為維度 184
10.4.3 多值維度 185
10.4.4 多值屬性 187
10.4.5 雜項維度 188
第11章 事實表設計 190
11.1 事實表基礎 190
11.1.1 事實表特性 190
11.1.2 事實表設計原則 191
11.1.3 事實表設計方法 193
11.2 事務事實表 196
11.2.1 設計過程 196
11.2.2 單事務事實表 200
11.2.3 多事務事實表 202
11.2.4 兩種事實表對比 206
11.2.5 父子事實的處理方式 208
11.2.6 事實的設計準則 209
11.3 周期快照事實表 210
11.3.1 特性 211
11.3.2 實例 212
11.3.3 注意事項 217
11.4 累積快照事實表 218
11.4.1 設計過程 218
11.4.2 特點 221
11.4.3 特殊處理 223
11.4.4 物理實現(xiàn) 225
11.5 三種事實表的比較 227
11.6 無事實的事實表 228
11.7 聚集型事實表 228
11.7.1 聚集的基本原則 229
11.7.2 聚集的基本步驟 229
11.7.3 阿里公共匯總層 230
11.7.4 聚集補充說明 234
第3篇 數(shù)據(jù)管理篇
第12章 元數(shù)據(jù) 236
12.1 元數(shù)據(jù)概述 236
12.1.1 元數(shù)據(jù)定義 236
12.1.2 元數(shù)據(jù)價值 237
12.1.3 統(tǒng)一元數(shù)據(jù)體系建設 238
12.2 元數(shù)據(jù)應用 239
12.2.1 Data Profile 239
12.2.2 元數(shù)據(jù)門戶 241
12.2.3 應用鏈路分析 241
12.2.4 數(shù)據(jù)建模 242
12.2.5 驅動ETL開發(fā) 243
第13章 計算管理 245
13.1 系統(tǒng)優(yōu)化 245
13.1.1 HBO 246
13.1.2 CBO 249
13.2 任務優(yōu)化 256
13.2.1 Map傾斜 257
13.2.2 Join傾斜 261
13.2.3 Reduce傾斜 269
第14章 存儲和成本管理 275
14.1 數(shù)據(jù)壓縮 275
14.2 數(shù)據(jù)重分布 276
14.3 存儲治理項優(yōu)化 277
14.4 生命周期管理 278
14.4.1 生命周期管理策略 278
14.4.2 通用的生命周期管理矩陣 280
14.5 數(shù)據(jù)成本計量 283
14.6 數(shù)據(jù)使用計費 284
第15章 數(shù)據(jù)質(zhì)量 285
15.1 數(shù)據(jù)質(zhì)量保障原則 285
15.2 數(shù)據(jù)質(zhì)量方法概述 287
15.2.1 消費場景知曉 289
15.2.2 數(shù)據(jù)加工過程卡點校驗 292
15.2.3 風險點監(jiān)控 295
15.2.4 質(zhì)量衡量 299
第4篇 數(shù)據(jù)應用篇
第16章 數(shù)據(jù)應用 304
16.1 生意參謀 305
16.1.1 背景概述 305
16.1.2 功能架構與技術能力 307
16.1.3 商家應用實踐 310
16.2 對內(nèi)數(shù)據(jù)產(chǎn)品平臺 313
16.2.1 定位 313
16.2.2 產(chǎn)品建設歷程 314
16.2.3 整體架構介紹 317
附錄A 本書插圖索引 320