内容简介
第一部分NoSQL入门
第1章NoSQL的概念及适用范围
1.1定义和介绍
1.1.1背景与历史
1.1.2大数据
1.1.3可扩展性
1.1.4 MapReduce
1.2面向列的有序存储
1.3键值存储
1.4文档数据库
1.5图形数据库
1.6小结
第2章NoSQL上手初体验
2.1第一印象——两个简单的例子
2.1.1简单的位置偏好数据集
2.1.2存储汽车品牌和型号数据
2.2使用多种语言
2.2.1 MongoDB驱动
2.2.2初识Thrift
2.3小结
第3章NoSQL接口与交互
3.1没了SQL还剩什么
3.1.1存储和访问数据
3.1.2 MongoDB数据存储与访问
3.1.3 MongoDB数据查询
3.1.4 Redis数据存储与访问
3.1.5 Redis数据查询
3.1.6 HBase数据存储与访问
3.1.7 HBase数据查询
3.1.8 Apache Cassandra数据存储与访问
3.1.9 Apache Cassandra数据查询
3.2 NoSQL数据存储的语言绑定
3.2.1 Thrift
3.2.2 Java
3.2.3 Python
3.2.4 Ruby
3.2.5 PHP
3.3小结
第二部分NoSQL基础
第4章 理解存储架构
4.1使用面向列的数据库
4.1.1使用关系型数据库中的表格和列
4.1.2列数据库对比RDBMS
4.1.3列数据库当做键/值对的嵌套映射表
4.1.4 Webtable布局
4.2 HBase分布式存储架构
4.3文档存储内部机制
4.3.1用内存映射文件存储数据
4.3.2 MongoDB集合和索引使用指南
4.3.3 MongoDB的可靠性和耐久性
4.3.4水平扩展
4.4键值存储Memcached和Redis
4.4.1 Memcached的内部结构
4.4.2 Redis的内部结构
4.5最终一致性非关系型数据库
4.5.1一致性哈希
4.5.2对象版本
4.5.3闲话协议和提示移交
4.6小结
第5章 执行CRUD操作
5.1创建记录
5.1.1在以文档为中心的数据库中创建记录
5.1.2面向列数据库的创建操作
5.1.3键/值映射表的创建操作
5.2访问数据
5.2.1用MongoDB访问文档
5.2.2用HBase访问数据
5.2.3查询Redis
5.3更新和删除数据
5.3.1使用MongoDB、 HBase和Redis更新及修改数据
5.3.2有限原子性和事务完整性
5.4小结
第6章 查询NoSQL存储
6.1 SQL与MongoDB查询功能的相似点
6.1.1加载MovieLens数据
6.1.2 MongoDB中的MapReduce
6.2访问HBase等面向列数据库中的数据
6.3查询Redis数据存储
6.4小结
第7章 修改数据存储及管理演进
7.1修改文档数据库
7.1.1弱schema的灵活性
7.1.2 MongoDB的数据导入与导出
7.2面向列数据库中数据schema的演进
7.3 HBase数据导入与导出
7.4键/值存储中的数据演变
7.5小结
第8章 数据索引与排序
8.1数据库索引的基本概念
8.2 MongoDB的索引与排序
8.3 MongoDB里创建和使用索引
8.3.1组合与嵌套键
8.3.2创建唯一索引和稀疏索引
8.3.3基于关键字的搜索和多重键
8.4 CouchDB的索引与排序
8.5 Apache Cassandra的索引与排序
8.6小结
第9章 事务和数据完整性的管理
9.1 RDBMS和ACID
9.2分布式ACID系统
9.2.1一致性
9.2.2可用性
9.2.3分区容忍性
9.3维持CAP
9.3.1妥协可用性
9.3.2妥协分区容忍性
9.3.3妥协一致性
9.4 NoSQL产品的一致性实现
9.4.1 MongoDB的分布一致性
9.4.2 CouchDB的最终一致性
9.4.3 Apache Cassandra的最终一致性
9.4.4 Membase的一致性
9.5小结
第三部分 熟悉NoSQL
第10章 使用云中的NoSQL
10.1 Google App Engine
10.1.1 GAE Python SDK:安装、设置和起步
10.1.2使用Python进行基本的GAE数据建模
10.1.3查询与索引
10.1.4过滤和结果排序
10.1.5 Java App Engine SDK
10.2 Amazon SimpleDB
10.2.1 SimpleDB入门
10.2.2使用REST API
10.2.3使用Java访问SimpleDB
10.2.4通过Ruby和Python使用SimpleDB
10.3小结
第11章MapReduce可扩展并行处理
11.1理解MapReduce
11.1.1找出每股最高价
11.1.2加载历史NYSE市场数据到CouchDB
11.2 MapReduce和HBase
11.3 MapReduce和Apache Mahout
11.4小结
第12章 使用Hive分析大数据
12.1 Hive基础
12.2回到电影评分
12.3亲切的SQL
12.4 HiveQL连接
12.4.1计划解释
12.4.2分区表
12.5小结
第13章 综览数据库内部
13.1 MongoDB内部
13.1.1 MongoDB传输协议
13.1.2插入文档
13.1.3查询集合
13.1.4 MongoDB数据库文件
13.2 Membase架构
13.3 Hypertable底层
13.3.1正则表达式支持
13.3.2布隆过滤器
13.4 Apache Cassandra
13.4.1点对点模型
13.4.2基于Gossip和Antientropy
13.4.3快速写
13.4.4提示移交
13.5 Berkeley DB
13.6小结
第四部分 掌握NoSQL
第14章 选择NoSQL
14.1比较NoSQL产品
14.1.1可扩展性
14.1.2事务完整性和一致性
14.1.3数据模型
14.1.4查询支持
14.1.5接口可用性
14.2性能测试
14.2.1 50/50的读和更新
14.2.2 95/5的读和更新
14.2.3扫描
14.2.4可扩展性测试
14.2.5 Hypertable测试
14.3背景比较
14.4小结
第15章 共存
15.1 MySQL用作NoSQL
15.2静态数据存储
15.2.1存储多元化在Facebook中的应用
15.2.2数据仓库和商业智能
15.3 Web框架和NoSQL
15.3.1 Rails和NoSQL
15.3.2Django和NoSQL
15.3.3使用Spring Data
15.4从RDBMS迁移到NoSQL
15.5小结
第16章 性能调校
16.1并行算法的目标
16.1.1减少延迟的含义
16.1.2如何增加吞吐
16.1.3线性扩展
16.2公式与模型
16.2.1 Amdahl法则
16.2.2 Little法则
16.2.3消息成本模型
16.3分区
16.4规划异构环境
16.5其他MapReduce调校
16.5.1通信成本
16.5.2压缩
16.5.3文件块大小
16.5.4并行复制
16.6 HBase Coprocessor
16.7布隆过滤器
16.8小结
第17章 工具和实用程序
17.1 RRDTool
17.2 Nagios
17.3 Scribe
17.4 Flume
17.5 Chukwa
17.6 Pig
17.6.1使用Pig
17.6.2 Pig Latin基础
17.7 Nodetool
17.8 OpenTSDB
17.9 SOLANDRA
17.10 Hummingbird和C5T
17.11 GeoCouch
17.12 Alchemy Database
17.13 Webdis
17.14小结
附录A安装与配置