DynamoDB或SimpleDB可以取代我的MongoDB用例吗?

时间:2012-02-20 00:53:13

标签: mongodb amazon-dynamodb

我想知道DynamoDB或SimpleDB是否可以取代我的MongoDB用例?以下是我使用MongoDB的方法

  • 15k条目,我每小时添加200个条目
  • 使用(ensureIndex)
  • 索引每列15列
  • 一半列是整数,其他列是文本字段(基本上不超过10个唯一值)
  • 我每小时运行大约10k DB读取,现在它们对MongoDB非常快。这是一个在线约会网站。因此,Mongo查询的平均值是对2列(例如年龄和高度)进行范围搜索,“IN”搜索大约4列(例如种族是A,B或C ......宗教是A,B, ro C)。
  • 我使用限制并经常跳过(例如,给我前40个条目,接下来的40个条目等)
  • 我使用perl来读/写

2 个答案:

答案 0 :(得分:10)

我假设您要问,因为您想直接迁移到AWS托管的持久性解决方案? DynamoDB和SimpleDB都是k / v存储,因此不会成为MongoDB等文档存储的“替代”替代品。

除了限制/跳过(需要更多k / v兼容方法)之外,您提到的两个解决方案中的任何一个都可以轻松满足您的所有功能要求(尽管我认为DynamoDB是更好的选择)但这不是主要问题。主要问题是从文档存储,特别是具有广泛查询功能的文档存储转移到k / v存储。您需要重新构建模式,重新考虑索引,在k / v商店的约束下工作,利用k / v商店的好处等。

坦率地说,如果您当前的解决方案有效,并且MongoDB感觉功能良好,我肯定不会迁移,除非您有非常强大的非技术原因(例如,您的老板希望您这样做))

你会说你考虑这一举动的原因是什么,或者你只是在探讨它是否可能在一开始?

答案 1 :(得分:4)

如果您计划在AWS上拥有完整的应用程序,那么您也可以考虑使用Amazon RDS(托管的托管MySQL)。从您的描述中不清楚您是否确实需要MongoDB的文档模型,因此只考虑RDS可能接近您所需的查询功能。

使用SimpleDB或DynamoDB很可能需要您根据聚合查询重新考虑一些功能。关于在SimpleDB和DynamoDB之间进行选择,存在许多重要的差异,但我认为从您的角度来看最有趣的是:

  1. SimpleDB索引所有属性
  2. 您需要了解有关SimpleDB的大量提示和技巧(请参阅what the guys from Netflix learned while using SimpleDB
  3. DynamoDB定价模型基于实际的写入/读取操作(请参阅我的notes about DynamoDB