您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > NoSQL综述PPT课件
NoSQL综述大数据时代关系数据库的瓶颈NoSQL的优势CAP理论NoSQL数据模型及分类NoSQL应用现状重点介绍几个NoSQL主要内容随着网民参与互联网产品和应用的程度越来越深,互联网将更加智能,互联网的数据量也将呈爆炸式增长一、大数据时代•大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等•大交互数据:来自社交网络的数据,SNS、微博等•两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力一、大数据时代•大数据的特征3V——Volume(海量)、Variety(多样)、Velocity(实时)•海量——数据量巨大,对TB、PB数据级的处理,已经成为基本配置。•多样——处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数据,能处理语音数据甚至是图像、视频数据。•实时——在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用户进行实时的推荐,决策已经变得实时一、大数据时代•大数据时代下的系统需求•Highperformance–高并发读写的需求高并发、实时动态获取和更新数据•HugeStorage–海量数据的高效率存储和访问的需求类似SNS网站,海量用户信息的高效率实时存储和查询•HighScalability&&HighAvailability–高可扩展性和高可用性的需求需要拥有快速横向扩展能力、提供7*24小时不间断服务一、大数据时代•关系数据库如何应对大数据•Highperformance–高并发读写的需求问题:数据库读写压力巨大,硬盘IO无法承受解决方案:Master-Slave,主从分离分库、分表,缓解写压力,增强读库的可扩展性二、关系数据库的瓶颈•关系数据库如何应对大数据•HugeStorage–海量数据的高效率存储和访问的需求问题:存储记录数量有限,SQL查询效率极低解决方案:分库、分表,缓解数据增长压力二、关系数据库的瓶颈•关系数据库如何应对大数据•HighScalability&&HighAvailability–高可扩展性和高可用性的需求问题:横向扩展艰难,无法通过快速增加服务器节点实现,系统升级和维护造成服务不可用解决方案:Master-Slave,增强读库的可扩展性MMM——Master-MasterReplicationManagerforMySQL二、关系数据库的瓶颈•解决方案的问题1.分库分表缺点:(1)受业务规则影响,需求变动导致分库分表的维护复杂(2)系统数据访问层代码需要修改2.Master-Slave缺点(1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理(2)高可用性问题,Master就是那个致命点,容易产生单点故障3.MMM缺点本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性二、关系数据库的瓶颈•关系数据库如何应对大数据•MMM架构mysql-mmm.org/mysql-mmm.html二、关系数据库的瓶颈•易扩展NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。•灵活的数据模型NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。三、NoSQL的优势•高可用NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。•大数据量,高性能NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。三、NoSQL的优势•什么是NoSQL?NoSQL是NotOnlySQL的缩写,而不是NotSQL,它不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。相比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活,重点被放在了分布式数据管理上。三、NoSQL的优势•分布式数据系统的CAP原理的三要素:•一致性(Consistency)•可用性(Availability)•分区容忍性(Partitiontolerance)•CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可能三者兼顾•对于分布式数据系统,分区容忍性是基本要求•对于大多数web应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。四、CAP原理四、CAP原理•NoSQL运动两个核心理论基础:•Google的BigTableBigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。•Amazon的DynamoDynamo使用的是另外一种分布式模型。Dynamo的模型更简单,它将数据按key进行hash存储。其数据分片模型有比较强的容灾性,因此它实现的是相对松散的弱一致性:最终一致性。五、NoSQL数据模型及分类•NoSQL运动两个核心理论基础:五、NoSQL数据模型及分类•第一种分类方法:五、NoSQL数据模型及分类类型部分代表特点列存储HbaseCassandraHypertable顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。文档存储MongoDBCouchDB文档存储一般用类似json的格式存储,存储的内容是文档型的。这样也就有有机会对某些字段建立索引,实现关系数据库的某些功能。key-value存储TokyoCabinet/TyrantBerkeleyDBMemcacheDBRedis可以通过key快速查询到其value。一般来说,存储不管value的格式,照单全收。(Redis包含了其他功能)图存储Neo4JFlockDBInfoGrid图形关系的最佳存储。使用传统关系数据库来解决的话性能低下,而且设计使用不方便。对象存储db4oVersant通过类似面向对象语言的语法操作数据库,通过对象的方式存取数据。xml数据库BerkeleyDBXMLBaseX高效的存储XML数据,并支持XML的内部查询语法,比如XQuery,Xpath。•第二种分类方法:•参见《NoSQLDataModelingTechniques》五、NoSQL数据模型及分类•第二种分类方法:参见《NoSQLDataModelingTechniques》•Key-Value存储:OracleCoherence,Redis,TokyoCabinet•类BigTable存储:ApacheHBase,ApacheCassandra•文档数据库:MongoDB,CouchDB•全文索引:ApacheLucene,ApacheSolr•图数据库:neo4j,FlockDB五、NoSQL数据模型及分类•市场需求五、NoSQL应用现状•使用情况五、NoSQL应用现状•BigTable•Dynamo•Cassandra•HBase•Redis•MongoDB六、几种主流NoSQL数据库•BigTable简介bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、GoogleEarth、GoogleFinance等。•数据模型Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。(row:string,column:string,time:int64)-string六、几种主流NoSQL数据库——BigTable•数据模型一个存储Web网页的例子的表的片断•行名:”comn.”•contents列族:存放的是网页的内容•anchor列族:存放引用该网页的锚链接文本。•“anchor:cnnsi”列表示被cnnsi引用•“anchhor:my.look.ca”列表示被my.look.ca引用(”comn.”,”anchor:my.look.ca”,t8)-”CNN”六、几种主流NoSQL数据库——BigTable•技术要点•基础:GFS,Chubby,SSTable。—BigTable使用Google的分布式文件系统(GFS)存储日志文件和数据文件—Chubby是一个高可用的、序列化的分布式锁服务组件—BigTable内部存储数据的文件是GoogleSSTable格式的。•元数据组织:chubby-metadata-tablet。—元数据与数据都保存在GoogleFS中,客户端通过Chubby服务获得表格元数据的位置。六、几种主流NoSQL数据库——BigTable•技术要点•数据维护与访问:masterserver将每个tablet的管理责任分配给各个tabletserver,tablet的分布信息都保存在元数据中,所以客户端无须通过master来访问数据,只需要直接跟tabletserver通信。六、几种主流NoSQL数据库——BigTable•技术要点•Log-structured数据组织:写操作不直接修改原有的数据,而只是将一条记录添加到commitlog的末尾,读操作需要从log中merge出当前的数据版本。具体实现:SSTable,Memtable。六、几种主流NoSQL数据库——BigTable•特点1、适合大规模海量数据,PB级数据;2、分布式、并发数据处理,效率极高;3、易于扩展,支持动态伸缩;4、适用于廉价设备;5、适合于读操作,不适合写操作。6、不适用于传统关系数据库;六、几种主流NoSQL数据库——BigTable•Dynamo简介Dynamo最初是Amazon所使用的一个私有的分布式存储系统。•设计要点P2P的架构:这区别于GoogleFS的SingleMaster架构,无须一个中心服务器来记录系统的元数据。六、几种主流NoSQL数据库——Dynamo•设计要点Performance(性能),Availability(可用性),Durability(数据持久性)三者的折衷,可以根据应用的需求自由调整三者比例。六、几种主流NoSQL数据库——Dynamo•技术要点•数据定位使用一致性哈希;•Vectorlock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)•容错:SloppyQuorum,hintedhandoff,MerkletreeSloppyQuorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性hintedhandoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。使用Merkletree为数据建立索引,只要任意数据有变动,都将快速反馈出来。•网络互联:Gossip-basedmembershipprotocol,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。•Storageloadbalancing•Client-drivenCoordination六、几种主流NoSQL数据库——Dynamo•特点•高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供IO能力。一个实例上的节点可能位于不同的数据中心内,这样一个数据中心出问题也不会导致数据丢失。•总是可写:hintedhandoff确保在系统节点出现故障或节点恢复时,能灵活处理•可根据应用类型优化可用性、容错性和高效性配置•去中心化,人工管理工作少•可扩展性较差:由于增加机器需要给机器分配DHT(分布式hashtable)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的MerkleTree信息,
本文标题:NoSQL综述PPT课件
链接地址:https://www.777doc.com/doc-1488042 .html