sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB contra Cassandra

Muchas lecturas en cada consulta, menos escrituras regulares

Ambas bases de datos funcionan bien en las lecturas donde el conjunto de datos activos cabe en la memoria. Ambos también enfatizan los modelos de datos sin unión (y fomentan la desnormalización en su lugar), y ambos proporcionan índices en documentos o filas, aunque los índices de MongoDB actualmente son más flexibles.

El motor de almacenamiento de Cassandra proporciona escrituras en tiempo constante sin importar cuánto crezca su conjunto de datos. Las escrituras son más problemáticas en MongoDB, en parte debido al motor de almacenamiento basado en árboles b, pero más debido al bloqueo de granularidad múltiple que hace.

Para análisis, MongoDB proporciona una implementación personalizada de mapa/reducción; Cassandra proporciona soporte nativo de Hadoop, incluso para Hive (un almacén de datos SQL creado en Hadoop map/reduce) y Pig (un lenguaje de análisis específico de Hadoop que muchos piensan que es más adecuado para mapear/reducir cargas de trabajo que SQL). Cassandra también admite el uso de Spark.

No me preocupa la escalabilidad "masiva"

Si está buscando un solo servidor, MongoDB es probablemente una mejor opción. Para aquellos más preocupados por la escalabilidad, la arquitectura sin punto único de falla de Cassandra será más fácil de configurar y más confiable. (El bloqueo de escritura global de MongoDB también tiende a ser más doloroso). Cassandra también brinda mucho más control sobre cómo funciona su replicación, incluido el soporte para múltiples centros de datos.

Más preocupado por la configuración, el mantenimiento y el código simples

Ambos son triviales de configurar, con valores predeterminados razonables listos para usar para un solo servidor. Cassandra es más fácil de configurar en una configuración de varios servidores, ya que no hay que preocuparse por los nodos con funciones especiales.

Si actualmente usa blobs JSON, MongoDB es una combinación increíblemente buena para su caso de uso, dado que usa BSON para almacenar los datos. Podrá tener datos más completos y consultables que los que tendría en su base de datos actual. Esta sería la victoria más significativa para Mongo.