Amazon SimpleDB与Amazon DynamoDB


Answers:


178

这是通过相应的常见问题解答解决的。问:Amazon DynamoDB与Amazon SimpleDB有何不同?我应该使用哪个?(哈希链接不再起作用,而是使用页面内查找在页面内查找问题)已经达到某种程度,最紧凑的摘要位于该段的结尾:

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

因此,要在性能/可伸缩性与简单性/灵活性之间进行权衡,即对于更简单的场景,使用SimpleDB可能会更容易上手,从而避免为DynamoDB设计应用程序的复杂性(请参见下面的不同观点)。

链接的FAQ条目引用了Werner Vogel的Amazon DynamoDB –一种为Internet规模应用程序而设计的快速且可扩展的NoSQL数据库服务,这确实是一个精心制作的,因此强烈建议阅读有关Amazon尤其是Dynamo 的NoSQL历史的文章;它还包含更多解决您问题的见解,例如

显而易见的是,开发人员(甚至是Amazon工程师)在投票时非常喜欢使用简单性而不是细粒度的控制,因此他们选择了Dynamo而不是Amazon S3和Amazon SimpleDB等基于云的AWS解决方案。[另外的地雷]

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

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

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

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


26

使用SimpleDB还是DynamoDB,这取决于您的用例,在某些情况下,我分享了一些使用SimpleDB而不是DynamoDB的经验。在另一个产品中,我同时使用了SimpleDB和DynamoDB来存储不同的数据。


26
喜欢的岗位-不会伤害到这里总结一下
nik.shornikov

也喜欢这个帖子。@Mason,您对SimpleDCB如何从AWS产品控制台中逐渐消失有何想法?您是否仍在使用SimpleDB或已迁移?
David Robbins 2015年

1
@DavidRobbins SimpleDB可能已被AWS弃用,但它仍然存在,非常适合我的数据模式。我尚未迁移我的代码,也不打算这样做。但是对于新产品,我选择其他数据库,例如dynamodb或mysql。
梅森·张

该链接的站点已被Sophos标记为恶意软件。谨慎使用。
伊恩·吉勒姆(IanGilham)

1
@IanGilham谢谢您的提醒。我再次检查扫描报告(virustotal.com/en/url/…):1/68将站点标记为恶意软件。因此Sophos可能有问题。顺便说一句:这个网站实际上是由Google Blogspot管理的。
梅森张

18

如今,SimpleDB似乎并没有从亚马逊获得任何热爱-甚至很难在AWS控制台中找到在何处进行配置。似乎不再使用SimpleDB了 -使用DynamoDB作为AWS上文档数据库的首选。

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


2
无法完善!
dividebyzero

10

3个主要区别:

  1. 索引编制

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

    • SimpleDB的定价基于机器时间和存储容量
    • DynamoDB通过每秒读取/写入记录的容量来收费。
  3. 可扩展性:

    • 如果数据存储超过10GB,则SimpleDB需要手动分区。
    • DynamoDB自动在后台分发数据,因此提供了很高的可伸缩性。

5

索引之间的差异之一(如@Mason Zhang在其上一篇文章中所述)。DynamoDB用于限制您在创建表时创建索引。但是,现在(从2014年初开始),出现了全球二级指数(GSI)的概念。您可以随时在表格上创建GSI。最多支持5个。因此,对于许多用例而言,索引编制不再是一个阻塞问题。

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

也许最终,DynamoDB将在最简单的用例之外的所有用例中替代SimpleDB。


0

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

区别在于可伸缩性(以及其他一些方面,但是在我看来,扩展具有最大的价值)。SimpleDB与MongoDB非常相似,但有很多限制在扩展。

但是DynamoDB允许您以小规模进行预配置,并根据需要扩展许多预配置吞吐量。并在不需要时按比例缩小。(例如,在促销,名人推荐注册等情况下,硬件需求会基于时间激增)


0

我相信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.

0

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

使用DynamoDB,您可以构建几乎无限制的吞吐量和存储的应用程序。SimpleDB 并非如此。

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

SimpleDB具有10 GB严格存储限制。但是,DynamoDB对数据没有存储限制。它在存储和计算方面都具有高度可扩展性。

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.