目 錄?Contents
前言
第一篇 數據大圖和數據平臺大圖
第1章 數據大圖 2
1.1 數據流程 2
1.1.1 數據產生 3
1.1.2 數據采集和傳輸 5
1.1.3 數據存儲處理 6
1.1.4 數據應用 7
1.2 數據技術 8
1.2.1 數據采集傳輸主要技術 9
1.2.2 數據處理主要技術 10
1.2.3 數據存儲主要技術 12
1.2.4 數據應用主要技術 13
1.3 數據相關從業(yè)者和角色 14
1.3.1 數據平臺開發(fā)、運維工程師 14
1.3.2 數據開發(fā)、運維工程師 15
1.3.3 數據分析工程師 15
1.3.4 算法工程師 16
1.3.5 業(yè)務人員 16
1.4 本章小結 17
第2章 數據平臺大圖 18
2.1 離線數據平臺的架構、技術和設計 19
2.1.1 離線數據平臺的整體架構 19
2.1.2 數據倉庫技術 20
2.1.3 數據倉庫建模技術 23
2.1.4 數據倉庫邏輯架構設計 26
2.2 實時數據平臺的架構、技術和設計 27
2.2.1 實時數據平臺的整體架構 28
2.2.2 流計算技術 29
2.2.3 主要流計算開源框架 29
2.3 數據管理 32
2.3.1 數據探查 32
2.3.2 數據集成 33
2.3.3 數據質量 33
2.3.4 數據屏蔽 34
2.4 本章小結 35
第二篇 離線數據開發(fā):大數據開發(fā)的主戰(zhàn)場
第3章 Hadoop原理實踐 38
3.1 開啟大數據時代的Hadoop 38
3.2 HDFS和MapReduce優(yōu)缺點分析 40
3.2.1 HDFS 41
3.2.2 MapReduce 42
3.3 HDFS和MapReduce基本架構 43
3.4 MapReduce內部原理實踐 46
3.4.1 MapReduce邏輯開發(fā) 46
3.4.2 MapReduce任務提交詳解 47
3.4.3 MapReduce內部執(zhí)行原理詳解 48
3.5 本章小結 52
第4章 Hive原理實踐 53
4.1 離線大數據處理的主要技術:Hive 53
4.1.1 Hive出現背景 53
4.1.2 Hive基本架構 55
4.2 Hive SQL 56
4.2.1 Hive 關鍵概念 57
4.2.2 Hive 數據庫 59
4.2.3 Hive 表DDL 60
4.2.4 Hive表DML 63
4.3 Hive SQL執(zhí)行原理圖解 65
4.3.1 select 語句執(zhí)行圖解 66
4.3.2 group by語句執(zhí)行圖解 67
4.3.3 join語句執(zhí)行圖解 69
4.4 Hive函數 73
4.5 其他SQL on Hadoop技術 74
4.6 本章小結 76
第5章 Hive優(yōu)化實踐 77
5.1 離線數據處理的主要挑戰(zhàn):數據傾斜 77
5.2 Hive優(yōu)化 79
5.3 join無關的優(yōu)化 79
5.3.1 group by引起的傾斜優(yōu)化 79
5.3.2 count distinct優(yōu)化 80
5.4 大表join小表優(yōu)化 80
5.5 大表join大表優(yōu)化 82
5.5.1 問題場景 82
5.5.2 方案1:轉化為mapjoin 83
5.5.3 方案2:join時用case when語句 84
5.5.4 方案3:倍數B表,再取模join 84
5.5.5 方案4:動態(tài)一分為二 87
5.6 本章小結 89
第6章 維度建模技術實踐 90
6.1 大數據建模的主要技術:維度建模 90
6.1.1 維度建模關鍵概念 91
6.1.2 維度建模一般過程 95
6.2 維度表設計 96
6.2.1 維度變化 96
6.2.2 維度層次 99
6.2.3 維度一致性 100
6.2.4 維度整合和拆分 101
6.2.5 維度其他 102
6.3 深入事實表 104
6.3.1 事務事實表 104
6.3.2 快照事實表 106
6.3.3 累計快照事實表 107
6.3.4 無事實的事實表 108
6.3.5 匯總的事實表 108
6.4 大數據的維度建模實踐 109
6.4.1 事實表 109
6.4.2 維度表 110
6.5 本章小結 110
第7章 Hadoop數據倉庫開發(fā)實戰(zhàn) 111
7.1 業(yè)務需求 112
7.2 Hadoop數據倉庫架構設計 113
7.3 Hadoop數據倉庫規(guī)范設計 114
7.3.1 命名規(guī)范 115
7.3.2 開發(fā)規(guī)范 115
7.3.3 流程規(guī)范 116
7.4 FutureRetailer數據倉庫構建實踐 118
7.4.1 商品維度表 118
7.4.2 銷售事實表 120
7.5 數據平臺新架構——數據湖 121
7.6 本章小結 123
第三篇 實時數據開發(fā):大數據開發(fā)的未來
第8章 Storm流計算開發(fā) 127
8.1 流計算技術的鼻祖:Storm技術 128
8.1.1 Storm基本架構 129
8.1.2 Storm關鍵概念 130
8.1.3 Storm并發(fā) 132
8.1.4 Storm核心類和接口 133
8.2 Storm實時開發(fā)示例 133
8.2.1 語句生成spout 134
8.2.2 語句分割bolt 135
8.2.3 單詞計數bolt 136
8.2.4 上報bolt 136
8.2.5 單詞計數topology 137
8.2.6 單詞計數并發(fā)配置 139
8.3 Storm高級原語Trident 142
8.3.1 Trident引入背景 142
8.3.2 Trident基本思路 142
8.3.3 Trident流操作 143
8.3.4 Trident的實時開發(fā)實例 145
8.4 Storm關鍵技術 147
8.4.1 spout的可靠性 147
8.4.2 bolt的可靠性 148
8.4.3 Storm反壓機制 149
8.5 本章小結 150
第9章 Spark Streaming流計算開發(fā) 151
9.1 Spark生態(tài)和核心概念 151
9.1.1 Spark概覽 151
9.1.2 Spark核心概念 153
9.1.3 Spark生態(tài)圈 157
9.2 Spark生態(tài)的流計算技術:Spark Streaming 158
9.2.1 Spark Streaming基本原理 159
9.2.2 Spark Streaming核心API 159
9.3 Spark Streaming的實時開發(fā)示例 161
9.4 Spark Streaming調優(yōu)實踐 162
9.5 Spark Streaming關鍵技術 164
9.5.1 Spark Streaming可靠性語義 164
9.5.2 Spark Streaming反壓機制 165
9.6 本章小結 166
第10章 Flink流計算開發(fā) 167
10.1 流計算技術新貴:Flink 167
10.1.1 Flink技術棧 168
10.1.2 Flink關鍵概念和基本原理 169
10.2 Flink API 172
10.2.1 API概覽 172
10.2.2 DataStream API 173
10.3 Flink實時開發(fā)示例 180
10.4 Flink關鍵技術詳解 182
10.4.1 容錯機制 182
10.4.2 水位線 184
10.4.3 窗口機制 185
10.4.4 撤回 187
10.4.5 反壓機制 187
10.5 本章小結 188
第11章 Beam技術 189
11.1 意圖一統(tǒng)流計算的Beam 190
11.1.1 Beam的產生背景 190
11.1.2 Beam技術 191
11.2 Beam技術核心:Beam Model 193
11.3 Beam SDK 196
11.3.1 關鍵概念 196
11.3.2 Beam SDK 197
11.4 Beam窗口詳解 202
11.4.1 窗口基礎 202
11.4.2 水位線與延遲數據 203
11.4.3 觸發(fā)器 204
11.5 本章小結 205
第12章 Stream SQL實時開發(fā)實戰(zhàn) 206
12.1 流計算SQL原理和架構 207
12.2 流計算SQL:未來主要的實時開發(fā)技術 208
12.3 Stream SQL 209
12.3.1 Stream SQL源表 209
12.3.2 Stream SQL結果表 209
12.3.3 Stream SQL維度表 210
12.3.4 Stream SQL臨時表 211
12.3.5 Stream SQL DML 211
12.4 Stream SQL的實時開發(fā)實戰(zhàn) 212
12.4.1 select操作 212
12.4.2 join操作 214
12.4.3 聚合操作 218
12.5 撤回機制 221
12.6 本章小結 222
參考文獻 224