4

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

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

2 回答 2

10

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

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

坦率地说,如果您当前的解决方案有效,并且如果 MongoDB 感觉很好,我当然不会迁移,除非您有非常强大的非技术理由这样做(例如,您的老板希望您这样做;))

你会说你考虑这个举动的原因是什么,或者你只是在探索这是否可能?

于 2012-02-20T09:07:13.223 回答
4

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

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

  1. SimpleDB 索引所有属性
  2. 您需要了解有关 SimpleDB 的许多提示和技巧(看看Netflix 的人在使用 SimpleDB 时学到了什么
  3. DynamoDB 定价模型基于实际的写入/读取操作(请参阅我关于 DynamoDB 的注释
于 2012-02-20T13:18:52.490 回答