¿Qué es Apache Cassandra?

Ú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. 

El origen y la evolución de Apache Cassandra

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:

  • 2008: Facebook lanzó el código fuente de Cassandra como un proyecto de código abierto en Google Code
  • 2009: el proyecto se aceptó en Apache Incubator, lo que marcó su transición a un software gobernado por la comunidad.
  • 2010: Cassandra se convirtió en un proyecto de primer nivel de la Apache Software Foundation, lo que consolidó su posición en el sector.
  • 2011: el lanzamiento de la versión 1.0 marcó la madurez del proyecto, con una adopción generalizada por parte de empresas como Netflix, eBay y Twitter.
  • 2021: el lanzamiento de la versión 4.0 estableció un alto nivel de estabilidad, con miles de correcciones de errores y pruebas exhaustivas
  • 2024-2026: las versiones modernas, como la 5.0 y posteriores, han añadido compatibilidad con tecnologías más recientes, como la búsqueda vectorial, la indexación asociada al almacenamiento (SAI) y una mayor seguridad, lo que hace que la base de datos sea pertinente para las cargas de trabajo modernas de IA y Big Data.

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.

¿Para qué se usa Apache Cassandra?

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.

¿Cómo funciona la arquitectura de Apache Cassandra?

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

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

Cómo almacena y procesa los datos Cassandra

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.

Preguntas frecuentes

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.

Ventajas de Apache Cassandra

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.

Usar servicios gestionados para optimizar las cargas de trabajo de Cassandra

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. 

  • Automatizar el mantenimiento: los servicios gestionados pueden ayudar a automatizar estos procesos, como la compactación y la reparación de nodos, para que se ejecuten en el momento adecuado sin ralentizar tu aplicación.
  • Planificación de la capacidad y autoescalado: en lugar de tener que adivinar cuántos servidores necesitas, los servicios gestionados te ayudan a monitorizar el tráfico, ahorrar dinero y evitar cuellos de botella en el rendimiento.
  • Simplifica las copias de seguridad y la recuperación: perder datos no es una opción. Los servicios gestionados facilitan y automatizan las copias de seguridad, por lo que puedes restaurar tus datos rápidamente si algo sale mal.
  • Monitorización proactiva: estos servicios incluyen paneles integrados que detectan signos de problemas, como tiempos de respuesta lentos del disco o un uso elevado de la CPU, antes de que se produzcan interrupciones.
  • Parchear y actualizar: mantener el software actualizado es fundamental para la seguridad y el rendimiento. Los servicios gestionados pueden ayudarte a gestionar estas actualizaciones en segundo plano, a menudo mediante actualizaciones graduales que garantizan que tu base de datos permanezca online todo el tiempo.

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.

Elegir la estrategia de despliegue de Cassandra adecuada

Cuando decidas cómo ejecutar tus cargas de trabajo de Cassandra, tendrás tres opciones principales. 

  • En primer lugar, puedes autogestionar Cassandra de código abierto, lo que te da un control total sobre el software, pero obliga a tu equipo a gestionar la infraestructura subyacente.
  • En segundo lugar, puedes elegir un servicio gestionado compatible con Cassandra, que ofrece la misma experiencia familiar sin el quebradero de cabeza de las operaciones diarias.
  • Por último, puedes optar por una alternativa nativa de la nube, como Google Cloud Bigtable o Spanner, que se han diseñado específicamente para los mismos patrones de alta disponibilidad y alto rendimiento, pero para que funcionen a la perfección con los ecosistemas de nube modernos.

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.

Soluciona los retos empresariales que se te presenten con Google Cloud

Los nuevos clientes reciben 300 USD en crédito sin coste para invertirlos en Google Cloud.
Habla con un especialista del equipo de ventas de Google Cloud sobre tus necesidades específicas con más detalle.

Ejecutar cargas de trabajo de Cassandra en Google Cloud con Bigtable y Spanner

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.

Ve un paso más allá

Empieza a crear en Google Cloud con 300 USD en crédito gratis y más de 20 productos Always Free.

Google Cloud