我有一个基于azure的云原生应用。该应用程序使用azure表存储。
由于机会很棒,我决定在内部提供应用程序。所以我必须更换NoSql数据提供程序......我的问题是:哪个解决方案更类似Azure Table Storage?蒙戈?掠夺?你说出来了!
我打算毫不费力地迁移代码,例如从SQL Azure迁移到Sql Server 2012 ......不需要更改代码......但我知道没有相应的表存储......所以我打算找到那个会尽可能减少我的TTM的那个......
答案 0 :(得分:2)
MongoDB和表存储不是彼此完全可交换的替代品。一个是键/值,另一个是文档。我比较了this answer中的两个。
表存储是存储即服务并且您只需支付数据量(加上非常小的每笔交易成本)这一事实无法解决,而要使用MongoDB,您要么拥有将它托管在你自己的虚拟机中(它可以为你提供足够的存储空间,但是以虚拟机为代价)或者与托管服务器(例如MongoLab,当前免费提供500MB)一起使用。无论如何,您都需要进行一些代码更改才能使用MongoDB而不是表存储。
我不确定是否存在与本地可安装的表存储等效的键/值存储。无论您选择什么,如果您更换表存储,您都将对Azure端解决方案进行修改。
对于本地解决方案,是否可以提供保持相对简单的MongoDB后端?即:坚持使用单个索引替换rowkey,然后将表实体存储为文档(避免使用子文档)?这将使您的数据布局非常相似。此时,您可以使用聚合框架之类的东西进行一些数据处理,而不会损坏数据的整体布局样式/架构。
答案 1 :(得分:0)
MongoDB将为您提供一致的存储框架,您可以在云端和本地使用它,并且对Windows Azure有很好的支持。