目錄
第1部分 大數據時代指引 1
第1章 數據成功四原則 3
1.1 當數據成為一件“大”事 3
1.2 數據和單颱服務器 4
1.3 大數據的權衡 5
1.3.1 構建可(無限)擴展的解決方案 6
1.3.2 構建可(在互聯網上)共享數據的係統 7
1.3.3 構建解決方案,而非基礎設施 8
1.3.4 關注從數據中解放價值 8
1.4 大數據流水綫剖析 9
1.5 終極數據庫 10
1.6 總結 10
第2部分 收集和共享海量數據 13
第2章 托管和共享TB 級原始數據 15
2.1 文件之殤 16
2.1.1 共享大量文件的挑戰 16
2.2 存儲:基礎設施即服務 17
2.2.1 網絡很慢 18
2.3 選擇閤適的數據格式 18
2.3.1 XML :數據,描述你自己 20
2.3.2 JSON :程序員的選擇 21
2.4 字符編碼 22
2.4.1 文件轉換 24
2.5 移動中的數據:數據序列化格式 25
2.5.1 Apache Thrift 和Protocol Buffers 26
2.6 總結 27
第3章 構建基於NoSQL 的Web 應用采集眾包數據 29
3.1 關係型數據庫:命令及控製 30
3.1.1 關係數據庫的ACID 測試 32
3.2 當關係型數據庫遇上互聯網 33
3.2.1 CAP 原理與BASE 34
3.3 非關係型數據庫的模式 36
3.3.1 鍵- 值數據庫 36
3.3.2 文檔存儲 38
3.4 為寫入性能優化:Redis 40
3.5 在多個Redis 實例上分片 43
3.5.1 使用Twemproxy 自動分區 44
3.5.2 Redis 的替代選項 46
3.6 NewSQL :Codd 歸來 46
3.7 總結 47
第4章 解決數據孤島問題的策略 49
4.1 堆滿術語的倉庫 49
4.1.1 實踐中的問題 51
4.1.2 數據閤規與安全規劃 52
4.1.3 走進數據倉庫 53
4.1.4 數據倉庫的口訣:抽取、轉換和加載 54
4.2 Hadoop :數據倉庫中的大象 55
4.3 數據孤島也可能是個優點 55
4.3.1 專注於數據問題,而不是技術 56
4.3.2 鼓勵員工提齣他們自己的問題 57
4.3.3 投資溝通數據孤島的技術 57
4.4 融閤:數據孤島的終結 58
4.4.1 Luhn 的商業智能係統是否能成為現實 59
4.5 總結 59
第3部分 數據探究 61
第5章 使用Hadoop、Hive 和Shark 探索大規模數據集 63
5.1 什麼是數據倉庫 64
5.2 Apache Hive :在Hadoop 上進行交互式查詢 66
5.2.1 Hive 用例 66
5.2.2 Hive 實戰 67
5.2.3 在Hive 中使用其他數據源 71
5.3 Shark :以內存的速度進行查詢 72
5.4 雲中的數據倉庫 73
5.5 總結 74
第6章 使用Google BigQuery 構建數據信息中心 77
6.1 分析型數據庫 78
6.2 Dremel :均貧富 79
6.2.1 Dremel 與MapReduce 的不同之處 80
6.3 BigQuery :數據分析即服務 81
6.3.1 BigQuery 的查詢語言 82
6.4 建造自己的大數據信息麵闆 83
6.4.1 授權訪問BigQuery API 84
6.4.2 運行查詢並獲取結果 87
6.4.3 緩存查詢結果 88
6.4.4 添加可視化圖形 89
6.5 分析型查詢引擎的未來 91
6.6 總結 91
第7章 探索大數據的可視化策略 93
7.1 警世良言:將數據翻譯成故事 94
7.2 人類尺度 VS 機器尺度 97
7.2.1 交互性 97
7.3 開發交互式數據應用 98
7.3.1 使用R 和ggplot2 實現交互式可視化 98
7.3.2 matplotlib: Python 的2D 圖形庫 100
7.3.3 D3.js :用於Web 的交互式可視化庫 100
7.4 總結 104
第4部分 構建數據流水綫 107
第8章 整閤:MapReduce 數據流水綫 109
8.1 數據流水綫是什麼 109
8.1.1 正確的工具 110
8.2 使用Hadoop Streaming 搭建數據流水綫 111
8.2.1 MapReduce 和數據轉換 111
8.2.2 最簡單的流水綫:stdin 到stdout 113
8.3 單步MapReduce 變換 115
8.3.1 從原始NVSS 數據中抽取相關信息:map 階段 116
8.3.2 閤計每月齣生數:reducer 階段 117
8.3.3 在本地測試MapReduce 流水綫 118
8.3.4 在Hadoop 集群上運行我們的MapReduce 作業 119
8.4 降低復雜性:Hadoop 上Python 的MapReduce 框架 120
8.4.1 使用mrjob 重寫Hadoop Streaming 示例 121
8.4.2 建造一個多步流水綫 122
8.4.3 在Elastic MapReduce 上運行mrjob 腳本 124
8.4.4 其他基於Python 的MapReduce 框架 125
8.5 總結 125
第9章 使用Pig 和Cascading 構建數據轉換工作流 127
9.1 大規模數據工作流實戰 128
9.2 多步MapReduce 轉換真復雜 128
9.2.1 Apache Pig :拒絕復雜 129
9.2.2 使用交互式Grunt shell 運行Pig 130
9.2.3 過濾和優化數據工作流 132
9.2.4 以批處理模式運行Pig 腳本 132
9.3 Cascading :構建健壯的數據工作流應用 133
9.3.1 以source 和sink 的方式思考 134
9.3.2 構建Cascading 應用 135
9.3.3 創建一個Cascade :一個簡單的JOIN 例子 136
9.3.4 在Hadoop 集群上部署Cascading 應用 138
9.4 何時選擇Pig 或Cascading 139
9.5 總結 140
第5部分 基於大規模數據集的機器學習 141
第10章 使用Mahout 構建數據分類係統 143
10.1 機器能否預測未來 144
10.2 機器學習的挑戰 144
10.2.1 貝葉斯分類 146
10.2.2 聚類 146
10.2.3 推薦引擎 148
10.3 Apache Mahout :可伸縮的機器學習工具 148
10.3.1 使用Mahout 進行文本分類 149
10.4 MLbase :分布式機器學習框架 152
10.5 總結 152
第6部分 基於大規模數據集的統計分析 155
第11章 使用R 語言處理大數據集 157
11.1 統計學為什麼性感 158
11.1.1 R 處理大型數據集的局限性 159
11.1.2 R 的數據幀和矩陣 161
11.2 處理大數據集的策略 162
11.2.1 大矩陣處理:bigmemory 和biganalytics 162
11.2.2 ff: 使用大於內存的數據幀 164
11.2.3 biglm :大規模數據集的綫性迴歸 165
11.2.4 RHadoop: 使用R 訪問Apache Hadoop 166
11.3 總結 168
第12章 使用Python 和Pandas 構建分析工作流 171
12.1 數據樂園中自在的蟒蛇——Python 172
12.1.1 為統計性計算選擇一門語言 172
12.1.2 擴展現有代碼 173
12.1.3 工具和測試 174
12.2 用於數據處理的Python 庫 174
12.2.1 NumPy 175
12.2.2 SciPy :Python 的科學計算庫 176
12.2.3 數據分析庫Pandas 178
12.3 構建更復雜的工作流 182
12.3.1 處理損壞或丟失的記錄 184
12.4 iPython :科學計算工具鏈的最後一環 185
12.4.1 在集群上並行執行iPython 186
12.5 總結 190
第7部分 展望未來 191
第13章 何時選擇自製、購買或外包 193
13.1 功能重閤的解決方案 193
13.2 理解你的數據問題 195
13.3 自製還是購買問題的參考手冊 197
13.3.1 你已經對哪些技術有所投入 197
13.3.2 從小處著手 198
13.3.3 規劃時考慮可擴展性 198
13.4 私人數據中心 199
13.5 瞭解開源的成本 201
13.6 一切皆服務 202
13.7 總結 202
第14章 未來:數據科技的幾個趨勢 205
14.1 Hadoop :攪局者與被攪局者 206
14.2 一切皆在雲中 208
14.3 數據科學傢的興衰 209
14.4 融閤:終極數據庫 212
14.5 文化融閤 213
14.6 總結 214
· · · · · · (
收起)