本書是一本介紹分布式數(shù)據(jù)庫基礎內(nèi)容與應用的大數(shù)據(jù)專業(yè)類圖書,力求培養(yǎng)讀者對分布式數(shù)據(jù)庫的應用技能。 本書共11章,采用原理+代碼實例+綜合案例的編寫形式,清晰明了地介紹分布式數(shù)據(jù)庫的原理、基礎應用、進階應用及主流工具的使用方法、應用場景,以理實結合為編寫要求,讓讀者能夠輕松學習和掌握分布式數(shù)據(jù)庫的內(nèi)容。
本書可以作為高等院校計算機、網(wǎng)絡技術等相關專業(yè)的教材,也可以作為數(shù)據(jù)庫相關工作的從業(yè)人員的參考用書,亦可作零基礎人員學習分布式數(shù)據(jù)庫技術的入門圖書。
1.本書是《大數(shù)據(jù)》編委會針對校企合作的精心力作。
2.本書凝結了曙光瑞翼多年的教學經(jīng)驗,能夠滿足校企融合教學的需求。
3.本書旨在介紹分布式數(shù)據(jù)庫的基礎知識,為(將)從事大數(shù)據(jù)相關工作的讀者奠定基礎。
4.本書采用任務驅(qū)動的編寫方式,讀者可以直接進行實驗效果體驗,并進行自由調(diào)整。
5.本書采用大量的實踐案例,結合行業(yè)典型應用,編寫行業(yè)實踐。
6.本書提供豐富的教學資源,包括電子課件、實驗設計等。
許桂秋,北京中科特瑞科技有限公司,主要研究方向為大數(shù)據(jù)、人工智能技術,已出版《大數(shù)據(jù)導論》《Python編程基礎與應用》《NoSQL數(shù)據(jù)庫原理與應用》《數(shù)據(jù)挖掘與機器學習》等圖書。
第 1章 數(shù)據(jù)庫概述 1
任務1.1 數(shù)據(jù)庫系統(tǒng)概述 1
1.1.1 數(shù)據(jù)庫系統(tǒng)的基本概念 1
1.1.2 關系數(shù)據(jù)庫 5
任務1.2 MySQL的安裝與使用 8
1.2.1 MySQL簡介 8
1.2.2 MySQL的安裝 8
1.2.3 MySQL數(shù)據(jù)庫的基本操作 11
1.2.4 MySQL數(shù)據(jù)表的基本操作 12
1.2.5 數(shù)據(jù)的基本操作 13
任務1.3 分布式數(shù)據(jù)庫 15
1.3.1 CAP與BASE理論 15
1.3.2 分布式數(shù)據(jù)庫概述 18
任務1.4 Python和Java連接數(shù)據(jù)庫 21
1.4.1 Python操作MySQL 22
1.4.2 Java操作MySQL 23
本章小結 24
第 2章 HBase安裝、數(shù)據(jù)模型與數(shù)據(jù)操作 26
任務2.1 HBase簡介 26
2.1.1 HBase概述 26
2.1.2 HBase的應用場景 31
任務2.2 HBase偽分布式環(huán)境部署 31
2.2.1 Zookeeper簡介、安裝與測試 31
2.2.2 Hadoop簡介、安裝與測試 34
2.2.3 偽分布式HBase安裝與配置文件的修改 34
2.2.4 啟動并測試HBase偽分布式集群 35
任務2.3 HBase基本原理 36
2.3.1 HBase的基本概念 36
2.3.2 HBase的數(shù)據(jù)模型 37
任務2.4 HBase Shell基本操作 38
2.4.1 HBase命名空間及其基本操作 38
2.4.2 HBase數(shù)據(jù)表及其基本操作 40
2.4.3 HBase的CRUD操作 43
2.4.4 HBase過濾器 46
本章小結 49
第3章 MongoDB安裝、數(shù)據(jù)操作與安全操作 51
任務3.1 MongoDB概述 51
3.1.1 MongoDB簡介 51
3.1.2 MongoDB的類SQL數(shù)據(jù)庫特性 61
任務3.2 MongoDB的安裝 64
3.2.1 在Windows環(huán)境下安裝MongoDB 64
3.2.2 在Ubuntu環(huán)境下安裝MongoDB 68
3.2.3 MongoDB啟動測試 70
任務3.3 MongoDB的基本使用方法 72
3.3.1 數(shù)據(jù)庫與集合的基本操作 72
3.3.2 文檔的基本操作 75
任務3.4 MongoDB聚合操作 84
3.4.1 聚合管道操作 84
3.4.2 map-reduce操作 86
任務3.5 MongoDB索引操作 87
3.5.1 索引簡介 87
3.5.2 索引策略 92
任務3.6 MongoDB安全操作 94
3.6.1 安全檢測列表 94
3.6.2 啟用訪問控制 94
3.6.3 身份驗證 97
本章小結 99
第4章 Redis安裝、數(shù)據(jù)類型與數(shù)據(jù)操作 101
任務4.1 Redis概述 101
4.1.1 Redis簡介 101
4.1.2 Redis的應用場景 102
任務4.2 Redis的安裝 103
4.2.1 在Windows環(huán)境下安裝Redis 103
4.2.2 在CentOS環(huán)境下安裝Redis 105
4.2.3 在Ubuntu環(huán)境下安裝Redis 105
任務4.3 Redis的基本命令 108
4.3.1 Redis基本命令的相關操作 108
4.3.2 Redis關于鍵的操作 108
任務4.4 Redis支持的數(shù)據(jù)類型與基本操作 110
4.4.1 字符串基本操作 110
4.4.2 哈希基本操作 111
4.4.3 列表基本操作 116
4.4.4 集合基本操作 123
4.4.5 有序集合基本操作 130
本章小結 140
第5章 Neo4j安裝與Cypher操作 142
任務5.1 Neo4j簡介 142
5.1.1 Neo4j概述 142
5.1.2 Cypher簡介 146
任務5.2 安裝Neo4j 148
5.2.1 在Windows環(huán)境下安裝Neo4j 149
5.2.2 在Ubuntu環(huán)境下安裝Neo4j 151
5.2.3 Neo4j配置文件 153
任務5.3 Cypher入門 156
5.3.1 數(shù)據(jù)類型 156
5.3.2 命名規(guī)范 157
5.3.3 Cypher保留關鍵字 158
任務5.4 常見的Cypher操作 158
5.4.1 CREATE 159
5.4.2 MATCH 159
5.4.3 RETURN、LIMIT和SKIP 164
5.4.4 DELETE和REMOVE 166
5.4.5 WHERE 168
5.4.6 SET 172
5.4.7 ORDER BY 174
5.4.8 WITH 176
5.4.9 UNION 177
5.4.10 MERGE 179
5.4.11 UNWIND 179
5.4.12 LOAD CSV 181
本章小結 183
第6章 HBase編程操作、核心原理與集群管理 184
任務6.1 HBase的編程操作 184
6.1.1 HBase的表操作 184
6.1.2 HBase的CRUD操作 189
6.1.3 HBase過濾器 192
任務6.2 HBase核心原理 193
6.2.1 數(shù)據(jù)存儲 194
6.2.2 定位與讀取操作 198
6.2.3 WAL機制 198
任務6.3 HBase Region管理 199
6.3.1 HFile合并 200
6.3.2 Region的拆分與合并 200
6.3.3 Region的負載均衡 202
6.3.4 RowKey設計 203
任務6.4 HBase集群管理 204
6.4.1 運維管理 204
6.4.2 數(shù)據(jù)處理 205
6.4.3 故障處理 207
本章小結 208
第7章 MongoDB編程操作、生產(chǎn)環(huán)境部署與集群管理 209
任務7.1 MongoDB編程操作 209
7.1.1 Java操作MongoDB 209
7.1.2 Python操作MongoDB 212
任務7.2 MongoDB復制集部署 215
7.2.1 復制集架構 215
7.2.2 部署MongoDB復制集 217
任務7.3 MongoDB分片集部署 220
7.3.1 分片集架構 221
7.3.2 MongoDB分片集部署 223
任務7.4 MongoDB運維 227
7.4.1 數(shù)據(jù)備份 227
7.4.2 性能監(jiān)控 231
本章小結 232
第8章 Redis編程操作與生產(chǎn)環(huán)境部署 234
任務8.1 編程操作Redis 234
8.1.1 下載Redis驅(qū)動 234
8.1.2 編程操作Redis 235
任務8.2 Redis主從模式 236
8.2.1 Redis主從復制的作用和架構 237
8.2.2 部署Redis主從模式 237
8.2.3 主從復制模式實踐 239
任務8.3 Redis哨兵模式 240
8.3.1 Redis哨兵模式的作用和架構 240
8.3.2 部署Redis哨兵模式 241
8.3.3 哨兵模式應用 243
任務8.4 配置Redis集群模式 244
8.4.1 Redis集群模式的作用和架構 244
8.4.2 部署Redis集群模式 245
8.4.3 Redis集群模式應用 248
本章小結 249
第9章 Neo4j編程操作、擴展與運維管理 250
任務9.1 Neo4j編程操作 250
9.1.1 Java操作Neo4j 250
9.1.2 Python操作Neo4j 254
任務9.2 APOC擴展與使用 256
9.2.1 APOC簡介與安裝 256
9.2.2 APOC的使用 258
任務9.3 ALOG擴展與使用 262
9.3.1 ALOG簡介與安裝 262
9.3.2 ALGO的應用 263
任務9.4 Neo4j運維 267
9.4.1 Neo4j備份與恢復 267
9.4.2 Neo4j性能與安全 268
本章小結 270
第 10章 其他NoSQL數(shù)據(jù)庫 272
任務10.1 Elasticsearch 272
10.1.1 Elasticsearch背景 272
10.1.2 Elasticsearch基礎 274
任務10.2 ClickHouse 276
10.2.1 ClickHouse簡介 276
10.2.2 ClickHouse基礎內(nèi)容 277
任務10.3 時序數(shù)據(jù)庫 281
10.3.1 時序數(shù)據(jù)庫背景 281
10.3.2 核心特點 283
10.3.3 應用場景 283
任務10.4 向量數(shù)據(jù)庫 284
10.4.1 向量數(shù)據(jù)庫概述 284
10.4.2 向量數(shù)據(jù)庫的特點 285
10.4.3 向量數(shù)據(jù)庫的應用場景 285
本章小結 286
第 11章 綜合實驗 287
任務11.1 HBase數(shù)據(jù)庫與關系數(shù)據(jù)庫數(shù)據(jù)遷移 287
11.1.1 環(huán)境設置 287
11.1.2 MySQL數(shù)據(jù)庫的設計與數(shù)據(jù)導入 288
11.1.3 啟動HBase以及Thrift服務 292
11.1.4 將數(shù)據(jù)從MySQL導入HBase 293
任務11.2 MongoDB數(shù)據(jù)存儲與可視化分析 296
11.2.1 環(huán)境設置 296
11.2.2 獲取和存儲數(shù)據(jù) 297
11.2.3 分析數(shù)據(jù)并可視化 298
任務11.3 Redis整合Ngnix實現(xiàn)網(wǎng)頁緩存 301
11.3.1 環(huán)境設置 301
11.3.2 OpenResty環(huán)境搭建 301
11.3.3 在Nginx代理服務器中使用Redis緩存網(wǎng)頁數(shù)據(jù) 303
任務11.4 Neo4j社交網(wǎng)絡查詢 311
11.4.1 環(huán)境設置 311
11.4.2 數(shù)據(jù)準備與導入 311
11.4.3 查詢語句 314
本章小結 318