Amazon SimpleDB与Amazon DynamoDB

时间:2012-01-22 13:15:20

标签: nosql amazon-web-services amazon-simpledb amazon-dynamodb

我对Amazon SimpleDB的内容有一些基本的了解,但根据Amazon DynamoDB说明,它似乎几乎相同:NoSQL Key-value store服务。

有人可以简单地解释它们之间的主要差异,并说明在哪些情况下选择一个

9 个答案:

答案 0 :(得分:166)

这可以通过相应的常见问题解答Q: How does Amazon DynamoDB differ from Amazon SimpleDB? Which should I use?(哈希链接不再有效,但使用页内查找以在页面内查找问题)在某种程度上解决,并在段落末尾使用最紧凑的摘要:

  

虽然SimpleDB具有缩放限制,但它可能非常适合   需要查询灵活性的较小工作负载。 Amazon SimpleDB   自动索引所有项属性,从而支持查询   以性能和规模为代价的灵活性。

所以这是性能/可伸缩性和简单性/灵活性之间的权衡,即对于更简单的场景,可能更容易开始使用SimpleDB来避免构建DynamoDB应用程序的复杂性(请参阅下面的不同视角)。 / p>

链接的FAQ条目也引用了Werner Vogel的Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications,这确实是一个精心制作的,因此强烈推荐的阅读,关于亚马逊的NoSQL历史,特别是Dynamo;它还包含更多有关您的问题的见解,例如

  

很明显,开发人员 [甚至亚马逊工程师] 强烈要求简单性   细致的控制,因为他们“用脚”投票并采纳   基于云的AWS解决方案,如Amazon S3和Amazon SimpleDB   发电机。 [加我的]

显然已经引入了DynamoDB来解决这个问题,因此可以作为SimpleDB的继承者,而不是“仅仅”修改他们现有的NoSQL产品:

  

我们得出结论,理想的解决方案将结合最好的部分   最初的Dynamo设计(增量可扩展性,可预测的高   性能)与SimpleDB的最佳部分(易于管理   云服务,一致性和基于表的数据模型   比纯粹的键值存储更丰富。)

Werner的摘要建议DynamoDB最适合现在任何规模的应用程序:

  

Amazon DynamoDB旨在保持可预测的高性能   并且对于任何规模的工作负载来说都是非常经济有效的   最小到最大的互联网规模应用程序。

答案 1 :(得分:23)

使用SimpleDB或DynamoDB,这取决于您的使用案例,我分享了使用SimpleDB in some cases instead of DynamoDB的一些经验。在另一个产品中,我使用SimpleDB和DynamoDB来存储不同的数据。

答案 2 :(得分:11)

SimpleDB似乎没有从亚马逊那里得到任何爱 - 很难找到在AWS控制台中配置它的位置。 Seems like SimpleDB is no longer being iterated on - 使用DynamoDB作为AWS上文档数据库的首选。

  

SimpleDb不再真正“迭代”了。意思是没有   simpledb的未来新发展。这是“维持和   支持“,但它不会变得更好。

答案 3 :(得分:5)

以前的差异之一(正如@Mason Zhang在上面的文章中所述)在索引中。 DynamoDB用于限制您在创建表时创建索引。 但是,现在(自2014年初以来),存在全球二级指数(GSI)的概念。可以随时在桌面上创建GSI。支持最多5个。 因此,索引不再是许多用例的阻塞问题。

您还应该知道SimpleDB具有大小和性能限制。 (10GB,比方说,25个请求/秒)

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

答案 4 :(得分:5)

3个关键差异:

  1. 索引

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

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

    • 如果数据存储超过10GB,SimpleDB需要手动分区。
    • DynamoDB自动在引擎盖下分发数据,从而提供非常高的可扩展性。

答案 5 :(得分:0)

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

不同之处在于可扩展性(以及其他一些方面,但在我看来,扩展具有最大价值)。 SimpleDB与MongoDB非常相似,但在扩展方面有一堆limitations

但DynamoDB允许您进行小规模配置,并扩展所需的预配置吞吐量。并且在不需要时缩小。 (即。在促销期间,名人推荐注册等类似场景会有基于时间的硬件需求峰值)

答案 6 :(得分:0)

我认为Simple DB与Dynamo DB的主要区别在于

  1. 在延迟方面具有可预测的性能,能够在不影响延迟和吞吐量的情况下处理大量数据。 DynamoDB通过使用分区键
  2. 实现此目的
  3. 读取,写入可以自定义的优化
  4. 更好的最终一致性模型,因为使用了一致的哈希算法

答案 7 :(得分: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.

答案 8 :(得分:0)

您应该意识到这是两个主要区别。

使用DynamoDB,您可以构建具有几乎无限的吞吐量和存储空间的应用程序。而对于SimpleDB而言,情况并非如此。

  • 1:10GB的严格存储限制

SimpleDB的严格存储限制为10 GB。 DynamoDB对数据没有存储限制。高度 在存储和计算方面均可扩展。

  • 2:每秒钟最多可进行25次写操作

SimpleDB最多可以处理每秒25次写入操作。没有这样的 DynamoDB中的限制。