Esas son algunas de las respuestas largas de @Bohzo. (Pero son buenos enlaces)
La verdad es que son "una especie de" competir. Pero definitivamente tienen diferentes fortalezas y debilidades y definitivamente no todos resuelven los mismos problemas.
Por ejemplo Couch y Mongo tanto proporcionar motores Map-Reduce como parte del paquete principal. HBase es (básicamente) una capa sobre la parte superior de Hadoop, por lo que también obtienes M-R a través de Hadoop. Cassandra está muy centrada en ser una tienda de Key-Value y tiene complementos para "superponer" Hadoop por encima (para que pueda mapear-reducir).
Algunos de los DBs proporcionan MVCC (control de concurrencia multi-versión). Mongo no.
Todas estas DBs están destinados a escalar horizontalmente, pero lo hacen de diferentes maneras. Todos estos DB también intentan proporcionar flexibilidad de diferentes maneras. Tamaños de documentos flexibles o API REST o alta redundancia o facilidad de uso, todos hacen diferentes intercambios.
Por lo tanto, a su pregunta: En otras palabras, ¿están todos compitiendo en el mismo mercado y tratando de resolver exactamente los mismos problemas?
- Sí: todos están tratando de resolver el problema de la base de datos escalabilidad y el rendimiento.
- Sin: Son definitivamente hacer diferentes conjuntos de compensaciones.
¿Qué debe comenzar con?
Hombre, esa es una pregunta difícil. Trabajo para una gran empresa que genera toneladas de datos y hemos pasado por algunos años. Probamos Cassandra en un momento hace un par de años y no pudo con la carga. Estamos usando Hadoop en todas partes, pero definitivamente tiene una gran curva de aprendizaje y no ha funcionado en algunos de nuestros entornos. Más recientemente, hemos intentado hacer Cassandra + Hadoop, pero resultó ser una gran cantidad de trabajo de configuración.
Personalmente, mi departamento se está moviendo varias cosas al MongoDB. Nuestros motivos para esto son honestamente solo simplicidad.
Configurar Mongo en una caja de linux toma minutos y no requiere acceso de root o un cambio en el sistema de archivos o algo sofisticado. No hay archivos de configuración locos ni recompilaciones java requeridas. Entonces, desde esa perspectiva, Mongo ha sido la "droga de puerta de enlace" más fácil para llevar a las personas a las tiendas de documentos/KV.
Este artículo actualizado es útil: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis – coderz