我的公司已经使用了Oracle很长一段时间,但我们希望寻找NoSQL数据库来代替更快的查询和灵活的架构设计。
我曾尝试使用MongoDB,它现在是最受欢迎的NoSQL数据库。我将它连接到Spring Data来做一些简单的查询,这很容易设置和编码。由于我们使用Spring MVC进行Web开发,因此Spring Data似乎非常适合集成。
然而,我听说Cassandra在写入和读取方面会有更好的表现,特别是在大型缩放系统中。我不确定是否值得搬到Cassandra并且不确定如何衡量MongoDB和Cassandra之间的性能。
以下是我的系统的一些要求:
因此,我想提出一些问题:
非常感谢你。
答案 0 :(得分:2)
我有使用Spring和Cassandra的经验。但我总是编写自己的数据访问层。
使用Cassandra的ORM不会让你充分利用它的全部功能,你很可能会引入错误,因为你的SQL背景会让你期望某些行为不是Cassandra会给你的。< / p>
我的建议是编写将自己访问Cassandra的代码,并且不要害怕非常规化A LOT。更多地考虑如何查询(或查找)您的数据,而不是您想要保存它的格式。
我还强烈建议您阅读这篇精彩文章:Cassandra数据建模最佳实践part 1 part 2
另一个可能更适合您应用的数据库是CouchDB(我喜欢使用BigCouch)。它是另一个基于Document的NoSQL数据库,在我看来优于MongoDB。它提供了更好的扩展解决方案,并强调可用性(就像Cassandra一样)。
我想指出this question关于CouchDB和MongoDB之间的区别。
就框架而言,Play框架有很多插件可以与NoSQL系统一起使用,所以你可以尝试一下。你可以尝试playorm这是我试验的最后一次。
编辑:我忘了提及Kundera以及Cassandra的ORM
答案 1 :(得分:2)
Cassandra和MongoDB之间的选择取决于存储类型。 MongoDB主要用于基于文档的存储,您可以通过使用各种类似sql的功能获得优势。
如果您需要具有高可用性和多直流复制的柱状数据库?去找卡桑德拉。