深入NoSQL.pdf

深入NoSQL.pdf
 

书籍描述

编辑推荐
《深入NoSQL》全面展示了NoSQL数据库的基础概念和实践方案。《深入NoSQL》适合NoSQL数据库管理人员和开发人员阅读。《深入NoSQL》作者、专家Shashank Tiwari(蒂瓦里)首先介绍NoSQL的特点和典型用例。

作者简介
作者:(印度)蒂瓦里(Shashank Tiwari) 译者:巨成

蒂瓦里(Shashank Tiwari),创业者、开发者、技术作家、演讲者和导师,技术型创业公司Treasury of Ideas的创始人。他是一位经验丰富的软件开发者和企业家,长期关注高性能应用、分析、Web应用以及移动平台,对数据可视化和统计机器学习有着浓厚的兴趣,喜欢喝咖啡、吃甜点、骑自行车。他撰写了许多技术文章和著作,并且应邀在全球各地的技术会议上进行演讲。

目录
第一部分 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.150/50的读和更新
14.2.295/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.2 Django和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 安装与配置

文摘
版权页:

深入NoSQL

插图:

深入NoSQL

现在,随着隔离级别设置为可重复读取,步骤1和步骤4返回给事务1的数据集并不一样。在步骤4中,除原来的三条记录外,还能看到id为4的记录。为了避免幻象读,需要为读施加范围锁并使用最高级别的隔离:可序列化。可序列化意味着顺序处理,或者说串行的事务处理,但事实并非总是如此。在一些数据库里,可序列化隔离是通过快照来实现的。这些数据库在每个事务开始时为事务提供一个快照,然后只允许那些自创建快照以来没有发生任何改变的事务进行提交。
使用更高的隔离级别会增大饿死(starvation)和死锁的可能性。一个事务锁住了其他事务要使用的资源时会发生饿死,而两个并发事务相互等待对方释放资源时会发生死锁。
回顾完ACID事务和隔离级别的概念,现在可以开始探讨如何在高度分布式系统里运用这些想法了。
9.2 分布式ACID系统
要理解ACID是否适用于分布式系统,首先要了解分布式系统的各种属性,看看ACID对它们有哪些影响。
分布式系统有各种不同的形状、大小和形式,但是它们都具备几个典型特征,并且也面临相似的复杂性问题。随着分布式系统逐渐增大并伸展出去,复杂性的挑战更为突出。不止如此,如果系统需要提供高可用性,那么挑战会成倍增加。

内容简介
《深入NoSQL》是一本全面的NoSQL实践指南。书中主要关注NoSQL的基本概念,以及使用NoSQL数据库的切实可行的解决方案。书中介绍了基于MapReduce的可伸缩处理,演示Hadoop用例,还有Hive和Pig这样的高层抽象。包含许多用例演示,同时也会讨论Google、Amazon、Facebook、Twitter和LinkedIn的可伸缩数据架构。

购买书籍

当当网购书 京东购书 卓越购书

PDF电子书下载地址

相关书籍

搜索更多