亚马逊简单数据库与亚马逊动态数据库的比较

227

我对Amazon SimpleDB有一些基本的了解,但根据Amazon DynamoDB的描述,它似乎几乎一样:是一个NoSQL键值存储服务。

能否有人简单地解释它们之间的主要区别,并说明在哪些情况下选择其中之一

8个回答

192

这个问题在相关的常见问题解答问:Amazon DynamoDB和Amazon SimpleDB有什么不同?我应该使用哪一个?中已经得到了一定程度上的解答,段落末尾有最简明扼要的总结:

虽然SimpleDB有一些可扩展性限制,但它可能非常适合需要查询灵活性的较小工作负载。Amazon SimpleDB自动索引所有项属性,从而在性能和规模方面支持查询灵活性。

因此,在性能/可扩展性和简单性/灵活性之间需要权衡,也就是说,对于更简单的场景,始终使用SimpleDB可能会更容易入门,以避免为DynamoDB架构应用程序的复杂性(请参见下面的另一种视角)。

The linked FAQ entry also mentions Werner Vogel's Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications, which is highly recommended for its detailed discussion on the history of NoSQL at Amazon, including Dynamo. It contains many insights addressing the question, such as: "It became obvious that developers [even Amazon engineers] strongly preferred simplicity to fine-grained control as they voted 'with their feet' and adopted cloud-based AWS solutions, like Amazon S3 and Amazon SimpleDB, over Dynamo." Obviously, DynamoDB has been introduced to address this and could thus be considered a successor of SimpleDB rather than just an addition to their existing NoSQL offering. The ideal solution would combine the best parts of the original Dynamo design (incremental scalability, predictable high performance) with the best parts of SimpleDB (ease of administration of a cloud service, consistency, and a table-based data model that is richer than a pure key-value store).
Werner的总结建议根据现在的情况,DynamoDB适合任何规模的应用程序:

Amazon DynamoDB旨在维护可预测的高性能,并且对于任何规模的工作负载(从最小到最大的互联网应用程序),都具有高度的成本效益。


25

最近Amazon似乎对SimpleDB没有给予太多关注,甚至很难在AWS控制台中找到它的配额位置。看起来SimpleDB不再有任何迭代更新 - 如果需要在AWS上使用文档数据库,请优先考虑使用DynamoDB。

SimpleDB不再真正进行“迭代更新”。这意味着SimpleDB没有未来的新开发计划。它是被“维护和支持”的,但不会变得更好。


3
无法超越完美! - dividebyzero

14

三个主要差异:

  1. 索引

    • SimpleDB 为表中的“每个”字段创建索引。
    • DynamoDB 必须在创建数据库之前设置索引字段,且无法修改。
  2. 定价:

    • SimpleDB 定价基于机器小时数和存储容量。
    • DynamoDB 根据每秒读/写记录的容量收费。
  3. 可扩展性:

    • 如果数据存储超过10GB,SimpleDB 需要手动分区。
    • DynamoDB 在后台自动分配数据,因此提供非常高的可扩展性。

6

在过去,DynamoDB和SimpleDB之间的一个差异(正如@Mason Zhang在他的文章中所述)是索引。DynamoDB曾经限制您只能在创建表时创建索引。 然而,现在(自2014年初以来),有全局辅助索引(GSI)的概念。可以随时在表上创建GSI。支持最多5个。 因此,对于许多用例,索引不再是阻塞问题。

您还应该知道,SimpleDB存在大小和性能限制。(10GB和最多25个请求/秒)

也许最终,除了最简单的用例外,DynamoDB会取代SimpleDB。


5
这是两个主要的差异,您应该知道。
使用DynamoDB,您可以构建具有几乎无限吞吐量和存储空间的应用程序。而SimpleDB则不是这种情况。
1:严格的10GB存储限制
SimpleDB有严格的10 GB存储限制。但是,DynamoDB对数据没有存储限制。在存储和计算方面都非常可扩展。
2:最多25个写操作/秒
SimpleDB最多可以处理每秒25个写操作。DynamoDB没有此类限制。

2

简单来说,这两个数据存储都是NoSql类型。

区别在于可扩展性(还有一些其他方面,但在我看来,可伸缩性最重要)。SimpleDB与MongoDB非常相似,但在可扩展性方面有一堆限制

但是DynamoDB允许您进行小规模预配并根据需要扩展多个预配吞吐量,而且不需要时可以进行缩减。 (即在促销,名人推荐注册等情况下会出现基于时间的硬件需求峰值)


1
我认为Simple DB和Dynamo DB的主要区别在于:
  1. 可预测的延迟性能,并且能够处理高容量而不影响延迟和吞吐量。 DynamoDB通过使用分区键来实现这一点。
  2. 可定制的读写优化。
  3. 更好的最终一致性模型,因为使用了一致性哈希算法。

0

这是你应该注意的两个主要区别

1: SimpleDB has a strict storage limitation of 10 GB. However, DynamoDB has no storage limitations for the data. It is highly scalable in terms of both storage and computation.

2:SimpleDB can handle max up to 25 Write Operations/Second. No such limit in DynamoDB.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接