我希望在Windows Azure上使用NoSQL数据库,并且数据量非常大。Azure Table存储或使用Worker角色运行的MongoDB数据库哪种可以提供更好的性能和可扩展性?有没有人使用过Worker角色在Azure上使用MongoDB?请分享您对在Azure上使用MongoDB与Azure Table存储相比的想法。
我希望在Windows Azure上使用NoSQL数据库,并且数据量非常大。Azure Table存储或使用Worker角色运行的MongoDB数据库哪种可以提供更好的性能和可扩展性?有没有人使用过Worker角色在Azure上使用MongoDB?请分享您对在Azure上使用MongoDB与Azure Table存储相比的想法。
Table Storage是Windows Azure的一项核心存储功能,可扩展(每个帐户可达500TB),持久(在数据中心三重复制,可选择到另一个数据中心地理复制)且无模式(每行可以包含任何属性)。通过分区键+行键定位行,提供非常快速的查找。所有Table Storage访问都通过良好定义的REST API进行,可通过任何语言使用(已经为.NET、PHP、Java、Python和Ruby创建了基于REST API的SDK)。
MongoDB是面向文档的数据库。要在Azure上运行它,您需要将MongoDB安装到Web/Worker角色或虚拟机上,将其指向云驱动器(从而提供驱动器号)或附加磁盘(适用于Windows/Linux虚拟机),可选地打开日志记录(我建议这样做),并可选地为您的使用定义外部端点(或通过虚拟网络访问它)。顺便说一下,云驱动器/附加磁盘实际上存储在Azure Blob中,因此您具有与Azure Tables相同的耐久性和地理复制。
比较这两者时,请记住,Table Storage是“存储即服务”:您只需访问众所周知的REST终结点即可完成。对于MongoDB,您需要负责维护数据库(例如,每当MongoDB Inc(前10gen)推出新版本的MongoDB时,您需要相应地更新服务器)。
关于jtoberon指向的MongoDB Inc的Alpha版本:如果您仔细查看一下,您会看到一些关键点:
虽然10gen的Windows Azure包装器仍被视为“α级”,但mongod.exe不是。您可以像启动其他Windows exe一样启动mongod exe。这只是管理启动代码,这就是Alpa实现正在展示的内容。
编辑2011-12-8:这已不再处于α状态。您可以在此处下载最新的MongoDB + Windows Azure项目here,其中提供了复制集支持。
关于性能,我认为您需要进行一些基准测试。话虽如此,请考虑以下内容:
编辑2015年4月7日如果您想使用文档数据库即服务,Azure现在提供DocumentDB。
我两个都用过。
Azure Tables:非常简单、快速,即使是简单的查询也很难编写。
Mongo:运行良好,具有多种查询功能,需要多个实例才能保证可靠性。
简而言之,如果你的查询非常简单(键值对),你必须进行成本比较(主要是存储的事务数量与在Azure上托管Mongo的成本)。我会选择使用表存储。
如果您需要更复杂的查询并且不想使用SQL Azure,则很可能Mongo是您的最佳选择。
我知道这个问题有点过时了。我想为那些可能在搜索中遇到这个问题的人添加以下信息。
请注意,现在在Azure上提供MongoDB作为完全托管的服务。(官方Beta版本于2015年4月发布)
See: http://www.mongodb.com/partners/cloud/microsoft or https://azure.microsoft.com/en-us/blog/announcing-new-mongodb-instances-on-microsoft-azure/
请查看(包括定价): https://azure.microsoft.com/zh-cn/marketplace/partners/mongolab/mongolab/
http://www.windowsazure.com/en-us/pricing/calculator/?scenario=data-management
或AzureSQL适用于小型企业
DocumentDB http://azure.microsoft.com/en-us/documentation/services/documentdb/ http://azure.microsoft.com/en-us/documentation/articles/documentdb-limits/
第二选择是许多云提供商,包括亚马逊提供S3或Google表格https://developers.google.com/bigquery/pricing。在2016年的Build大会上,宣布DocumentDB将支持所有MongoDB驱动程序。这解决了DocDB缺乏工具问题的一些难题,同时也让Mongo应用程序更易于迁移。