NoSQL数据库原理

计算机类专业教指委-华为ICT产学合作项目——大数据系列规划教材
分享 推荐 3 收藏 72 阅读 11.0K
侯宾 (作者) 978-7-115-48306-5

关于本书的内容有任何问题,请联系 刘博

1. 校企合作典范。
2. 计算机教指委提供指导。
3. 华为公司提供技术支持和案例。
4. 作者水平高,层次高。
5. 是计算机类专业教指委-华为ICT产学合作项目——大数据系列规划教材

内容摘要

本书对统称为NoSQL的分布式非关系型数据库原理和使用方法进行介绍。
第一章,首先介绍NoSQL数据库的起源背景和设计理念,以及相关技术概念。其次介绍了大数据技术体系,以及NoSQL在该技术体系的地位和作用。
第二章首先回顾关系型数据库的主要机制,以及NoSQL数据库的常见技术原理,以及NoSQL的常见存储模式。
第三章对Hadoop工具进行介绍,重点介绍HDFS的技术原理和基本使用方法。
第四章介绍HBase的基本架构、基本使用方法和编程方法。
第五章介绍HBase中核心技术原理,包括水平分区机制、数据写入机制、列族与合并机制等。对HBase中的高级管理方法、深入使用方法进行简介。以及对HBase的第三方插件与工具进行介绍。
第六章介绍Cassandra的基本原理和使用方法。首先介绍Amazon Dynamo的相关原理,其次介绍Cassandra的安装配置与CQL语言。
第七章介绍MongoDB为代表的文档型数据库的原理和基本使用方法。
第八章介绍其他一些知名的NoSQL数据库技术与工具。

目录

第 1章 绪论 1
 1.1 数据库的相关概念 2
1.1.1 关系型数据库管理系统 2
1.1.2 关系型数据库的瓶颈 4
1.1.3 NoSQL的特点 4
1.1.4 NewSQL的概念 6
1.1.5 NoSQL的典型应用场景 7
 1.2 大数据的技术体系 8
1.2.1 大数据的特征 9
1.2.2 大数据的采集 10
1.2.3 大数据的存储 11
1.2.4 大数据的管理和使用 13
1.2.5 数据可视化 13
1.2.6 大数据安全与治理 15
小结 15
思考题 16
第 2章 NoSQL数据库的基本原理 17
 2.1 关系型数据库的原理简述 18
2.1.1 关系模型 18
2.1.2 关系型数据库的完整性约束 19
2.1.3 关系型数据库的事务机制 19
2.1.4 关系型数据库的分布式部署 21
 2.2 分布式数据管理的特点 23
2.2.1 数据分片 24
2.2.2 数据多副本 24
2.2.3 一次写入多次读取 26
2.2.4 分布式系统的可伸缩性 27
 2.3 分布式系统的一致性问题 27
2.3.1 CAP原理 28
2.3.2 BASE和最终一致性 29
2.3.3 Paxos算法简介 30
 2.4 NoSQL的常见模式 33
2.4.1 键值对存储模式 33
2.4.2 文档式存储模式 34
2.4.3 列存储模式 35
2.4.4 图存储模式 36
 2.5 NoSQL系统的其他相关技术 37
2.5.1 分布式数据处理 37
2.5.2 时间同步服务 38
2.5.3 布隆过滤器 38
小结 40
思考题 40
第3章 HDFS的基本原理 41
 3.1 Hadoop概述 42
3.1.1 Hadoop的由来 42
3.1.2 Hadoop的架构与扩展 43
3.1.3 Hadoop的部署需求 45
 3.2 HDFS原理 46
3.2.1 HDFS架构 46
3.2.2 Namenode的数据结构 47
3.2.3 数据分块和多副本机制 48
3.2.4 数据读写原理 50
3.2.5 HDFS支持的序列化文件 51
 3.3 部署和配置HDFS 52
3.3.1 部署HDFS 53
3.3.2 HDFS的基本配置 55
3.3.3 集群的启动和停止 57
 3.4 使用和管理HDFS 58
3.4.1 管理和操作命令 58
3.4.2 格式化Namenode 59
3.4.3 Namenode的安全模式 60
3.4.4 元数据恢复 61
3.4.5 子节点添加与删除 61
3.4.6 HDFS文件系统操作 62
3.4.7 以Web方式查看文件系统 64
 3.5 MapReduce原理简介 66
 3.6 Hive分布式数据仓库 68
小结 69
思考题 69
第4章 HBase的基本原理与使用 70
 4.1 HBase概述 71
 4.2 HBase的数据模型 72
 4.3 HBase的拓扑结构 74
 4.4 HBase部署与配置 75
 4.5 子节点伸缩性管理 78
 4.6 HBase的基本操作 79
4.6.1 HBase Shell 79
4.6.2 表和列族操作 79
4.6.3 数据更新 82
4.6.4 数据查询 83
4.6.5 过滤查询 85
4.6.6 快照操作 89
 4.7 批量导入导出 89
4.7.1 批量导入数据 89
4.7.2 备份和恢复 91
 4.8 通过Java访问HBase 92
4.8.1 开发环境的配置 92
4.8.2 表的连接和操作 93
4.8.3 数据更新 94
4.8.4 数据查询 96
4.8.5 删除列和行 97
4.8.6 过滤器的使用 98
 4.9 通过Python访问HBase 99
4.9.1 基于Thrift框架的多语言编程 99
4.9.2 环境准备 100
4.9.3 代码分析 101
小结 104
思考题 104
第5章 HBase的高 级原理 105
 5.1 水平分区原理 106
5.1.1 META表 106
5.1.2 数据写入和读取机制 108
5.1.3 预写日志 110
5.1.4 分区拆分 111
 5.2 列族与Store 113
5.2.1 列族的属性 113
5.2.2 表在HDFS上的存储 115
5.2.3 HFile的结构 116
5.2.4 Storefile合并 119
 5.3 数据表的基本设计原则 121
5.4 HBase集群的高可用性与伸缩性 121
5.4.1 Zookeeper的基本原理 122
5.4.2 基于Zookeeper的高可用性 124
5.4.3 独立安装Zookeeper 125
5.4.4 集群间同步复制 126
 5.5 HBase的扩展 128
5.5.1 协处理器机制 128
5.5.2 基于HBase的分布式处理 129
5.5.3 扩展开源软件 131
5.5.4 FusionInsight HD简介 134
小结 135
思考题 136
第6章 Cassandra的原理和使用 137
 6.1 Cassandra概述 138
 6.2 Cassandra的技术原理 138
6.2.1 Amazon Dynamo 138
6.2.2 Cassandra的数据模型 143
6.2.3 Yaml格式 145
6.2.4 其他相关技术原理 146
 6.3 Cassandra的部署与配置 147
6.3.1 单节点部署Cassandra 147
6.3.2 Cassandra的配置文件 148
6.3.3 Cassandra集群部署 150
6.3.4 集群启动 150
 6.4 CQL语言与cqlsh环境 151
6.4.1 cqlsh环境简介 152
6.4.2 键空间管理 153
6.4.3 数据表管理 156
6.4.4 CQL的数据类型 158
 6.5 CQL数据查询 161
6.5.1 基本数据查询 161
6.5.2 条件查询 162
6.5.3 索引机制 164
6.5.4 使用标量函数 166
 6.6 CQL数据更新 166
6.6.1 插入、更新和删除 166
6.6.2 读写一致性 169
6.6.3 集合列操作 171
6.6.4 计数器列的操作 174
6.6.5 日期时间列的操作 175
6.6.6 批量导入/导出数据 176
 6.7 基本集群维护方法 177
6.7.1 编程接口简介 177
6.7.2 多数据中心与机架感知策略 177
6.7.3 Nodetool工具 178
6.7.4 常见节点管理方法 180
 6.8 编程访问Cassandra 181
6.8.1 通过Java访问Cassandra 181
6.8.2 通过Python访问Cassandra 182
 小结 183
 思考题 183
第7章 MongoDB的原理和使用 184
 7.1 概述 185
 7.2 MongoDB的技术原理 185
7.2.1 文档和集合 185
7.2.2 分片机制和集群架构 186
7.2.3 CouchDB简介 188
 7.3 安装配置MongoDB 189
7.3.1 单机环境部署 189
7.3.2 MongoDB的配置文件 191
 7.4 基本命令行操作 191
7.4.1 Shell环境 191
7.4.2 数据库和集合操作 193
7.4.3 基本增删改查操作 194
7.4.4 聚合和管道 196
7.4.5 索引操作 198
7.4.6 Gridfs的原理和操作 201
 7.5 批量操作和数据备份 203
 7.6 MongoDB集群化部署 204
7.6.1 单机多实例 204
7.6.2 部署复制集 205
7.6.3 部署分片集 209
 7.7 通过Java访问MongoDB 213
7.7.1 表和数据操作 213
7.7.2 Gridfs操作 216
 7.8 通过Python访问MongoDB 218
小结 220
思考题 220
第8章 其他NoSQL数据库简介 221
 8.1 图数据库简介 222
 8.2 Neo4j的安装与使用 223
8.2.1 在Windows中安装Neo4j 223
8.2.2 在CentOS 7中安装Neo4j 224
8.2.3 Neo4j的Web操作界面 225
8.2.4 Cypher语言简介 226
8.2.5 通过Java访问Neo4j 229
8.2.6 通过Python访问Neo4j 230
 8.3 Redis和内存数据库 231
 8.4 搜索引擎系统 232
小结 236
思考题 236
附录 237
附录1 在CentOS 7上实现SSH无密码访问 237
附录2 在CentOS 7上部署NTP服务端与客户端 239
附录3 在CentOS 7上安装Python 3 240
附录4 在CentOS 7上安装Thrift编译器 241
附录5 《NoSQL数据库原理》配套实验课程方案简介 242

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

2007年7月起在北京邮电大学任教,教学经验丰富,平均年教学时长在100小时以上,在学生评教中一直具有良好的评价。所主讲课程《信号与系统》、《电路分析基础》等均属于北京市精品课程,对教学过程管理和内容体系要求较高。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部