我只是想知道 hbase、cassandra、couchdb 和 monogodb 之间是否存在根本区别?换句话说,他们是否都在完全相同的市场上竞争并试图解决完全相同的问题。或者它们最适合不同的场景?
所有这一切都涉及到一个问题,我应该在什么时候选择。口味问题?
谢谢,
费德里科
最佳答案
这些是来自 @Bohzo 的一些长答案。 (但它们是很好的链接)
事实是,他们“有点”竞争。但它们肯定有不同的优点和缺点,而且它们肯定不能解决相同的问题。
例如,Couch 和 Mongo 都提供 Map-Reduce 引擎作为主包的一部分。 HBase(基本上)是 Hadoop 之上的一层,因此您还可以通过 Hadoop 获得 M-R。 Cassandra 高度专注于成为一个键值存储,并具有将 Hadoop“分层”到顶部的插件(因此您可以映射减少)。
一些 DB 提供 MVCC(多版本并发控制)。 Mongo 没有。
所有这些数据库都旨在水平扩展,但它们以不同的方式进行。所有这些数据库还试图以不同的方式提供灵 active 。灵活的文档大小或 REST API 或高冗余或易用性,它们都在做出不同的权衡。
那么对于您的问题:换句话说,他们是否都在完全相同的市场上竞争并试图解决完全相同的问题?
- 是的:他们都在努力解决数据库的可扩展性和性能问题。
- 否:他们肯定会做出不同的权衡。
你应该从什么开始?
伙计,这是一个棘手的问题。我在一家插入大量数据的大公司工作,我们已经经历了几年。几年前我们曾尝试过 Cassandra,但它无法处理负载。我们到处都在使用 Hadoop,但它肯定有一个陡峭的学习曲线,而且在我们的某些环境中还没有奏效。最近我们尝试做 Cassandra + Hadoop,但结果证明是很多配置工作。
就我个人而言,我的部门正在将几件事转移到 MongoDB。老实说,我们这样做的原因只是简单。
在 linux 机器上设置 Mongo 需要几分钟,并且不需要 root 访问权限或更改文件系统或任何花哨的东西。不需要疯狂的配置文件或 java 重新编译。所以从这个角度来看,Mongo 一直是让人们进入 KV/Document 存储的最简单的“门户药物”。
关于mongodb - HBase cassandra couchdb mongodb ..有什么根本区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652310/