離線和實時大數據開發實戰


離線和實時大數據開發實戰

目 錄

前言

第一篇 數據大圖和數據平台大圖

第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 數據相關從業者和角色 14

1.3.1 數據平台開發、運維工程師 14

1.3.2 數據開發、運維工程師 15

1.3.3 數據分析工程師 15

1.3.4 算法工程師 16

1.3.5 業務人員 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

第二篇 離線數據開發:大數據開發的主戰場

第3章 Hadoop原理實踐 38

3.1 開啟大數據時代的Hadoop 38

3.2 HDFS和MapReduce優缺點分析 40

3.2.1 HDFS 41

3.2.2 MapReduce 42

3.3 HDFS和MapReduce基本架構 43

3.4 MapReduce內部原理實踐 46

3.4.1 MapReduce邏輯開發 46

3.4.2 MapReduce任務提交詳解 47

3.4.3 MapReduce內部執行原理詳解 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執行原理圖解 65

4.3.1 select 語句執行圖解 66

4.3.2 group by語句執行圖解 67

4.3.3 join語句執行圖解 69

4.4 Hive函數 73

4.5 其他SQL on Hadoop技術 74

4.6 本章小結 76

第5章 Hive優化實踐 77

5.1 離線數據處理的主要挑戰:數據傾斜 77

5.2 Hive優化 79

5.3 join無關的優化 79

5.3.1 group by引起的傾斜優化 79

5.3.2 count distinct優化 80

5.4 大表join小表優化 80

5.5 大表join大表優化 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:動態一分為二 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數據倉庫開發實戰 111

7.1 業務需求 112

7.2 Hadoop數據倉庫架構設計 113

7.3 Hadoop數據倉庫規范設計 114

7.3.1 命名規范 115

7.3.2 開發規范 115

7.3.3 流程規范 116

7.4 FutureRetailer數據倉庫構建實踐 118

7.4.1 商品維度表 118

7.4.2 銷售事實表 120

7.5 數據平台新架構——數據湖 121

7.6 本章小結 123

第三篇 實時數據開發:大數據開發的未來

第8章 Storm流計算開發 127

8.1 流計算技術的鼻祖:Storm技術 128

8.1.1 Storm基本架構 129

8.1.2 Storm關鍵概念 130

8.1.3 Storm並發 132

8.1.4 Storm核心類和接口 133

8.2 Storm實時開發示例 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 單詞計數並發配置 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的實時開發實例 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流計算開發 151

9.1 Spark生態和核心概念 151

9.1.1 Spark概覽 151

9.1.2 Spark核心概念 153

9.1.3 Spark生態圈 157

9.2 Spark生態的流計算技術:Spark Streaming 158

9.2.1 Spark Streaming基本原理 159

9.2.2 Spark Streaming核心API 159

9.3 Spark Streaming的實時開發示例 161

9.4 Spark Streaming調優實踐 162

9.5 Spark Streaming關鍵技術 164

9.5.1 Spark Streaming可靠性語義 164

9.5.2 Spark Streaming反壓機制 165

9.6 本章小結 166

第10章 Flink流計算開發 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實時開發示例 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 意圖一統流計算的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 觸發器 204

11.5 本章小結 205

第12章 Stream SQL實時開發實戰 206

12.1 流計算SQL原理和架構 207

12.2 流計算SQL:未來主要的實時開發技術 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的實時開發實戰 212

12.4.1 select操作 212

12.4.2 join操作 214

12.4.3 聚合操作 218

12.5 撤回機制 221

12.6 本章小結 222

參考文獻 224

 

221


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM