大數據存儲——從SQL到NoSQL

大數據存儲——從SQL到NoSQL

《大數據存儲——從SQL到NoSQL》是清華大學出版社2021年出版的書籍。

基本介紹

  • 中文名:大數據存儲——從SQL到NoSQL
  • 作者:柳俊、周蘇
  • 出版時間:2021年8月1日
  • 出版社:清華大學出版社
  • ISBN:9787302585282
  • 定價:59.8
內容簡介,圖書目錄,

內容簡介

本書針對大數據、人工智慧、信息管理、經濟管理和其他相關專業學生的發展需求,系統、全面地介紹了大數據存儲與管理的基本知識和技能,介紹了大數據存儲基礎、數據管理技術的發展、RDBMS與SQL、NoSQL數據模型、鍵值資料庫、文檔資料庫、列族資料庫、圖資料庫、資料庫技術的發展(NewSQL),重點安排了熟悉MongoDB文檔資料庫和HBase列族資料庫兩個課程實踐。全書具有較強的系統性、可讀性和實用性。

圖書目錄

目錄
第1章大數據存儲基礎1
1.1什麼是大數據1
1.1.1信息爆炸的社會1
1.1.2定義大數據3
1.1.3大數據的3V特徵4
1.1.4廣義的大數據6
1.2開源技術的商業支援7
1.3分散式系統7
1.3.1分散式系統與網路的異同7
1.3.2分散式系統的類型8
1.4Hadoop分散式處理技術9
1.4.1Hadoop的發展9
1.4.2Hadoop的優勢10
1.4.3Hadoop的發行版本10
1.5大數據的數據處理基礎11
1.5.1Hadoop與NoSQL11
1.5.2NoSQL的主要特徵11
1.5.3NewSQL作為替代方案12
1.6大數據存儲的技術路線13
1.6.1存儲方式13
1.6.2MPP架構的資料庫集群14
1.6.3基於Hadoop的技術擴展14
1.6.4大數據一體機15
1.6.5雲資料庫15
【作業】16
【實驗與思考】熟悉大數據存儲基礎18
第2章數據管理技術的發展20
2.1早期的數據管理系統20
2.1.1檔案數據管理系統20
2.1.2層次數據管理系統22
2.1.3網狀數據管理系統23
2.2引發變革的關係資料庫24
2.2.1RDBMS的設計25
2.2.2使用RDBMS的套用架構25
2.2.3關係資料庫的局限26
2.3Web程式的4個特徵26
2.3.1可伸縮性27
2.3.2成本開銷27
2.3.3靈活性27
2.3.4可用性28
2.4催生NoSQL的動因分析28
【作業】29
【實驗與思考】熟悉數據管理技術: SQL還是NoSQL30
第3章RDBMS與SQL32
3.1關係資料庫32
3.2RDBMS的結構33
3.2.1存儲介質管理程式34
3.2.2記憶體管理程式34
3.2.3數據字典34
3.3結構化查詢語言SQL36
3.4SQL語句的結構37
3.4.1數據定義37
3.4.2數據操縱37
3.4.3數據控制38
3.4.4數據查詢38
3.5關係資料庫的ACID特徵39
3.6關係資料庫的三大範式39
3.6.1資料庫範式分類39
3.6.2第一範式(1NF)40
3.6.3第二範式(2NF)40
3.6.4第三範式(3NF)42
3.6.5範式的表設計42
【作業】42
【實驗與思考】熟悉RDBMS與SQL44
第4章NoSQL數據模型46
4.1分散式數據管理46
4.1.1分散式資料庫的任務46
4.1.2在回響、一致與持久之間求平衡48
4.1.3熟悉CAP定理49
4.2NoSQL資料庫性質50
4.2.1資料庫性質BASE50
4.2.2體現最終一致性50
4.3鍵值資料庫類型51
4.3.1鍵51
4.3.2值52
4.4文檔資料庫類型53
4.4.1文檔53
4.4.2查詢文檔53
4.4.3文檔與關係資料庫的區別54
4.5列族資料庫類型55
4.5.1列與列族55
4.5.2列族與關係資料庫的區別55
4.6圖資料庫類型56
4.6.1節點與關係56
4.6.2圖與關係資料庫的區別56
4.7選擇NoSQL資料庫57
4.7.1選用鍵值資料庫58
4.7.2選用文檔資料庫58
4.7.3選用列族資料庫59
4.7.4選用圖資料庫60
4.7.5SQL和NoSQL的結合60
【作業】61
【實驗與思考】熟悉NoSQL數據模型63
第5章鍵值資料庫基礎65
5.1從數組到鍵值資料庫65
5.1.1數組65
5.1.2關聯數組66
5.1.3快取66
5.1.4鍵值資料庫67
5.2鍵值資料庫的重要特性68
5.2.1簡潔: 不需要複雜模型68
5.2.2高速: 越快越好68
5.2.3縮放: 應對訪問量變化69
5.3鍵: 有意義的標識符69
5.3.1構造鍵名69
5.3.2通過鍵定位相關的值70
5.4值: 存放任意數據71
5.4.1值無須明確類型71
5.4.2對值搜尋時的限制72
5.5鍵值資料庫的數據建模72
5.5.1數據模型和數據結構72
5.5.2命名空間73
5.5.3分區與分區鍵73
5.5.4無模式的模型73
5.6鍵值資料庫的架構74
5.6.1集群74
5.6.2環75
5.6.3複製75
5.7Redis鍵值資料庫75
5.7.1軟體定義76
5.7.2數據模型76
5.7.3存儲77
【作業】77
【實驗與思考】安裝Redis鍵值資料庫79
第6章鍵值資料庫設計81
6.1鍵值資料庫實現的概念81
6.1.1哈希函式81
6.1.2碰撞82
6.1.3壓縮82
6.2鍵的設計與分區83
6.2.1設計好的鍵名83
6.2.2處理特定範圍內的值83
6.2.3設計鍵名時考慮層的限制84
6.2.4根據鍵名來分區84
6.3設計結構化的值85
6.3.1結構化數據能降低延遲85
6.3.2龐大的值會降低讀寫性能85
6.3.3TTL鍵86
6.4鍵值資料庫的局限87
6.4.1隻能通過鍵查詢數據87
6.4.2不支持指定範圍查詢87
6.4.3不支持SQL查詢語言87
【作業】88
【實驗與思考】用鍵值資料庫管理移動套用配置89
第7章文檔資料庫基礎93
7.1關於文檔93
7.1.1文檔及其格式化命令93
7.1.2按集合管理多份文檔96
7.1.3集合的設計技巧96
7.2文檔資料庫數據結構97
7.2.1文檔結構97
7.2.2嵌入式文檔99
7.2.3無模式資料庫100
7.2.4多態模式100
7.2.5無須定義顯式模式100
7.3文檔資料庫基本操作101
7.3.1向集合中插入文檔101
7.3.2從集合中刪除文檔101
7.3.3更新集合中的文檔102
7.3.4從集合中獲取文檔102
7.4文檔資料庫分區架構103
7.4.1垂直分區103
7.4.2水平分區或分片103
7.4.3用分片鍵分隔數據104
7.4.4用分區算法分布數據104
7.5數據建模與查詢處理105
7.5.1規範化105
7.5.2去規範化105
7.5.3查詢處理器106
【作業】106
【實驗與思考】熟悉MongoDB文檔資料庫108
第8章文檔資料庫設計110
8.1文檔資料庫設計思考110
8.2規範化還是去規範化110
8.2.1一對多與多對多關係110
8.2.2多張表格執行join操作111
8.2.3文檔資料庫的建模111
8.3應對可變文檔112
8.4編制數量適中的索引112
8.4.1讀操作較多的套用113
8.4.2寫操作較多的套用113
8.5為文檔資料庫常見關係建模114
8.5.1一對多關係114
8.5.2多對多關係114
8.5.3層級關係建模115
【作業】115
【實驗與思考】客戶的貨物清單117
第9章課程實踐: MongoDB文檔資料庫121
9.1初識MongoDB121
9.1.1MongoDB特點121
9.1.2MongoDB套用場景122
9.2MongoDB結構123
9.2.1資料庫123
9.2.2普通集合124
9.2.3固定集合125
9.2.4文檔125
9.2.5數據類型125
9.2.6索引126
9.3分散式運算模型MapReduce126
9.4存儲原理與大檔案存儲規範127
9.4.1存取工作流程127
9.4.2大檔案存儲規範GridFS128
9.5複製與分片129
9.5.1複製集129
9.5.2主從複製和副本集129
9.5.3分片130
9.6MongoDB版本與平台131
9.6.1版本選擇131
9.6.2平台選擇131
【實驗與思考】MongoDB文檔資料庫132
第10章列族資料庫基礎134
10.1列族資料庫谷歌BigTable134
10.1.1動態控制列族的列134
10.1.2按行ID、列名及時間戳確定數據值135
10.1.3控制數據存儲位置135
10.1.4行內讀取和寫入都是原子操作136
10.1.5按順序排列數據行136
10.2列族鍵值及文檔資料庫異同136
10.2.1與鍵值資料庫異同137
10.2.2與文檔資料庫異同137
10.2.3與關係資料庫對比138
10.3列族資料庫使用架構139
10.3.1多種節點組成HBase架構139
10.3.2對等節點組成Cassandra架構140
10.3.3按Gossip協定傳播伺服器狀態140
10.3.4分散式資料庫的反熵操作141
10.3.5用提示移交保留與寫入請求141
10.4列族資料庫適用場合142
10.5列族資料庫基本組件143
10.5.1鍵空間143
10.5.2行鍵143
10.5.3列144
10.5.4列族144
【作業】145
【實驗與思考】熟悉列族資料庫147
第11章列族資料庫設計150
11.1列族資料庫設計概述150
11.2列族資料庫的結構151
11.2.1集群與分區151
11.2.2其他底層組件152
11.3處理流程及協定154
11.3.1複製154
11.3.2提示移交154
11.4設計數據表格155
11.4.1用去規範化代替連線155
11.4.2同時在列名和列值中存儲數據156
11.4.3不要將大量操作分配給少數伺服器156
11.4.4維護適當數量的列值版本157
11.5編制索引157
11.5.1自動管理輔助索引157
11.5.2用表格創建輔助索引158
11.6應對大數據的工具159
11.6.1萃取、轉換、載入數據159
11.6.2分析大數據160
11.6.3監控大數據的工具161
【作業】162
【實驗與思考】客戶數據分析163
第12章課程實踐: HBase列族資料庫166
12.1HDFS分散式存儲166
12.2初識HBase資料庫167
12.2.1面向行存儲的資料庫167
12.2.2面向列存儲的資料庫168
12.2.3行與列存儲方式的對比168
12.3HBase資料庫的使用場景169
12.4HBase資料庫模型和系統架構170
12.4.1HBase資料庫的相關概念170
12.4.2HBase資料庫的邏輯模型172
12.4.3HBase資料庫的物理模型173
12.4.4HBase資料庫的特點174
12.4.5HBase資料庫的系統架構175
12.5HBase Shell176
【實驗與思考】HBase列族資料庫環境搭建178
第13章圖資料庫基礎185
13.1圖及其元素185
13.1.1頂點185
13.1.2邊185
13.1.3路徑186
13.1.4自環187
13.2關係建模與圖資料庫187
13.2.1什麼是圖資料庫187
13.2.2對地理位置進行建模188
13.2.3對傳染病進行建模188
13.2.4對抽象和具體的實體建模189
13.2.5對社交媒體建模190
13.3圖資料庫的優勢190
13.3.1不執行連線操作的快速查詢190
13.3.2為實體之間的多種關係建模191
13.4圖的操作192
13.4.1圖的並集192
13.4.2圖的交集192
13.4.3圖的遍歷193
13.5圖和節點的屬性193
13.5.1同構性193
13.5.2階與尺寸194
13.5.3度數194
13.5.4接近中心性194
13.5.5中介性194
13.6圖的類型195
13.6.1無向圖和有向圖195
13.6.2網路流195
13.6.3二分圖196
13.6.4多重圖196
13.6.5加權圖與Dijkstra算法196
13.7Neo4j圖資料庫197
13.7.1了解Cypher圖查詢語言197
13.7.2Neo4j的兩種模式198
【作業】199
【實驗與思考】安裝和了解Neo4j圖資料庫201
第14章圖資料庫設計207
14.1設計圖模型207
14.1.1描述社交網路的圖資料庫208
14.1.2用查詢請求引領模型設計209
14.2Cypher: 對圖的聲明式查詢210
14.3Gremlin: 遍歷圖模型查詢212
14.3.1基本的圖模型遍歷操作212
14.3.2用優先搜尋遍歷圖模型213
14.4圖資料庫設計技巧214
14.4.1用索引縮短獲取數據的時間214
14.4.2使用類型適當的邊215
14.4.3遍歷圖模型時注意循環路徑215
14.4.4圖資料庫的擴展215
【作業】216
【實驗與思考】最佳化運輸路線217
第15章資料庫技術的發展220
15.1資料庫行業全景圖220
15.1.1不同階段資料庫發展特點220
15.1.2SQL的問題221
15.1.3NoSQL的優勢與不足222
15.2NewSQL資料庫應運而生223
15.2.1NewSQL資料庫分類223
15.2.2NewSQL特性224
15.2.3NewSQL架構原理224
15.3典型的NewSQL代表——NuoDB224
15.4其他資料庫225
15.4.1原生資料庫225
15.4.2時序資料庫225
15.4.3時空資料庫227
【作業】228
【實驗與思考】熟悉NewSQL資料庫229
附錄231
附錄A部分作業參考答案231
附錄B課程學習與實驗總結238
參考文獻243

相關詞條

熱門詞條

聯絡我們