版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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.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的BigTable
BigTable提出了一种很有趣的数据模型,它将各列数据进行排序存储。数据值按范围分布在多台机器,数据更新操作有严格的一致性保证。Amazon的Dynamo
Dynamo使用的是另外一种分布式模型。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应用现状BigTableDynamoCassandraHBaseRedisMongoDB六、几种主流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网页的例子的表的片断行名:”n.www”contents列族:存放的是网页的内容anchor列族:存放引用该网页的锚链接文本。“anchor:”列表示被引用“anchhor:my.look.ca”列表示被my.look.ca引用(”n.www”,”anchor:my.look.ca”,t8)->”CNN.com”六、几种主流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数据库——BigTableDynamo简介
Dynamo最初是
Amazon所使用的一个私有的分布式存储系统。设计要点
P2P的架构:这区别于
GoogleFS的
SingleMaster架构,无须一个中心服务器来记录系统的元数据。
六、几种主流NoSQL数据库——Dynamo设计要点
Performance(性能),Availability(可用性),Durability(数据持久性)三者的折衷,可以根据应用的需求自由调整三者比例。
六、几种主流NoSQL数据库——Dynamo技术要点数据定位使用一致性哈希;Vectorlock,允许数据的多个备份存在多个版本,提高写操作的可用性(用弱一致性来换取高的可用性)容错:SloppyQuorum,hintedhandoff,Merkletree
SloppyQuorum马虎仲裁,并非采用严格的数据一致性检查,用于实现最终一致性hintedhandoff,节点故障会恢复时,可动态维护系统可用性,使系统的写入成功大大提升。
使用Merkletree为数据建立索引,只要任意数据有变动,都将快速反馈出来。网络互联:Gossip-basedmembershipprotocol,一种通讯协议,目标是让节点与节点之间通信,实现去中心化。StorageloadbalancingClient-drivenCoordination六、几种主流NoSQL数据库——Dynamo特点高可用:设计上天然没有单点,每个实例由一组节点组成,从应用的角度看,实例提供
IO能力。一个实例上的节点可能位于不同的数据中心内,这样一个数据中心出问题也不会导致数据丢失。总是可写:hintedhandoff确保在系统节点出现故障或节点恢复时,能灵活处理可根据应用类型优化可用性、容错性和高效性配置去中心化,人工管理工作少可扩展性较差:由于增加机器需要给机器分配DHT(分布式hashtable)算法所需的编号,操作复杂度较高,且每台机器存储了整个集群的机器信息及数据文件的MerkleTree信息,机器最大规模只能到几千台。六、几种主流NoSQL数据库——DynamoCassandra简介
ApacheCassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。Facebook于2008将
Cassandra开源,此后,由于Cassandra良好的可扩放性,被Digg、Twitter等知名Web2.0网站所采纳,成为了一种流行的分布式结构化数据存储方案。
六、几种主流NoSQL数据库——Cassandra架构要点使用了GoogleBigTable的数据模型
这是一种面向列的数据库,列被组织成为列族(ColumnFamily),在数据库中增加一列非常方便。对于搜索和一般的结构化数据存储,这个结构足够丰富和有效。系统架构与Dynamo一脉相承
是基于O(1)DHT(分布式哈希表)的完全P2P架构,与传统的基于Sharding的数据库集群相比,Cassandra可以几乎无缝地加入或删除节点,非常适于对于节点规模变化比较快的应用场景。Cassandra的数据会写入多个节点保证数据的可靠性,在一致性、可用性和网络分区耐受能力(CAP)的折衷问题上,Cassandra比较灵活,用户在读取时可以指定要求所有副本一致(高一致性)、读到一个副本即可(高可用性)或是通过选举来确认多数副本一致即可(折衷)。这样,Cassandra可以适用于有节点、网络失效,以及多数据中心的场景。
六、几种主流NoSQL数据库——Cassandra突出特点模式灵活:使用Cassandra,像文档存储,你不必提前解决记录中的字段。你可以在系统运行时随意的添加或移除字段。这是一个惊人的效率提升,特别是在大型部署上。真正的可扩展性:Cassandra是纯粹意义上的水平扩展。为给集群添加更多容量,可以指向另一台电脑。你不必重启任何进程,改变应用查询,或手动迁移任何数据。多数据中心识别:你可以调整你的节点布局来避免某一个数据中心起火,一个备用的数据中心将至少有每条记录的完全复制。
六、几种主流NoSQL数据库——CassandraHBase简介
HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。
HBase是GoogleBigtable的开源实现,类似GoogleBigtable利用GFS作为其文件存储系统,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用
Chubby作为协同服务,HBase利用Zookeeper作为对应。
六、几种主流NoSQL数据库——HBase数据模型
Rowkey、列族、列、时间戳,同bigtable定义
六、几种主流NoSQL数据库——HBase物理存储
Table在行的方向上分割为多个HRegion,每个HRegion分散在不同的RegionServer中
六、几种主流NoSQL数据库——HBase物理存储
每个HRegion由多个Store构成,每个Store由一个memStore和0或多个StoreFile组成,每个Store保存一个ColumnsFamilyStoreFile以HFile格式存储在HDFS中
六、几种主流NoSQL数据库——HBase架构图
六、几种主流NoSQL数据库——HBase架构图Client包含访问hbase的接口,client维护着一些cache来加快对hbase的访问,比如regione的位置信息Zookeeper
保证任何时候,集群中只有一个master
存贮所有Region的寻址入口
实时监控RegionServer的状态,将Regionserver的上线和下线信息,实时通知给Master
存储Hbase的schema,包括有哪些table,每个table有哪些columnfamilyMaster为Regionserver分配region负责regionserver的负载均衡发现失效的regionserver并重新分配其上的regionGFS上的垃圾文件回收处理schema更新请求
六、几种主流NoSQL数据库——HBase架构图RegionServer维护Master分配给它的region,处理对这些region的IO请求负责切分在运行过程中变得过大的region
可以看出,client访问hbase上数据的过程并不需要master参与,寻址访问zookeeper和regionserver,数据读写访问regioneserver,master仅仅维护者table和region的元数据信息,负载很低
六、几种主流NoSQL数据库——HBase架构图HadoopEcoSystem中的各层系统,其中HBase位于结构化存储层,HadoopHDFS为HBase提供了高可靠性的底层存储支持,HadoopMapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制
六、几种主流NoSQL数据库——HBaseRedis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴儿车专用蚊帐产业规划专项研究报告
- 农业公司员工产品内购活动方案
- 手术刀产业运行及前景预测报告
- 中小学线上教学疫情应对方案
- 公共交通卫生检查方案
- 便利店库存管理方案
- 农产品冷链贮存管理制度
- 朋友间借车协议书
- 节前学校安全教育检查方案
- 职场新人阅读指导方案
- 期中测试卷(试题)-2024-2025学年数学五年级上册北师大版
- (新版)特种设备安全管理取证考试题库(浓缩500题)
- 高二语文上学期期中模拟试卷03(解析版)
- 教学能力大赛“教案”【决赛获奖】-
- 诺贝尔奖介绍-英文幻灯片课件
- 公司信息化调研情况汇报(4篇)
- 养猪合伙协议合同模板
- 球墨铸铁管、钢管顶管穿路施工方案
- 期中测试卷-2024-2025学年统编版语文五年级上册
- GB/T 44672-2024体外诊断医疗器械建立校准品和人体样品赋值计量溯源性的国际一致化方案的要求
- 小学数学小专题讲座《数学教学生活化-》
评论
0/150
提交评论