Última actualización: 24/07/2026
Apache Cassandra es una base de datos NoSQL distribuida y de código abierto diseñada para gestionar grandes volúmenes de datos en varios servidores. Su arquitectura descentralizada elimina los puntos únicos de fallo, lo que la convierte en una opción fiable para cargas de trabajo de alta disponibilidad con muchas operaciones de escritura que deben permanecer online independientemente de las interrupciones de nodos o centros de datos.
Los ingenieros de Facebook (ahora Meta), Avinash Lakshman y Prashant Malik, crearon Cassandra para potenciar la búsqueda en la bandeja de entrada de Facebook. Necesitaban un sistema que pudiera almacenar y buscar conjuntos de datos masivos en muchos servidores sin ralentizarse.
Para crearlo, el equipo se inspiró en otros dos modelos de bases de datos consolidados: combinó el modelo de almacenamiento de columnas anchas del artículo de Bigtable de Google del 2006 con la arquitectura de anillo distribuido de Dynamo de Amazon. Le pusieron el nombre de la profetisa troyana de la mitología, un guiño a la "maldición" de hacer predicciones que los demás no creían.
El proyecto evolucionó rápidamente a medida que su potencial se hizo evidente para la comunidad de ingenieros en general:
Debido a su legado, muchas empresas confían en él para impulsar sus sistemas. Aunque Cassandra sigue siendo una opción probada para sistemas de alta disponibilidad, evaluar sus ventajas y desventajas de diseño ayuda a los equipos a decidir si autogestionar una arquitectura antigua se ajusta a las necesidades de las aplicaciones modernas.
Cassandra se suele utilizar para tareas que implican un flujo constante de datos, como la información de sensores inteligentes (IoT), el registro de aplicaciones y la monitorización de flujos de procesamiento. También se utiliza mucho para el seguimiento de eventos y los sistemas de recomendación, donde es fundamental guardar y consultar datos rápidamente a escala.
Los sistemas que no pueden permitirse periodos de inactividad utilizan Cassandra porque su replicación en varios centros de datos y sus escrituras asíncronas permiten que un centro de datos entero se desconecte sin interrumpir el servicio ni perder datos. Muchas empresas de todo el mundo confían en esta solución para que sus aplicaciones funcionen las 24 horas en diferentes regiones.
Cassandra usa un diseño punto a punto en el que todos los nodos son idénticos. Estos nodos se configuran en un anillo descentralizado y utilizan un método denominado "encriptado con hash coherente" para distribuir los datos de manera uniforme, evitar cuellos de botella y asegurarse de que no haya puntos únicos de fallo. También puedes elegir el nivel de rigurosidad de la base de datos a la hora de comprobar si una lectura o escritura se ha realizado correctamente, lo que te permite decidir entre la velocidad y tener los datos más actualizados en función de las necesidades específicas de tu aplicación.
La base de datos usa un modelo llamado "almacén de columnas anchas", que ayuda a organizar los datos en espacios de claves, filas y columnas dinámicas de forma similar a una hoja de cálculo normal, pero con más flexibilidad. Esto te permite diseñar tus datos de forma que sea fácil cambiarlos a medida que tu aplicación crece.
Característica | Apache Cassandra | RDBMS tradicional |
Modelo de datos | Desnormalizado | Normalizada |
Flexibilidad de esquemas | Se puede cambiar mientras se ejecuta | Requiere tiempo de inactividad |
Estructura del índice | Árbol de fusión estructurado en registros | Árbol B |
Optimización de escritura | Principal | Secundario |
Posicionamiento de CAP (coherencia, disponibilidad y tolerancia a particiones) | AP (disponible y tolerante a particiones) | CA (coherente y disponible) |
Capacidad de consulta | CQL (sin JOINs) | SQL completo con JOINs |
Modelo de datos
Desnormalizado
Normalizada
Flexibilidad de esquemas
Se puede cambiar mientras se ejecuta
Requiere tiempo de inactividad
Estructura del índice
Árbol de fusión estructurado en registros
Árbol B
Optimización de escritura
Principal
Secundario
Posicionamiento de CAP (coherencia, disponibilidad y tolerancia a particiones)
AP (disponible y tolerante a particiones)
CA (coherente y disponible)
Capacidad de consulta
CQL (sin JOINs)
SQL completo con JOINs
El motor de almacenamiento de Cassandra se basa en un árbol LSM (Log-Structured Merge) para gestionar los datos. Las escrituras entrantes se escriben en un registro de confirmación para que sean duraderas y se conservan en la memoria mediante una Memtable. Cuando se llenan, las memtables se vacían en el disco como SSTables (Sorted String Tables) inmutables.
Este diseño de solo anexar es el motivo por el que Cassandra destaca en el rendimiento de escritura intensiva. Al evitar las actualizaciones in situ, el sistema puede procesar los datos entrantes mucho más rápido que los sistemas tradicionales que dependen de la E/S de disco aleatoria.
A continuación, respondemos a algunas preguntas habituales sobre Cassandra.
Es una base de datos distribuida que se usa en aplicaciones que deben estar online en todo momento y gestionar muchas escrituras de datos, como registros de streaming o datos de sensores.
Cassandra es una base de datos NoSQL. Utiliza un lenguaje llamado CQL que se parece a SQL, pero no admite todas las funciones, como las uniones complejas o la seguridad de las transacciones profundas.
Kafka se utiliza para mover datos en tiempo real, mientras que Cassandra se utiliza para almacenarlos de forma segura. A menudo se usan juntos en un mismo sistema.
Cassandra es la mejor opción para escribir grandes cantidades de datos a escala. MongoDB es una base de datos de documentos que suele ser mejor si necesitas buscar entre distintos tipos de datos con estructuras flexibles.
Cassandra está diseñado para el procesamiento de transacciones online (OLTP), lo que significa que es bueno para gestionar lecturas y escrituras sencillas y de alta velocidad. No está diseñado para tareas analíticas complejas, como ejecutar informes grandes o analizar todos tus datos a la vez.
Escalabilidad
Puedes añadir más nodos para gestionar más trabajo sin tener que apagar el sistema.
Solución totalmente libre de fallos
Como todos los nodos son iguales, el sistema es muy estable.
Copia de datos automática
El sistema guarda automáticamente tus datos en varios sitios.
Escrituras rápidas
El diseño del almacenamiento está pensado para gestionar un gran número de escrituras a la vez.
Coherencia ajustable
Puedes controlar lo estrictos que deben ser tus datos en cada consulta. Elige "Todos" los nodos para obtener una exactitud perfecta o "Un" nodo para conseguir la mayor velocidad posible.
Sin dependencia de proveedores
Como se ejecuta en hardware estándar, no estás atado a proveedores de servicios en la nube específicos. Puedes mover tus datos entre configuraciones on-premise y diferentes nubes si es necesario.
Ejecutar tu propio sistema de Cassandra requiere mucha sobrecarga. Tienes que planificar cuánto espacio necesitas, configurar los servidores, gestionar las reparaciones, asegurarte de que tienes copias de seguridad y realizar actualizaciones mientras el sistema está en funcionamiento.
Los servicios gestionados cambian esta situación, ya que se encargan de las tareas más pesadas.
Al trasladar estas tareas operativas a una plataforma gestionada, tu equipo puede dejar de preocuparse por la infraestructura de la base de datos y centrarse en aportar valor a tus usuarios.
Cuando decidas cómo ejecutar tus cargas de trabajo de Cassandra, tendrás tres opciones principales.
Elegir la ruta adecuada depende de equilibrar la experiencia de tu equipo con las necesidades específicas de tu empresa. Usa esta lista de comprobación para tomar decisiones:
Pregunta | En caso afirmativo… | En caso negativo… |
¿Tenemos tiempo para arreglar y ajustar la base de datos? | Puedes gestionar clústeres autogestionados si tienes ingenieros dedicados a la "fontanería de bases de datos". | Elige un servicio gestionado para evitar que los ingenieros pierdan tiempo en el mantenimiento de la infraestructura. |
¿Es más importante "mantenerse online" que la coherencia perfecta? | El modelo AP de Cassandra es ideal para aplicaciones de alta disponibilidad. | Considera Cloud Spanner, que ofrece la escala de un sistema distribuido con una seguridad de datos estricta. |
¿Necesitamos escalar verticalmente con rapidez a medida que crecemos? | Usa servicios gestionados o Bigtable, que ofrecen autoescalado para gestionar picos de tráfico. | Un clúster estático podría funcionar, pero corres el riesgo de que se produzcan cuellos de botella en el rendimiento durante los periodos de mayor actividad. |
¿Un servicio gestionado haría que nuestro trabajo fuera más fiable? | Por supuesto. Los servicios gestionados automatizan las copias de seguridad y los parches para evitar errores humanos. | Aceptas el mayor riesgo de mantenimiento manual y posibles errores de configuración. |
¿Queremos conseguir la portabilidad de la infraestructura? | La opción autogestionada te ofrece la mayor libertad para moverte entre nubes o ejecutar la solución on-premise. | Te sientes cómodo con las ventajas específicas de la nube a cambio de un menor esfuerzo operativo. |
Pregunta
En caso afirmativo…
En caso negativo…
¿Tenemos tiempo para arreglar y ajustar la base de datos?
Puedes gestionar clústeres autogestionados si tienes ingenieros dedicados a la "fontanería de bases de datos".
Elige un servicio gestionado para evitar que los ingenieros pierdan tiempo en el mantenimiento de la infraestructura.
¿Es más importante "mantenerse online" que la coherencia perfecta?
El modelo AP de Cassandra es ideal para aplicaciones de alta disponibilidad.
Considera Cloud Spanner, que ofrece la escala de un sistema distribuido con una seguridad de datos estricta.
¿Necesitamos escalar verticalmente con rapidez a medida que crecemos?
Usa servicios gestionados o Bigtable, que ofrecen autoescalado para gestionar picos de tráfico.
Un clúster estático podría funcionar, pero corres el riesgo de que se produzcan cuellos de botella en el rendimiento durante los periodos de mayor actividad.
¿Un servicio gestionado haría que nuestro trabajo fuera más fiable?
Por supuesto. Los servicios gestionados automatizan las copias de seguridad y los parches para evitar errores humanos.
Aceptas el mayor riesgo de mantenimiento manual y posibles errores de configuración.
¿Queremos conseguir la portabilidad de la infraestructura?
La opción autogestionada te ofrece la mayor libertad para moverte entre nubes o ejecutar la solución on-premise.
Te sientes cómodo con las ventajas específicas de la nube a cambio de un menor esfuerzo operativo.
Si quieres dejar de gestionar Cassandra por tu cuenta, Google Cloud ofrece dos soluciones útiles: Bigtable y Spanner.
Si ya usas Cassandra por su almacenamiento en columnas anchas y su alto rendimiento de escritura, Bigtable puede ser una solución ideal para ti. Para usarlo, puedes asignar tus espacios de claves y tablas de Cassandra a tablas de Bigtable y, después, actualizar el código de aplicación para que use las bibliotecas de cliente de Cloud Bigtable. Como está totalmente gestionado, Bigtable se encarga automáticamente de la fragmentación y el balanceo de carga que antes tenías que ajustar manualmente en Cassandra.
Si tu carga de trabajo de Cassandra ha crecido hasta el punto de que necesitas una mayor coherencia o te das cuenta de que necesitas funciones relacionales de SQL, Spanner también puede ser una buena opción. Para usarlo, debes definir tu esquema con SQL estándar, lo que puede requerir que normalices algunos de tus datos de Cassandra desnormalizados. Ofrece la misma escalabilidad horizontal que Cassandra, pero añade la ventaja de una coherencia global y sólida, y una compatibilidad total con SQL relacional.
Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.