¿Qué es Apache Cassandra?

Ventanas iluminadas en un edificio grande con escenas distintas 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 múltiples centros de datos.

 

Diseñado como un sistema de gestión de bases de datos distribuidas (DBMS), Cassandra se basa en una arquitectura peer-to-peer. 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, eliminando un único punto de falla (donde un mal funcionamiento rápidamente se convierte en múltiples). Este diseño permite una replicación perfecta, una distribución eficiente de los datos y un servicio continuo incluso durante el tiempo de inactividad planificado o los cambios repentinos. 

Cassandra ofrece automatización, copias de seguridad 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 específicamente, ofrece escalabilidad lineal, alta disponibilidad y tolerancia a fallas, lo que la convierte en una opción popular para aplicaciones de big datacargas de trabajo en tiempo real. A partir de septiembre de 2024, Cassandra fue utilizada por más de 30,000 organizaciones en todo el mundo.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

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

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 Casandra

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 empresa. Al combinar modelos de base de datos NoSQL establecidos (Dynamo de Amazon y Bigtable de Google), crearon un sistema con estructuras de datos eficientes y coherencia eventual, 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, ganando terreno rápidamente 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 gobernanza y acelerando la adopción por parte de la comunidad.

El impulso de Cassandra creció a medida que los primeros usuarios, como eBay, Spotify e Instagram, lo desplegaron para manejar big data. El auge del IoT y la personalización en tiempo real consolidaron aún más la función de Cassandra como base de datos de referencia para la escala y la disponibilidad.

El apoyo comercial de DataStax agregó 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, prosperando tanto dentro del ecosistema de código abierto como en los despliegues empresariales.

Academia de IA

¿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 exitoso de la IA generativa.

¿Por qué es importante Cassandra?

Desde los servicios de streaming y las redes sociales hasta las 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 costo de no cumplir con las expectativas es elevado: las empresas líderes del mundo pierden aproximadamente 400 mil millones de dólares anuales debido a tiempos de inactividad no planeados.

Al mismo tiempo, una oleada de datos no estructurados 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 fallas del sistema. Las organizaciones necesitan una base de datos confiable que pueda manejar diversos tipos de datos y escalar con la demanda en infraestructuras globales. Cassandra está diseñada para satisfacer estas demandas.

Las industrias confían en el alto 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 proviene 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 cargas de trabajo en múltiples centros de datos proporciona coherencia y disponibilidad para empresas de todo el mundo. Organizaciones como Netflix y Amazon utilizan Cassandra para ofrecer experiencias personalizadas y, al mismo tiempo proteger, contra el tiempo de inactividad y la pérdida de datos. De hecho, el equipo de la Plataforma de Gestión de Activos de Netflix utiliza Cassandra para gestionar aproximadamente 1900 millones de anotaciones (alrededor de 2.6 TB), y duplicó su clúster de 12 a 24 nodos.

Cassandra frente a bases de datos relacionales tradicionales

A diferencia de las bases de datos relacionales, que se basan en definiciones de esquemas rígidas y en un control centralizado, Cassandra está construida para la escala distribuida. En los sistemas relacionales, una clave primaria está ligada al modelado estricto de datos y a la escalabilidad limitada. Cassandra, por el contrario, emplea una clave de partición y un factor de replicación para determinar cómo se almacenan los conjuntos de datos en los distintos nodos y centros de datos.

Si bien los sistemas de lenguaje de consulta estructurado (SQL) son excelentes para realizar uniones y agregaciones complejas, a menudo introducen cuellos de botella y un riesgo de un único punto de falla. Cassandra evita esto adoptando la arquitectura distribuida y la coherencia eventual. En comparación con MongoDB, la base de datos Cassandra favorece cargas de trabajo escalables linealmente y con mucha escritura en múltiples centros de datos.

Para las organizaciones que gestionan grandes cantidades de datos, Cassandra ofrece claras ventajas: alto rendimiento, baja latencia y tolerancia a las interrupciones. Sin embargo, Cassandra no proporciona el mismo nivel de consultas ad hoc que ofrecen algunas bases de datos relacionales. Los desarrolladores que utilizan Cassandra deben diseñar cuidadosamente 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 innovaciones en sistemas distribuidos con herramientas para la gestión de datos de nivel empresarial. Entre sus principales características se incluyen:

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

Código abierto

Cassandra es de código abierto bajo Apache Software Foundation, lo que ayuda a las organizaciones a evitar el vendor lock-in (dependencia de proveedores) y personalizar la base de datos para satisfacer sus necesidades. Cuando se requiere ayuda de nivel empresarial, los equipos pueden usar recursos de la comunidad o elegir soporte comercial y servicios administrados.

Alto rendimiento

El motor de almacenamiento de Cassandra usa 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 almacenan en la memoria caché para consultas de baja latencia, mientras que la compactación, una función de limpieza automática, ayuda a garantizar un almacenamiento de datos eficiente a largo plazo.

Disponibilidad ajustable

Según el teorema CAP, cuando se produce una partición de red, un sistema distribuido puede ofrecer solo dos de las tres características deseadas: coherencia, disponibilidad y tolerancia a la partición (CAP). Cassandra aborda este intercambio a través de niveles de coherencia ajustables, lo que permite a los usuarios priorizar la disponibilidad o la coherencia según el caso de uso.

Escalabilidad lineal

Cassandra aumenta la capacidad al agregar nuevos nodos sin interrupción del servicio, lo que ofrece escalabilidad lineal en servidores básicos en lugar de costosas actualizaciones verticales. A medida que se agregan 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 horizontalmente y el rendimiento aumenta de manera proporcional.

Replicación perfecta

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

Interfaz familiar

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

Descripción de Cassandra Query Language

Cassandra interactúa con las aplicaciones a través de CQL, un lenguaje específico de dominio inspirado en SQL. La sintaxis 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 global de un juego, un desarrollador puede crear un espacio de claves (el equivalente de la base de datos de nivel superior de Cassandra que define las configuraciones de replicación). Luego de eso, pueden diseñar tablas donde la clave de partición (como el ID o la región del jugador) mantiene los datos relacionados en los mismos nodos para una distribución de datos eficiente. Con cqlsh, el equipo pudo ejecutar tutoriales, validar consultas y gestionar el clúster Cassandra a medida que agregan nuevos nodos para manejar el aumento en el volumen de jugadores.

Debido a que Cassandra enfatiza las operaciones de escritura y el rendimiento, su sintaxis evita características que podrían ralentizar el rendimiento, como las combinaciones complejas. En cambio, los desarrolladores confían en índices secundarios, agregados y modelos de datos optimizados para lograr flexibilidad.

CQL frente a SQL

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

Estructuras 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 dependen del escalado 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 repensar las estrategias de modelado de datos para aprovechar el enfoque de sistemas distribuidos de Cassandra.

Casos de uso de Cassandra

Cassandra potencia cargas de trabajo de misión crítica en industrias que exigen alto rendimiento, baja latencia y resiliencia. Ejemplos:

  • Comercio electrónico: los minoristas utilizan Cassandra para almacenar datos en carritos de compras, personalizar recomendaciones y procesar pagos con tolerancia a fallas.
  • IoT: Cassandra gestiona flujos de sensores y conjuntos de datos de millones de dispositivos, lo que garantiza insights en tiempo real con durabilidad.
  • Despliegues 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 arriesgar el tiempo de inactividad.

Más allá de estas verticales, Cassandra apoya a las organizaciones que construyen sistemas distribuidos para big data y almacenamiento de datos escalable. Con una combinación de soporte de API, herramientas empresariales y tutoriales comunitarios abiertos, Cassandra sigue siendo una piedra angular para 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.

Explorar StreamSets
IBM watsonx.data™

watsonx.data le permite escalar los analytics y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gestionado.

Descubra watsonx.data
Servicios de consultoría en datos y analytics

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

Descubra los servicios de analytics
Dé el siguiente paso

Diseñe una estrategia de datos que elimine los silos de datos, 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.