基本介紹
- 中文名:深入NoSQL
- 外文名:Professional NoSQL
- 類別:書籍
- 內容:NoSQL的基本概念
- 作者:Shashank Tiwari
出版信息,內容簡介,作者簡介,目錄,
出版信息
副標題: 深入NoSQL
原作名: Professional NoSQL
作者: Shashank Tiwari
譯者: 巨成
出版社: 人民郵電出版社
出版年: 2012-11
頁數: 294
定價: 69.00元
裝幀: 平裝
ISBN: 9787115296382
內容簡介
《深入NoSQL》是一本全面的NoSQL實踐指南。書中主要關注NoSQL的基本《深入NoSQL》是一本全面的NoSQL實踐指南。書中主要關注NoSQL的基本概念,以及使用NoSQL資料庫的切實可行的解決方案。書中介紹了基於MapReduce的可伸縮處理,演示Hadoop用例,還有Hive和Pig這樣的高層抽象。概念,以及使用NoSQL資料庫的切實可行的解決方案。書中介紹了基於MapReduce的可伸縮處理,演示Hadoop用例,還有Hive和Pig這樣的高層抽象。《深入NoSQL》包含許多用例演示,同時也會討論Google、Amazon、Facebook、Twitter和LinkedIn的可伸縮數據架構。
《深入NoSQL》適合NoSQL資料庫管理人員和開發人員閱讀。
作者簡介
Shashank Tiwari,創業者、開發者、技術作家、演講者和導師,技術型創業公司Treasury of Ideas的創始人。
他是一位經驗豐富的軟體開發者和企業家,長期關注高性能套用、分析、Web套用以及移動平台,對數據可視化和統計機器學習有著濃厚的興趣,喜歡喝咖啡、吃甜點、騎腳踏車。他撰寫了許多技術文章和著作,並且應邀在全球各地的技術會議上進行演講。
目錄
第一部分 NoSQL入門
第1章 NoSQL的概念及適用範圍 2
1.1 定義和介紹 3
1.1.1 背景與歷史 3
1.1.2 大數據 5
1.1.3 可擴展性 7
1.1.4 MapReduce 8
1.2 面向列的有序存儲 9
1.3 鍵/值存儲 11
1.4 文檔資料庫 14
1.5 圖形資料庫 15
1.6 小結 16
1.1 定義和介紹 3
1.1.1 背景與歷史 3
1.1.2 大數據 5
1.1.3 可擴展性 7
1.1.4 MapReduce 8
1.2 面向列的有序存儲 9
1.3 鍵/值存儲 11
1.4 文檔資料庫 14
1.5 圖形資料庫 15
1.6 小結 16
第2章 NoSQL上手初體驗 17
2.1 第一印象——兩個簡單的例子 17
2.1.1 簡單的位置偏好數據集 17
2.1.2 存儲汽車品牌和型號數據 22
2.2 使用多種語言 30
2.2.1 MongoDB驅動 30
2.2.2 初識Thrift 33
2.3 小結 34
2.1 第一印象——兩個簡單的例子 17
2.1.1 簡單的位置偏好數據集 17
2.1.2 存儲汽車品牌和型號數據 22
2.2 使用多種語言 30
2.2.1 MongoDB驅動 30
2.2.2 初識Thrift 33
2.3 小結 34
第3章 NoSQL接口與互動 36
3.1 沒了SQL還剩什麼 36
3.1.1 存儲和訪問數據 37
3.1.2 MongoDB數據存儲與訪問 37
3.1.3 MongoDB數據查詢 41
3.1.4 Redis數據存儲與訪問 43
3.1.5 Redis數據查詢 47
3.1.6 HBase數據存儲與訪問 50
3.1.7 HBase數據查詢 52
3.1.8 Apache Cassandra數據存儲與訪問 54
3.1.9 Apache Cassandra數據查詢 55
3.2 NoSQL數據存儲的語言綁定 56
3.2.1 Thrift 56
3.2.2 Java 56
3.2.3 Python 58
3.2.4 Ruby 59
3.2.5 PHP 59
3.3 小結 60
3.1 沒了SQL還剩什麼 36
3.1.1 存儲和訪問數據 37
3.1.2 MongoDB數據存儲與訪問 37
3.1.3 MongoDB數據查詢 41
3.1.4 Redis數據存儲與訪問 43
3.1.5 Redis數據查詢 47
3.1.6 HBase數據存儲與訪問 50
3.1.7 HBase數據查詢 52
3.1.8 Apache Cassandra數據存儲與訪問 54
3.1.9 Apache Cassandra數據查詢 55
3.2 NoSQL數據存儲的語言綁定 56
3.2.1 Thrift 56
3.2.2 Java 56
3.2.3 Python 58
3.2.4 Ruby 59
3.2.5 PHP 59
3.3 小結 60
第二部分 NoSQL基礎
第4章 理解存儲架構 62
4.1 使用面向列的資料庫 63
4.1.1 使用關係型資料庫中的表格和列 63
4.1.2 列資料庫對比RDBMS 65
4.1.3 列資料庫當做鍵/值對的嵌套映射表 67
4.1.4 Webtable布局 70
4.2 HBase分散式存儲架構 71
4.3 文檔存儲內部機制 73
4.3.1 用記憶體映射檔案存儲數據 74
4.3.2 MongoDB集合和索引使用指南 75
4.3.3 MongoDB的可靠性和耐久性 75
4.3.4 水平擴展 76
4.4 鍵/值存儲Memcached和Redis 78
4.4.1 Memcached的內部結構 78
4.4.2 Redis的內部結構 79
4.5 最終一致性非關係型資料庫 80
4.5.1 一致性哈希 81
4.5.2 對象版本 82
4.5.3 閒話協定和提示移交 83
4.6 小結 83
4.1 使用面向列的資料庫 63
4.1.1 使用關係型資料庫中的表格和列 63
4.1.2 列資料庫對比RDBMS 65
4.1.3 列資料庫當做鍵/值對的嵌套映射表 67
4.1.4 Webtable布局 70
4.2 HBase分散式存儲架構 71
4.3 文檔存儲內部機制 73
4.3.1 用記憶體映射檔案存儲數據 74
4.3.2 MongoDB集合和索引使用指南 75
4.3.3 MongoDB的可靠性和耐久性 75
4.3.4 水平擴展 76
4.4 鍵/值存儲Memcached和Redis 78
4.4.1 Memcached的內部結構 78
4.4.2 Redis的內部結構 79
4.5 最終一致性非關係型資料庫 80
4.5.1 一致性哈希 81
4.5.2 對象版本 82
4.5.3 閒話協定和提示移交 83
4.6 小結 83
第5章 執行CRUD操作 84
5.1 創建記錄 84
5.1.1 在以文檔為中心的資料庫中創建記錄 85
5.1.2 面向列資料庫的創建操作 91
5.1.3 鍵/值映射表的創建操作 93
5.2 訪問數據 96
5.2.1 用MongoDB訪問文檔 96
5.2.2 用HBase訪問數據 97
5.2.3 查詢Redis 98
5.3 更新和刪除數據 98
5.3.1 使用MongoDB、HBase和Redis更新及修改數據 98
5.3.2 有限原子性和事務完整性 99
5.4 小結 100
5.1 創建記錄 84
5.1.1 在以文檔為中心的資料庫中創建記錄 85
5.1.2 面向列資料庫的創建操作 91
5.1.3 鍵/值映射表的創建操作 93
5.2 訪問數據 96
5.2.1 用MongoDB訪問文檔 96
5.2.2 用HBase訪問數據 97
5.2.3 查詢Redis 98
5.3 更新和刪除數據 98
5.3.1 使用MongoDB、HBase和Redis更新及修改數據 98
5.3.2 有限原子性和事務完整性 99
5.4 小結 100
第6章 查詢NoSQL存儲 101
6.1 SQL與MongoDB查詢功能的相似點 101
6.1.1 載入MovieLens數據 103
6.1.2 MongoDB中的MapReduce 108
6.2 訪問HBase等面向列資料庫中的數據 111
6.3 查詢Redis數據存儲 113
6.4 小結 116
6.1 SQL與MongoDB查詢功能的相似點 101
6.1.1 載入MovieLens數據 103
6.1.2 MongoDB中的MapReduce 108
6.2 訪問HBase等面向列資料庫中的數據 111
6.3 查詢Redis數據存儲 113
6.4 小結 116
第7章 修改數據存儲及管理演進 117
7.1 修改文檔資料庫 117
7.1.1 弱schema的靈活性 120
7.1.2 MongoDB的數據導入與導出 121
7.2 面向列資料庫中數據schema的演進 124
7.3 HBase數據導入與導出 125
7.4 鍵/值存儲中的數據演變 126
7.5 小結 126
7.1 修改文檔資料庫 117
7.1.1 弱schema的靈活性 120
7.1.2 MongoDB的數據導入與導出 121
7.2 面向列資料庫中數據schema的演進 124
7.3 HBase數據導入與導出 125
7.4 鍵/值存儲中的數據演變 126
7.5 小結 126
第三部分 熟悉NoSQL
第10章 使用雲中的NoSQL 160
10.1 Google App Engine 161
10.1.1 GAE Python SDK:安裝、設定和起步 161
10.1.2 使用Python進行基本的GAE數據建模 165
10.1.3 查詢與索引 168
10.1.4 過濾和結果排序 170
10.1.5 Java App Engine SDK 172
10.2 Amazon SimpleDB 175
10.2.1 SimpleDB入門 176
10.2.2 使用REST API 178
10.2.3 使用Java訪問SimpleDB 181
10.2.4 通過Ruby和Python使用SimpleDB 182
10.3 小結 183
10.1 Google App Engine 161
10.1.1 GAE Python SDK:安裝、設定和起步 161
10.1.2 使用Python進行基本的GAE數據建模 165
10.1.3 查詢與索引 168
10.1.4 過濾和結果排序 170
10.1.5 Java App Engine SDK 172
10.2 Amazon SimpleDB 175
10.2.1 SimpleDB入門 176
10.2.2 使用REST API 178
10.2.3 使用Java訪問SimpleDB 181
10.2.4 通過Ruby和Python使用SimpleDB 182
10.3 小結 183
第11章 MapReduce可擴展並行處理 185
11.1 理解MapReduce 186
11.1.1 找出每股最高價 188
11.1.2 載入歷史NYSE市場數據到CouchDB 189
11.2 MapReduce和HBase 192
11.3 MapReduce和Apache Mahout 196
11.4 小結 197
11.1 理解MapReduce 186
11.1.1 找出每股最高價 188
11.1.2 載入歷史NYSE市場數據到CouchDB 189
11.2 MapReduce和HBase 192
11.3 MapReduce和Apache Mahout 196
11.4 小結 197
第12章 使用Hive分析大數據 199
12.1 Hive基礎 199
12.2 回到電影評分 203
12.3 親切的SQL 209
12.4 HiveQL連線 211
12.4.1 計畫解釋 213
12.4.2 分區表 215
12.5 小結 215
12.1 Hive基礎 199
12.2 回到電影評分 203
12.3 親切的SQL 209
12.4 HiveQL連線 211
12.4.1 計畫解釋 213
12.4.2 分區表 215
12.5 小結 215
第13章 綜覽資料庫內部 216
13.1 MongoDB內部 217
13.1.1 MongoDB傳輸協定 218
13.1.2 插入文檔 219
13.1.3 查詢集合 219
13.1.4 MongoDB資料庫檔案 220
13.2 Membase架構 222
13.3 Hypertable底層 224
13.3.1 正則表達式支持 224
13.3.2 布隆過濾器 224
13.4 Apache Cassandra 225
13.4.1 點對點模型 225
13.4.2 基於Gossip和Antientropy 225
13.4.3 快速寫 226
13.4.4 提示移交 226
13.5 Berkeley DB 226
13.6 小結 228
13.1 MongoDB內部 217
13.1.1 MongoDB傳輸協定 218
13.1.2 插入文檔 219
13.1.3 查詢集合 219
13.1.4 MongoDB資料庫檔案 220
13.2 Membase架構 222
13.3 Hypertable底層 224
13.3.1 正則表達式支持 224
13.3.2 布隆過濾器 224
13.4 Apache Cassandra 225
13.4.1 點對點模型 225
13.4.2 基於Gossip和Antientropy 225
13.4.3 快速寫 226
13.4.4 提示移交 226
13.5 Berkeley DB 226
13.6 小結 228
第四部分 掌握NoSQL
第14章 選擇NoSQL 230
14.1 比較NoSQL產品 230
14.1.1 可擴展性 230
14.1.2 事務完整性和一致性 233
14.1.3 數據模型 233
14.1.4 查詢支持 235
14.1.5 接口可用性 236
14.2 性能測試 237
14.2.1 50/50的讀和更新 237
14.2.2 95/5的讀和更新 237
14.2.3 掃描 238
14.2.4 可擴展性測試 238
14.2.5 Hypertable測試 238
14.3 背景比較 239
14.4 小結 240
14.1 比較NoSQL產品 230
14.1.1 可擴展性 230
14.1.2 事務完整性和一致性 233
14.1.3 數據模型 233
14.1.4 查詢支持 235
14.1.5 接口可用性 236
14.2 性能測試 237
14.2.1 50/50的讀和更新 237
14.2.2 95/5的讀和更新 237
14.2.3 掃描 238
14.2.4 可擴展性測試 238
14.2.5 Hypertable測試 238
14.3 背景比較 239
14.4 小結 240
第16章 性能調校 256
16.1 並行算法的目標 256
16.1.1 減少延遲的含義 256
16.1.2 如何增加吞吐 257
16.1.3 線性擴展 257
16.2 公式與模型 257
16.2.1 Amdahl法則 257
16.2.2 Little法則 258
16.2.3 訊息成本模型 259
16.3 分區 259
16.4 規劃異構環境 260
16.5 其他MapReduce調校 261
16.5.1 通信成本 261
16.5.2 壓縮 261
16.5.3 檔案塊大小 261
16.5.4 並行複製 262
16.6 HBase Coprocessor 262
16.7 布隆過濾器 262
16.8 小結 262
16.1 並行算法的目標 256
16.1.1 減少延遲的含義 256
16.1.2 如何增加吞吐 257
16.1.3 線性擴展 257
16.2 公式與模型 257
16.2.1 Amdahl法則 257
16.2.2 Little法則 258
16.2.3 訊息成本模型 259
16.3 分區 259
16.4 規劃異構環境 260
16.5 其他MapReduce調校 261
16.5.1 通信成本 261
16.5.2 壓縮 261
16.5.3 檔案塊大小 261
16.5.4 並行複製 262
16.6 HBase Coprocessor 262
16.7 布隆過濾器 262
16.8 小結 262
第17章 工具和實用程式 263
17.1 RRDTool 263
17.2 Nagios 265
17.3 Scribe 266
17.4 Flume 267
17.5 Chukwa 267
17.6 Pig 268
17.6.1 使用Pig 269
17.6.2 Pig Latin基礎 269
17.7 Nodetool 271
17.8 OpenTSDB 272
17.9 SOLANDRA 273
17.10 Hummingbird和C5T 274
17.11 GeoCouch 275
17.12 Alchemy Database 276
17.13 Webdis 276
17.14 小結 276
附錄A 安裝與配置 278
17.1 RRDTool 263
17.2 Nagios 265
17.3 Scribe 266
17.4 Flume 267
17.5 Chukwa 267
17.6 Pig 268
17.6.1 使用Pig 269
17.6.2 Pig Latin基礎 269
17.7 Nodetool 271
17.8 OpenTSDB 272
17.9 SOLANDRA 273
17.10 Hummingbird和C5T 274
17.11 GeoCouch 275
17.12 Alchemy Database 276
17.13 Webdis 276
17.14 小結 276
附錄A 安裝與配置 278