我想在 Windows Azure 上使用 NoSQL 数据库,数据量会很大。使用 Worker 角色运行的 Azure 表存储或 MongoDB 数据库是否可以提供更好的性能和可伸缩性?有没有人使用 Worker 角色在 Azure 上使用过 MongoDB?请分享您对通过 Azure 表存储在 Azure 上使用 MongoDB 的想法。
最佳答案
表存储是一项核心 Windows Azure 存储功能,旨在可扩展(100TB 200TB 每个帐户 500TB)、持久(在数据中心进行三重复制,可选地理复制到另一个数据中心)和无模式(每行可能包含您想要的任何属性)。行通过分区键+行键定位,提供非常快速的查找。所有表存储访问均通过可通过任何语言使用的定义明确的 REST API(使用 SDK,构建在 REST API 之上,已用于 .NET、PHP、Java、Python 和 Ruby)。
MongoDB 是一个面向文档的数据库。要在 Azure 中运行它,您需要将 MongoDB 安装到 web/worker 角色或虚拟机上,将其指向云驱动器(从而提供驱动器号)或附加磁盘(对于 Windows/Linux 虚拟机),可选择打开日志(我建议),并可选择定义一个外部端点供您使用(或通过虚拟网络访问它)。顺便说一下,云驱动器/附加磁盘实际上存储在 Azure Blob 中,为您提供与 Azure Tables 相同的持久性和地理复制。
在比较两者时,请记住表存储是存储即服务:您只需访问众所周知的 REST 端点。使用 MongoDB,您负责维护数据库(例如,每当 MongoDB Inc(以前的 10gen)推出新版本的 MongoDB 时,您都需要相应地更新您的服务器)。
关于 jtoberon 所指的 MongoDB Inc 的 alpha 版本:如果你仔细观察它,你会看到一些关键的东西:
虽然 10gen 的 Windows Azure 包装器仍被视为“alpha”,但 mongod.exe 不是。您可以像启动任何其他 Windows exe 一样启动 mongod exe。这只是启动过程中的管理代码,这就是 alpa 实现所展示的内容。
编辑 2011-12-8:这不再处于 alpha 状态。可以下载最新的MongoDB+Windows Azure项目here ,提供副本集支持。
对于性能,我认为您需要进行一些基准测试。话虽如此,请考虑以下几点:
2015 年 4 月 7 日编辑 如果您想使用基于文档的数据库即服务,Azure 现在提供 DocumentDB。
关于mongodb - Azure 表与 Azure 上的 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7989465/
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新rubygems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我可以在Azure网站上部署RubyonRails吗? 最佳答案 还没有。目前仅支持.NET和PHP。 关于ruby-on-rails-RubyonRails可以部署在Azure网站上吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12964010/
我有一个.pfx格式的证书,我需要使用ruby提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o
我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到
我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/
我正在尝试将cucumber项目的用户名和密码置于版本控制之外。有没有办法在命令行上手动将用户名和密码等变量传递给Cucumber脚本?我的备份计划是将它们放在一个YML文件中,然后将该文件添加到gitignore,这样它们就不会被置于版本控制中。 最佳答案 所以,我看到了您对铁皮人的评论,答案是肯定的。cucumberPASSWORD=my_passwordPASSWORD被设置为环境变量,您可以通过将其引用为ENV['PASSWORD']来使用它的值。例如,browser.text_field(:id=>'pwd').setEN
我刚刚迈出了编程的第一步。我刚刚完成了CodeAcademy的另一门类(class)。这次我被要求创建一个小电影目录。这是我的问题:如何在文件中保存/加载带有电影标题和评级的哈希值而不是自己的代码?下面是代码现在的样子(几句葡萄牙语,但您可以忽略它:movies={Memento:3,Primer:4,Ishtar:1}puts"Oquevocêgostariadefazer?"puts"--Digite'add'paraadicionarumfilme."puts"--Digite'update'paraatualizarumfilme."puts"--Digite'display'
我是Ruby新手,并被要求在我们的新项目中使用它。我们还被要求使用Padrino(Sinatra)作为后端/框架。我们被要求使用Rspec进行测试。我一直在寻找可以指导在Padrino上使用RspecforRuby的教程。我得到的主要是引用RoR。但是,我需要RubyonPadrino。请在任何入门/指南/引用/讨论等方面指导我。如有不妥之处请指正。可能是我没有针对我的问题搜索正确的词/短语组合。我正在使用Ruby1.9.3和Padrinov.0.10.6。注意:我还提到了SOquestion,但它没有帮助。 最佳答案 我没用过Pa