¿Qué es Apache Cassandra?

Última actualización: 24/7/2026

Apache Cassandra es una base de datos NoSQL distribuida y de código abierto diseñada para manejar 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 confiable para cargas de trabajo de alta disponibilidad y con mucha escritura que deben permanecer en línea independientemente de las interrupciones de los nodos o los 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 establecidos: combinó el modelo de almacenamiento de columnas anchas del documento de Bigtable de Google de 2006 con la arquitectura de anillo distribuido de Dynamo de Amazon. Llamaron al proyecto como la profetisa troyana mitológica, un guiño a la “maldición” de hacer predicciones que otros no creían.

El proyecto evolucionó rápidamente a medida que su potencial se hizo evidente para la comunidad de ingeniería 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 la incubadora de Apache, lo que marcó su transición a un software administrado por la comunidad.
  • 2010: Cassandra se convirtió en un proyecto de primer nivel de Apache Software Foundation, lo que consolidó su lugar en la industria.
  • 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 estándar alto de estabilidad, con miles de correcciones de errores y pruebas exhaustivas.
  • 2024–2026: Las versiones modernas, como la 5.0 y posteriores, agregaron compatibilidad con tecnologías más recientes, como la búsqueda de vectores, la indexación adjunta al almacenamiento (SAI) y una mejor seguridad, lo que mantiene la base de datos relevante para las cargas de trabajo modernas de IA y macrodatos.

Debido a su legado, muchas empresas confían en él para potenciar sus sistemas. Si bien Cassandra sigue siendo una opción comprobada para sistemas de alta disponibilidad, evaluar sus compensaciones de diseño ayuda a los equipos a decidir si la autoadministración de una arquitectura heredada se ajusta a las necesidades de las aplicaciones modernas.

¿Para qué se usa Apache Cassandra?

Cassandra se suele usar para trabajos que implican un flujo constante de datos, como información de sensores inteligentes (IoT), registro de aplicaciones y canalizaciones de supervisión.  También se usa ampliamente para el seguimiento de eventos y los sistemas de recomendación, donde guardar y consultar datos rápidamente a gran escala es fundamental.

Los sistemas que no pueden permitirse el tiempo de inactividad usan Cassandra porque su replicación en varios centros de datos y las escrituras asíncronas permiten que un centro de datos completo se desconecte sin interrumpir el servicio ni perder datos. Muchas empresas globales confían en esto para mantener sus apps en funcionamiento las 24 horas, todos los días, en diferentes regiones.

¿Cómo funciona la arquitectura de Apache Cassandra?

Cassandra usa un diseño de igual a igual en el que todos los nodos son idénticos. Estos nodos se configuran en un anillo descentralizado y usan un método llamado hash coherente para distribuir los datos de manera uniforme, evitar cuellos de botella y garantizar que no haya puntos únicos de falla. También puedes elegir qué tan estricta es la base de datos cuando verifica si una lectura o escritura se realizó correctamente, lo que te permite decidir entre la velocidad y tener los datos más actualizados según 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 tus datos en espacios de claves, filas y columnas dinámicas, similar a una hoja de cálculo normal, pero con más flexibilidad. Esto te permite diseñar tus datos de una manera que sea fácil de cambiar a medida que tu app crece.

Función

Apache Cassandra

RDBMS tradicional

Modelo de datos

Desnormalizado

Normalizado

Flexibilidad de esquemas

Se puede cambiar mientras se ejecuta

Requiere tiempo de inactividad

Estructura del índice

Árbol de combinación estructurado en registros

Árbol B


Optimización de escritura

Principal

Secundario

Posicionamiento de CAP (coherencia, disponibilidad y tolerancia a la partición)

AP (disponible y tolerante a particiones)

CA (coherente y disponible)

Capacidad de búsqueda

CQL (sin JOIN)

SQL completo con JOIN

Función

Apache Cassandra

RDBMS tradicional

Modelo de datos

Desnormalizado

Normalizado

Flexibilidad de esquemas

Se puede cambiar mientras se ejecuta

Requiere tiempo de inactividad

Estructura del índice

Árbol de combinación estructurado en registros

Árbol B


Optimización de escritura

Principal

Secundario

Posicionamiento de CAP (coherencia, disponibilidad y tolerancia a la partición)

AP (disponible y tolerante a particiones)

CA (coherente y disponible)

Capacidad de búsqueda

CQL (sin JOIN)

SQL completo con JOIN

Cómo Cassandra almacena y procesa datos

El motor de almacenamiento de Cassandra se basa en un árbol de fusión estructurado por registros (LSM) para manejar los datos. Las escrituras entrantes se escriben en un registro de confirmación para la durabilidad y se mantienen en la memoria a través de una Memtable. Cuando se llenan, las Memtables se vacían en el disco como tablas de cadenas ordenadas (SSTables) inmutables.

Este diseño de solo agregado es la razón por la que Cassandra se destaca en la capacidad de procesamiento con muchas operaciones de escritura. El sistema puede procesar los datos entrantes mucho más rápido que los sistemas tradicionales que dependen de operaciones aleatorias de E/S en disco cuando evita las actualizaciones in situ.

Preguntas frecuentes

Estas son las respuestas a algunas preguntas frecuentes sobre Cassandra.

Es una base de datos distribuida que se usa para apps que deben permanecer en línea en todo momento y manejar muchas escrituras de datos, como registros de transmisión o datos de sensores.

Cassandra es una base de datos NoSQL. Usa un lenguaje llamado CQL que se parece a SQL, pero no admite todas sus funciones, como uniones complejas o seguridad de transacciones profunda.

Kafka sirve para mover datos en tiempo real, mientras que Cassandra sirve para almacenarlos de forma segura. Por lo general, se usan juntos en un sistema.

Cassandra es ideal para escribir muchos datos a gran escala. MongoDB es una base de datos de documentos que suele ser mejor si necesitas buscar en diferentes tipos de datos con estructuras flexibles.

Cassandra está diseñada para el procesamiento de transacciones en línea (OLTP), es decir, es eficaz para gestionar lecturas y escrituras simples 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.

Beneficios de Apache Cassandra

Escalabilidad

Puedes agregar más nodos para controlar más trabajo, y no tienes que apagar el sistema para hacerlo.

Sin punto único de fallo

Como todos los nodos son iguales, el sistema es muy estable.

Copia automática de datos

El sistema guarda automáticamente tus datos en varios lugares.

Escrituras rápidas

El diseño de almacenamiento se creó para manejar una gran cantidad de escrituras a la vez.

Coherencia ajustable

Puedes controlar el nivel de exigencia de tus datos según cada consulta. Elige “Todos” los nodos para obtener una exactitud perfecta o “Un” nodo para obtener la mayor velocidad posible.

Sin dependencia de un proveedor

Como se ejecuta en hardware estándar, no estás limitado a proveedores de servicios en la nube específicos. Puedes mover tus datos entre opciones de configuración locales y diferentes nubes si es necesario.

Usar servicios administrados para optimizar cargas de trabajo de Cassandra

Ejecutar tu propio sistema Cassandra requiere mucha sobrecarga. Debes planificar cuánto espacio necesitas, configurar los servidores, encargarte de las reparaciones, asegurarte de tener copias de seguridad y realizar actualizaciones mientras el sistema está en ejecución.

Los servicios administrados cambian esto, ya que se encargan del trabajo pesado por ti. 

  • Automatizar el mantenimiento: Los servicios administrados pueden ayudar a automatizar estos procesos, como la compactación y las reparaciones de nodos, lo que garantiza que se ejecuten en el momento adecuado sin ralentizar tu aplicación.
  • Planificación de la capacidad y ajuste de escala automático: En lugar de adivinar cuántos servidores necesitas, los servicios administrados ayudan a supervisar tu tráfico, ahorrar dinero y evitar cuellos de botella en el rendimiento.
  • Simplifica la copia de seguridad y la recuperación: Perder datos no es una opción. Los servicios administrados facilitan las copias de seguridad y las automatizan, por lo que puedes restablecer tus datos rápidamente si se produce un error.
  • Supervisión proactiva: Estos servicios incluyen paneles integrados que buscan signos de problemas, como tiempos de respuesta de disco lentos o un uso alto de la CPU, antes de que se conviertan en interrupciones.
  • Parches y actualización: Mantener el software actualizado es vital para la seguridad y el rendimiento. Los servicios administrados pueden encargarse de estas actualizaciones en segundo plano y, en general, usan actualizaciones progresivas que garantizan que la base de datos esté siempre en línea.

Cuando trasladas estas tareas operativas a una plataforma administrada, tu equipo puede dejar de preocuparse por la infraestructura interna de la base de datos y centrarse en aportar valor a tus usuarios.

Elige la estrategia de implementación de Cassandra adecuada

Cuando decidas cómo ejecutar tus cargas de trabajo de Cassandra, tienes tres rutas principales. 

  • Primero, puedes administrar por tu cuenta Cassandra de código abierto, lo que te da control total sobre el software, pero obliga a tu equipo a administrar la infraestructura subyacente.
  • En segundo lugar, puedes elegir un servicio administrado compatible con Cassandra, que proporciona la misma experiencia conocida sin el dolor 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 diseñaron específicamente para los mismos patrones de alta disponibilidad y alta capacidad de procesamiento, pero para funcionar sin problemas con los ecosistemas modernos de la nube.

Elegir la ruta correcta depende de equilibrar la experiencia de tu equipo con tus necesidades empresariales específicas. Usa esta lista de tareas para guiar tu proceso de toma de decisiones:

Pregunta

Si la respuesta es sí…

Si la respuesta es no…

¿Tenemos tiempo para corregir y ajustar la base de datos?

Puedes manejar clústeres autoadministrados si cuentas con ingenieros dedicados a la “infraestructura interna de la base de datos”.

Elige un servicio administrado para evitar que los ingenieros pierdan tiempo en el mantenimiento de la infraestructura.

¿Es más importante “permanecer en línea” que la coherencia perfecta?

El modelo AP de Cassandra es ideal para apps de alta disponibilidad.

Considera Cloud Spanner, que ofrece el escalamiento de un sistema distribuido con una estricta seguridad de los datos.

¿Necesitamos escalar verticalmente con rapidez a medida que crecemos?

Usa servicios administrados o Bigtable, que ofrecen escalado automático para controlar los aumentos repentinos 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 períodos de mayor actividad.

¿Un servicio administrado haría que nuestro trabajo sea más confiable?

Definitivamente, los servicios administrados automatizan las copias de seguridad y la aplicación de parches para evitar errores humanos.

Aceptas el mayor riesgo de mantenimiento manual y posibles errores de configuración.

¿Buscamos la portabilidad de la infraestructura?

La opción autoadministrada te da la mayor libertad para moverte entre nubes o ejecutar en las instalaciones locales.

Te sientes cómodo con los beneficios específicos de la nube a cambio de un menor esfuerzo operativo.

Pregunta

Si la respuesta es sí…

Si la respuesta es no…

¿Tenemos tiempo para corregir y ajustar la base de datos?

Puedes manejar clústeres autoadministrados si cuentas con ingenieros dedicados a la “infraestructura interna de la base de datos”.

Elige un servicio administrado para evitar que los ingenieros pierdan tiempo en el mantenimiento de la infraestructura.

¿Es más importante “permanecer en línea” que la coherencia perfecta?

El modelo AP de Cassandra es ideal para apps de alta disponibilidad.

Considera Cloud Spanner, que ofrece el escalamiento de un sistema distribuido con una estricta seguridad de los datos.

¿Necesitamos escalar verticalmente con rapidez a medida que crecemos?

Usa servicios administrados o Bigtable, que ofrecen escalado automático para controlar los aumentos repentinos 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 períodos de mayor actividad.

¿Un servicio administrado haría que nuestro trabajo sea más confiable?

Definitivamente, los servicios administrados automatizan las copias de seguridad y la aplicación de parches para evitar errores humanos.

Aceptas el mayor riesgo de mantenimiento manual y posibles errores de configuración.

¿Buscamos la portabilidad de la infraestructura?

La opción autoadministrada te da la mayor libertad para moverte entre nubes o ejecutar en las instalaciones locales.

Te sientes cómodo con los beneficios específicos de la nube a cambio de un menor esfuerzo operativo.

Resuelve tus desafíos más difíciles con Google Cloud

Los clientes nuevos obtienen $300 en créditos gratuitos que pueden usar en Google Cloud.
Habla con un especialista en ventas de Google Cloud para analizar tu desafío único en más detalle.

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

Si quieres dejar de administrar Cassandra por tu cuenta, Google Cloud ofrece dos soluciones útiles: Bigtable y Spanner

Si ya usas Cassandra por su almacenamiento de columnas anchas y su alta capacidad de procesamiento de escritura, Bigtable puede ser una excelente opción. Para usarlo, puedes asignar tus espacios de claves y tablas de Cassandra existentes a tablas de Bigtable y, luego, actualizar el código de la aplicación para usar las bibliotecas cliente de Cloud Bigtable. Como está completamente administrado, Bigtable controla automáticamente la fragmentación y el balanceo de cargas que antes tenías que ajustar de forma manual en Cassandra.

Si tu carga de trabajo de Cassandra creció hasta el punto en que necesitas una coherencia más sólida o te encuentras necesitando 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 desnormalizados de Cassandra. Ofrece el mismo escalamiento horizontal que Cassandra, pero agrega el beneficio de una coherencia global sólida y compatibilidad completa con SQL relacional.

Da el siguiente paso

Comienza a desarrollar en Google Cloud con el crédito gratis de $300 y los más de 20 productos del nivel Siempre gratuito.

Google Cloud