典型的十大NOSQL数据库_第1页
典型的十大NOSQL数据库_第2页
典型的十大NOSQL数据库_第3页
典型的十大NOSQL数据库_第4页
典型的十大NOSQL数据库_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式系统论文题目:NOSQL数据库专 业班 级学 生学 号2023 年 秋季 学期名目\l“_TOC_250012“引言 1\l“_TOC_250011“NoSQL数据库类型 1\l“_TOC_250010“依据NoSQL存储模型和特点分类 1\l“_TOC_250009“依据CAP原理分类 2\l“_TOC_250008“NoSQL架构 5\l“_TOC_250007“纯NoSQL架构 5\l“_TOC_250006“以NoSQL作为数据源的架构 6\l“_TOC_250005“典型NoSQL数据库概述 8HBase简介 \l“_TOC_250004“Redis简介 9\l“_TOC_250003“MongoDB简介 10\l“_TOC_250002“Cassandra简介 11\l“_TOC_250001“CouchDB简介 11\l“_TOC_250000“5.总结 12NoSQL数据库引言随着互联网Web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的Web2.0网站Web2.0SQL查询等。因此,关系数据库在这些越来越多的应用场景下显得不那么适宜了,为了解决这类问题的非关系数据库应运而生。NoSQL是非关系型数据存储的广义定义。它打破了长期以来关系型数据库ACID理论大一统的局面。NoSQL数据存储不需要固定的表构造,通常也不存在连接操作。在大数据存取上具备关系型数据库.无法比较的性能优势。该术2023年初得到了广泛认同。NoSQL数据库类型依据NoSQL存储模型和特点分类NoSQL11参照存储模型的NoSQL分类中依据NoSQL数据库的存储原理,列出了六大类主要的NoSQL数据库分类,分别是:列存储、文档型存储、Key-value存储、图存储、对象存储xml1中仅列出了一些比较常见的NoSQL数据库,在全部的这些类型的NoSQL数据库中,当前应用较多的就是前三种类型:列存储类型、文档存储、key-value存储类型。特别需要说明的是,图数据库也可称为面对/基于图的Graphdatabase。图数据库的根本含义是以“图”这种数据构造存储和查询数据,不是存储图片的数据库。1CAP原理分类CAP理论是设计分布式web系统的一个很关键的定律,在设计分布式Web效劳中,通常需要考虑三个应用的属性:全都性、可用性以及分区宽容性。但是在实际的设计中,不行能这三方面同时做的很好。下面具体介绍CAP理论中的以理解为系统被即便被分个成无法通信的系统节点仍然可以正常工作,因此对于分布式系统而言,必需支持分区容错。NoSQL肯定程度上就是基于这个理论提出来的,由于传统的SQL数据库〔关系型数据库〕都是都是具有ACID属性〔availability〕P〔partiontoleranc,因此,为了提高系统性能和可扩展性,必需牺牲〔consistenc,推翻关系型数据库中ACID这一套。CAP理论的核心思想是一个数据库不行能同时满足全都性、可用性和分区容错性。依据CAP理论,从应用的需求不同,一般对数据库AP,主要是一些面对文档的适用于分布式系统的数据库,如SimpleDB2必定会选择不同的NoSQL数据库来进展存储操作,例如对于大型网站尤其是SNSAPTokyoCabinetAP理论的成功产品。CAPNoSQLCA原则、满足CP原则和满足APCAverticaCP原则的数据库有MongoDB、HBase、Redis、BigTable、Hypertable、Terrastore、MemcacheDB、BerkeleyDBAP原则的数据库有DynamoCouchDBSimpleDBCassandra等。承受NoSQL的型存储架构选用NoSQL数据库必需依据特定的应用场景又是格外擅长使用和维护关系数据库的,那么笔者不建议开发人员承受NoSQLNoSQL。然而,在WEB2.0的网站中,关系数据库大局部都消灭了瓶颈。在磁盘IO、复制、异构复制等等,然而,这些工作需要的技术力量越来越高,也越来越具有NoSQL。如此多类型的NoSQL,而每种类型的NoSQL的NoSQL来作为存储治理工具并不是一个很好答复的问题,影响选择的因素有insert比例、update比例、是否常常更数据的某一个小字段、原子更需求;随机的,而闻的查询就是依据时间,越的越频繁。NoSQL作为镜像不转变原有的以MySQL作为存储的架构,使用NoSQL作为关心镜像存储,用NoSQL的优势关心提升性能。3如图1NoSQL作为镜像,这种架构在原有基于MySQL数据库的架构上增加了一层关心的NoSQL存储,代码量不大,技术难度小,却在可扩展性和性能上起到了格外大的作用。只需要程序在写入MySQL数据库后,同时写入到NoSQL数据库,让MySQL和NoSQL拥有一样的镜像数据,在某些可以依据主用NoSQL的高性能来抵抗这些查询。另外一种不通过程序代码,而是通过MySQLNoSQL中。这种模式是上面一种的变体,是一种对写入透亮但是具有更高技术难度一种模式。这种模式适用于现有的比较简单的老系统,同时也适用于需要把数据同步到多种类型的存储中。MySQLNoSQL同MySQLUDF函数,MySQLbinlog的解析来实现。MySQL中,依据查询建立相应的索引,其他不需要的字段,包括大文本字段都存储在NoSQL中。在查询的时候,先从MySQL中查询出数据的主键,然后从NoSQL中直接取出对应的数据即可。4如图2,NoSQL和MySQL的结合,这种架构模式把MySQL和NoSQL的作用进展了融合,各司其职,让MySQL特地负责处理擅长的关系存储,NoSQL作为数据的存储。它有以下优点:第一,节约MySQL的IO开销,由于MySQL只存储需要查询的小字段,不再负责存储大文本字段,这样就可以节约MySQL存储的空间开销,从而节约MySQL的磁盘IO。笔者曾经通过这种优化,把MySQL一个40G的表缩减到几百兆其次提高MySQLQueryCache缓存命中率。由于QueryCache缓存失效是表级的,在MySQL表一旦被更就会失效,经过这种字段的分别,更的字段如果不是存储在MySQL 中,那么对QueryCache就没有任何影响而NoSQL的Cache往往都是行级别的只对更的记录的缓存失效。第三,提升MySQL主从同步效率,由于MySQL存储空间的减小,同步的数据记录也减小了,而局部数据的更落在 NoSQL而不是MySQL,这样也削减了MySQL数据需要同步的次数。第四,提高MySQL数据备份和恢复的速度,由于MySQL数据库存储的数据的减小,很简洁看到数据备份和恢复的速度也将极大的提高。第五,比以前更简洁扩展,NoSQL天生就简洁扩展。经过这种优化,MySQL性能也得到提高。NoSQL架构NoSQL架构可以只使用NoSQL解决存储问题,这样不但可以提高性能,还格外易于扩展。5在一些数据库构造常常变化,数据构造不定的系统中,也格外适合使用NoSQL样,承受NoSQL架构可以避开常常对MySQL进展表构造调整,以避开增加字段带来的性能问题。如图3纯NoSQL架构,这种架构的缺点就是数据直接存储在NoSQL中,NoSQL数据库已经具有局部key-value和关系数据库之间,web2.0网站的查询需求。比方:MongoDB就带有关系查询的功能,能解决常用的关系查询。另外,TokyoTyranttabletableMySQL中的一个表。NoSQL作为数据源的架构NoSQLNoSQL同步协议复制到其他存储,依据应用的规律来打算去相应的存储猎取数据。64,NoSQL作为数据源的架构,纯NoSQL的架构虽然构造简洁,NoSQL的简洁功能上,可以使用以NoSQL为数据源的架构。在这种架构中,应用程序只负责把数据直NoSQLOKNoSQLNoSQL数据的每次写入,更,删除操作都复制到MySQL数据库中。同时,也可以通过复以依据不同的规章,把数据同步复制到设计好的分表分库的MySQL中。NoSQL数据库源,应用程序就不NoSQL,实现了写的高性能。而通过同步协议,把数据复制到各种适合查询类型的存储中,能实现查询的高性能,不像以前MySQL一种数据开发人员只需要关心写入NoSQL数据库,数据的扩展可以便利的在后端由复制7MySQLmastersalve模式的延迟问题是一样的,解决方法也一样。NoSQL数据库的复制都没有供给比较易于使用的复制接口所以这种架构看起来很好,但是却不是格外简洁实现的。NoSQL数据库概述HBase简介HBase〔HadoopDatabase,是一个高牢靠性、高性能、面对列、可伸缩的HBase技术可在廉价PCServer上搭建起大规模构造化存Bigtable的开源实现,HBaseHadoopHDFS作为HadoopMapReduceHBase中的海量数据,利用Zookeeper作为对应。cellcellkeyfamilycolumnnameHBasecellsscan效率格外高〔b-tree存HBasehfileRegion中不同列族的数据是存储在不同的hfile中的。所以,假设一次数据访问过程中只访问某个columnfamilytablescheme时的columnfamilyHBaseHBase的,这可以表达在几点上:HBase的存储是基于HDFS的,这表示HBase的每次读操作都需要通过HDFS层来取得数据,这也在肯定程度上打算了HBase的CassandraNoSQL数据库,HBase集群RegionServerMasterRegionRegionServerRegions数据,这在肯定程度上也为HBase引入了单点问cluster内的各个节HDFS,Master,RegionServer,Zookeeper,这四者都8HBase的安装部署比较繁琐。Redis简介REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的key-valueMemcachedList、Set、SortedSetRedis:第一,keyvaluestore,Redis是一个以key-value形式存储的数据库,定位直指MySQL,用来作为唯一的存储系统;其次,memorycache,Redis是一个把数据memcachd;第三,datastructrueserver,Redis支持对简单数据构造的高速操作,供给某些特别业务场景的计算和呈现需求,比方排行榜应用、Top10之类等。RedisIO操作都放到内存中去,把挨次IORedis作为一个内存NoSQL数据库,就是把内存当做硬盘使用的一个典型范例。Redis使用内存供给快,支持高频率的读写;缺点是对设备硬件要求高,处理数据量有限。Redis是NoSQL数据库中的Key-Value类型数据库,其可以说是真正的纯粹的NoSQL类型系型数据库完全是对立的。Redis由于支持格外丰富的内存数据构造类型,如何Redis的长久化方式与传统数据库的方式有比较多的差异,Redis一共支持四种长久化方式,分别(snapshot)(aof)(vm),Diskstore方式。在设计思路上,前两种是基于全部数据都在内存中,即小数据并且vm句话说Redis〔全部数据能够加载在内存中Redis所擅长的领域。9MongoDB简介MongoDB是一个可扩展的、高性能、开源、模式自由、面对文档的数据库,C++web应用供给可护展的高性能数据存储解决方案。MongoDB在键值存储和传统关系数据库系统之间建立了一个桥梁。MongoDB主要特性有:面对文档存储、支持完全索引、高牢靠性、自动分片支持云级扩展性、查询记录分析、快速就地更、支持Map/Reduce、供给分布式文件系统GridFS、商业支持。除此之外,MongoDB还具有模式自由、支持动态查询、支持数据复制与的故障恢复、使用高效的二进制数据存储、包括大型对象、支持格外BSON。MongoDB的主要目标是在键/值存储方式以及传统的RDBMS系统架起一座桥梁,集两者的优势于一身。Mongo适合用于网站数据:Mongo格外适合实时的插入,更与查询,并具备网站实时数据存储所需的复制及高度伸缩性;MongoDB适合用于缓存:由于性能很高,Mongo也适合作为信息根底设施的缓搭建的长久化缓存层可以避开下层的数据源过载;MongoDB适合用于大尺寸,低价值的数据:使用传统的关系型数据库存件进展存储;MongoDB适合用于高伸缩性的场景:Mongo格外适合由数十或数MapReduce引擎的内置支持;用于对象及JSON数据的存储:MongoDB的BSON数据格式格外适MongoDB的使用也会有一些限制。MongoDB不Mo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论