在几年内,nosql数据库一直以性能、可扩展性、灵活的模式和分析能力聚焦着人们的注意力。尽管关系型数据库对于某些用例来说仍是一个不错的选择,就像结构数据和要求acid事务的应用,但是nosql在以下用例中将更具优势: 存储的数据实质上是半结构化或者松散的
在几年内,nosql数据库一直以性能、可扩展性、灵活的模式和分析能力聚焦着人们的注意力。尽管关系型数据库对于某些用例来说仍是一个不错的选择,就像结构数据和要求acid事务的应用,但是nosql在以下用例中将更具优势:
存储的数据实质上是半结构化或者松散的。 要求一定的等级的性能和扩展性。 存取该数据的应用与最终的一致性相吻合。非关系型数据库典型支持以下功能:
灵活的模式 无共享架构 分片作为数据存储模型的一部分 异步复制 使用base替代acid事务infoq英文网对当下经常使用的nosql数据库进行了盘点:
文档数据库
mongodb:开源、面向文档,也是当下最人气的nosql数据库。 counchdb:apache counchdb是一个使用json的文档数据库,使用javascript做mapreduce查询,以及一个使用http的api。 couchbase:nosql文档数据库基于json模型。 ravendb:ravendb是一个基于.net语言的面向文档数据库。 marklogic:marklogic nosql数据库用来存储基于xml和以文档为中心的信息,支持灵活的模式。
图数据库
neo4j: neo4j是一个图数据库;支持acid事务(原子性、独立性、持久性和一致性) infinitegraph:一个图数据库用来维持和遍历对象间的关系,支持分布式数据存储。 allegrograph:allegrograph是结合使用了内存和磁盘,提供了高可扩展性,支持sparq、rdfs++和prolog推理。 其他图数据库。
键值数据存储
riak:riak是一个开源,分布式键值数据库,支持数据复制和容错。 redis:redis是一个开源的键值存储。支持主从式复制、事务,pub/sub、lua脚本,还支持给key添加时限。 dynamo:dynamo是一个键值分布式数据存储。它直接由亚马逊dynamo数据库实现;在亚马逊s3产品中使用。 oracle nosql database:来自oracle的键值nosql数据库。它支持事务acid(原子性、一致性、持久性和独立性)和json。 oracle nosql database:具备数据备份和分布式键值存储系统。 voldemort:具备数据备份和分布式键值存储系统。
aerospike:aerospike数据库是一个键值存储,支持混合内存架构,通过强一致性和可调一致性保证数据的完整性。列存储数据库
cassandra:cassandra是列存储数据库,支持跨数据中心的数据复制。它的数据模型提供列索引,log-structured修改,支持反规范化,实体化视图和嵌入超高速缓存。 hbase:apache hbase源于google的bigtable,是一个开源、分布式、面向列存储的模型。在hadoop和hdfs之上提供了像bigtable一样的功能。 amazon simpledb:amazon simpledb是一个非关系型数据存储,它卸下数据库管理的工作。开发者使用web服务请求存储和查询数据项。 apache accumulo:apache accumulo的有序的、分布式键值数据存储,基于google的bigtable设计,建立在apache hadoop、zookeeper和thrift技术之上。 hypertable:hypertable是一个开源、可扩展的数据库,模仿bigtable,支持分片。 azure tables:windows azure table storage service为要求大量非结构化数据存储的应用提供nosql性能。表能够自动扩展到tb级别,能通过rest和managed api访问。 其它列存储数据库。内存数据网格
hazelcast:hazelcast ce是一个开源数据分布平台,它允许开发者在数据库集群之上共享和分割数据。 oracle coherence:oracle的内存数据网格解决方案提供了常用数据的快速访问能力,一致性支持事务处理能力和数据的动态划分。 terracotta bigmemory:来自terracotta的分布式内存管理解决方案。这项产品包括一个ehcache界面、terracotta管理控制台和bigmemory-hadoop连接器。 gemfire:vmware vfabric gemfire是一个分布式数据管理平台,也是一个分布式的数据网格平台,支持内存数据管理、复制、划分、数据识别路由和连续查询。 infinispan:infinispan是一个基于java的开源键值nosql数据存储,和分布式数据节点平台,支持事务,peer-to-peer 及client/server 架构。 gridgain:分布式、面向对象、基于内存、sql+nosql键值数据库。支持acid事务。 gigaspaces:gigaspaces内存数据网格能够充当应用的记录系统,并支持各种各样的高速缓存场景。nosql database adoption trends(编译/陈翔宇 审校/仲浩)
csdn推荐:欢迎免费订阅《hadoop与大数据周刊》获取更多hadoop技术文献、生态圈趋势。
