Descripción
Apache Cassandra es un sistema de gestión de base de datos NoSQL distribuida que sigue un modelo de datos de agregación orientado a columnas híbrido con un modelo Clave-Valor. Originariamente creada por Facebook, en la actualidad es un producto openSource mantenido por Apache. Es la elección perfecta cuando necesitamos escalabilidad y gran disponibilidad de los datos sin comprometer el rendimiento. Proporciona un robusto soporte para clusters que pueden llegar a abarcar múltiples datacenters.
Cassandra posee una arquitectura sin maestro, por lo que todos los nodos actúan como iguales, y de este modo, los datos se distribuyen automáticamente entre cada uno de los nodos que se encuentran en un «anillo» o cluster.
El factor de replicación es configurable, almacenando copias redundantes de datos en cada nodo. De esta manera, si perdemos un nodo, la información sigue estando disponible en los otros. La escalabilidad es lineal. La capacidad puede ser incrementada tan solo añadiendo nuevos nodos al cluster
Como lenguaje de consulta, Cassandra introduce CQL (Cassandra Query Language), una alternativa similar a SQL.
Enlace al recurso
Ejemplo de uso
En el siguiente ejemplo establecemos la creación de un keyspace:
CREATE KEYSPACE MyKeySpace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; USE MyKeySpace;
El keyspace recibe el nombre de MyKeySpace y sigue una estrategia de réplica simple, de manera que la primera réplica se sitúa en el nodo indicado y las siguientes en los nodos colindantes del anillo siguiendo las agujas del reloj. Por otra parte, mediante el Replication Factor especificamos el número de nodos que contendrán réplicas de cada fila.
Posteriormente, crearemos una MyInformation para almacenar información relacionada con personas:
CREATE COLUMNFAMILY MyInformation (id text, Nombre text, Apellidos text, PRIMARY KEY(id));
En la siguiente sentencia realizaremos la primera inserción de la tabla MyInformation:
INSERT INTO MyInformation (id, Nombre, Apellidos) VALUES ('1', 'Juan, 'Matos');
Consulta sobre datos previamente insertados:
SELECT * FROM MyInformation;
Como resultado obtendremos:
id | Nombre | Apellidos |
1 (1 rows) |
Juan | Matos |
Enlaces relacionados
Ejemplos Cassandra: https://www.guru99.com/cassandra-data-model-rules.html
Hoja referencia CQL: https://blog.pythian.com/cassandra-cql-cheatsheet/