mongodb - HBase cassandra couchdb mongodb ..有什么根本区别吗?

标签 mongodb cassandra hbase couchdb nosql

我只是想知道 hbase、cassandra、couchdb 和 monogodb 之间是否存在根本区别?换句话说,他们是否都在完全相同的市场上竞争并试图解决完全相同的问题。或者它们最适合不同的场景?

所有这一切都涉及到一个问题,我应该在什么时候选择。口味问题?

谢谢,

费德里科

最佳答案

这些是来自 @Bohzo 的一些长答案。 (但它们是很好的链接)

事实是,他们“有点”竞争。但它们肯定有不同的优点和缺点,而且它们肯定不能解决相同的问题。

例如,Couch 和 Mongo 都提供 Map-Reduce 引擎作为主包的一部分。 HBase(基本上)是 Hadoop 之上的一层,因此您还可以通过 Hadoop 获得 M-R。 Cassandra 高度专注于成为一个键值存储,并具有将 Hadoop“分层”到顶部的插件(因此您可以映射减少)。

一些 DB 提供 MVCC(多版本并发控制)。 Mongo 没有。

所有这些数据库都旨在水平扩展,但它们以不同的方式进行。所有这些数据库还试图以不同的方式提供灵 active 。灵活的文档大小或 REST API 或高冗余或易用性,它们都在做出不同的权衡。

那么对于您的问题:换句话说,他们是否都在完全相同的市场上竞争并试图解决完全相同的问题?

  1. 是的:他们都在努力解决数据库的可扩展性和性能问题。
  2. :他们肯定会做出不同的权衡。

你应该从什么开始?

伙计,这是一个棘手的问题。我在一家插入大量数据的大公司工作,我们已经经历了几年。几年前我们曾尝试过 Cassandra,但它无法处理负载。我们到处都在使用 Hadoop,但它肯定有一个陡峭的学习曲线,而且在我们的某些环境中还没有奏效。最近我们尝试做 Cassandra + Hadoop,但结果证明是很多配置工作。

就我个人而言,我的部门正在将几件事转移到 MongoDB。老实说,我们这样做的原因只是简单。

在 linux 机器上设置 Mongo 需要几分钟,并且不需要 root 访问权限或更改文件系统或任何花哨的东西。不需要疯狂的配置文件或 java 重新编译。所以从这个角度来看,Mongo 一直是让人们进入 KV/Document 存储的最简单的“门户药物”。

关于mongodb - HBase cassandra couchdb mongodb ..有什么根本区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652310/

相关文章:

java - Cassandra InvalidRequestException(为什么 :[MyKeyspace][MyColumnFamily][6675. ..6c74] = [6c86......e65720] 验证失败(字符串未验证。))

ubuntu - 将 Cassandra 数据库复制到测试主机

java - HBASE 的 JDBC Phoenix 驱动程序,重试 36 并抛出异常

hadoop - 在Oozie Workflow中使用HBase表快照

node.js - MEAN 应用程序中的租赁

mongodb - 如何仅填充子文档数组中的第一个元素

spring - 无法解决 Spring 安全性

node.js - 为广告/分析服务选择数据库

mysql集群 catch cassandra?

java - 为什么 HBase 将值存储为字节数组而不是类型值(如 String、Long 等)