Apache Cassandra: Introducción 2024 - Aprender BIG DATA
Apache Cassandra: Introducción 2024 - Aprender BIG DATA
Apache Cassandra: Introducción 2024 - Aprender BIG DATA
En esta introducción vamos a presentar qué es Apache Cassandra, qué particularidades tiene para almacenar Aprovecha Tu Cupón Para Los Cursos
y distribuir datos masivos (Big Data). Consideraremos su consistencia y disponibilidad y en qué escenarios son
apropiados, junto con algunos casos de uso.
S T
A EveryCloudAX
DAT
eEverywh
ere-
Activ
¿QUEES cassandra
APACHE
CASSANDRA?
Últimas Entradas
Apache Cassandra es una base de datos NoSQL que usa tablas, Llas y columnas, pero el nombre y el formato
de las columnas puede variar en cada Lla de una misma tabla (algo que no ocurre en bases de datos
relacionales). Esta particularidad también se puede llamar almacenamiento con clave-valor de dos DePIN – Redes Descentralizadas
dimensiones. de Infraestructura Física
Es una solución open source distribuida, diseñada para almacenar grandes cantidades de datos
proporcionando una alta disponibilidad sin un único punto de fallo. Es posible desplegarla en la nube, on
Regalos de Data Science
premise o en un entorno híbrido.
Apache Cassandra fue diseñada originalmente para realizar búsquedas en Facebook y hoy en día se encuentra
en uso por muchas organizaciones. Es una base de datos preparada para gestionar datos variables pero semi-
estructurados, como sensores o aplicaciones conectadas y realizar análisis, monitorización y logging de eventos
cuando es necesaria una alta velocidad de escritura.
Para distribuir los datos, se usa un modelo peer-to-peer basado en claves de partición. Para determinar qué
nodo contiene el dato que se está buscando, Cassandra usa tokens. Un token es un entero de 64 bits, y cada
nodo del clúster tiene asignado un rango de tokens. De esta forma, al buscar una Lla, Cassandra calcula el
token asociado (con una función Hash), y con ello determina de forma única el nodo al que pertenece.
Al añadir más nodos a un clúster o al eliminar nodos se deben redistribuir los tokens asignados a cada uno de
los nodos presentes. En Cassandra, todos los nodos se crean iguales. A diferencia de las soluciones con un
modelo cliente-servidor, que pueden contener puntos únicos de fallo, la arquitectura de Cassandra distribuye
los datos en múltiples nodos en el clúster.
Cassandra también se encarga de replicar los datos a distintos nodos para garantizar la tolerancia a fallos y
una alta disponibilidad. El factor de replicación (RF) representa el número de nodos que se usan para
almacenar cada dato. La conLguración estándar es usar un factor de replicación de 3.
Modelo de Datos
Cassandra usa CQL (Cassandra Query Language). Es un dialecto de SQL para deLnir y manipular los datos.
Entre las características más importantes se encuentra que Cassandra no soporta operaciones de tipo JOIN.
El esquema para las tablas (o familias de columnas) de Cassandra debe estar diseñado teniendo en mente las
consultas que se van a realizar.
Para conseguir una velocidad de escritura elevada, también hace uso de unas estructuras en memoria
llamadas memtables. Sobre estas estructuras volátiles se realizan las escrituras de datos y una vez que se
llenan se realiza el volcado a disco. En paralelo, también se escribe en el commit log (que es persistente) y de
esta forma se evita la pérdida de datos.
Cassandra permite ajustar la disponibilidad y la consistencia de los datos conLgurando las propiedades
«replication factor» y «consistency level». Por ejemplo, si ajustamos el nivel de consistencia en 3 en un cluster
con 3 nodos, se necesitaría que los 3 nodos tengan consenso para tener el dato disponible.
El nivel de consistencia se deLne por consulta y permite ajustar el momento en el que se ofrece el resultado a
los clientes. Por otro lado, el factor de replicación se asegura de que las escrituras se envíen a todas las
réplicas. Podríamos resumir este comportamiento con tres niveles de consistencia:
Bajo: Con este modo, se corre el riesgo de que el primer nodo disponible devuelva un dato antiguo pero
garantiza la respuesta más rápida.
Medio: Este modo reduciría la probabilidad de devolver un dato antiguo, forzando a Cassandra a llegar a un
consenso entre nodos.
Alto: De esta forma, Cassandra espera a que todos los nodos con el dato respondan, lo que sacriLca la
velocidad de la respuesta pero garantiza el dato más actualizado.
El teorema CAP aLrma que los sistemas de base de datos distribuidos solo pueden garantizar hasta dos de
estas tres características: Consistencia, Disponibilidad y Tolerancia a Particiones. En la práctica, cualquier base
de datos debe garantizar tolerancia a particiones, para que el sistema siga funcionando cuando existan
problemas de comunicación entre servidores. Por lo tanto, deberán garantizar consistencia (CP) o
disponibilidad (AP).
Cassandra se considera en general un sistema AP, por lo que tiende a garantizar la disponibilidad frente a la
consistencia de los datos. Aún así, se puede conLgurar para ser un sistema CP asegurando altos niveles de
consistencia como hemos visto.
Entre las limitaciones de Apache Cassandra se encuentra el hecho de que no contiene funcionalidad para
realizar agregaciones, por lo que si se necesitan consultas de datos agregados, se deben precomputar, lo que
consume tiempo.
La ventaja principal de la base de datos es su velocidad de escritura y la forma de distribuir los datos, que
permite una alta escalabilidad. Para sistemas en los que la velocidad de lectura sea crítica, no resulta una
solución óptima.
Entre los usos más comunes de Apache Cassandra se encuentran los siguientes:
Aplicaciones IoT: En estos sistemas, es frecuente que se tengan miles de sensores enviando información
variable. En ocasiones, estos eventos deben ser sincronizados y correlacionados en tiempo real.
Monitorización de aplicaciones web: Existen muchos ejemplos relacionados con almacenar la actividad de
los usuarios en sitios web.
Instalación de Java: Cassandra requiere Java para funcionar. Puedes instalar OpenJDK, que es una
implementación open source de Java. En general, el paquete en linux tendrá el nombre default-jdk: sudo apt
install default-jdk
Descarga Apache Cassandra desde el sitio web con la última versión estable.
Una vez descargado, extrae el contenido del archivo tar.gz en el directorio que desees: tar -xzf apache-
cassandra-x.xx.xx-bin.tar.gz
Cambia al directorio recién creado y ajusta la conLguración si es necesario. Puedes encontrar el archivo de
conLguración principal en conf/cassandra.yaml.
Una vez que hayas conLgurado Cassandra con el Lchero, puedes iniciarlo ejecutando el siguiente comando
desde el directorio principal de instalación:./bin/cassandra
También puedes veriLcar si Cassandra se está ejecutando correctamente utilizando el siguiente comando:
nodetool status
A continuación se muestra un ejemplo de código en Python que muestra cómo utilizar Cassandra para
conectarse a un cluster y realizar operaciones CRUD (Crear, Leer, Actualizar y Borrar):
En este ejemplo se importa la biblioteca de Python para Cassandra y se crea una conexión al cluster. Luego se
crean un keyspace y una tabla en Cassandra y se inserta un nuevo usuario. Se realiza una consulta para
obtener los usuarios, se imprimen los resultados y se realizan actualizaciones y borrados en la tabla.
En esta sección, quiero recomendarte tres cursos que te ayudarán a aprender Apache Cassandra desde cero y
profundizar en esta tecnología para convertirte en experto:
Cassandra es una base de datos distribuida que usa un protocolo P2P para comunicar la información de
los nodos que componen el sistema. Cada nodo puede realizar operaciones de lectura o de escritura.
Cassandra usa como lenguaje de consulta CQL (Cassandra Query Language). Este dialecto aún no soporta
todas las operaciones de SQL, ni tiene las propiedades ACID propias de bases de datos relacionales. Por lo
tanto Cassandra no se puede considerar una base de datos relacional SQL sino NoSQL.
TU EMAIL
¡ S US CR Í B EM E GR AT IS!
Oscar Fernandez
Arquitecto de Datos con más de 6 años de experiencia en el sector del Big Data. Autor de cursos de
formación en tecnologías Big Data, Cloud y Streaming completados por más de 5000 alumnos en
Udemy y otras plataformas. Miembro de la Apache Software Foundation desde 2019.
Tu comentario aquí...
Este sitio web utiliza cookies para mejorar tu experiencia. Puedes aceptar o rechazar su uso siempre que lo desees. Ajustes Aceptar Leer más
© 2024 AprenderBigData.com Privacidad | Cookies | Aviso Legal