MongoLab 与 Azure 表存储
Posted
技术标签:
【中文标题】MongoLab 与 Azure 表存储【英文标题】:MongoLab vs Azure Table Storage 【发布时间】:2013-01-23 00:11:59 【问题描述】:以 100gb 的数据库为例:
Azure 存储成本:6.05 英镑/平方米 带有 1 个节点的 AWS 上的 MongoLab 成本:153.18 英镑/米
我错过了什么吗?计算错误?有人可以在这里为我解决问题吗?我更喜欢使用 MongoLab,因为我真的很喜欢 node/mongoDB。但使用 Table Storage 似乎是一种更具成本效益的解决方案。
我知道键/值和文档存储之间的区别,我更喜欢后者。
【问题讨论】:
【参考方案1】:您需要考虑 Azure 表存储 (ATS) 是存储即服务。您无需设置任何服务器来管理存储和相关的 CRUD 操作。这由 Azure 为您处理,因为 ATS 是一个庞大的多租户系统。您只需申请一个帐户,接收一个端点(加上主密钥和辅助密钥),然后就可以走了,每 GB 支付大约 7 美分(每 100K 交易支付一美分,这相当微不足道)。
使用 MongoDB,您需要部署自己的服务器,无论是在 AWS 还是在 Azure(或本地或其他任何地方),以及配置存储。开箱即用,今天的云提供商没有原生的 MongoDB 即服务产品。您的成本基础现在比 ATS 高得多,并且您负责备份/快照、MongoDB 维护等。即使是简单的 MongoDB 部署也将花费您至少两个虚拟机实例(不建议在生产中使用独立服务器由于定期停机)。最小的 Azure 实例为 0.02 美元/小时或约 14 美元/月 x 2,最低占用空间约为 30 美元/月(这是一个内存不足 1GB 的低端虚拟机;它不会为您提供高性能 MongoDB,但可能非常适合仅用于访问量很少的存在点网站或博客)。牺牲可用性,您可以以 14 美元/月加上存储成本(需要在持久存储中,所以您说的是 7 美分/GB/月)运行单个超小型实例。
现在,您提到了 MongoLab。他们确实拥有 MongoDB 即服务,并构建了多租户托管解决方案,并且他们的服务可在包括 Azure 在内的多个云上使用。他们收取的价格考虑了他们在虚拟机实例、存储和带宽以及服务器维护、备份策略、支持、高可用性、监控等方面的投资。
我不会过于关注存储成本是您唯一的决定因素。如果您需要使用 ATS 执行任何类型的复杂查询,例如需要多个索引字段,则您需要构建额外的表来提供这些索引(或者您最终会进行分区扫描或表扫描以查找您需要的内容需要)。 MongoDB 有一个非常强大的搜索和聚合引擎。如果您的应用程序需要这个,您可能会在开发人员时间工程和维护额外的表存储复杂性上花费更多的钱,而不是使用 MongoDB 并让您的应用程序“今天”运行。另一方面,如果您的数据非常适合表存储,其中分区 + 行键涵盖了绝大多数搜索情况,并且您可以利用实体组事务进行原子更新,则应考虑表存储不仅是成本,还有规模(每个存储帐户 200TB)和性能。
我希望这会有所帮助...
【讨论】:
我还要补充一点,使用存储即服务产品,您通常不会获得执行引擎。这是 MonoDB/SQL Azure 与 Azure 表存储之间的巨大差异。执行发生在客户端和服务器上,而如果我运行存储过程/sql 语句,我只关心客户端上的结果。这样做的原因是,做一些简单的事情,比如获取计数或分析,您必须将一些数据/元数据带回客户端,然后对其进行处理(在某些 Azure 表存储操作的情况下)。以上是关于MongoLab 与 Azure 表存储的主要内容,如果未能解决你的问题,请参考以下文章
Azure 表存储:是不是可以使用与添加两列值的结果进行比较的查询条件?
有没有办法将 PredicateBuilder 与 Azure 表存储一起使用?