⼤数据常⽤⾮关系型数据库汇总(NoSQL)
mysql面试题汇总通常数据库分为关系型数据库和⾮关系型数据库,关系型数据库的优势到现在也是⽆可替代的,⽐如MySQL、Oracle、SQL Server、
DB2、SyBase、Informix、PostgreSQL以及⽐较⼩型的Access等等数据库,这些数据库⽀持复杂的SQL操作和事务机制,适合⼩量数据读写场景;但是到了⼤数据时代,⼈们更多的数据和物联⽹加⼊的数据已经超出了关系数据库的承载范围。
⼤数据时代初期,随着数据请求并发量⼤不断增⼤,⼀般都是采⽤的集同步数据的⽅式处理,就是将数据库分成了很多的⼩库,每个数据库的数据内容是不变的,都是保存了源数据库的数据副本,通过同步或者异步⽅式保证数据的⼀致性,每个库设定特定的读写⽅式,⽐如主数据库负责写操作,从数据库是负责读操作,等等根据业务复杂程度以此类推,将业务在物理层⾯上进⾏了分离,但是这种⽅式依旧存在⼀定的负载压⼒的问题,企业数据在不断的扩增中,后⾯就采⽤分库分表的⽅式解决,对读写负载进⾏分离,但是这种实现依旧存在不⾜,且需要不断进⾏数据库服务器扩容。
本⽂着重介绍⼀下NoSQL(Not Only SQL)数据库。我总体将NoSQL分为5类
⼀、列族数据库
下⾯简单介绍⼏个
(1)Cassandra:
Cassandra是⼀个列存储数据库,⽀持跨数据中⼼的数据复制。它的数据模型提供列索引,log-structured修改,⽀持反规范化,实体化视图和嵌⼊超⾼速缓存。
(2)HBase:
Apache Hbase源于Google的Bigtable,是⼀个开源、分布式、⾯向列存储的模型。在Hadoop和HDFS之上提供了像Bigtable⼀样的功能。
(3)Amazon SimpleDB:
Amazon SimpleDB是⼀个⾮关系型数据存储,它卸下数据库管理的⼯作。开发者使⽤Web服务请求存储和查询数据项
(4)Apache Accumulo:
imgur app如何登录Apache Accumulo的有序的、分布式键值数据存储,基于Google的BigTable设计,建⽴在Apache Hadoop、Zookeeper和Thrift技术之上。
(5)Hypertable:
Hypertable是⼀个开源、可扩展的数据库,模仿Bigtable,⽀持分⽚。
(6)Azure Tables:
Windows Azure Table Storage Service为要求⼤量⾮结构化数据存储的应⽤提供NoSQL性能。表能够⾃动扩展到TB级别,能通过REST 和Managed API访问。
⼆、键值数据库
html文本框背景透明下⾯简单介绍⼏个
(1)Redis:
Redis是⼀个开源的键值存储。⽀持主从式复制、事务,Pub/Sub、Lua脚本,还⽀持给Key添加时限。
(2)Riak:
Riak是⼀个开源,分布式键值数据库,⽀持数据复制和容错。
迅搜(3)Dynamo:
Dynamo是⼀个键值分布式数据存储。它直接由亚马逊Dynamo数据库实现;在亚马逊S3产品中使⽤。
(4)Oracle NoSQL Database:
来⾃Oracle的键值NoSQL数据库。它⽀持事务ACID(原⼦性、⼀致性、持久性和独⽴性)和JSON。
(5)Voldemort:
前端培训机构推荐具备数据备份和分布式键值存储系统。
(6)Aerospike:
Aerospike数据库是⼀个键值存储,⽀持混合内存架构,通过强⼀致性和可调⼀致性保证数据的完整性。
三、⽂档数据库
(1)MongoDB:
开源、⾯向⽂档,也是当下最⼈⽓的NoSQL数据库。
(2)CounchDB:
Apache CounchDB是⼀个使⽤JSON的⽂档数据库,使⽤Java做MapReduce查询,以及⼀个使⽤HTTP的API。
(3)Couchbase:
NoSQL⽂档数据库基于JSON模型。
(4)RavenDB:
RavenDB是⼀个基于.NET语⾔的⾯向⽂档数据库。
(5)MarkLogic:
MarkLogic NoSQL数据库⽤来存储基于XML和以⽂档为中⼼的信息,⽀持灵活的模式。
四、图数据库
(1)Neo4j:
简述web服务的特点Neo4j是⼀个图数据库;⽀持ACID事务(原⼦性、独⽴性、持久性和⼀致性)。
(2)InfiniteGraph:
⼀个图数据库⽤来维持和遍历对象间的关系,⽀持分布式数据存储。
(3)AllegroGraph:
AllegroGraph是结合使⽤了内存和磁盘,提供了⾼可扩展性,⽀持SPARQ、RDFS++和Prolog推理。
五、内存数据⽹格
(1)Hazelcast:
Hazelcast CE是⼀个开源数据分布平台,它允许开发者在数据库集之上共享和分割数据。
(2)Oracle Coherence:
Oracle的内存数据⽹格解决⽅案提供了常⽤数据的快速访问能⼒,⼀致性⽀持事务处理能⼒和数据的动态划分。
(3)Terracotta BigMemory:
来⾃Terracotta的分布式内存管理解决⽅案。这项产品包括⼀个Ehcache界⾯、Terracotta管理控制台和BigMemory-Hadoop连接器。(5)Infinispan:
Infinispan是⼀个基于Java的开源键值NoSQL数据存储,和分布式数据节点平台,⽀持事务,peer-to-peer 及client/server 架构。(6)GridGain:
分布式、⾯向对象、基于内存、SQL+NoSQL键值数据库。⽀持ACID事务。
(7)GigaSpaces:
GigaSpaces内存数据⽹格能够充当应⽤的记录系统,并⽀持各种各样的⾼速缓存场景。
NoSQL的优势:
NoSQL数据库⼀直以性能、可扩展性、灵活的模式和分析能⼒聚焦着⼈们的注意⼒。尽管关系型数据库对于某些⽤例来说仍是⼀个不错的选择,就像结构数据和要求ACID事务的应⽤。
1、存储的数据实质上是半结构化或者松散的;
2、要求⼀定的等级的性能和扩展性;
3、存取该数据的应⽤与最终的⼀致性相吻合;
4、灵活的模式;
5、⽆共享架构;
6、分⽚作为数据存储模型的⼀部分;
7、异步复制;
8、使⽤BASE替代ACID事务。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论