本書由淺入深,系統(tǒng)全面地介紹了NoSQL數(shù)據(jù)庫的理論、技術(shù)與開發(fā)實踐方法。
全書共9章,主要內(nèi)容包括NoSQL產(chǎn)生的原因以及它與傳統(tǒng)關(guān)系型數(shù)據(jù)庫對比具有哪些優(yōu)勢、HBase分布式數(shù)據(jù)庫技術(shù)及其核心技術(shù)原理與實踐、MongoDB分布式數(shù)據(jù)庫技術(shù)的原理和實踐、Memcached和Redis技術(shù)、NewSQL數(shù)據(jù)庫技術(shù),以及HBase和MongoDB數(shù)據(jù)庫技術(shù)的綜合實驗。
本書適合作為高校NoSQL數(shù)據(jù)庫技術(shù)的教材,也適合對NoSQL數(shù)據(jù)庫技術(shù)感興趣的讀者閱讀。
中科曙光的教育培訓結(jié)構(gòu),全國數(shù)十所合作院校。中科曙光專業(yè)背景,曙光瑞翼教育使用教材,由一線企業(yè)工程師和技術(shù)人員與高校教師共同合作創(chuàng)作而成。系統(tǒng)完整的大數(shù)據(jù)專業(yè)解決方案,突出企業(yè)真實操作案例。
王愛國,廣東石油化工學院計算機系副教授。長期從事計算機專業(yè)教學工作,主要講授“計算機網(wǎng)絡”“路由交換技術(shù)”“數(shù)據(jù)庫原理”等課程,主持省、市級科研、教研項目多項,主編或參編公開出版教材三部,公開發(fā)表論文多篇。
第 1章 緒論 1
1.1 數(shù)據(jù)庫系統(tǒng) 1
1.1.1 數(shù)據(jù)庫系統(tǒng)的基本概念 1
1.1.2 關(guān)系型數(shù)據(jù)庫 4
1.1.3 NoSQL的特點 6
1.2 分布式數(shù)據(jù)庫的數(shù)據(jù)管理 7
1.2.1 分布式數(shù)據(jù)處理 8
1.2.2 CAP理論 9
1.3 ACID與BASE 10
1.3.1 ACID特性 10
1.3.2 BASE原理 11
1.3.3 最終一致性 11
1.4 NoSQL分類 12
小結(jié) 14
思考題 14
第 2章 認識HBase 15
2.1 HBase簡介 15
2.1.1 HBase的發(fā)展歷程 15
2.1.2 HBase的特性 16
2.1.3 HBase與Hadoop 18
2.2 HDFS原理 19
2.2.1 HDFS的基本架構(gòu) 19
2.2.2 HDFS的分塊機制和副本機制 21
2.2.3 HDFS的讀寫機制 22
2.2.4 HDFS的特點與使用場景 23
2.3 HBase的組件和功能 24
2.3.1 客戶端 24
2.3.2 ZooKeeper 24
2.3.3 HMaster 25
2.3.4 RegionServer 26
2.4 HBase的使用場景及案例 26
2.4.1 搜索引擎應用 27
2.4.2 捕獲增量數(shù)據(jù) 27
2.5 HBase 的安裝與配置 29
2.5.1 準備工作 29
2.5.2 HBase安裝與配置 29
小結(jié) 32
思考題 33
第3章 HBase數(shù)據(jù)模型與使用 34
3.1 HBase數(shù)據(jù)模型 34
3.1.1 HBase的基本概念 34
3.1.2 數(shù)據(jù)模型 35
3.2 HBase Shell基本操作 36
3.2.1 數(shù)據(jù)定義 36
3.2.2 數(shù)據(jù)操作 38
3.2.3 過濾器操作 41
3.3 HBase編程方法 45
3.3.1 基于Java的編程方法 46
3.3.2 基于Thrift協(xié)議的編程方法 50
3.3.3 基于MapReduce的分布式處理 52
小結(jié) 55
思考題 56
第4章HBase原理實現(xiàn) 57
4.1 HBase基本原理 57
4.1.1 Region定位 57
4.1.2 數(shù)據(jù)存儲與讀取 60
4.1.3 WAL機制 62
4.2 HBase Region管理 63
4.2.1 HFile合并 64
4.2.2 Region拆分 65
4.2.3 Region合并 66
4.2.4 Region負載均衡 66
4.3 HBase集群管理 67
4.3.1 運維管理 67
4.3.2 數(shù)據(jù)管理 68
4.3.3 故障處理 71
小結(jié) 75
思考題 75
第5章 MongoDB基礎(chǔ) 76
5.1 概述 76
5.2 基本概念 78
5.2.1 文檔數(shù)據(jù)模型 78
5.2.2 文檔存儲結(jié)構(gòu) 79
5.2.3 數(shù)據(jù)類型 85
5.2.4 MongoDB的安裝與測試 86
5.3 數(shù)據(jù)庫與集合的基本操作 88
5.3.1 數(shù)據(jù)庫操作 88
5.3.2 集合操作 90
5.4 文檔的基本操作 91
5.4.1 文檔的鍵定義規(guī)則 91
5.4.2 插入操作 92
5.4.2 更新操作 94
5.4.3 刪除操作 95
5.3.4 查詢操作 97
5.5 索引 100
5.5.1 索引簡介 100
5.5.2 索引類型 101
5.5.3 索引操作 105
5.6 聚合 105
5.6.1 聚合管道方法 106
5.6.2 map-Reduce方法 107
小結(jié) 109
思考題 109
第6章 MongoDB進階 110
6.1 集群架構(gòu) 110
6.1.1 主從復制 110
6.1.2 副本集 111
6.1.3 分片 112
6.2 MongoDB分布式集群部署 113
6.2.1 分布式集群架構(gòu) 113
6.2.2 部署副本集 114
6.2.3 部署分片集群 118
6.3 MongoDB編程方法 121
6.3.1 通過Java訪問MongoDB 121
6.3.2 通過Python訪問MongoDB 124
6.3.3 MongoDB的可視化工具robomongo 125
小結(jié) 127
思考題 127
第7章 其他非關(guān)系型數(shù)據(jù)庫簡介 128
7.1 內(nèi)存數(shù)據(jù)庫簡介 128
7.1.1 Memcached簡介 128
7.1.2 Redis簡介 137
7.2 圖數(shù)據(jù)庫 139
7.2.1 Neo4j 139
7.2.2 Neo4j應用案例 147
小結(jié) 150
思考題 150
第8章 NewSQL數(shù)據(jù)庫 151
8.1 TiDB數(shù)據(jù)庫 151
8.1.1 TiDB架構(gòu) 151
8.1.2 TiDB的存儲原理 153
8.1.3 TiDB的管理機制 158
8.1.4 TiDB應用案例 160
8.2 OceanBase 161
8.2.1 OceanBase特性 161
8.2.2 OceanBase系統(tǒng)架構(gòu) 162
小結(jié) 164
思考題 164
第9章 綜合實驗 165
9.1 MongoDB 165
9.1.1 獲取和存儲數(shù)據(jù) 165
9.1.2 分析數(shù)據(jù) 167
9.2 HBase 169
9.2.1 數(shù)據(jù)庫的設計 169
9.2.2 實現(xiàn) 170
9.3 代碼清單 173
9.3.1 MongoDB 173
9.3.2 HBase 178
參考文獻 181