Tutoriales

¿Qué es Apache Cassandra? Introducción a Kassandra

En este artículo, aprenderemos sobre conceptos NoSQL de alto nivel, ya que su familia juega un papel importante en el mercado de BigData. También discutiremos en detalle la base de datos NoSQL líder del mercado de Cassandra, la arquitectura de Cassandra, los componentes clave y sus casos de uso.

1. Introducción a las bases de datos NoSQL

El término «NoSQL» se refiere a una metodología de base de datos que difiere de los sistemas típicos de administración de bases de datos relacionales (RDBMS). Para comprender NoSQL, primero debe comprender SQL, un lenguaje de consulta utilizado por las bases de datos relacionales.

Las tablas, columnas, filas y esquemas se utilizan para organizar y recuperar datos en bases de datos relacionales. Las bases de datos NoSQL, por otro lado, no se basan en estas estructuras y en su lugar utilizan modelos de datos más flexibles.

Las bases de datos NoSQL fueron adoptadas por las principales empresas porque RDBMS ya no podía cumplir con los requisitos de rendimiento, escalabilidad y flexibilidad de las aplicaciones de próxima generación con uso intensivo de datos.

«No SQL» o «no solo SQL» son dos términos que pueden usarse para describir NoSQL.

Los datos no estructurados crecen mucho más rápido que los estructurados y no encajan en estructuras RDBMS relacionales, por lo que NoSQL es particularmente útil para almacenar datos no estructurados.

Datos de usuario y sesión; Chat, mensajería y registro de datos; Datos de series de tiempo como IoT y datos de dispositivos; y elementos enormes como videos y fotos son ejemplos de datos no estructurados.

2. Tipos de bases de datos NoSQL

2.1. Almacén de valor clave

Esto a menudo se considera la forma más simple de base de datos NoSQL. Este modelo de datos sin esquema está estructurado como un diccionario de pares clave-valor, con una clave y un valor para cada elemento.

Se usa ampliamente para almacenar en caché y almacenar datos de sesión de usuario, como carritos de compras. Sin embargo, si necesita arrastrar varios registros al mismo tiempo, esto no es óptimo.

Para garantizar la escalabilidad y la disponibilidad, los datos se particionan y se replican en un clúster. Por lo tanto, el almacenamiento de valores clave rara vez admite transacciones.

Son bastante buenos para escalar aplicaciones que manejan datos rápidos y no transaccionales. Amazon DynamoDB, Redis y ondas son bases de datos de almacenamiento de valores clave populares.

2.2. Documento

Las bases de datos de documentos llevan el concepto de base de datos de valores-clave un paso más allá al agrupar los documentos en colecciones. Permiten realizar consultas sobre cualquier atributo dentro de un documento y admiten pares clave-valor anidados.

Los datos se representan principalmente en el código de la aplicación como un objeto o un documento similar a JSON porque es un paradigma de datos eficiente e intuitivo para los desarrolladores.

MongoDB y Amazon DocumentDB son ejemplos de bases de datos de documentos.

Base de datos de documentos

2.3. Orientado a columnas

Las bases de datos orientadas a columnas se centran en columnas y cada columna se trata por separado. Al realizar consultas en columnas específicas de la base de datos, las bases de datos en columnas son más eficientes para almacenar datos y consultar filas con datos escasos. Funcionan bien en consultas agregadas como SUM, COUNT, AVG, MIN porque los datos están fácilmente disponibles en una columna.

HBase, Apache Kassandra son los mejores ejemplos de bases de datos en columnas.

DB orientado a columnas

2.4. Basado en gráfico

Una base de datos de gráficos realiza un seguimiento de ambas entidades y sus conexiones. La entidad se representa como un nodo, mientras que los vínculos / relaciones se representan como bordes.

Un borde crea una conexión entre nodos. Se asigna un identificador único a cada nodo y borde. La base de datos de gráficos es de naturaleza multirrelacional.

Neo4J, Gráfico infinito, OrientDB son bases de datos de gráficos populares.

DB de gráfico

3. ¿Qué es Apache Cassandra?

Apache Cassandra es un sistema de gestión de bases de datos distribuidas, en columnas y de código abierto que puede procesar grandes cantidades de datos en varios centros de datos y en la nube.

Su capacidad para gestionar grandes volúmenes lo hace especialmente útil para grandes empresas. Como resultado, varias grandes empresas ahora lo están utilizando, incluidas Apple, Instagram, Facebook, Uber, Twitter, Cisco, eBay y Netflix.

Aspectos destacados de Casandra:

  • Fuente abierta
  • Extremadamente escalable
  • Alta disponibilidad
  • No hay un solo punto de falla
  • Alto rendimiento
  • Tolerancia a fallos

4. Arquitectura de Cassandra

Apache Cassandra está diseñado para administrar grandes cargas de trabajo de datos en múltiples nodos sin un solo punto de falla. Su diseño se basa en la suposición de que las fallas del sistema y del hardware son inevitables.

Cassandra resuelve el problema de los errores proporcionando un sistema de igual a igual distribuido entre nodos homogéneos y distribuyendo datos en todo el clúster.

La arquitectura de Cassandra está basada en anillos y no tiene nodos maestros ni puntos únicos de falla.

  • Uso de Protocolo de comunicación de chismes de igual a igual, cada nodo a menudo transmite información de estado sobre sí mismo y otros nodos en el clúster. Para garantizar la retención de datos, cada nodo tiene un registro de confirmación escrito secuencialmente que registra las actividades de escritura.
  • Luego, los datos se indexan y en formato. escrito inolvidable, una estructura en memoria que imita una caché de escritura diferida. Los datos se almacenan en un SSTables Archivo de datos cuando la estructura de almacenamiento está completa.
  • Todas las escrituras se particionan y duplican / replican automáticamente en todo el clúster. Cassandra usa un proceso llamado compresión combinación regular de SSTables, eliminación de datos obsoletos con un. están marcados para su eliminación Lápida sepulcral. Se utilizan varias técnicas de reparación para garantizar que todos los datos del clúster permanezcan coherentes.
  • Cassandra es una base de datos de almacenamiento de filas particionadas en la que las filas se agrupan en tablas y se requiere una clave principal. Con el CQL, cualquier usuario autorizado puede conectarse a cualquier nodo en cualquier centro de datos y acceder a los datos. CQL tiene una sintaxis similar a SQL y funciona con datos de tablas.
  • Cada nodo del clúster puede recibir solicitudes de lectura o escritura del cliente. Cuando un cliente envía una solicitud a un nodo, ese nodo se convierte en el coordinador para ese proceso de cliente en particular. El coordinador actúa como un proxy entre la aplicación cliente y los nodos que tienen los datos solicitados. Según el diseño del clúster, el coordinador selecciona qué nodos del anillo deben recibir la solicitud.
Arquitectura de Cassandra
Arquitectura de Cassandra

5. Componentes clave de Cassandra

  • nodo: Es el servidor en el que se almacenan los datos, la infraestructura de Cassandra se basa en él.
  • Centro de datos: Colección de servidores.
  • Grupo: Uno o más centros de datos forman un clúster.
  • SSTable: La tabla de cadenas ordenadas es un archivo que contiene pares de cadenas de clave / valor que se han ordenado por clave. Para cada tabla de Cassandra, solo las SSTables se agregan y almacenan secuencialmente en el disco.
  • Escribe el protocolo: Por razones de durabilidad, todos los datos se escriben primero en el registro de confirmación. Una vez que todos los datos se han volcado en SSTables, se pueden archivar, eliminar o reciclar.
  • Tabla de memes: Una estructura de datos residente en memoria se conoce como tabla de memoria. Los datos se escribirían en la tabla mem después del registro de confirmación. A veces, puede haber muchas tablas de memes para una familia de una columna.
  • Filtro de floración: Cassandra utiliza los filtros Bloom para determinar si es probable que alguno de los SSTables contenga la clave de partición que desea sin tener que leer su contenido.

6. ¿Dónde puede usar Cassandra?

Cassandra ha demostrado ser extremadamente útil en una amplia variedad de aplicaciones.

A continuación, se muestran algunas de las consideraciones clave para comenzar con Cassandra:

  • Tenemos que preferir a Cassandra si ese es el tipo de aplicación. ‘escribir’ intenso en comparación con ‘leer’. Los datos se distribuyen rápidamente entre los nodos y las escrituras son económicas.
  • Cassandra también es adecuada para la distribución de datos en varios centros de datos y zonas de disponibilidad en la nube.
  • Cassandra puede ser una poderosa «columna vertebral» de análisis en tiempo real cuando se usa junto con Apache Spark y otras herramientas. También escala linealmente. Entonces, si espera que sus datos en tiempo real crezcan, Cassandra es sin duda la mejor opción.

7. Casos de uso ideales de Cassandra

  • Noticias: Dado que Cassandra puede manejar enormes cantidades de datos, esta es la mejor opción de los servicios de mensajería.
  • Aplicaciones de sensores: Cassandra es adecuado para procesar los datos de varios dispositivos de sensores a alta velocidad.
  • Aplicaciones Ecom: Muchos minoristas confían en Cassandra para la seguridad confiable del carrito de compras y la entrada y salida rápida de catálogos de productos.
  • Motores de recomendación: Cassandra es particularmente buena para la investigación y las recomendaciones del consumidor, lo que la convierte en una opción popular para las empresas en línea y las plataformas de redes sociales.

8. Resumen

En este artículo, hemos revisado la descripción general de los conceptos de la base de datos NoSQL y la arquitectura básica de Cassandra. Repasaremos la instalación de Cassandra en los próximos artículos.

Recurso:

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba