¿Qué es Apache Cassandra?

Ventanas iluminadas en un gran edificio con distintas escenas en cada plaza

Autores

Tom Krantz

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

¿Qué es Apache Cassandra?

Apache Cassandra (Cassandra) es una base de datos NoSQL de código abierto creada para gestionar grandes cantidades de datos en varios centros de datos.

 

Diseñado como un sistema de gestión de bases de datos distribuidas (DBMS), Cassandra se basa en una arquitectura entre pares. Cada nodo, o servidor individual que almacena parte de los datos, en un clúster de Cassandra es igual, sin depender de un nodo maestro.

Los datos se dividen entre pares en lugar de almacenarse en una ubicación centralizada, lo que elimina un único punto de fallo (donde un mal funcionamiento rápidamente se convierte en múltiples). Este diseño permite una replicación fluida, una distribución eficiente de los datos y un servicio continuo incluso durante tiempos de inactividad planificados o cambios repentinos. 

Cassandra ofrece automatización, backup de datos y métricas integradas para casos de uso como la gestión de dispositivos conectados al Internet de las cosas (IoT). Más concretamente, ofrece escalabilidad lineal, alta disponibilidad y tolerancia a fallos, lo que lo convierte en una opción popular para aplicaciones de big data y cargas de trabajo en tiempo real. En septiembre de 2024,más de 30 000 organizaciones de todo el mundo utilizaban Cassandra.

Las últimas novedades sobre tecnología, respaldadas por conocimientos de expertos

Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Se ha suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

La historia de Cassandra

La historia de Cassandra comenzó en 2007 en Facebook, donde los ingenieros buscaron un sistema que pudiera almacenar datos para la creciente plataforma de mensajería de la compañía. Al combinar modelos de bases de datos NoSQL establecidos ( Dynamo de Amazon y Bigtable de Google), crearon un sistema con estructuras de datos eficientes y consistencia final, donde las actualizaciones se propagan hasta que todas las réplicas coinciden con el tiempo.

En 2008, Cassandra se lanzó como un proyecto de código abierto y rápidamente ganó terreno entre los desarrolladores que buscaban una alternativa a las bases de datos relacionales tradicionales. La Apache Software Foundation asumió la administración en 2009, formalizando su gobierno y acelerando la adopción por parte de la comunidad.

El impulso de Cassandra creció cuando los primeros usuarios, como eBay, Spotify e Instagram, lo implementaron para gestionar grandes volúmenes de datos. El auge del IoT y la personalización en tiempo real consolidó aún más el papel de Cassandra como base de datos de referencia para la escala y la disponibilidad.

El soporte comercial de DataStax añadió herramientas, tutoriales y servicios de nivel empresarial, mientras que la comunidad abierta desarrolló herramientas y amplió la documentación. Hoy en día, Cassandra sigue siendo fundamental para muchos sistemas distribuidos, y prospera tanto en el ecosistema de código abierto como en las implementaciones empresariales.

AI Academy

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso satisfactorio de la IA generativa.

¿Por qué es importante Cassandra?

Desde servicios de transmisión y redes sociales hasta compras en línea, los clientes esperan experiencias digitales siempre activas. Para las empresas, el tiempo de actividad ya no es un objetivo de TI sino una métrica comercial. El coste de quedarse corto es elevado: las principales empresas del mundo pierden aproximadamente 400 mil millones de dólares al año por tiempo de inactividad no planificado.

Al mismo tiempo, una oleada de datos no estructurados procedentes de registros de eventos, telemetría y flujos de datos está haciendo que las operaciones sean más complejas en todas las regiones y entornos de nube, lo que aumenta la probabilidad de fallos del sistema. Las organizaciones necesitan una base de datos fiable que pueda gestionar diversos tipos de datos y escalar con la demanda en infraestructuras globales. Cassandra está diseñada para satisfacer estas demandas.

Los sectores confían en el rendimiento de Cassandra para procesar miles de millones de operaciones de escritura (insertar, actualizar y eliminar) mientras atienden a los usuarios con precisión en tiempo real. Su resiliencia procede de la replicación de datos en servidores básicos o máquinas estándar disponibles, minimizando el riesgo de interrupciones y garantizando la durabilidad incluso cuando falla el hardware.

La capacidad de Cassandra para gestionar las cargas de trabajo en varios centros de datos proporciona coherencia y disponibilidad a las empresas de todo el mundo. Organizaciones como Netflix y Amazon utilizan Cassandra para ofrecer experiencias personalizadas y, al mismo tiempo, protegerse contra el tiempo de inactividad y la pérdida de datos. De hecho, el equipo de plataformas de gestión de activos de Netflix utiliza Cassandra para gestionar aproximadamente 1900 millones de anotaciones (unos 2,6 TB), tras duplicar su clúster de 12 a 24 nodos.

Cassandra vs. bases de datos relacionales tradicionales

A diferencia de las bases de datos relacionales, que se basan en definiciones de esquemas rígidos y un control centralizado, Cassandra está diseñada para la escala distribuida. En los sistemas relacionales, una clave principal está vinculada a un estricto modelado de datos y una escalabilidad limitada. Cassandra, por el contrario, utiliza una clave de partición y un factor de replicación para determinar cómo se almacenan los conjuntos de datos en los nodos y centros de datos.

Aunque los sistemas de Structured Query Language (SQL) destacan en uniones y agregados complejos, a menudo introducen cuellos de botella y el riesgo de un único punto de fallo. Cassandra evita esto adoptando la arquitectura distribuida y la coherencia eventual. En comparación con MongoDB, la base de datos Cassandra favorece las cargas de trabajo escalables linealmente y con mucha escritura en varios centros de datos.

Para las organizaciones que gestionan grandes cantidades de datos, Cassandra ofrece claras ventajas: alto rendimiento, baja latencia y tolerancia a interrupciones. Sin embargo, Cassandra no ofrece el mismo nivel de consultas ad hoc que ofrecen algunas bases de datos relacionales. Los desarrolladores que utilizan Cassandra deben diseñar cuidadosamente las estrategias de modelado de datos para optimizar las operaciones de escritura, las réplicas y la integridad de los datos.

Características clave de Cassandra

El diseño de Cassandra combina las innovaciones en los sistemas distribuidos con herramientas para la gestión de datos de nivel empresarial. Las características clave incluyen:

  • Código abierto
  • Alto rendimiento
  • Disponibilidad ajustable
  • Escalabilidad lineal
  • Replicación fluida
  • Interfaz familiar

Código abierto

Cassandra es código abierto bajo la Apache Software Foundation, lo que ayuda a las Organizaciones a evitar la dependencia del proveedor y a personalizar la base de datos para adaptarla a sus necesidades. Cuando se necesita ayuda de nivel empresarial, los equipos pueden utilizar recursos de la comunidad o elegir soporte comercial y servicios administrados.

Alto rendimiento

El motor de almacenamiento de Cassandra utiliza un flujo paso a paso (o ruta de escritura) que consta de un registro de confirmación, una tabla en memoria (memtable) y archivos de tabla de cadenas ordenadas (SSTable). Este flujo acepta operaciones de escritura rápidamente y las protege. Los datos a los que se accede con frecuencia se guardan en la caché para consultas de baja latencia, mientras que la compactación, una función de limpieza automática, ayuda a garantizar un almacenamiento eficiente de datos a largo plazo con almacenamiento de datos.

Disponibilidad ajustable

Según el teorema CAP, cuando se produce una partición de red, un sistema distribuido solo puede ofrecer dos de las tres características deseadas: coherencia, disponibilidad y tolerancia a las particiones (CAP). Cassandra aborda esta compensación mediante niveles de consistencia ajustables, lo que permite a los usuarios priorizar la disponibilidad o la consistencia en función del caso de uso.

Escalabilidad lineal

Cassandra aumenta la capacidad añadiendo nuevos nodos sin interrumpir el servicio, lo que proporciona una escalabilidad lineal en servidores básicos en lugar de costosas actualizaciones verticales. A medida que se añaden nodos, Cassandra redistribuye automáticamente los datos y el tráfico en todo el clúster, por lo que las cargas de trabajo se escalan y el rendimiento aumenta proporcionalmente.

Replicación fluida

Cassandra replica los datos a través de nodos y centros de datos para que los usuarios locales tengan una baja latencia mientras evitan un único punto de fallo. También se integra con Kubernetes, marcos de interfaces de programación de aplicaciones (API) y entornos de Amazon Web Services (AWS). Está escrito en Java y se ejecuta en la Java Virtual Machine (JVM).

Interfaz familiar

Los equipos utilizan Cassandra Query Language (CQL), que refleja SQL, para definir rápidamente construcciones clave como el espacio de claves, las tablas y las claves principales. Las herramientas interactivas como el shell CQL (cqlsh) y los tutoriales oficiales también pueden ayudar a reducir el tiempo de incorporación de los nuevos desarrolladores.

Descripción del lenguaje de consulta de Cassandra

Cassandra interactúa con las aplicaciones a través de CQL, un lenguaje específico de dominio inspirado en SQL. La sintaxis de CQL es familiar para los desarrolladores de bases de datos, lo que les permite definir el espacio de claves, el esquema, los tipos de datos y las claves primarias y de partición.

Por ejemplo, durante el lanzamiento de un juego global, un desarrollador puede crear un espacio de claves, el equivalente de base de datos de nivel superior de Cassandra que define la configuración de replicación. Después de eso, pueden diseñar tablas en las que la clave de partición (como el ID del jugador o la región) mantenga los datos relacionados en los mismos nodos para una distribución eficiente de los datos. Con cqlsh, el equipo pudo ejecutar tutoriales, validar consultas y administrar el clúster de Cassandra a medida que agregaban nuevos nodos para manejar el aumento en el volumen de jugadores.

Dado que Cassandra hace hincapié en las operaciones de escritura y el rendimiento, su sintaxis evita características que ralentizarían el rendimiento, como las uniones complejas. En su lugar, los desarrolladores confían en índices secundarios, agregados y modelado de datos optimizado para lograr flexibilidad.

CQL vs. SQL

Aunque CQL se parece a SQL, los dos lenguajes reflejan diferentes enfoques para la gestión de datos.

Estructura de datos

SQL opera en tablas normalizadas, mientras que CQL está diseñado para datos de Cassandra desnormalizados alineados con claves de partición.

Coherencia

SQL asume una estricta integridad de los datos, mientras que Cassandra equilibra la coherencia eventual con niveles de coherencia configurables.

Escalabilidad

Los sistemas SQL generalmente se basan en el escalamiento vertical, mientras que Cassandra permite la escalabilidad lineal al agregar nuevos nodos a un clúster de Cassandra.

Operaciones

SQL está optimizado para transacciones, mientras que CQL está diseñado para consultas en tiempo real y operaciones de escritura de gran volumen.

Los desarrolladores que pasan de SQL pueden adaptarse rápidamente a la sintaxis de CQL, pero deben replantearse las estrategias de modelado de datos para aprovechar el enfoque de sistemas distribuidos de Cassandra.

Casos de uso de Cassandra

Cassandra impulsa cargas de trabajo de misión crítica en sectores que exigen alto rendimiento, baja latencia y resiliencia. Algunos ejemplos son:

  • Comercio electrónico: los minoristas utilizan Cassandra para almacenar datos en carritos de la compra, personalizar recomendaciones y procesar pagos con tolerancia a fallos.
  • IoT: Cassandra gestiona flujos de sensores y conjuntos de datos de millones de dispositivos, garantizando conocimientos en tiempo real con durabilidad.
  • Implementaciones en la nube: Cassandra se integra con AWS y otros servicios en la nube. También se puede orquestar en Kubernetes para entornos en contenedores.
  • Streaming y entretenimiento: los servicios de streaming aprovechan Cassandra para gestionar la actividad global de los usuarios, ofreciendo experiencias personalizadas sin riesgo de tiempo de inactividad.

Más allá de estos verticales, Cassandra apoya a las organizaciones que crean sistemas distribuidos para big data y almacenamiento de datos escalable. Con una combinación de compatibilidad con API, herramientas empresariales y tutoriales abiertos a la comunidad, Cassandra sigue siendo la piedra angular de los sistemas modernos de gestión de bases de datos.

Soluciones relacionadas
IBM StreamSets

Cree y gestione canalizaciones de datos de streaming inteligentes a través de una interfaz gráfica intuitiva, y facilite una integración de datos fluida en entornos híbridos y multinube.

Explore StreamSets
IBM watsonx.data

Watsonx.data le permite escalar la analítica y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gobernado.

Descubra watsonx.data
Servicios de asesoramiento sobre datos y análisis

Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por conocimientos que ofrezca ventajas empresariales.

Descubra los servicios de análisis
De el siguiente paso

Diseñe una estrategia de datos que elimine los silos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

Explore las soluciones de gestión de datos Descubra watsonx.data

Apache Cassandra y Cassandra son marcas registradas de The Apache Software Foundation.