我正在开发一个使用 Java 和 Spring 3 的项目。我有一个新任务。会有 Xml 文件,我得到这些文件并将它们转换为对象。之后,我会将它们放入数据库中。
我检查nosql数据库的主要话题。 CouchDb
和 MongoDb
是我应该搜索的数据库。我将在数据库中对该对象进行 search
(索引类型之一将是日期,我将在选择之间创建日期)。 性能
对我和
我将处理大量数据
,这就是我应该搜索nosql 数据库的原因。
根据我的情况,你有什么建议,它们的优缺点是什么,我应该选择哪一个以及为什么?
我搜索并看到 Couch DB 使用 REST API,而 Mongo DB 使用驱动程序,根据此处,它是 Mongo 的性能优势:http://www.mongodb.org/display/DOCS/Comparing+Mongo+DB+and+Couch+DB
然而,Couch DB 使用复制来扩展(这是一种性能优势吗?)
我也意识到有 BaseX 和 eXist。根据我的需要,您建议有人与他们合作过吗?
PS:我也会像日志一样获取 XML 文件。它们不会改变,我也不会操纵它上面的数据。
最佳答案
这是一个很大的问题,但我会尽力解决它。我工作的一家公司正在从使用 MySQL 开发我们的应用程序转变为 NoSQL,我是第一个 NoSQL 数据库的领导者,我们正在决定使用哪个 NoSQL 数据库。我介于 MongoDB、CouchDB 和 Cassandra 之间。我必须考虑的一个重要因素是,编写基线函数以使用数据库有多容易,因此您不必了解正在发生的事情但仍然能够执行查询等等。 cassandra 的问题在于 API 非常低级,需要一些时间来编写可靠的高级接口(interface),而我们没有那种时间。 couchdb 的问题是 REST 服务。由于我们已经使用 rest 连接到我们的内部 api,这将是一个双重休息服务。 REST 通常会通过 http 进行处理,并且 http 有相当多的开销才能使其易于使用。而且开销增加了加载信息的时间。因此,出于这个原因和许多其他原因,我们采用了 mongodb。此外,由于它是一个驱动程序,因此它被开发为与编程语言一起使用,如果您的语言受支持,那就太好了,如果不支持,那就太糟糕了。由于 mongodb 支持 Java,所以它很好。
我建议将 XML 文件转换为对象,然后将对象存储在 mongo 中。所以每个 XML 文件都将嵌入 mongodocuments 关于 mongo 的好处是您可以搜索嵌入的文档并且您可以索引它们。所以享受帽子
关于java - CouchDb - MongoDb 和 NoSQL 数据库比较(使用 XML 文档),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7718177/