1、 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 厦门大学计算机科学系 2017年 2月版本林子雨厦门大学计算机科学系E-mail: 主页: http:/ 5章 NoSQL数据库( PPT版本号: 2017年 2月版本) http:/ PPT的厦大校徽和底部文字 大数据技术原理与应用(第 2版) 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 本章配套教学视频http:/ 大数据技术原理与应用(第 2版) 第 5章 NoSQL数据库 在线视频观看地址 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 提纲 5.1 NoSQL简介 5.2 NoSQL
2、兴起的原因 5.3 NoSQL与关系数据库的比较 5.4 NoSQL的四大类型 5.5 NoSQL的三大基石 5.6 从 NoSQL到 NewSQL数据库 5.7 文档数据库 MongoDB欢迎访问 大数据技术原理与应用 教材官方网站:http:/ PPT是如下教材的配套讲义: 大数据技术原理与应用 概念、存储、处理、分析与应用 ( 2017年 2月第 2版)ISBN:978-7-115-44330-4厦门大学 林子雨 编著,人民邮电出版社 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.1 NoSQL简介通常 , NoSQL数据库具有以下几个特点:( 1)灵活的可扩展性(
3、 2)灵活的数据模型( 3)与云计算紧密融合 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.1 NoSQL简介现在已经有很多公司使用了 NoSQL数据库:GoogleFacebookMozillaAdobeFoursquareLinkedInDiggMcGraw-Hill EducationVermont Public Radio百度、腾讯、阿里、新浪、华为 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.2 NoSQL兴起的原因1、 关系数据库已经无法满足 Web2.0的需求 。 主要表现在以下几个方面:( 1)无法满足海量数据的管理需求( 2)无法
4、满足数据高并发的需求( 3)无法满足高可扩展性和高可用性的需求 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.2 NoSQL兴起的原因复杂性 :部署、管理、配置很复杂数据库复制 : MySQL主备之间采用复制方式,只能是异步复制,当主库压力较大时可能产生较大延迟,主备切换可能会丢失最后一部分更新事务,这时往往需要人工介入,备份和恢复不方便扩容问题 :如果系统压力过大需要增加新的机器,这个过程涉及数据重新划分,整个过程比较复杂,且容易出错动态数据迁移问题 :如果某个数据库组压力过大,需要将其中部分数据迁移出去,迁移过程需要总控节点整体协调,以及数据库节点的配合。这个过程很难
5、做到自动化MySQL集群是否可以完全解决问题? 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.2 NoSQL兴起的原因2、 “One size fits all”模式很难适用于截然不同的业务场景关系模型作为统一的数据模型既被用于数据分析,也被用于在线业务。但这两者一个强调高吞吐,一个强调低延时,已经演化出完全不同的架构。用同一套模型来抽象显然是不合适的Hadoop就是针对数据分析MongoDB、 Redis等是针对在线业务,两者都抛弃了关系模型 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.2 NoSQL兴起的原因3、 关系数据库的关键特性包括完善的
6、事务机制和高效的查询机制。但是,关系数据库引以为傲的两个关键特性,到了 Web2.0时代却成了鸡肋,主要表现在以下几个方面:( 1) Web2.0网站系统通常不要求严格的数据库事务( 2) Web2.0并不要求严格的读写实时性( 3) Web2.0通常不包含大量复杂的 SQL查询 (去结构化,存储空间换取更好的查询性能) 大数据技术原理与应用(第 2版) 厦门大学计算机科学系 林子雨 5.3 NoSQL与关系数据库的比较比较标准 RDBMS NoSQL 备注数据库原理 完全支持 部分支持 RDBMS有关系代数理论作为基础NoSQL没有统一的理论基础数据规模 大 超大RDBMS很难实现横向扩展,
7、纵向扩展的空间也比较有限,性能会随着数据规模的增大而降低NoSQL可以很容易通过添加更多设备来支持更大规模的数据数据库模式 固定 灵活RDBMS需要定义数据库模式,严格遵守数据定义和相关约束条件NoSQL不存在数据库模式,可以自由灵活定义并存储各种不同类型的数据查询效率 快可以实现高效的简单查询,但是不具备高度结构化查询等特性,复杂查询的性能不尽人意RDBMS借助于索引机制可以实现快速查询(包括记录查询和范围查询)很多 NoSQL数据库 没有 面向复杂查询的 索引,虽然NoSQL可以使用 MapReduce来加速查询,但是,在复杂查询方面的性能仍然不如 RDBMS表 5-1 NoSQL和关系数据库的简单比较