最好的nosql数据库_最好的NoSQL数据库

最好的nosql数据库

NoSQL的现代意义可以追溯到2009年,它指的是不基于关系表构建的数据库,这与SQL数据库不同。 通常, NoSQL数据库比传统SQL 数据库拥有更好的设计灵活性,水平可伸缩性和更高的可用性,有时以牺牲一致性为代价。

NoSQL数据库可以采用多种形式。 它们可以是云服务,也可以是本地安装。 它们可以支持一个或多个数据模型:键值,文档,列,图,有时甚至是关系模型,这是NoSQL有时被解析为“不仅仅是SQL”的原因之一。 它们还可以支持从强一致性到最终一致性的一系列一致性模型。

[ InfoWorld的2020年度技术奖获奖者:年度最佳软件开发,云计算,数据分析和机器学习产品 ]

键值是四种非关系数据模型中最基本的。 有时,其他数据库模型是在键值基础层之上实现的。

列数据库具有键,值和时间戳。 时间戳用于确定有效内容。 Cassandra是列数据库的突出示例。

文档存储区(例如MongoDB )具有查询语言或API,用于按内容查找文档。 它们还具有键查找,例如键值存储。

图形数据库(例如Neo4j )明确表示节点之间的连接。 这使它们在分析网络(计算机,人,地理或其他方面)时比关系数据库更有效 。 (我将在以后的文章中介绍图形数据库。)

一些数据库公开了多个数据模型。 诸如Azure Cosmos DB之类的工具将数据模型彼此隔离。 其他的,如FaunaDB,则合并了数据模型。

其中一些数据库支持全局分布的数据,并可能支持自动分片。 例如,Amazon DocumentDB在三个AWS可用区中复制您的数据的六个副本,并最多允许15个只读副本。 Amazon DynamoDB支持多个区域和全局表。

Azure Cosmos DB是全局分布和水平分区的。 YugaByte DB不仅是为星球级应用程序设计的,而且还支持多云集群,自动分片和重新平衡以及分布式ACID事务。

气钉

Aerospike是一个分布式的,可伸缩的,高度一致的,无模式的键值数据库,用于实时大数据操作。 数据由名称空间(相当于RDBMS数据库)和容器(相当于RDBMS列)构成。 每个bin支持某些数据类型:整数,字符串,浮点数,列表,地图,geojson,二进制对象或语言序列化的对象。

Aerospike将其主索引和二级索引保留在RAM中,并将其数据保留在RAM或SSD中。 您可以将Aerospike数据库备份到硬盘。 Aerospike提供社区版和企业版。

Aerospike的“无共享”架构旨在通过自动故障转移,复制和(在企业版中)跨数据中心同步来可靠地存储TB级数据。 该层线性缩放。

Aerospike使用基于Paxos的算法来确定哪些节点被视为群集的一部分。 每当添加或删除节点时,群集都会重新形成。 每个节点使用分布式哈希算法将主索引空间划分为数据切片并分配所有者。 Aerospike数据迁移模块平衡了群集中所有节点之间的数据分布。

Aerospike查询语言(AQL)是具有类似SQL语法的命令行实用程序。 您还可以使用其API从10多种编程语言中查询Aerospike。

阅读InfoWorld 对Aerospike评论

亚马逊文件数据库

Amazon DocumentDB是一种快速,可扩展,高度可用且受完全管理的文档数据库服务,支持MongoDB工作负载。 Amazon DocumentDB是从头开始设计的,可为您提供大规模操作关键任务的MongoDB工作负载时所需的性能,可伸缩性和可用性。

Amazon DocumentDB通过模拟MongoDB客户端期望来自MongoDB服务器的响应来实现Apache 2.0开源MongoDB 3.6 API,从而允许您将现有的MongoDB驱动程序和工具与DocumentDB一起使用。 Amazon云中的数据库服务还使用分布式的,容错的,自我修复的存储系统,该系统可以自动扩展到每个数据库集群最大64 TB。

在Amazon DocumentDB中,存储和计算是分离的,从而允许各自独立扩展。 无论数据大小如何,开发人员都可以在几分钟内增加多达15个低延迟读取副本,从而将读取容量提高到每秒数百万个请求。 Amazon DocumentDB旨在实现99.99%的可用性,并在三个AWS可用区中复制数据的六个副本。

亚马逊DynamoDB

Amazon DynamoDB是一个键值和文档数据库,可在任何规模上提供单位毫秒的性能。 它是一个完全托管的,多区域,多主数据库,具有针对Internet规模的应用程序的内置安全性,备份和还原以及内存缓存。 DynamoDB每天可以处理超过10万亿个请求,并支持每秒超过2000万个请求的高峰。

DynamoDB全局表跨多个AWS区域复制您的数据,以使您可以快速,本地访问全局分布式应用程序的数据。 对于需要具有微秒级延迟的更快访问的用例,DynamoDB Accelerator(DAX)提供了一个完全托管的内存中缓存。

DynamoDB会自动上下缩放表以调整容量并保持性能。 可用性和容错性是内置的。

Azure Cosmos数据库

Azure Cosmos DB是一种全局分布的,水平分区的多模型数据库服务。 它提供了四个数据模型(键值,列族,文档和图形)和五个可调的一致性级别(强,有界的陈旧性,会话,一致的前缀和最终的一致性)。

低于的一致性级别可提供更高的性能,但可以换来较弱的一致性。 大约70%的Cosmos DB租户选择会话一致性,这仅会产生每次读取一致性的成本的一半。

Cosmos DB提供了五种API集:SQL(方言),MongoDB兼容,Azure表兼容,图形(Gremlin)和Apache Cassandra兼容。 Cosmos DB会自动为所有数据建立索引,而无需您处理架构和索引管理。

Cosmos DB的设计目标包括弹性的全局可伸缩性,低成本的操作,较低的读写延迟,99.99%的可用性,可预测和可调的数据一致性,严格的财务支持的全面SLA,自动模式/索引管理和版本控制,对多个本地支持数据模型,以及用于访问数据的常用API。

在最低级别上,Cosmos DB具有在Azure Service Fabric之上实现的与架构无关的基于原子记录序列(ARS)的数据库引擎。 四个应用程序数据模型都投影到基于ARS的核心模型上。

如您所料,五个数据库API集并不会全部映射到每个数据模型。 SQL API以前称为DocumentDB API。 它适用于JSON文档数据库。 MongoDB API也适用于文档数据库。 请注意,MongoDB API和SQL API的有线协议有所不同,因此即使可以在两者之间迁移文档数据,也不能将一个帐户同时用于这两个API。 Gremlin API用于属性图数据库,Azure Table API用于键值表,而Cassandra API用于宽列(列族)数据库。

Microsoft将Cosmos DB用于内部应用程序已有一段时间了。 例如,Azure门户将Cosmos DB用作其全球事务存储,Xbox和Skype也是如此。

阅读我对Azure Cosmos DB的评论

Cassandra和DataStax

Apache Cassandra是一个高度可用的分布式数据存储,通过一致性来评估可用性和分区容忍度。 Cassandra的设计将Amazon Dynamo键值存储的分区和复制与Google Bigtable的日志结构化ColumnFamily数据模型结合在一起。 当您添加节点时,Cassandra会线性缩放。

在Cassandra中一致性并没有完全丧失; 这是对延迟的权衡。 用户可以指定每个读取和写入的一致性级别,范围从仅要求一个节点到要求群集仲裁,再到要求所有节点。 另一个中间选择是需要本地仲裁,这是一种在不等待远程节点更新的情况下在数据中心内保持一致性的方法。

DataStax为Cassandra增加了功能和性能。 在其他改进中,DataStax消除了运行修复脚本的需要,并消除了在手动修复失败时可能发生的群集中断。 自动防止DataStax Enterprise节点过载客户端或副本请求; 并使用了每核线程体系结构,将读写操作的吞吐量提高了两倍。

阅读我对DataStax Enterprise的评论

Couchbase服务器

Couchbase Server是一个内存优先,分布式,灵活的JSON文档数据库,在本地集群中具有高度一致性。 Couchbase Lite是一个移动版本,可以在本地运行,并且在连接后也可以同步到服务器。 Couchbase Server可垂直和水平缩放; 在企业版中,您可以独立地扩展不同的服务以实现最佳性能,并更改每个服务的节点数量和节点大小,例如数据,索引,查询和全文搜索服务。

异步操作可帮助Couchbase避免阻止写入,读取或查询。 开发人员可以在需要时在持久性和一致性与延迟之间取得平衡。

Couchbase JSON数据模型同时支持基本数据类型和复杂数据类型:数字,字符串,嵌套对象和数组。 您可以创建规范化或非规范化的文档。 Couchbase不需要甚至不支持架构。

您可以通过四种机制访问Couchbase文档:键值,基于SQL的查询,全文搜索和JavaScript事件。 如果您的JSON文档包含子文档或数组,则可以直接使用路径表达式访问它们,而无需传输和解析整个文档。

您可以在本地,云和Kubernetes上安装Couchbase Server 。 Couchbase Server企业版可免费进行开发和测试,并且可以通过订购进行生产。 开源的Couchbase Server社区版可免费用于所有目的。 除了一些省略的功能外 ,Community Edition还与Enterprise Edition兼容。

借助跨数据中心复制(XDCR),Couchbase Server可以跨集群,数据中心和可用性区域进行异步主动-主动复制,以避免产生高写入延迟。 XDCR允许Couchbase成为全局分布的数据库,但代价是允许群集之间实现最终(而非强大)的一致性。

Couchbase Server查询语言N1QL(发音为“镍”)与标准SQL非常相似,具有JSON扩展名,例如用于联接的键和哈希提示以及用于处理已从文档中完全省略的值的IS MISSING条件。 Couchbase提供了用于八种编程语言和三种框架的SDK。

阅读我对Couchbase Server的评论

CouchDB

Apache CouchDB是一个开放源代码文档模型数据库,具有查询引擎,复制和冲突解决方案。 它使用RESTful HTTP API进行查询和更新。 CouchDB在Erlang中实现。

CouchDB文件布局和承诺系统具有所有ACID属性。 在磁盘上,CouchDB永远不会覆盖已提交的数据或关联的结构,从而确保数据库文件始终处于一致状态。 这是一种“仅崩溃”设计,其中CouchDB服务器不执行关闭过程; 相反,它只是终止了。

CouchDB读取操作使用多版本并发控制(MVCC)模型,其中每个客户端从读取操作的开始到结束都可以看到一致的数据库快照。 文档在B树中按其名称(DocID)和序列ID进行索引。

CouchDB是基于对等的分布式数据库系统。 它允许用户和服务器在断开连接时访问和更新相同的共享数据。 这些更改随后可以双向复制。

CouchDB允许在数据库中同时存在任何数量的冲突文档,每个数据库实例确定性地确定哪个文档是“赢家”,哪些是冲突。 当发生分布式编辑冲突时,每个数据库副本都会看到相同的胜出版本,并且每个都有解决冲突的机会。

动物数据库

FaunaDB是一个分布式的,高度一致的OLTP NoSQL数据库,它符合ACID并提供了多模型接口。 它具有主动-主动式体系结构,可以跨越云以及大陆。

FaunaDB通过单个查询支持文档,关系,图形和时间数据集。 除了自己的FQL查询语言外,该公司还宣布了对GraphQL的支持,以及将来对CQL和SQL的支持。

Google Cloud Bigtable

Cloud Bigtable是一个公开的,高度可扩展的(最多PB),面向列的NoSQL数据库,该服务使用与Google内部版本相同的代码,该内部版本是Google在2000年代初发明的,并于2006年发表了一篇论文。Bigtable是和是许多Google服务(包括Google搜索,Google Analytics(分析),Google Maps和Gmail)的基础数据库。

翻译自: https://www.infoworld.com/article/3409139/the-best-nosql-databases.html

最好的nosql数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值