内容简介
编辑《大数据挑战与nosql数据库技术》对大数据时代面临的挑战,以及nosql数据库的基本知识做了清晰的阐述,有助于读者整理思路,了解需求,并更有针对性、有选择地深入学习相关知识。 [1]
目录
编辑
第1章概论1
1.1引子2
1.2大数据挑战3
1.3大数据的存储和管理5
1.3.1并行数据库5
1.3.2NoSQL数据管理系统6
1.3.3NewSQL数据管理系统8
1.3.4云数据管理11
1.4大数据的处理和分析11
1.5小结13
参考文献13
理论篇
第2章数据一致性理论16
2.1CAP理论17
2.2数据一致性模型21
2.3ACID与BASE22
2.4数据一致性实现技术23
2.4.1Quorum系统NRW策略23
2.4.2两阶段提交协议24
2.4.3时间戳策略27
2.4.4Paxos30
2.4.5向量时钟38
2.5小结43
参考文献43
第3章数据存储模型45
3.1总论46
3.2键值存储48
3.2.1Redis49
3.2.2Dynamo49
3.3列式存储50
3.3.1Bigtable51
3.3.2Cassandra与HBase51
3.4文档存储52
3.4.1MongoDB53
3.4.2CouchDB53
3.5图形存储54
3.5.1Neo4j55
3.5.2GraphDB55
3.6本章小结56
参考文献56
第4章数据分区与放置策略58
4.1分区的意义59
4.1.1为什么要分区59
4.1.2分区的优点60
4.2范围分区61
4.3列表分区62
4.4哈希分区63
4.5三种分区的比较64
4.6放置策略64
4.6.1一致性哈希算法65
4.6.2容错性与可扩展性分析66
4.6.3虚拟节点68
4.7小结69
参考文献69
第5章海量数据处理方法70
5.1MapReduce简介71
5.2MapReduce数据流72
5.3MapReduce数据处理75
5.3.1提交作业76
5.3.2初始化作业78
5.3.3分配任务78
5.3.4执行任务79
5.3.5更新任务执行进度和状态80
5.3.6完成作业81
5.4Dryad简介81
5.4.1DFSCosmos介绍82
5.4.2Dryad执行引擎84
5.4.3DryadLINQ解释引擎86
5.4.4DryadLINQ编程88
5.5Dryad数据处理步骤90
5.6MapReducevsDryad92
5.7小结94
参考文献95
第6章数据复制与容错技术96
6.1海量数据复制的作用和代价97
6.2海量数据复制的策略97
6.2.1Dynamo的数据库复制策略97
6.2.2CouchDB的复制策略99
6.2.3PNUTS的复制策略99
6.3海量数据的故障发现与处理101
6.3.1Dynamo的数据库的故障发现与处理101
6.3.2CouchDB的故障发现与处理103
6.3.3PNUTS的故障发现与处理103
6.4小结104
参考文献104
第7章数据压缩技术105
7.1数据压缩原理106
7.1.1数据压缩的定义106
7.1.2数据为什么可以压缩107
7.1.3数据压缩分类107
7.2传统压缩技术[1]108
7.2.1霍夫曼编码108
7.2.2LZ77算法109
7.3海量数据带来的3V挑战112
7.4Oracle混合列压缩113
7.4.1仓库压缩114
7.4.2存档压缩114
7.5Google数据压缩技术115
7.5.1寻找长的重复串115
7.5.2压缩算法116
7.6Hadoop压缩技术118
7.6.1LZO简介118
7.6.2LZO原理[5]119
7.7小结121
参考文献121
第8章缓存技术122
8.1分布式缓存简介123
8.1.1分布式缓存的产生123
8.1.2分布式缓存的应用123
8.1.3分布式缓存的性能124
8.1.4衡量可用性的标准125
8.2分布式缓存的内部机制125
8.2.1生命期机制126
8.2.2一致性机制126
8.2.3直读与直写机制129
8.2.4查询机制130
8.2.5事件触发机制130
8.3分布式缓存的拓扑结构130
8.3.1复制式拓扑131
8.3.2分割式拓扑131
8.3.3客户端缓存拓扑131
8.4小结132
参考文献132
系统篇
第9章key—value数据库134
9.1key—value模型综述134
9.2Redis135
9.2.1Redis概述135
9.2.2Redis下载与安装135
9.2.3Redis入门操作136
9.2.4Redis在业内的应用143
9.3Voldemort143
9.3.1Voldemort概述143
9.3.2Voldemort下载与安装144
9.3.3Voldemort配置145
9.3.4Voldemort开发介绍[3]147
9.4小结149
参考文献149
第10章Column—Oriented数据库150
10.1Column—Oriented数据库简介151
10.2Bigtable数据库151
10.2.1Bigtable数据库简介151
10.2.2Bigtable数据模型152
10.2.3Bigtable基础架构154
10.3Hypertable数据库157
10.3.1Hypertable简介157
10.3.2Hypertable安装157
10.3.3Hypertable架构163
10.3.4基本概念和原理164
10.3.5Hypertable的查询168
10.4Cassandra数据库175
10.4.1Cassandra简介175
10.4.2Cassandra配置175
10.4.3Cassandra数据库的连接177
10.4.4Cassandra集群机制180
10.4.5Cassandra的读/写机制182
10.5小结183
参考文献183
第11章文档数据库185
11.1文档数据库简介186
11.2CouchDB数据库186
11.2.1CouchDB简介186
11.2.2CouchDB安装188
11.2.3CouchDB入门189
11.2.4CouchDB查询200
11.2.5CouchDB的存储结构207
11.2.6SQL和CouchDB209
11.2.7分布式环境中的CouchDB210
11.3MongoDB数据库211
11.3.1MongoDB简介211
11.3.2MongoDB的安装212
11.3.3MongoDB入门215
11.3.4MongoDB索引224
11.3.5SQL与MongoDB226
11.3.6MapReduce与MongoDB229
11.3.7MongoDB与CouchDB对比234
11.4小结236
参考文献237
第12章图存数据库238
12.1图存数据库的由来及基本概念239
12.1.1图存数据库的由来239
12.1.2图存数据库的基本概念239
12.2Neo4j图存数据库240
12.2.1Neo4j简介240
12.2.2Neo4j使用教程241
12.2.3分布式Neo4j——Neo4jHA251
12.2.4Neo4j工作机制及优缺点浅析256
12.3GraphDB258
12.3.1GraphDB简介258
12.3.2GraphDB的整体架构260
12.3.3GraphDB的数据模型264
12.3.4GraphDB的安装266
12.3.5GraphDB的使用268
12.4OrientDB276
12.4.1背景276
12.4.2OrientDB是什么276
12.4.3OrientDB的原理及相关技术277
12.4.4Windows下OrientDB的安装与使用282
12.4.5相关Web应用286
12.5三种图存数据库的比较288
12.5.1特征矩阵288
12.5.2分布式模式及应用比较289
12.6小结289
参考文献290
第13章基于Hadoop的数据管理系统291
13.1Hadoop简介292
13.2HBase293
13.2.1HBase体系结构293
13.2.2HBase数据模型297
13.2.3HBase的安装和使用298
13.2.4HBase与RDBMS303
13.3Pig304
13.3.1Pigr的安装和使用304
13.3.2PigLatin语言306
13.3.3Pig实例311
13.4Hive315
13.4.1Hive的数据存储316
13.4.2Hive的元数据存储316
13.4.3安装Hive317
13.4.4HiveQL简介318
13.4.5Hive的网络接口(WebUI)328
13.4.6Hive的JDBC接口328
13.5小结330
参考文献331
第14章NewSQL数据库332
14.1NewSQL数据库简介333
14.2MySQLCluster333
14.2.1概述334
14.2.2MySQLCluster的层次结构336
14.2.3MySQLCluster的优势和应用337
14.2.4海量数据处理中的sharding技术339
14.2.5单机环境下MySQLCluster的安装343
14.2.6MySQLCluster的分布式安装与配置指导348
14.3VoltDB350
14.3.1传统关系数据库与VoltDB351
14.3.2VoltDB的安装与配置351
14.3.3VoltDB组件354
14.3.4HelloWorld355
14.3.5使用Generate脚本361
14.3.6Eclipse集成开发362
14.4小结365
参考文献365
第15章分布式缓存系统366
15.1Memcached缓存技术367
15.1.1背景介绍367
15.1.2Memcached缓存技术的特点368
15.1.3Memcached安装[3]374
15.1.4Memcached中的数据操作375
15.1.5Memcached的使用376
15.2Micros of Velocity分布式缓存系统378
15.2.1Micros of Velocity简介378
15.2.2数据分类379
15.2.3Velocity核心概念380
15.2.4Velocity安装382
15.2.5一个简单的Velocity客户端应用385
15.2.6扩展型和可用性387
15.3小结388
参考文献388
应用篇
第16章企业应用392
16.1Instagram393
16.1.1Instagram如何应对数据的急剧增长395
16.1.2Instagram的数据分片策略398
16.2Facebook对Hadoop以及HBase的应用400
16.2.1工作负载类型401
16.2.2为什么采用ApacheHadoop和HBase403
16.2.3实时HDFS405
16.2.4HadoopHBase的实现409
16.3淘宝大数据解决之道411
16.3.1淘宝数据分析412
16.3.2淘宝大数据挑战413
16.3.3淘宝OceanBase数据库414
16.3.4淘宝将来的工作422
16.4小结423
1.1引子2
1.2大数据挑战3
1.3大数据的存储和管理5
1.3.1并行数据库5
1.3.2NoSQL数据管理系统6
1.3.3NewSQL数据管理系统8
1.3.4云数据管理11
1.4大数据的处理和分析11
1.5小结13
参考文献13
理论篇
第2章数据一致性理论16
2.1CAP理论17
2.2数据一致性模型21
2.3ACID与BASE22
2.4数据一致性实现技术23
2.4.1Quorum系统NRW策略23
2.4.2两阶段提交协议24
2.4.3时间戳策略27
2.4.4Paxos30
2.4.5向量时钟38
2.5小结43
参考文献43
第3章数据存储模型45
3.1总论46
3.2键值存储48
3.2.1Redis49
3.2.2Dynamo49
3.3列式存储50
3.3.1Bigtable51
3.3.2Cassandra与HBase51
3.4文档存储52
3.4.1MongoDB53
3.4.2CouchDB53
3.5图形存储54
3.5.1Neo4j55
3.5.2GraphDB55
3.6本章小结56
参考文献56
第4章数据分区与放置策略58
4.1分区的意义59
4.1.1为什么要分区59
4.1.2分区的优点60
4.2范围分区61
4.3列表分区62
4.4哈希分区63
4.5三种分区的比较64
4.6放置策略64
4.6.1一致性哈希算法65
4.6.2容错性与可扩展性分析66
4.6.3虚拟节点68
4.7小结69
参考文献69
第5章海量数据处理方法70
5.1MapReduce简介71
5.2MapReduce数据流72
5.3MapReduce数据处理75
5.3.1提交作业76
5.3.2初始化作业78
5.3.3分配任务78
5.3.4执行任务79
5.3.5更新任务执行进度和状态80
5.3.6完成作业81
5.4Dryad简介81
5.4.1DFSCosmos介绍82
5.4.2Dryad执行引擎84
5.4.3DryadLINQ解释引擎86
5.4.4DryadLINQ编程88
5.5Dryad数据处理步骤90
5.6MapReducevsDryad92
5.7小结94
参考文献95
第6章数据复制与容错技术96
6.1海量数据复制的作用和代价97
6.2海量数据复制的策略97
6.2.1Dynamo的数据库复制策略97
6.2.2CouchDB的复制策略99
6.2.3PNUTS的复制策略99
6.3海量数据的故障发现与处理101
6.3.1Dynamo的数据库的故障发现与处理101
6.3.2CouchDB的故障发现与处理103
6.3.3PNUTS的故障发现与处理103
6.4小结104
参考文献104
第7章数据压缩技术105
7.1数据压缩原理106
7.1.1数据压缩的定义106
7.1.2数据为什么可以压缩107
7.1.3数据压缩分类107
7.2传统压缩技术[1]108
7.2.1霍夫曼编码108
7.2.2LZ77算法109
7.3海量数据带来的3V挑战112
7.4Oracle混合列压缩113
7.4.1仓库压缩114
7.4.2存档压缩114
7.5Google数据压缩技术115
7.5.1寻找长的重复串115
7.5.2压缩算法116
7.6Hadoop压缩技术118
7.6.1LZO简介118
7.6.2LZO原理[5]119
7.7小结121
参考文献121
第8章缓存技术122
8.1分布式缓存简介123
8.1.1分布式缓存的产生123
8.1.2分布式缓存的应用123
8.1.3分布式缓存的性能124
8.1.4衡量可用性的标准125
8.2分布式缓存的内部机制125
8.2.1生命期机制126
8.2.2一致性机制126
8.2.3直读与直写机制129
8.2.4查询机制130
8.2.5事件触发机制130
8.3分布式缓存的拓扑结构130
8.3.1复制式拓扑131
8.3.2分割式拓扑131
8.3.3客户端缓存拓扑131
8.4小结132
参考文献132
系统篇
第9章key—value数据库134
9.1key—value模型综述134
9.2Redis135
9.2.1Redis概述135
9.2.2Redis下载与安装135
9.2.3Redis入门操作136
9.2.4Redis在业内的应用143
9.3Voldemort143
9.3.1Voldemort概述143
9.3.2Voldemort下载与安装144
9.3.3Voldemort配置145
9.3.4Voldemort开发介绍[3]147
9.4小结149
参考文献149
第10章Column—Oriented数据库150
10.1Column—Oriented数据库简介151
10.2Bigtable数据库151
10.2.1Bigtable数据库简介151
10.2.2Bigtable数据模型152
10.2.3Bigtable基础架构154
10.3Hypertable数据库157
10.3.1Hypertable简介157
10.3.2Hypertable安装157
10.3.3Hypertable架构163
10.3.4基本概念和原理164
10.3.5Hypertable的查询168
10.4Cassandra数据库175
10.4.1Cassandra简介175
10.4.2Cassandra配置175
10.4.3Cassandra数据库的连接177
10.4.4Cassandra集群机制180
10.4.5Cassandra的读/写机制182
10.5小结183
参考文献183
第11章文档数据库185
11.1文档数据库简介186
11.2CouchDB数据库186
11.2.1CouchDB简介186
11.2.2CouchDB安装188
11.2.3CouchDB入门189
11.2.4CouchDB查询200
11.2.5CouchDB的存储结构207
11.2.6SQL和CouchDB209
11.2.7分布式环境中的CouchDB210
11.3MongoDB数据库211
11.3.1MongoDB简介211
11.3.2MongoDB的安装212
11.3.3MongoDB入门215
11.3.4MongoDB索引224
11.3.5SQL与MongoDB226
11.3.6MapReduce与MongoDB229
11.3.7MongoDB与CouchDB对比234
11.4小结236
参考文献237
第12章图存数据库238
12.1图存数据库的由来及基本概念239
12.1.1图存数据库的由来239
12.1.2图存数据库的基本概念239
12.2Neo4j图存数据库240
12.2.1Neo4j简介240
12.2.2Neo4j使用教程241
12.2.3分布式Neo4j——Neo4jHA251
12.2.4Neo4j工作机制及优缺点浅析256
12.3GraphDB258
12.3.1GraphDB简介258
12.3.2GraphDB的整体架构260
12.3.3GraphDB的数据模型264
12.3.4GraphDB的安装266
12.3.5GraphDB的使用268
12.4OrientDB276
12.4.1背景276
12.4.2OrientDB是什么276
12.4.3OrientDB的原理及相关技术277
12.4.4Windows下OrientDB的安装与使用282
12.4.5相关Web应用286
12.5三种图存数据库的比较288
12.5.1特征矩阵288
12.5.2分布式模式及应用比较289
12.6小结289
参考文献290
第13章基于Hadoop的数据管理系统291
13.1Hadoop简介292
13.2HBase293
13.2.1HBase体系结构293
13.2.2HBase数据模型297
13.2.3HBase的安装和使用298
13.2.4HBase与RDBMS303
13.3Pig304
13.3.1Pigr的安装和使用304
13.3.2PigLatin语言306
13.3.3Pig实例311
13.4Hive315
13.4.1Hive的数据存储316
13.4.2Hive的元数据存储316
13.4.3安装Hive317
13.4.4HiveQL简介318
13.4.5Hive的网络接口(WebUI)328
13.4.6Hive的JDBC接口328
13.5小结330
参考文献331
第14章NewSQL数据库332
14.1NewSQL数据库简介333
14.2MySQLCluster333
14.2.1概述334
14.2.2MySQLCluster的层次结构336
14.2.3MySQLCluster的优势和应用337
14.2.4海量数据处理中的sharding技术339
14.2.5单机环境下MySQLCluster的安装343
14.2.6MySQLCluster的分布式安装与配置指导348
14.3VoltDB350
14.3.1传统关系数据库与VoltDB351
14.3.2VoltDB的安装与配置351
14.3.3VoltDB组件354
14.3.4HelloWorld355
14.3.5使用Generate脚本361
14.3.6Eclipse集成开发362
14.4小结365
参考文献365
第15章分布式缓存系统366
15.1Memcached缓存技术367
15.1.1背景介绍367
15.1.2Memcached缓存技术的特点368
15.1.3Memcached安装[3]374
15.1.4Memcached中的数据操作375
15.1.5Memcached的使用376
15.2Micros of Velocity分布式缓存系统378
15.2.1Micros of Velocity简介378
15.2.2数据分类379
15.2.3Velocity核心概念380
15.2.4Velocity安装382
15.2.5一个简单的Velocity客户端应用385
15.2.6扩展型和可用性387
15.3小结388
参考文献388
应用篇
第16章企业应用392
16.1Instagram393
16.1.1Instagram如何应对数据的急剧增长395
16.1.2Instagram的数据分片策略398
16.2Facebook对Hadoop以及HBase的应用400
16.2.1工作负载类型401
16.2.2为什么采用ApacheHadoop和HBase403
16.2.3实时HDFS405
16.2.4HadoopHBase的实现409
16.3淘宝大数据解决之道411
16.3.1淘宝数据分析412
16.3.2淘宝大数据挑战413
16.3.3淘宝OceanBase数据库414
16.3.4淘宝将来的工作422
16.4小结423
下载地址: 网盘下载