我对Amazon SimpleDB有一些基本的了解,但根据Amazon DynamoDB的描述,它似乎几乎一样:是一个NoSQL键值存储服务。
能否有人简单地解释它们之间的主要区别,并说明在哪些情况下选择其中之一。
我对Amazon SimpleDB有一些基本的了解,但根据Amazon DynamoDB的描述,它似乎几乎一样:是一个NoSQL键值存储服务。
能否有人简单地解释它们之间的主要区别,并说明在哪些情况下选择其中之一。
这个问题在相关的常见问题解答问: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).Amazon DynamoDB旨在维护可预测的高性能,并且对于任何规模的工作负载(从最小到最大的互联网应用程序),都具有高度的成本效益。
最近Amazon似乎对SimpleDB没有给予太多关注,甚至很难在AWS控制台中找到它的配额位置。看起来SimpleDB不再有任何迭代更新 - 如果需要在AWS上使用文档数据库,请优先考虑使用DynamoDB。
SimpleDB不再真正进行“迭代更新”。这意味着SimpleDB没有未来的新开发计划。它是被“维护和支持”的,但不会变得更好。
三个主要差异:
索引
定价:
可扩展性:
在过去,DynamoDB和SimpleDB之间的一个差异(正如@Mason Zhang在他的文章中所述)是索引。DynamoDB曾经限制您只能在创建表时创建索引。 然而,现在(自2014年初以来),有全局辅助索引(GSI)的概念。可以随时在表上创建GSI。支持最多5个。 因此,对于许多用例,索引不再是阻塞问题。
您还应该知道,SimpleDB存在大小和性能限制。(10GB和最多25个请求/秒)
也许最终,除了最简单的用例外,DynamoDB会取代SimpleDB。
简单来说,这两个数据存储都是NoSql类型。
区别在于可扩展性(还有一些其他方面,但在我看来,可伸缩性最重要)。SimpleDB与MongoDB非常相似,但在可扩展性方面有一堆限制。
但是DynamoDB允许您进行小规模预配并根据需要扩展多个预配吞吐量,而且不需要时可以进行缩减。 (即在促销,名人推荐注册等情况下会出现基于时间的硬件需求峰值)
这是你应该注意的两个主要区别
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.