首页 文章

Amazon SimpleDB与Amazon DynamoDB

提问于
浏览
176

我有一些基本的理解Amazon SimpleDB是什么,但根据Amazon DynamoDB描述它似乎几乎相同:一个NoSQL Key-value store服务 .

有人可以简单解释它们之间的 main differences 并告诉在哪些情况下选择 one over the other .

7 回答

  • 160

    3个主要差异:

    • 索引

    • SimpleDB在表中为"EVERY"字段创建索引 .

    • DynamoDB您必须在创建数据库之前设置索引字段,并且无法修改 .

    • 定价:

    • SimpleDB定价基于机器小时数和存储容量

    • DynamoDB按每秒读/写记录的容量收费 .

    • 可扩展性:

    • 如果数据存储超过10GB,SimpleDB需要手动分区 .

    • DynamoDB自动分配数据,从而提供非常高的可扩展性 .

  • 4

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

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

  • 23

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

  • 5

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

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

    也许最终,DynamoDB将取代除最简单用例之外的所有SimpleDB .

  • 7

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

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

    因此,在性能/可伸缩性和简单性/灵活性之间进行权衡,即对于更简单的场景,使用SimpleDB可能仍然更容易,以避免为DynamoDB构建应用程序的复杂性(请参阅下面的不同视角) .

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

    显而易见的是,开发人员(甚至是亚马逊的工程师)非常喜欢简单到精细控制,因为他们“自己动手”投票,并采用基于 Cloud 的AWS解决方案,如Amazon S3和Amazon SimpleDB,而不是Dynamo . [加我的]

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

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

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

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

  • 0

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

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

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

  • 0

    我相信Simple DB与Dynamo DB的主要区别在于

    • 在延迟方面具有可预测的性能,能够在不影响延迟和吞吐量的情况下处理大量数据 . DynamoDB通过使用分区键实现此目的

    • 读取,写入可以的优化定制

    • 更好的最终一致性模型,因为使用了一致的哈希算法

相关问题