15

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

这一切都引出了一个问题,我应该在什么时候选择。口味问题?

谢谢,

费德里科

4

4 回答 4

12

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

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

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

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

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

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

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

你应该从什么开始?

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

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

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

于 2010-09-06T22:17:04.173 回答
5

简短的回答:在生产中使用之前进行测试。

我可以提供我在HBase(广泛)和MongoDB(刚刚开始)方面的经验。

尽管它们不是同一种商店,但它们解决了相同的问题:

  • 可扩展的数据存储
  • 随机访问数据
  • 低延迟访问

一开始我们对 HBase 非常感兴趣。它建立在 Hadoop 之上(坚如磐石),它在 Apache 之下,它是活跃的......你还想要什么?我们的经验:

  • HBase 很脆弱
  • 管理员的噩梦(充满配置设置,默认设置不够完美,配置不透明,版本之间的变化,...)
  • 丢失数据(除非您已设置 X 配置并将 Y 更改为...您明白了 :) - 我们发现当 HBase 崩溃时我们丢失了 2 小时(!!!)的数据,因为 WAL 设置不正确
  • 缺少二级索引
  • 没有任何方法可以在不关闭数据库的情况下执行数据库备份

总而言之,HBase 是一场噩梦。除了我们的直接竞争对手,不会向任何人推荐它。:)

MongoDB 解决了所有这些问题以及更多问题。设置是一种乐趣,它使管理它成为一项简单而透明的工作,并且默认配置设置实际上很有意义。您可以执行(热)备份,您可以拥有二级索引。根据我的阅读,我不推荐在 MongoDB 上使用 MapReduce(JavaScript,每个节点仅 1 个线程),但您可以使用 Hadoop。

与 HBase 相比,它也非常活跃。

另外: http ://www.google.com/trends?q=HBase%2CMongoDB

需要我多说?:)

更新:几个月后,我必须说 MongoDB 已交付给所有帐户等等。唯一真正的缺点是托管公司不像他们提供 MySQL 那样提供它。;) 看起来 MapReduce在 2.2中必然会成为多线程。不过,我不会以这种方式使用 MR。YMMV。

于 2011-07-29T09:35:25.893 回答
5
  • CouchDB 和 MongoDB 是文档存储
  • Cassandra 和 HBase 是基于键值的

这是 HBase 和 Cassandra 之间的详细比较
这是 MongoDB 和 CouchDB 之间的(有偏见的)比较

于 2010-09-06T14:47:59.257 回答
1

Cassandra 非常适合写入数据。它具有“写入永不失败”的优势。它没有单点故障。

HBase 非常适合数据处理。HBase 基于 Hadoop 文件系统 (HDFS),因此 HBase 无需担心数据复制、数据一致性。HBase 有单点故障。我不确定如果它有单点故障是什么意思,那么它与我们有单点故障的 RDBMS 有点相似。我可能是错误的,因为我很新。

RIAK 怎么样?有人有使用 RIAK 的经验吗?我在一些你需要支付的地方涂红了,我不确定。需要解释。

当您只关心读取大量数据时,您更喜欢使用另一件事。你对写作没有任何顾虑。试想一下,您有一个带有 pitabyte 的数据库,并且您想快速搜索您更喜欢哪个 NOSQL 数据库?

于 2012-03-22T16:05:18.660 回答