编辑推荐
云计算时代关键数据库技术
全面展示NoSQL基础概念和实践方案
理解大数据的各种技术架构和思想
全面的NoSQL实践指南
内容简介
《深入NoSQL》是一个全面的NoSQL实践指南。这本书重点介绍了NoSQL的基本概念和使用NoSQL数据库的实际解决方案。这本书介绍了基于MapReduce的可扩展处理,演示了Hadoop用例,以及Hive和Pig等高级抽象。《深入NoSQL》包含许多用例演示,还将讨论谷歌、Amazon、脸书名字、以及LinkedIn的可扩展数据架构。《深入NoSQL》适合NoSQL数据库管理人员和开发人员阅读。
目录
- 第一部分NoSQL入门
- 第1章NoSQL的概念及适用范围
- 1.1定义和介绍
- 1.1.1背景与历史
- 1.1.2大数据
- 1.1.3可扩展性
- 1.1.4MapReduce
- 1.2面向列的有序存储
- 1.3键/值存储
- 1.4文档数据库
- 1.5图形数据库
- 1.6小结
- 第2章NoSQL上手初体验
- 2.1第一印象——两个简单的例子
- 2.1.1简单的位置偏好数据集
- 2.1.2存储汽车品牌和型号数据
- 2.2使用多种语言
- 2.2.1MongoDB驱动
- 2.2.2初识Thrift
- 2.3小结
- 第3章NoSQL接口与交互
- 3.1没了SQL还剩什么
- 3.1.1存储和访问数据
- 3.1.2MongoDB数据存储与访问
- 3.1.3MongoDB数据查询
- 3.1.4Redis数据存储与访问
- 3.1.5Redis数据查询
- 3.1.6HBase数据存储与访问
- 3.1.7HBase数据查询
- 3.1.8Apache Cassandra数据存储与访问
- 3.1.9Apache Cassandra数据查询
- 3.2NoSQL数据存储的语言绑定
- 3.2.1Thrift
- 3.2.2Java
- 3.2.3Python
- 3.2.4Ruby
- 3.2.5PHP
- 3.3小结
- 第二部分NoSQL基础
- 第4章理解存储架构
- 4.1使用面向列的数据库
- 4.1.1使用关系型数据库中的表格和列
- 4.1.2列数据库对比RDBMS
- 4.1.3列数据库当做键/值对的嵌套映射表
- 4.1.4Webtable布局
- 4.2HBase分布式存储架构
- 4.3文档存储内部机制
- 4.3.1用内存映射文件存储数据
- 4.3.2MongoDB集合和索引使用指南
- 4.3.3MongoDB的可靠性和耐久性
- 4.3.4水平扩展
- 4.4键/值存储Memcached和Redis
- 4.4.1Memcached的内部结构
- 4.4.2Redis的内部结构
- 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.1SQL与MongoDB查询功能的相似点
- 6.1.1加载MovieLens数据
- 6.1.2MongoDB中的MapReduce
- 6.2访问HBase等面向列数据库中的数据
- 6.3查询Redis数据存储
- 6.4小结
- 第7章修改数据存储及管理演进
- 7.1修改文档数据库
- 7.1.1弱schema的灵活性
- 7.1.2MongoDB的数据导入与导出
- 7.2面向列数据库中数据schema的演进
- 7.3HBase数据导入与导出
- 7.4键/值存储中的数据演变
- 7.5小结
- 第8章数据索引与排序
- 8.1数据库索引的基本概念
- 8.2MongoDB的索引与排序
- 8.3MongoDB里创建和使用索引
- 8.3.1组合与嵌套键
- 8.3.2创建唯一索引和稀疏索引
- 8.3.3基于关键字的搜索和多重键
- 8.4CouchDB的索引与排序
- 8.5Apache Cassandra的索引与排序
- 8.6小结
- 第9章事务和数据完整性的管理
- 9.1RDBMS和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.4NoSQL产品的一致性实现
- 9.4.1MongoDB的分布一致性
- 9.4.2CouchDB的最终一致性
- 9.4.3Apache Cassandra的最终一致性
- 9.4.4Membase的一致性
- 9.5小结
- 第三部分熟悉NoSQL
- 第10章使用云中的NoSQL
- 10.1Google App Engine
- 10.1.1GAE Python SDK:安装、设置和起步
- 10.1.2使用Python进行基本的GAE数据建模
- 10.1.3查询与索引
- 10.1.4过滤和结果排序
- 10.1.5Java App Engine SDK
- 10.2Amazon SimpleDB
- 10.2.1SimpleDB入门
- 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.2MapReduce和HBase
- 11.3MapReduce和Apache Mahout
- 11.4小结
- 第12章使用Hive分析大数据
- 12.1Hive基础
- 12.2回到电影评分
- 12.3亲切的SQL
- 12.4HiveQL连接
- 12.4.1计划解释
- 12.4.2分区表
- 12.5小结
- 第13章综览数据库内部
- 13.1MongoDB内部
- 13.1.1MongoDB传输协议
- 13.1.2插入文档
- 13.1.3查询集合
- 13.1.4MongoDB数据库文件
- 13.2Membase架构
- 13.3Hypertable底层
- 13.3.1正则表达式支持
- 13.3.2布隆过滤器
- 13.4Apache Cassandra
- 13.4.1点对点模型
- 13.4.2基于Gossip和Antientropy
- 13.4.3快速写
- 13.4.4提示移交
- 13.5Berkeley 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.5Hypertable测试
- 14.3背景比较
- 14.4小结
- 第15章共存
- 15.1MySQL用作NoSQL
- 15.2静态数据存储
- 15.2.1存储多元化在Facebook中的应用
- 15.2.2数据仓库和商业智能
- 15.3Web框架和NoSQL
- 15.3.1Rails和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.1Amdahl法则
- 16.2.2Little法则
- 16.2.3消息成本模型
- 16.3分区
- 16.4规划异构环境
- 16.5其他MapReduce调校
- 16.5.1通信成本
- 16.5.2压缩
- 16.5.3文件块大小
- 16.5.4并行复制
- 16.6HBase Coprocessor
- 16.7布隆过滤器
- 16.8小结
- 第17章工具和实用程序
- 17.1RRDTool
- 17.2Nagios
- 17.3Scribe
- 17.4Flume
- 17.5Chukwa
- 17.6Pig
- 17.6.1使用Pig
- 17.6.2Pig Latin基础
- 17.7Nodetool
- 17.8OpenTSDB
- 17.9SOLANDRA
- 17.10Hummingbird和C5T
- 17.11GeoCouch
- 17.12Alchemy Database
- 17.13Webdis
- 17.14小结
- 附录A安装与配置
作者主要关注了三类最常用的 nosql 数据库:文档数据库,列存储数据库,和键值数据库,主要以mongodb,hbase,redis为例。也多处提到了最终一致性数据库,以cassandra为例。还提到了couchbase,memcached,berkeley DB等。不到300页的书,不能要求更深入了。这本书读完之后,可以对 nosql 有一个整体的把握,去深入具体数据库的细节。内容比较清晰,例子很赞。
书写的很不错,但是需要一定基础。比较全面的覆盖了nosql领域,至于不够细致,这个需要个人去单独研习了,因为本来nosql现在就没有统一的规范等等。其实还有几本外国推荐的书写的很好,但是还没有引进版,期待了。
本书是对NoSQL的入门级介绍,受篇幅所限,很多理论与内容无法一一详述,但如果读者有耐心,将书中所附内容外链之内容一一深入研究,就会对NoSQL有一个整体的全局认识,建议阅读本书之前,先研习《NoSQL精粹》,然后借助本书内容,结合论文以及各种DB的Github上的源码,辅以前人的部署安装调试经验,应该会对达到书名所说:Professional NoSQL。