《NOSQL数据库技术》课件第1章-NoSQL数据库概述.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《NOSQL数据库技术》课件第1章-NoSQL数据库概述.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NOSQL数据库技术 NOSQL 数据库技术 课件 数据库 概述
- 资源描述:
-
1、目录目录什么是什么是NoSQLNoSQL1NoSQLNoSQL种类与特点种类与特点2CAPCAP定理定理3ACIDACID与与BASEBASE4小结小结101最终一致性技术基础最终一致性技术基础5数据复制与分片数据复制与分片6NoSQLNoSQL数据库与云计算数据库与云计算7NoSQLNoSQL数据库与物联网数据库与物联网8NoSQLNoSQL数据库与区块链数据库与区块链91.1 什么是什么是NoSQL2n研究不同特点大数据存储的数据库技术;研究不同特点大数据存储的数据库技术;nNoSQLNoSQL数据库是非关系型数据存储的广义定数据库是非关系型数据存储的广义定义;义;n它不同于符合它不同于符
2、合ACIDACID理论的关系型数据库,理论的关系型数据库,数据存储不需要固定的表结构;数据存储不需要固定的表结构;n通常也不存在连接操作;通常也不存在连接操作;nNoSQLNoSQL数据库不使用传统的关系数据库模型数据库不使用传统的关系数据库模型,而是使用键值模型、列模型、文档模型、,而是使用键值模型、列模型、文档模型、图模型等方式存储数据。图模型等方式存储数据。n数据库应用需求变化数据库应用需求变化n支撑支撑OLTPOLTP型应用:事务处理型应用:事务处理,RDB,RDB的强项的强项n支撑支撑OLAPOLAP型应用:多维分析处理型应用:多维分析处理n新需求:支撑面向大数据的存储、处理与应用新
3、需求:支撑面向大数据的存储、处理与应用n新挑战新挑战none-size does not fit alln高性能、低成本高性能、低成本n不同类型非结构化数据存储与管理不同类型非结构化数据存储与管理n计算机新技术助力计算机新技术助力NoSQLNoSQLn多核、大内存,多核、大内存,集群等技术的普及集群等技术的普及1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 麻省理工麻省理工Michael Stonebraker现代主流数据库系统架构的现代主流数据库系统架构的奠基人,奠基人,20142014年获图灵年获图灵奖。奖。n关系型数据库面临的问题关系型数据库面临的问题n扩展困难扩展困
4、难:由于存在类似:由于存在类似JoinJoin这样多表查询机这样多表查询机制,使得数据库在扩展方面很艰难;制,使得数据库在扩展方面很艰难;n读写慢读写慢:这种情况主要发生在数据量达到一定:这种情况主要发生在数据量达到一定规模时由于关系型数据库系统逻辑复杂,使得规模时由于关系型数据库系统逻辑复杂,使得容易发生死锁等并发问题,所以导致大数据库容易发生死锁等并发问题,所以导致大数据库应用场景中读写速度下滑非常严重;应用场景中读写速度下滑非常严重;n成本高成本高:企业级数据库的:企业级数据库的LicenseLicense价格很惊人价格很惊人,并且随着系统规模,并且随着系统规模越越大,成本越高;大,成本
5、越高;n有限的支撑容量有限的支撑容量:现有关系型解决方案还无法:现有关系型解决方案还无法支撑支撑GoogleGoogle这样海量的数据存储;这样海量的数据存储;1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 1.1 什么是什么是NoSQLNoSQLNoSQL诞生原因诞生原因 n大大数据库存储与管理新需求呼吁技术创新数据库存储与管理新需求呼吁技术创新 n低延迟的读写速度低延迟的读写速度:应用快速地响应能极大地提:应用快速地响应能极大地提升用户的满意度;升用户的满意度;n支撑海量的数据和流量支撑海量的数据和流量:对于互联网等企业级大:对于互联网等企业级大应用而言,需要高效存储处
6、理应用而言,需要高效存储处理PBPB级的数据和百万级的数据和百万级的并发访问量;级的并发访问量;n大规模集群的管理大规模集群的管理:系统管理员希望分布式应用:系统管理员希望分布式应用能更简单的部署和管理;能更简单的部署和管理;n尽可能地降低尽可能地降低运营成本运营成本:ITIT经理们希望在硬件成经理们希望在硬件成本、软件成本和人力成本能够有大幅度地降低;本、软件成本和人力成本能够有大幅度地降低;1.1 什么是什么是NoSQL典型的典型的共性共性需求需求n假设失效是必然发生的假设失效是必然发生的:需要具有需要具有高容错性。高容错性。nNOSQLNOSQL实现都建立在硬盘、机器和网络都会经常性失效
7、假设之上。实现都建立在硬盘、机器和网络都会经常性失效假设之上。n不能彻底阻止这些失效,需要让系统能够在即使非常极端的条件下也不能彻底阻止这些失效,需要让系统能够在即使非常极端的条件下也能应付这些失效。能应付这些失效。n对数据进行分区:对数据进行分区:需要高性能需要高性能n分布式存储分布式存储,将读写操作的负载分布到了不同的机器上,将读写操作的负载分布到了不同的机器上n提高数据存储与访问的并发性。提高数据存储与访问的并发性。n保存同一数据的多个副本:需要保存同一数据的多个副本:需要具有具有高可用性。高可用性。nNOSQLNOSQL提供数据副本机制,副本个数往往可配置提供数据副本机制,副本个数往往
8、可配置n查询支持查询支持n在这个方面,不同的实现有相当本质的区别。不同实现的一个共性在在这个方面,不同的实现有相当本质的区别。不同实现的一个共性在于哈希表中的于哈希表中的 key/value key/value 匹配。匹配。1.2 NoSQL分分类类与与特点特点7类型类型Top 3代表代表特点特点图图数据库数据库(Graph DBMS)Neo4jMicrosoft Azure Cosmos DB(Multi-model)OrientDB(Multi-model)图型数据的最佳存储。相比使用传统关系数据库性能更优,存储模式设计与使用更加灵活、简单。文档文档数据库数据库(Document Stor
9、es)MongoDBAmazon DynamoDB(Multi-model)CoucHBase 文档存储一般用类似JSON(JavaScript Object Notation)的格式存储,存储的内容是文档型的嵌套结构。可以对某些字段建立索引,实现类似关系数据库的某些功能。键值数据库键值数据库(KV KV DBMS)Redis(Multi-model)Amazon DynamoDB(Multi-model)Microsoft Azure Cosmos DB(Multi-model)可以通过Key快速查询到其Value。一般来说,存储不管Value的格式,照单全收。列族存储列族存储(Wide C
10、olumn Stores)CassandraHBaseMicrosoft Azure Cosmos DB(Multi-model)顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,对某一列或者某几列的查询有非常大的性能优势。https:/db- 截止2019年11月排名如下表1.2 NoSQL种类与种类与特点特点8类型类型Top 3代表代表特点特点时序时序数据库数据库(Time Series DBMS)InfluxDBKdb+Prometheus时间序列数据库用于支撑时间序列数据的优化存储,每个条目都有一个相关的时间戳。时间序列数据可以来自传感器、智能电表等,或可以存储一个
11、高频股票交易系统的股票价格波动情况。对象存储对象存储(Object oriented DBMS)InterSystems Cach(Multi-model)Versant Object DBObjectStore通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。XML数据库数据库MarkLogicOracle Berkeley DBVirtuoso 可以高效地存储XML数据,并支持XML的内部查询语法,如XQuery、Xpath等。原生类XML DB有BaseX等。RDF数据库数据库MarkLogic(Multi-model)Virtuoso(Multi-model)Apache
12、Jena-TDB资源描述框架存储数据库是一种信息的描述方法,最初用于描述元数据。目前主要用于语义网、知识图谱的存储。资源描述框架存储数据库主要以主语、谓语、宾语三元组形式表示信息。搜索引擎搜索引擎(Search Engines)ElasticsearchSplunkSolr 搜索引擎是用于数据内容搜索的NoSQL数据库管理系统。除了这种应用的一般优化,专业化数据库通常还支持复杂搜索表达式、全文搜索、源搜索、搜索结果的排序和分组、空间搜索和高扩展性分布式搜索等功能。NoSQL DB的一般共性特点的一般共性特点n1 1)不需要预定义模式不需要预定义模式:不需要事先定义数据模式:不需要事先定义数据模
13、式,预定义表结构。数据中的每条记录都可能有不同,预定义表结构。数据中的每条记录都可能有不同的属性和格式,当插入数据时,并不需要预先定义的属性和格式,当插入数据时,并不需要预先定义它们的模式;它们的模式;n2 2)无共享架构无共享架构:相对于将所有数据存储在网络:相对于将所有数据存储在网络中中的的存储存储区域全区域全共享架构,共享架构,NoSQLNoSQL往往将数据划分往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能数据的性能往往好于通过网络传输读取数据的性能,从而,从而提高系统提高系统的的性能。性
14、能。1.2 NoSQL种类与种类与特点特点n3 3)弹性可扩展弹性可扩展:可以在系统运行的时候,:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,动态增加或者删除结点。不需要停机维护,数据可以自动数据可以自动迁移。迁移。n4 4)分区分区:相对于将数据存放于同一个节点:相对于将数据存放于同一个节点,NoSQLNoSQL数据库需要将数据进行分区,将记数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题能保证没有单点失效的问题;n5)
15、5)分发查询到数据分发查询到数据,而非数据到查询;,而非数据到查询;1.2 NoSQL种类与种类与特点特点n6 6)异步复制异步复制:和:和RAIDRAID存储系统不同的是,存储系统不同的是,NoSQLNoSQL中的复制,中的复制,往往是基于日志的异步复往往是基于日志的异步复制制。这样,数据就可以尽快地写入一个节点。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据;的时候,可能会丢失少量的数据;n7 7)BASEBASE:相对于事
16、务严格的:相对于事务严格的ACIDACID特性,特性,NoSQLNoSQL数据库保证的是数据库保证的是BASEBASE特性。特性。1.2 NoSQL种类与种类与特点特点图数据库图数据库:将:将数据存储在图(数据存储在图(GraphGraph)结构中)结构中。如。如下图示下图示是一个简单的有向无环图。是一个简单的有向无环图。1.2 NoSQL种类与种类与特点特点n图图术语术语:节点、边、度、路径、最短距离、连通:节点、边、度、路径、最短距离、连通图、全连通图、子图等等。图、全连通图、子图等等。n图数据库图数据库可以看作是结点与关系的集合,可以看作是结点与关系的集合,图数据图数据库库就是将数据存储
17、在拥有属性的结点中,并用关就是将数据存储在拥有属性的结点中,并用关系将这些结点组织起来。系将这些结点组织起来。n数据数据存储的重要目的是为了检索存储的重要目的是为了检索。图。图的查找与搜的查找与搜索可以通过遍历算法索可以通过遍历算法完成。完成。n解决的查询问题根据解决的查询问题根据算法,从开始结点到与之相算法,从开始结点到与之相连的结点查询诸如连的结点查询诸如“某个人好友某个人好友的的好友的好友是好友的好友是哪些人哪些人”等问题等问题。n节点与节点间的距离(?)可以反映节点间关系节点与节点间的距离(?)可以反映节点间关系的紧密程度。的紧密程度。1.2 NoSQL种类与种类与特点特点n数据可以存
18、储为一个树形结构数据可以存储为一个树形结构n文档文档数据库就是大量文档树形结构的集合数据库就是大量文档树形结构的集合n数据存储模式重点是树形、森林结构的抽象,文档模式可变数据存储模式重点是树形、森林结构的抽象,文档模式可变根节点根节点分支分支分支分支分支分支分支分支值值分支分支分支分支值值值值值值客户客户客户客户1客户客户n标识标识姓名姓名地址地址张三张三城市城市海淀区西土海淀区西土城路城路10号号北京北京112街道街道1.2 NoSQL种类与种类与特点特点文档文档类类:MongoDBMongoDBMongo Server-mongod实例,存储实际数据的模块。Config Server-存储
19、集群的元数据,如分片信息、数据块映射等。config服务器保存了两个映射关系,一个是key区间的数据都存放在那些chunk上的映射关系,另一个是chunk都存放在哪些分片节点上的映射关系。Route Server 客户端访问路由(统一接入点),查询优化,数据合并、排序、裁剪,请求推送等。客户端统一访问路由节点mongos,来进行数据操作。路由节点先访问config服务器获取信息,找到数据真正存放位置,然后再对其进行操作。文档文档类:类:MongoDBMongoDB1.2 NoSQL种类与种类与特点特点1.2 NoSQL种类与种类与特点特点键值键值类:类:RedisRedisn简洁简洁:数据主要
20、采用:数据主要采用Key-ValueKey-Value形式存储,形式存储,键为键为唯一标识符。唯一标识符。n高速高速:数据驻留内存,:数据驻留内存,RedisRedis也支持将内存中的数据持久化到也支持将内存中的数据持久化到磁盘中,重启的时候可以再次加载进行使用,同时保障数据的磁盘中,重启的时候可以再次加载进行使用,同时保障数据的高性能访问及可靠性。高性能访问及可靠性。n易易扩展:根据系统负载量,灵活添加或删除服务器。扩展:根据系统负载量,灵活添加或删除服务器。n对对键可设置失效时间,丰富的配置管理功能可以精准地设定数键可设置失效时间,丰富的配置管理功能可以精准地设定数据服务级别。据服务级别。
21、1.2 NoSQL种类与种类与特点特点列族数据库:列族数据库:HBASEHBASE,大数据技术基础中有学习,大数据技术基础中有学习该类数据库课程重点学习:该类数据库课程重点学习:CassandraCassandra1.3 CAP定理定理n一致性一致性(ConsistencyConsistency)n任何一个读操作总是能读取到之前完成的写操作结果任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;,也就是在分布式环境中,多点的数据是一致的;n可用性可用性(AvailabilityAvailability)n每一个操作总是能够在确定的时间内返回,也就是系每一个
22、操作总是能够在确定的时间内返回,也就是系统随时都是可用的。统随时都是可用的。n分区容忍性分区容忍性(Partition TolerancePartition Tolerance)n在出现网络分区(比如断网)的情况下,分离的系统在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。也能正常运行。一个分布式系统不能同时满足一致一个分布式系统不能同时满足一致性,可用性和分区容错性这三个需性,可用性和分区容错性这三个需求求 ,最多只能同时满足两个。,最多只能同时满足两个。CAPCAP理论理论 1.3 CAP定理定理数据库数据库按按CAPCAP分类分类 (1 1)关注一致性和可用性的)关注一致性和
23、可用性的 (CA)(CA)n这些数据库对于分区容忍性方面比较弱,主这些数据库对于分区容忍性方面比较弱,主要采用复制(要采用复制(ReplicationReplication)这种方式来保证)这种方式来保证数据的安全性,常见的数据的安全性,常见的CACA系统有:系统有:n传统关系型数据库,比如传统关系型数据库,比如PostgresPostgres和和MySQLMySQL等等(Relational)(Relational)nVerticaVertica(Column-oriented)(Column-oriented)nAster Data(Relational)Aster Data(Relati
24、onal)nGreenplumGreenplum(Relational)(Relational)1.3 CAP定理定理(2 2)关注一致性和分区容忍性的)关注一致性和分区容忍性的(CP)(CP)n这种系统将数据分布在多个网络分区的节点上,并保证这这种系统将数据分布在多个网络分区的节点上,并保证这些数据的一致性,但是对于可用性的支持方面有问题,比些数据的一致性,但是对于可用性的支持方面有问题,比如当集群出现问题的话,节点有可能因无法确保数据是一如当集群出现问题的话,节点有可能因无法确保数据是一致性的而拒绝提供服务,主要的致性的而拒绝提供服务,主要的CPCP系统有:系统有:nBigTableBig
25、Table(Column-oriented)(Column-oriented)nHypertableHypertable(Column-oriented)(Column-oriented)nHBaseHBase(Column-oriented)(Column-oriented)nMongoDBMongoDB(Document)(Document)nTerrastoreTerrastore(Document)(Document)nRedisRedis(Key-value)(Key-value)nScalarisScalaris(Key-value)(Key-value)nMemcacheDBMe
展开阅读全文