云计算-第7章 云数据管理技术.docx

上传人:doc321 文档编号:12864644 上传时间:2021-12-06 格式:DOCX 页数:63 大小:517.43KB
返回 下载 相关 举报
云计算-第7章 云数据管理技术.docx_第1页
第1页 / 共63页
云计算-第7章 云数据管理技术.docx_第2页
第2页 / 共63页
云计算-第7章 云数据管理技术.docx_第3页
第3页 / 共63页
云计算-第7章 云数据管理技术.docx_第4页
第4页 / 共63页
云计算-第7章 云数据管理技术.docx_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《云计算-第7章 云数据管理技术.docx》由会员分享,可在线阅读,更多相关《云计算-第7章 云数据管理技术.docx(63页珍藏版)》请在三一文库上搜索。

1、第7章云数据管理技术【教学内容】1. NoSQL数据库的概念与原理2. NoSQL数据库的分类3. 典型NoSQL数据库系统介绍【教学要求】1 .理解NoSQL数据库的概念与原理2 .了解典型的NoSQL数据库系统【重点难点】NoSQL与SQL数据库的区别 3主要内容- 7.1 NoSQL数据库的概念与原理一 7.2 NoSQL数据库的分类 7.3典型NoSQL数据库系统介绍 7关系型数据匿严格遵循ACID理论关系型数据库就是由多张能互相联接的二维行列表格组成的数据库, 可以用选择、投影、连接、并、交、差、除、增删查改等数学方法来实现 对数据的存储和查询。标准数据查询语言SQL是一种基于关系数

2、据库的语 言,这种语言可以执行对关系型数据库中数据的检索和操作。当前主流的关系型数据库有:OracleDB2Microsoft SQL ServerMicrosoft AccessMySQL1事务、查询日一关系二存储的数据、对象TablelTable2关键字.1.关键字 内部过程W,一 l.t lW |J_1数据数据 _数据库文件*4 用户ACID四性一个数据库事务具有AQD四性:A ( Atomicity ,原子性) 指事务必须是原子工作单元, 对于其数据修改,要么全都执 行,要么全都不执行。I (Isolation ,隔离性 y指由并发事务所做的修改必须 与住何其它并发事务所做的修 改隔离

3、。ACIDC ( Consistency ,一致性)指事务在完成时,必须使所有 的数据都保持一致状态。指事务完成之后,它对于系 统的影响是永久性的,该修 改即使出现致命的系统故障 也将一直保持。NoSQL简介关系数据库已经无法满足Web2.0的需求:无法满足海量数据的管理需求;无法满足数据高并发的需求; 无法满足iWj可扩展性和局可用性的需求。关系数据库引以为傲的关键特性:完善的事务机制和高效的查 询机制,但到了Web2.0时代却成了 鸡肋,因为:Web2.0网站系统通常不要求严格的数据库事务;Web2.0并不要求严格的读写实时性;Web2.0通常不包含大量复杂的SQL查询。NoSQL ( N

4、oSQL=Not Only SQL ),意为不仅仅是SQL”,也被 称为非关系型数据库,是一系列与关系型数据库这种典型模型有较大差异 的数据管理系统的统称,其中最主要的差异在于它不使用SQL作为基本的 查询语言。NoSQL摆脱了传统的关系型数据库与AQD理论的限制。NoSQL数据库对数据的存储大多数采用Key/Value的方式,没有固 定的表结构(即数据再没有固定的长度,类型和固定的格式等),也没有 繁琐的连接操作。概念演变 _ _. c .' Not only SQL最初表示“反SQL”运动 现在表示关系和非关系型数据库各有优缺点用新型的非关系数据库取代关系数据库彼此都无法互相取代I

5、nfosys Technologies的首席技术架构师Sourav Mazumder给出了 非关系型数据库的一个比较严谨的描述:使用可扩展的松散耦合类型数据模型来对数据进行逻辑建模;Q为遵循CAP原理的跨多节点数据分布模型而设计,支持水平伸缩;。拥有在磁盘和(或)内存中的数据持久化能力;O支持多种Non-SOL接口来进行数据访问。 9NoSQL的三大基石 11C ( Consistency ,一致性)任何一个读操作总是能够读取之前完 成的写操作CAP理论P ( Partition Tolerance ,分区容错性)在出现网络分区的情况下,仍然能够满足一致性和可用性。 «10 iiAC

6、AP理论告诉我们,一个分布式系统不可能同时满足一致性、可用 性和分区容忍性这三个需求,最多只能同时满足其中两个,正所谓 鱼和熊掌不可兼得。选择CP,放弃ANeo4J, Bigtable, MongoDB, Hbase, Hypertable,Redis不同产品在CAP理论下的不同设计原则BASE模型指分布式系统在出现故障的时 候,允许损失部分可用性,即 保证核心可用。指允许系统存在中间状态,而 该中间状态不会影响系统整体 可用性。基本可用BasicallyAvailble软状态Soft-state最终一致性Eventualconsistency英文中,BASE有“碱”的意思,ACID有“酸”的

7、意思,BASE恰好和4CID是相对的。 指系统中的所有数据副本经过 一定时间后,最终能够达到一 致的状态。NoSQL的特征弹性可扩展可通过简单的添加硬件或服务节点的方式来对系统进行扩展多分区存储会将数据分区,存储在多个节 点上,采用水平的扩展方式较弱的事务模型只支持较弱的事务,其使用能提高 系统的并发读写能力。模式自由数据表中的每一条记录都可能有不 同的属性和格式。 17多副本异步复制往往会保存数据的多个副本逆范式化去除约束,放宽事务保障,更利于 数据的分布式存储。NoSQL与SQL数据库的区别 19存储方式表/数据集合的数据的关系外部数据存储SQL 中的 JOIN查询 SQL通常以数据 库表

8、形式存储数 据。 NoSQL贝!更力口灵 活和可扩展,存 储方式可以是 JSON文档、哈 希表或者其他方 式。 SQL必须定义好 表和字段结构后 才能添加数据。 NoSQL中数据可 以在任何时候任 何地方添加,不 需要先定义表。 还可在数据集中 建立索引。 SQL增加外部关 联数据,需在原 表中增加一个外 键,关联外部数 据表。 NoSQL还能用非 规范化方式把外 部数据直接放到 原数据集中。 SQL可使用JOIN 表链接方式将多 个关系数据表中 的数据用一条简 单的查询语句查 询出来。 大部分NoSQL使 用非规范化的数 据存储方式存储 数据。NoSQL与SQL数据库的区别(续) 23数据耦

9、合性查询性能适用范围不同 SQL中不允许删 除已经被使用 的外部数据。 NoSQL中则没有 这种强耦合的 概念,可以随 时删除任何数 据。 SQL中如果多张 表数据需要同批 次被更新。 NoSQL中没有事 务这个概念,每 一个数据集的操 作都是原子级的。 在相同水平的 系统设计的前 提下,因为 NoSQL中省略了 JOIN查询的消耗 故理论上性能 上是优于SQL的。 关系型数据库 适合存储结构 化数据,如用 户的帐号、地 址。 NoSQL适合存储 非结构化数据 如文章、评论。主要内容 7.1 NoSQL数据库的概念与原理 7.2 NoSQL数据库的分类I 7.3典型NoSQL数据库系统介绍No

10、SQL的四大类型目前,基本认同将NoSQL数据库分 为四大类: 犍值数据库 列存储数据库 文档数据库 图形数据库其中每一种类型的数据库都能够解 决关系型数据不能解决的问题。键值数据库键值数据库(Key-value Databases)是NoSQL数据库中最简单的,它的数 据按照键值对的形式进行组织、索引和 存储,能够存储大量数据。键值数据库中存储的值可以是简单 的标量值,如整数或布尔值,也可以是 结构化数据类型,如列表和JSON结构。 键值数据库通常也具有简单的查询功能 ,允许通过键来查找一个值。Key_lValue_lKey_2Value_2Key_3Value_lKey_4Value_3K

11、ey_5Value_2Key_6Value_1Key_7Value_4Key_8Value_3KeyValue键值对示例 19列存储数据库项目描述应用从关系型数据库缓存数据来用于提高性能;对Web应用暂时性数据的追踪,例如购物车数据等;存储配置和用户数据信息的移动应用;需要存储图片和音频文件等较大对象的应用。优点扩展性好,灵活性好,大量写操作时性能高缺点无法存储结构化信息,条件查询效率较低相关产品Redis、 Riak、 SimpleDB、 Chordless、 Scalaris、 MemcachedRow keyPersonal dataProfessional dataempidNameB

12、irthdayDesignationSalary1Lisa Zhang2-2-1987Manager50,00002Grace Zhao11-12-1985Sr. engineer30,00003Tina Xu27-1-1978Jr.engineer25,0000列存储数据库是将数据储存在列族 (Column Family )中,一个列族存储经 常被一起查询的相关数据。列存储查找 速度快,可扩展性强,更容易进行分布 式扩展,适用于分布式的文件系统。Coluinn-Family-1Column-Family-2Column ColumnColumnName-1 Name-2Name-3Colum

13、n ColumnColumnValue-1 Value-2Value-3DatasetRowKey-1ColumnName-4Column Name-5ColumnXame-6ColumnValue-4ColumnValue-5ColumnValue-6Column-Family-1Row Key-2Column Families列存储数据库数据存储示例 21列存储数据库项目描述应用那些对数据库写操作能力有着特殊要求的应用程序; 数据在地理上分布于多个数据中心的应用程序; 可以容忍副本中存在短期不一致情况的应用程序;拥有动态字段的应用程序;拥有潜在大量数据的应用程序,大到几百TB的数据。优点查

14、找速度快,可扩展性强,容易进行分布式扩展,复杂性低缺点功能较少,大都不支持强事务致性相关产品BigTable、HBase、Cassandra. HadoopDB、GreenPlum, PNUTSrn文档数据库文档数据库是按照日常文档的存储来 设计的,并且允许对这些数据进行复杂的 查询和计算。它支持读写一些标准格式的文档数据 (典型如XML , YAML和JSON ,甚至支 持二进制的BSON格式)。文档数据库可以看作是键值数据库的 升级版,允许之间嵌套键值。且文档数据 库比键值数据库的查询效率更高。Dataset文档数据库数据存储示例 #图形数据库项目描述应用用于后台具有大量读与操作的网站;管

15、理数据类型泳睡量属性,比如产品;跟踪元数据的变量类型;使用JSON数据结构的应用;使用类似结构套结构等非规范化数据的应用程序。优点性能好,灵活性高,复杂性低,数据结构灵活缺点查询性能不高,而且缺之统一的查询语言相关产品CouchDB、 MongoDB、 Terra store、 ThruDB、 RavenDB、SisoDB、RaptorDB、CloudKit、Perservere, Jackrabbit图形数据库是使用灵活的图形模型, 以高效的方式存储实体来之间的关系。图 形模型有两个主要组成部分:节点:实体本身,如果是在社交网络中 ,那么代表的就是人。边:两个实体之间的关系,这种关系用 线来

16、表示,并具有自己的属性。另外边 还可以有方向,如果箭头指向谁,谁就 是老板。 25图形数据库项目描述应用应用于大量复杂、互连接、低结构化的图结构场合,比如 社交网络、推荐系统等1优点灵活性局,支持复杂的图形算法,可用于构建复杂的关系 图谱1缺点复杂性高,只能支持一定的数据规模相关产品Neo4J、OrientDB、InfoGrid、Infinite Graph、 GraphDB #主要内容 7.1 NoSQL数据库的概念与原理 7.2 NoSQL数据库的分类 7.3典型NoSQL数据库系统介绍 29典型NoSQL数据库系统NoSQL数据库主要兴起于国内外各大互联网公司,随着业界 的普遍关注,越来

17、越多的NoSQL被开发和应用到实际生产环境中 o当前,主流NoSQL主要有三种:BigTableBigTable的本质是一个稀疏的、分布式的、长期存储的、多维度的和 排序的映射表。表中的数据通过一个行关键字(Row Key)、一个列关键 字(Column Key)和一个时间戳(Timestamp )进行索引。BigTable管理的数据的存储结构为:row:string,column:string,time:int64string 31com. cnn. wwwucontents:uanchor:cnnsi. com"aanchor:my. look, ca”行关键字行关键字可以是任意

18、长 度的字符串(目前最多支 持64KB )。 BigTable通过行关键字 在字典中的顺序来维护数 据。列关键字 一组列关键字组成了 " 列族 (column famliy ),这是访问控制的基 本单位。 列族名必须是看得 懂的字符串,而限定词 可以是任意字符串。时间戳 BigTable表中的每一个 表项都可以包含同一数 据的多个版本,由时间 戳来索引。 BigTable的时间戳是64 位整型,表示准确到毫 秒的"实时”。DynamoDynamo是一个具有高可用性和高扩展性的分布式数据存储系统,其 最大特点是去中心化。Dynamo所使用的众多关键技术给其带来一系列的优势。&

19、#171;33问题数据分区数据冲突处理临时故障处理永久故障恢复成员奥格及错误检测技术优势一致性哈希向量时钟(Vector Clocks )数据回传机制Merkle哈希权寸增量可伸缩性版本与更新速度无关当一些副本不可用时,可以提供高可用性和持久性后台副本恢复基于Gossip的成员资格和错误检测协议避免用中心节点管理节点成员关Nodes B. C and D store keys in range (A.B) including K.数据分区为了达到增量可伸缩性的目的,Dynamo采用一致性哈希(Consistent Hashing )来完成数据分 区,将数据分布到多个存储节点中。即 :给系统中的

20、每个节点分配一个随机token ,这些to ken构成一个哈希环。 执行数据存放操作时,先计算主键Key 的哈希值,然后存放到顺时针方向的第一个大于或者等于该哈希值的token所在的节点。数据复制 每个数据对象有N个副本,分别存放在N 个不同的节点上面。某个数据对象在地址 环上顺时针找到N个不同的节点,这N个J 节点被称为这个数据的首选节点列表(Preference List) oFNodes B. C and D store keys in range (A.B) including K. 如右图所示,Key为K的数据对象,它的 首选节点列表为节点B、C、Do Dynamo保证最终一致性而非

21、强一致性。 35数据版本和冲突处理 Dynamo用向量时钟(Vector Clocks )来确定数据版本。向量时钟 实际上就是一个列表,列表的每个节 点是一个(node, counter)对。其 中,node是发送写请求的节点,即首 选节点列表的第一个节点;counter 代表写操作的时间,即clocks。数据 版本之间的关系要么是因果关系,要 么是平行关系,关系判断依赖于 counter值大小。writehandled by Sxwrite handled by SxD3 (Sx,2,Sy,1) D4 (Sx,20,1)/ reconciled/ and written by/ SxD5 (

22、Sx,3,Sy,1Sz,1) 33故障容错Dynamo把故障分为两种类型:临时故障和永久故障。临时故障时,处理采用Hinted Handoff (数据回传)策略,保证 节点失效时系统的高可用和数据持久性。节点永久故障时,需要进行副本同步。为了快速检测副本间的差异 ,并最小化数据传输量,Dynamo使用Merkle哈希树技术。 #成员资格及错误检测(成员资格 Dynamo中的每个节点就是 Dynamo的一个成员,Amazon规定每个成员节点都要保存其他节点的路由 信息。 Dynamo使用一个基于 Gossip的协议传播成员变动,每个节点每间隔一秒随 机选择另一个节点,两个 节点协调它们保存的成员

23、 变动历史。错误检测) 一旦发现对方没有回应,就 认为该节点失效,立刻选择 别的节点进行通信。同时定 期向失效节点发出消息,如 果对方有回应则可以重新建 立通信。去中心化的故障检测协议使 用一个简单的Gossip式协议 ,使系统中的每个节点可以 了解其他节点到达或离开。 35MongoDBMongoDB中多个文档组成MongoDB提出的是文档、集合的概念。集合,同样多个集合可以组成数据库。 文档文档是MongoDB的核心概念。文档就 是键值对的有序集。 集合集合就是一组文档。集合是无模式的。 数据库MongoDB数据库层次结构数据库是一个集合的物理容器。MongoDB的功能特性MongoDB的主要适用场景: 网站实时数据处理 缓存 高伸缩性的场景 大尺寸、低价值的数据 用于对象及JSON数据的存储 39360 gan赶集8百强日的)c JTclti JJork SimesExpect the World®谢说! 41

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1