Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NoSQL数据库与Java的比较_Java_Comparison_Nosql - Fatal编程技术网

NoSQL数据库与Java的比较

NoSQL数据库与Java的比较,java,comparison,nosql,Java,Comparison,Nosql,我想了解更多关于可从Java使用的NoSQL数据库/数据存储的信息,到目前为止,我尝试了伏地魔项目。除了选择了一个非常好的名字,到目前为止似乎还不错 我想了解更多关于其他此类数据库系统的信息。现在,在他们的项目页面上有一些文档 但是,与比较技术规格和作者提供的教程不同,我想知道的是: 您在实际项目中使用这些库的经验是什么?根据您的经验,您会推荐使用哪一种?您不会推荐哪一种?为什么 我知道只有那些实际使用了不止一个这样的数据库的人才能回答这个问题,但我希望有人这样做了 编辑: 我所说的“真正的项目

我想了解更多关于可从Java使用的NoSQL数据库/数据存储的信息,到目前为止,我尝试了伏地魔项目。除了选择了一个非常好的名字,到目前为止似乎还不错

我想了解更多关于其他此类数据库系统的信息。现在,在他们的项目页面上有一些文档

但是,与比较技术规格和作者提供的教程不同,我想知道的是:

您在实际项目中使用这些库的经验是什么?根据您的经验,您会推荐使用哪一种?您不会推荐哪一种?为什么

我知道只有那些实际使用了不止一个这样的数据库的人才能回答这个问题,但我希望有人这样做了

编辑:

我所说的“真正的项目”主要是指生产中的项目(但若并没有这些项目,那个么任何比家庭作业或完成的教程更重要的东西都适用)

我使用的是一个关系数据库,其中包含大量数据,大部分数据集中在一个表中,为了提高性能,该表被非规范化。但是,由于约束等方面的混乱,创建一个可用的集群在稳定性和性能方面都显示出可怕的结果


现在,我非常确定,这些NoSQL系统中的任何一个都可能是比我所拥有的更好的选择。但是,它们之间也必须有区别。无论是在文档中,版本之间的稳定性,社区,易用性,等等。。。还有很多巨人。选择哪一个肩膀D

我们一直在为我们的项目与HBase合作。我们的经验是-

  • 社区充满活力,非常有帮助
  • 无论是伪分布式模式还是独立模式,开发人员的安装过程都非常简单
  • 我们一直在使用它进行集成测试,比如单元测试
  • 安装集群也很容易,但与其他一些NoSQL相比,它要安装的组件比其他的多
  • 管理-仍在进行中,因此无法对此说太多
  • 不要将它用于类似SQL的SELECT查询,因为我们使用的是ApacheSolr
  • 为了简化开发和测试,我们设计了一个简单的对象映射器-
  • 我之所以选择HBase,是因为它和其他NoSQL一样,解决了切分问题,通过设计实现了可扩展性,从长远来看,它更容易实现,而且效果良好

    • 如果不确切知道您的用例是什么,就很难确定一个好的选择。这在很大程度上取决于您对什么样的数据模型感到满意,并且适合您的需要。您有关键价值存储、面向文档的存储、面向列的存储等。另一个重要因素是产品的可扩展性以及它们如何选择处理可用性/一致性权衡

      我喜欢MongoDB。我喜欢它支持查询的方式,也喜欢面向文档的数据模型。它适合我似乎遇到的许多问题。在最近的MongoSV活动中,有一个很棒的社区(大写G)


      您最好选择3种不同的产品并对其进行评估。我还想看看你是否能找到一些在会议上发言的公司,并讲述他们如何成功的故事。MongoSV的视频将很快发布

      也许最突出的Java NoSQL解决方案是。它有一些超越伏地魔的特性(允许范围查询的保序分区器;值的BigTable样式结构);并且缺少其他功能(没有用于版本控制的备用存储后端或版本时钟)。 对于快速写入,它的性能更为理想,但它最大的优点可能是可以通过添加新节点(其中V更为静态)轻松地进行水平扩展

      与MongoDB相比,它的数据模型非常简单,而且通常只使用键/值抽象(即,在客户端处理数据映射,存储序列化对象)是没有意义的。
      它有完整的复制和分发,不像一些k/v存储(据我所知是couchdb)。

      老实说,我个人没有使用过noSQL数据库,但我的一位同事使用过,并说他对它印象深刻。没有说确切的原因,但它似乎很受欢迎,可能值得一试。我发现这篇来自亚马逊的文章内容丰富:。在那之后,我找了一个和报纸上描述的相似的,然后选择了卡桑德拉。我欣赏它优雅的对称性。你的项目有多“真实”?这个星球上最大的数据库不使用SQL:它们要么是“BigTables”(或类似的数据库),要么是“key/value存储”。对我来说,这充分说明了SQL及其无法处理非常大的数据集;)而且,不,人们不需要两者兼而有之:你所需要做的就是站在巨人的肩膀上。谷歌就是其中之一;)感谢您的反馈和有用的资料。我更新了我的问题,使之更具体一些。正如webinator指出的,很少有真正的实现者能够同时使用这两种工具或任何nosql经验。看看能否在这里回答您的问题:我不认为MongoDB的数据模型如此复杂。它基本上是JSON,这是一个大多数开发人员已经熟悉的概念。我的意思是mongo更丰富,允许更多的功能——并不是说它过于复杂(也不是说V模型会因为简单而更好),这是一个好主意。我可以做个比较。根据这篇文章和其他文章,候选人可能是MongoDB、Cassandra、HBase和Voldemort。我一直在向人们推荐这个博客,但我觉得它写得很好,会让你对应该考虑的选项有一个很好的了解