🎯 Objetivo:
Identificar las diferencias clave entre Cassandra y MongoDB para saber cuándo conviene usar cada una.
🧠 ¿Qué tienen en común?
| Característica | Ambos sistemas… |
|---|---|
| Tipo | Son bases de datos NoSQL. |
| Modelo | No usan tablas relacionales tradicionales. |
| Escalabilidad | Escalan horizontalmente (agregando nodos). |
| Alta disponibilidad | Están diseñados para funcionar 24/7. |
| Uso de JSON o similar | Usan formatos como documentos o estructuras anidadas. |
⚖️ Comparación lado a lado
| Característica | MongoDB | Cassandra |
|---|---|---|
| 🔸 Modelo de datos | Documental (JSON) | Basado en columnas |
| 🔸 Esquema | Muy flexible (sin esquema obligatorio) | Requiere definir claves primarias/partición |
| 🔸 Lenguaje de consulta | Propio (similar a JavaScript) | CQL (similar a SQL) |
| 🔸 Relación entre datos | Soporta documentos anidados | No soporta relaciones entre filas |
| 🔸 Rendimiento de escritura | Rápido, pero no tanto como Cassandra | Extremadamente rápido en escritura |
| 🔸 Lectura distribuida | Coordinada por primarios/secundarios | Totalmente distribuida y simétrica |
| 🔸 Escalabilidad | Horizontal (Sharding opcional) | Nativa y automática |
| 🔸 Alta disponibilidad | Opcional (requiere configuración) | Por diseño (sin single point of failure) |
| 🔸 Casos de uso ideales | Apps web, contenido dinámico | IoT, telecomunicaciones, logs masivos |
📦 Ejemplos reales
| Escenario | ¿MongoDB o Cassandra? | ¿Por qué? |
|---|---|---|
| Sitio e-commerce con productos y usuarios | ✅ MongoDB | Flexibilidad en estructura, filtros simples |
| Sistema de sensores que emite datos cada segundo | ✅ Cassandra | Gran volumen de escritura, escalabilidad masiva |
| Red social con perfiles y comentarios | ✅ MongoDB | Datos anidados, documentos dinámicos |
| Plataforma global de analítica en tiempo real | ✅ Cassandra | Alta velocidad, tolerancia a fallos |
🧩 Resumen visual
| ¿Necesito…? | Usa… |
|---|---|
| Flexibilidad total de estructura | ✅ MongoDB |
| Alta escritura y rendimiento constante | ✅ Cassandra |
| Datos jerárquicos o anidados | ✅ MongoDB |
| Sistema distribuido resistente a fallos globales | ✅ Cassandra |
| Agilidad para prototipar rápido | ✅ MongoDB |
📝 Actividad práctica
-
Imagina una aplicación que registra clics de usuarios cada segundo desde todo el mundo.
-
¿Qué base usarías? ¿Por qué?
-
-
Piensa en un sistema de control de pacientes en una clínica, con fichas, recetas y evolución médica.
-
¿MongoDB o Cassandra? Justifica.
-
✅ Revisión rápida
-
¿Cuál de las dos es mejor para escritura masiva?
-
¿Cuál permite guardar documentos con estructura distinta?
-
¿Qué base funciona mejor como sistema distribuido «peer to peer»?