Apache Cassandra: Introducción 2024 - Aprender BIG DATA

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 1

Formación ⌄ Artículos ⌄ Para empezar Sobre mí Contacto 

¿Sabes qué formación se adapta mejor a ti?


Apache Cassandra: Introducción
HAZ EL CUESTIONARIO
Última actualización: 13/04/2024 – Oscar Fernandez

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 Kafka: Introducción

Contenidos Couchbase: Comprendiendo la


Base de Datos NoSQL

¿Qué es Apache Cassandra?


Descubre qué es Microsoft Fabric

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.

Distribución de datos en Apache Cassandra

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.

Consistencia en Apache Cassandra

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.

Casos de uso de Apache Cassandra y Consideraciones

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.

Cómo instalar Apache Cassandra en Linux

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

Ejemplo de código para Cassandra

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):

# Importa la librería para Cassandra en Python


from cassandra.cluster import Cluster

# Crea una conexión al cluster de Cassandra


cluster = Cluster()
session = cluster.connect()

# Crea un keyspace y una tabla en Cassandra


session.execute("""
CREATE KEYSPACE IF NOT EXISTS mykeyspace
WITH REPLICATION = {
'class': 'SimpleStrategy',
'replication_factor': 1
}
""")
session.execute("""
CREATE TABLE IF NOT EXISTS mykeyspace.users (
user_id int PRIMARY KEY,
name text,
age int
)
""")

# Inserta un nuevo usuarios en la tabla


session.execute("""
INSERT INTO mykeyspace.users (user_id, name, age)
VALUES (1, 'Oscar', 28)
""")

# Consulta los usuarios de la tabla


response = session.execute("""
SELECT * FROM mykeyspace.users
""")

# Imprime los resultados de la consulta


for user in response:
print(user.user_id, user.name, user.age)

# Actualiza un usuario en la tabla


session.execute("""
UPDATE mykeyspace.users SET age = 30
WHERE user_id = 1
""")

# Elimina un usuario de la tabla


session.execute("""
DELETE FROM mykeyspace.users
WHERE user_id = 1
""")

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.

Continúa Aprendiendo Apache Cassandra

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:

Apache Cassandra en 2 horas Aprende Apache Cassandra Cassandra para principiantes


desde cero
Este curso te permitirá aprender Curso muy completo para
los conceptos básicos de Apache Este es un curso más enfocado al aprender Cassandra desde cero.
Cassandra en 2 horas. Desde su desarrollo web y la integración de Contiene más de 8 horas de vídeo
arquitectura y gestión hasta las Cassandra con NodeJS. con todos los conceptos teóricos y
consultas y su integración con Aprenderás todos los conceptos prácticos que necesitarás para
Java y Spark. que necesitarás para trabajar con esta tecnología.
desenvolverte en este entorno.

Además, por aquí te dejo mis recomendaciones de libros:

Cassandra: La guía DeLnitiva


Empezando a desarrollar con Apache Cassandra

Preguntas Frecuentes – FAQ

¿Cómo funciona Apache Cassandra?

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.

¿En qué situación usar Apache Cassandra?

Su alta escalabilidad y la velocidad de escritura de datos la convierten en una solución óptima en


aplicaciones IoT y en sistemas de monitorización con multitud de escrituras rápidas.

¿Es Apache Cassandra una base de datos SQL?

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.

A continuación el vídeo-resumen. ¡No te lo pierdas!

Únete a la Comunidad Big Data


Tu conocimiento es la herramienta más potente. Suscríbete a la lista de
correo para mantenerte al día con los artículos más útiles para tu carrera
en Big Data y Cloud. Sin spam, nunca.

TU EMAIL

Acepto la política de privacidad*

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

¡COMPÁRTEME EN LAS REDES!

› TAMBIÉN PODRÍA GUSTARTE

Vagrant: una Breve Introducción a Redis: Base de Introducción a Amazon


Introducción datos en Memoria Athena

Deja una respuesta

Tu comentario aquí...

Nombre PUBLICAR COMENTARIO

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

También podría gustarte