我们在Heroku上使用MongoDB数据库插件来支持我们的SaaS产品。现在,亚马逊推出了DynamoDB,一种云数据库服务,我想知道这是否改变了NoSQL产品的市场格局?
特别是对于云服务或SaaS供应商,与MongoDB相比,使用DynamoDB会有什么优势或劣势?在成本、性能、可扩展性、可靠性、驱动程序、社区等方面,两者之间是否存在不同的好处?
我们在Heroku上使用MongoDB数据库插件来支持我们的SaaS产品。现在,亚马逊推出了DynamoDB,一种云数据库服务,我想知道这是否改变了NoSQL产品的市场格局?
特别是对于云服务或SaaS供应商,与MongoDB相比,使用DynamoDB会有什么优势或劣势?在成本、性能、可扩展性、可靠性、驱动程序、社区等方面,两者之间是否存在不同的好处?
首先,它将由Amazon的专家团队全面管理,因此您可以放心它将在几乎没有终端用户(开发者)干预的情况下很好地扩展。
此外,由于它是由Amazon构建和管理的,您可以假设他们已经设计得与其基础架构非常配合,因此性能将会非常出色。除了专门为其基础架构构建之外,他们选择使用固态硬盘作为存储介质,因此从一开始,磁盘吞吐量将显著高于其他HDD支持的AWS数据存储。
我还没有看到任何驱动程序,并且我认为现在评估社区对此的反应还为时过早,但我预计Amazon将拥有针对所有最受欢迎编程语言的驱动程序,社区可能会积极响应并创造额外的驱动程序和工具。
http://www.datastax.com/dev/blog/amazon-dynamodb
在使DynamoDB更易用方面需要改进的是除主键外索引其他列的可能性。我认为需要考虑的关键区别是,MongoDB是一种可以在任何地方安装的软件(包括在AWS或其他云服务中或内部),而DynamoDB是一种SaaS,仅作为Amazon(AWS)提供的托管服务。如果您想保留在内部托管应用程序的选项,则DynamoDB不是一个选择。如果在AWS之外托管不是一个考虑因素,那么除非有非常特定的功能更加重要,否则DynamoDB应该是您的默认选择。
通过Heroku的插件使用MongoDB可以有效地将MongoDB变成一个SaaS产品。
实际上,我们需要比较所选提供商所提供的服务与亚马逊所提供的服务,而不是将一种持久性解决方案与另一种进行比较。
这很难做到。每个提供商的服务水平和价格不同,有人可以考虑在本地硬件上运行它来作为开发目的的可行选择。
说实话,当我听说有新的DynamoDB并参加了昨天的网络研讨会时,我非常兴奋。然而,现在很难做出决定,因为他们所说的一切仍然非常模糊;我不知道将通过他们的服务使用哪些功能。
唯一我知道的是,自动处理扩展非常棒,但仍有许多未知因素,直到我们可以开始使用它并获得所有事实之前,真正进行全面分析还是很困难的。
到目前为止,在我正在进行的项目中,我仍然认为Mongo更适合我(个人)。像大多数数据库决策一样,这真的要根据项目来决定什么最适合你的需求。
我迫切期待产品的更多信息,但现在它还处于测试阶段,我不会跳船采用最新和最好的只成为测试者 :)
Amazon DynamoDB似乎是一个相当不错的NoSQL解决方案。它非常快速,而且使用起来也相当简单。除了拥有AWS账户外,真的没有任何设置或维护要求。就目前而言,与MongoDB/CouchDB/Cassandra相比,其功能集和API相对较小,但我认为这将随着开发者社区的反馈而逐渐增长。现在,所有官方AWS SDK都包含DynamoDB客户端。
优点
缺点
在可扩展应用程序中,它是会话存储的一个很好的替代品。另一个很好的用途是在大型系统中进行日志记录/审计。但对于频繁增强或更改的功能丰富应用程序来说,不是首选。