Descripció
Apache Cassandra és un sistema de gestió de base de dades NoSQL distribuïda que segueix un model de dades d’agregació orientat a columnes híbrid amb un model clau-valor. Originàriament creada per Facebook, en l’actualitat és un producte openSource mantingut per Apache. És l’elecció perfecta quan necessitem escalabilitat i gran disponibilitat de les dades sense comprometre el rendiment. Proporciona un robust suport per a clústers que poden arribar a abastar múltiples datacenters.
Cassandra posseeix una arquitectura sense mestre, per la qual cosa tots els nodes actuen com a iguals, i d’aquesta manera, les dades es distribueixen automàticament entre cadascun dels nodes que es troben en un «anell» o clúster.
El factor de replicació és configurable, emmagatzemant còpies redundants de dades en cada node. D’aquesta manera, si perdem un node, la informació segueix estant disponible en els altres. L’escalabilitat és lineal. La capacitat pot ser incrementada tan sols afegint nous nodes al clúster
Com a llenguatge de consulta, Cassandra introdueix CQL (Cassandra Query Language), una alternativa similar a SQL.
Enllaç al recurs
Exemple d’ús
En el següent exemple establim la creació d’un keyspace:
CREATE KEYSPACE MyKeySpace WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 }; USE MyKeySpace;
El keyspace rep el nom de MyKeySpace i segueix una estratègia de rèplica simple, de manera que la primera rèplica se situa en el node indicat i les següents en els nodes confrontants de l’anell seguint les agulles del rellotge. D’altra banda, mitjançant el Replication Factor especifiquem el nombre de nodes que contindran rèpliques de cada fila.
Posteriorment, crearem una MyInformation per emmagatzemar informació relacionada amb persones:
CREATE COLUMNFAMILY MyInformation (id text, Nom text, Cognoms text, PRIMARY KEY(id));
En la següent sentència realitzarem la primera inserció de la taula MyInformation:
INSERT INTO MyInformation (id, Nom, Cognoms) VALUES ('1', 'Joan, 'Matos');
Consulta sobre dades prèviament inserides:
SELECT * FROM MyInformation;
Com a resultat obtindrem:
id | Nom | Cognoms |
1 (1 rows) |
Joan | Matos |
Enllaços relacionats
Exemples Cassandra: https://www.guru99.com/cassandra-data-model-rules.html
Full de referència CQL: https://blog.pythian.com/cassandra-cql-cheatsheet/