NoSQL 综述.ppt

上传人:仙人指路1688 文档编号:2669631 上传时间:2023-02-21 格式:PPT 页数:50 大小:1.99MB
返回 下载 相关 举报
NoSQL 综述.ppt_第1页
第1页 / 共50页
NoSQL 综述.ppt_第2页
第2页 / 共50页
NoSQL 综述.ppt_第3页
第3页 / 共50页
NoSQL 综述.ppt_第4页
第4页 / 共50页
NoSQL 综述.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《NoSQL 综述.ppt》由会员分享,可在线阅读,更多相关《NoSQL 综述.ppt(50页珍藏版)》请在三一办公上搜索。

1、NoSQL综述,mengxl2012-03-14,大数据时代关系数据库的瓶颈NoSQL的优势CAP理论NoSQL数据模型及分类NoSQL应用现状重点介绍几个NoSQL,主要内容,随着网民参与互联网产品和应用的程度越来越深,互联网将更加智能,互联网的数据量也将呈爆炸式增长,一、大数据时代,大交易数据:来自电商的数据,包括B2B、B2C、C2C、团购等大交互数据:来自社交网络的数据,SNS、微博等两类数据的有效融合将是大势所趋,这种融合更能增强企业的商业洞察力,一、大数据时代,大数据的特征3VVolume(海量)、Variety(多样)、Velocity(实时)海量数据量巨大,对TB、PB数据级的

2、处理,已经成为基本配置。多样处理多样性的数据类型,结构化数据和非结构化数据,能处理Web数据,能处理语音数据甚至是图像、视频数据。实时在客户每次浏览页面,每次下订单的过程中都存在,都会需要对用户进行实时的推荐,决策已经变得实时,一、大数据时代,大数据时代下的系统需求High performance 高并发读写的需求高并发、实时动态获取和更新数据Huge Storage 海量数据的高效率存储和访问的需求类似SNS网站,海量用户信息的高效率实时存储和查询High Scalability&High Availability 高可扩展性和高可用性的需求需要拥有快速横向扩展能力、提供7*24小时不间断服

3、务,一、大数据时代,关系数据库如何应对大数据High performance 高并发读写的需求问题:数据库读写压力巨大,硬盘IO无法承受解决方案:Master-Slave,主从分离分库、分表,缓解写压力,增强读库的可扩展性,二、关系数据库的瓶颈,关系数据库如何应对大数据Huge Storage 海量数据的高效率存储和访问的需求问题:存储记录数量有限,SQL查询效率极低解决方案:分库、分表,缓解数据增长压力,二、关系数据库的瓶颈,关系数据库如何应对大数据High Scalability&High Availability 高可扩展性和高可用性的需求问题:横向扩展艰难,无法通过快速增加服务器节点实

4、现,系统升级和维护造成服务不可用解决方案:Master-Slave,增强读库的可扩展性MMMMaster-Master Replication Manager for MySQL,二、关系数据库的瓶颈,解决方案的问题1.分库分表缺点:(1)受业务规则影响,需求变动导致分库分表的维护复杂(2)系统数据访问层代码需要修改2.Master-Slave缺点(1)Slave实时性的保障,对于实时性很高的场合可能需要做一些处理(2)高可用性问题,Master就是那个致命点,容易产生单点故障3.MMM缺点 本身扩展性差,一次只能一个Master可以写入,只能解决有限数据量下的可用性,二、关系数据库的瓶颈,关

5、系数据库如何应对大数据MMM架构http:/mysql-mmm.org/mysql-mmm.html,二、关系数据库的瓶颈,易扩展 NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。甚至有多种NoSQL之间的整合。灵活的数据模型 NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。,三、NoSQL的优势,高可用 NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构

6、。比如Cassandra,HBase模型,通过复制模型也能实现高可用。大数据量,高性能 NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。,三、NoSQL的优势,什么是NoSQL?NoSQL是Not Only SQL的缩写,而不是Not SQL,它不一定遵循传统数据库的一些基本要求,比如说遵循SQL标准、ACID属性、表结构等等。相比传统数据库,叫它分布式数据管理系统更贴切,数据存储被简化更灵活,重点被放在了分布式数据管理上。,三、NoSQL的优势,分布式数据系统的CAP原理的三要素:一致性(Consistency)可用性(Avai

7、lability)分区容忍性(Partition tolerance)CAP原理:在分布式系统中,这三个要素最多只能同时实现两点,不可能三者兼顾对于分布式数据系统,分区容忍性是基本要求对于大多数web应用,牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向。,四、CAP原理,四、CAP原理,NoSQL运动两个核心理论基础:Google的BigTableBigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。Amazon的DynamoDynamo使用的是另外一种分布式模型。Dynamo的模型更简单,它将数据按key

8、进行hash存储。其数据分片模型有比较强的容灾性,因此它实现的是相对松散的弱一致性:最终一致性。,五、NoSQL数据模型及分类,NoSQL运动两个核心理论基础:,五、NoSQL数据模型及分类,第一种分类方法:,五、NoSQL数据模型及分类,第二种分类方法:参见NoSQL Data Modeling Techniques,五、NoSQL数据模型及分类,第二种分类方法:参见NoSQL Data Modeling TechniquesKey-Value 存储:Oracle Coherence,Redis,Tokyo Cabinet 类BigTable存储:Apache HBase,Apache Ca

9、ssandra 文档数据库:MongoDB,CouchDB 全文索引:Apache Lucene,Apache Solr 图数据库:neo4j,FlockDB,五、NoSQL数据模型及分类,市场需求,五、NoSQL应用现状,使用情况,五、NoSQL应用现状,BigTableDynamoCassandraHBaseRedisMongoDB,六、几种主流NoSQL数据库,BigTable简介bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、Google Ear

10、th、Google Finance等。数据模型Bigtable是一个稀疏的、分布式的、持久化存储的多维度排序Map。Map的索引是行关键字、列关键字以及时间戳;Map中的每个value都是一个未经解析的byte数组。(row:string,column:string,time:int64)-string,六、几种主流NoSQL数据库BigTable,数据模型一个存储Web网页的例子的表的片断行名:”n.www”contents列族:存放的是网页的内容anchor列族:存放引用该网页的锚链接文本。“anchor:”列表示被引用“anchhor:my.look.ca”列表示被my.look.ca引

11、用(”n.www”,”anchor:my.look.ca”,t8)-”CNN.com”,六、几种主流NoSQL数据库BigTable,技术要点基础:GFS,Chubby,SSTable。BigTable使用Google的分布式文件系统(GFS)存储日志文件和数据文件Chubby是一个高可用的、序列化的分布式锁服务组件BigTable内部存储数据的文件是Google SSTable格式的。元数据组织:chubby-metadata-tablet。元数据与数据都保存在 Google FS 中,客户端通过 Chubby 服务获得表格元数据的位置。,六、几种主流NoSQL数据库BigTable,技术要

12、点数据维护与访问:master server 将每个 tablet 的管理责任分配给各个 tablet server,tablet 的分布信息都保存在元数据中,所以客户端无须通过 master 来访问数据,只需要直接跟 tablet server 通信。,六、几种主流NoSQL数据库BigTable,技术要点Log-structured 数据组织:写操作不直接修改原有的数据,而只是将一条记录添加到 commit log 的末尾,读操作需要从 log 中 merge 出当前的数据版本。具体实现:SSTable,Memtable。,六、几种主流NoSQL数据库BigTable,特点1、适合大规模海

13、量数据,PB级数据;2、分布式、并发数据处理,效率极高;3、易于扩展,支持动态伸缩;4、适用于廉价设备;5、适合于读操作,不适合写操作。6、不适用于传统关系数据库;,六、几种主流NoSQL数据库BigTable,Dynamo简介 Dynamo 最初是 Amazon 所使用的一个私有的分布式存储系统。设计要点 P2P 的架构:这区别于 Google FS 的 Single Master 架构,无须一个中心服务器来记录系统的元数据。,六、几种主流NoSQL数据库Dynamo,设计要点 Performance(性能),Availability(可用性),Durability(数据持久性)三者的折衷,

14、可以根据应用的需求自由调整三者比例。,六、几种主流NoSQL数据库Dynamo,技术要点数据定位使用一致性哈希;Vector lock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)容错:Sloppy Quorum,hinted handoff,Merkle tree Sloppy Quorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性 hinted handoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。使用Merkle tree为数据建立索引,只要任意数据有变动,都将快速反馈出来。网络互联:Gossip-based

15、 membership protocol,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。Storage load balancing Client-driven Coordination,六、几种主流NoSQL数据库Dynamo,特点高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供 IO 能力。一个实例上的节点可能位于不同的数据中心内,这样一个数据中心出问题也不会导致数据丢失。总是可写:hinted handoff确保在系统节点出现故障或节点恢复时,能灵活处理可根据应用类型优化可用性、容错性和高效性配置去中心化,人工管理工作少可扩展性较差:由于增加机器需要

16、给机器分配DHT(分布式hash table)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的Merkle Tree信息,机器最大规模只能到几千台。,六、几种主流NoSQL数据库Dynamo,Cassandra简介 Apache Cassandra 是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集Google BigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身。Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter

17、等知名Web 2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。,六、几种主流NoSQL数据库Cassandra,架构要点使用了Google BigTable的数据模型 这是一种面向列的数据库,列被组织成为列族(Column Family),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。系统架构与Dynamo一脉相承 是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。Cassandra的数据会写入多个节点 保

18、证数据的可靠性,在一致性、可用性和网络分区耐受能力(CAP)的折衷问题上,Cassandra比较灵活,用户在读取时可以指定要求所有副本一致(高一致性)、读到一个副本即可(高可用性)或是通过选举来确认多数副本一致即可(折衷)。这样,Cassandra可以适用于有节点、网络失效,以及多数据中心的场景。,六、几种主流NoSQL数据库Cassandra,突出特点模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。真正的可扩展性:Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指

19、向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。,六、几种主流NoSQL数据库Cassandra,HBase简介 HBase Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Goog

20、le运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。,六、几种主流NoSQL数据库HBase,数据模型Row key、列族、列、时间戳,同bigtable定义,六、几种主流NoSQL数据库HBase,物理存储 Table 在行的方向上分割为多个HRegion,每个HRegion分散在不同的RegionServer中,六、几种主流NoSQL数据库HBase,物理存储每个HRegion由多个Store构成,

21、每个Store由一个memStore和0或多个StoreFile组成,每个Store保存一个Columns FamilyStoreFile以HFile格式存储在HDFS中,六、几种主流NoSQL数据库HBase,架构图,六、几种主流NoSQL数据库HBase,架构图Client 包含访问hbase 的接口,client 维护着一些cache 来加快对hbase 的访问,比如regione 的位置信息Zookeeper 保证任何时候,集群中只有一个master 存贮所有Region 的寻址入口 实时监控Region Server 的状态,将Region server 的上线和下线信息,实时通知给

22、Master 存储Hbase 的schema,包括有哪些table,每个table 有哪些column familyMaster为Region server 分配region负责region server 的负载均衡发现失效的region server 并重新分配其上的regionGFS 上的垃圾文件回收处理schema 更新请求,六、几种主流NoSQL数据库HBase,架构图Region Server维护Master 分配给它的region,处理对这些region 的IO 请求负责切分在运行过程中变得过大的region 可以看出,client 访问hbase 上数据的过程并不需要master

23、 参与,寻址访问zookeeper 和region server,数据读写访问regione server,master仅仅维护者table 和region 的元数据信息,负载很低,六、几种主流NoSQL数据库HBase,架构图Hadoop EcoSystem中的各层系统,其中HBase位于结构化存储层,Hadoop HDFS为HBase提供了高可靠性的底层存储支持,Hadoop MapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制,六、几种主流NoSQL数据库HBase,Redis简介 redis是一个key-value存储

24、系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集 合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改 操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。相比memcached的优势:value类型更丰富数据操作方法更多可将内存数据

25、持久化,六、几种主流NoSQL数据库Redis,MongoDB简介MongoDB是一个基于分布式文件存储的数据库。由C+语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。特点是高性能、易部署、易使用,存储数据方便。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。,六、几种主流N

26、oSQL数据库MongoDB,主要特点面向集合存储:易存储对象类型的数据,包括文档内嵌对象及数组。模式自由:无需知道存储数据的任何结构定义,支持动态查询、完全索引,可轻易查询文档中内嵌的对象和数组文档型:存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各种复杂的文件类型。高效的数据存储:支持二进制数据及大型对象支持复制和故障恢复:提供Master-Master、Master-Slave模式的数据复制及服务器之间的数据复制 自动分片:以支持云级别的伸缩性,支持水平的数据库集群,可动态添加额外的服务器,六、几种主流NoSQL数据库MongoDB,不适用场景要求高度事务性的系统传统的商业智能应用复杂的跨文档(表)级联查询,六、几种主流NoSQL数据库MongoDB,Q&A,Thanks,Email:Popo:frankie_Msn:,

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

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号