Vous êtes sur la page 1sur 35

Année Universitaire 2018-

 Introduction
 Caractéristiques
 Concepts clés
 Architecture
 Cassandra Query Language (CQL)
 Références

2
 Inspirée par BigTable de Google.

 Initialement développée par Facebook.

 Reprise par la fondation Apache en 2010.

3
 Orientée colonnes
 Hautement consistante
 Tolérante aux erreurs
 Scalable

4
 Colonne (Column) : triplet contenant un nom, une valeur et un timestamp.

 Ligne (Row) : une ligne est composée d'un ensemble de colonnes. Une ligne est représentée

par une clé et une valeur. Les lignes peuvent être regroupées dans des partitions.

 Famille de colonnes (Column family) : regroupement logique de lignes.

 Keyspace : regroupement de famille de colonnes.

5
Composants
 Noeud(node) : composant de base de Cassandra qui contient les données.

 Data center : ensemble de nœuds.

 Cluster : ensemble de data centers.

 Commit Log : contient toutes les opérations d’écriture (crash recovery).

 Mem-table : après l’écriture des données dans le Commit log, elles sont écrites temporairement
dans la Mem-table.
 SSTable : lorsque Mem-table atteint un certain seuil, les données sont vidées dans un fichier de
disque SSTable

6
Réplication
 Solution pour fournir une sauvegarde lorsqu’un problème se produit.
 Données répliquées pour éviter tout point de défaillance (SPOF).

Facteur de réplication
 Nombre total de réplicas déterminé par le facteur de réplication (Replication Factor).
 Facteur de réplication recommandé = 3.

7
Stratégie de réplication (Replication Strategy).
 Emplacement des réplicas.
 2 types de stratégie : SimpleStrategy et NetworkTopologyStrategy
SimpleStrategy
 Utilisé lorsqu’il n’y a qu’un data center.
 Place le premier réplica sur le nœud sélectionné par le partitionneur
(partitioner). Les réplicas restants sont placés dans le sens des
aiguilles d'une montre.

8
NetworkTopologyStrategy
 Utilisée lorsqu’il y a plus que deux data centers.
 Réplicas définis pour chaque data center séparément.
 Place les réplicas dans le sens des aiguilles d'une montre jusqu'à atteindre
le premier nœud d'un autre rack.
 Place les réplicas sur différents racks.

9
Opérations d’écriture
 Le coordinateur (coordinator) envoie une requête d’écriture aux réplicas.
 Les réplicas reçoivent la requête d’écriture indépendamment de leur niveau de
cohérence (consistency level).
 Consistency level : détermine combien de nœuds répondront à la requête avec un
success acknowledgment.
 Un nœud répond avec un success acknowledgment si les données sont écrites dans le
Commit log et dans la memTable.

10
Opérations d’écriture

1. Lorsque le nœud reçoit une requête d’écriture,


elle est sauvegardée dans le Commit Log.

2. Cassandra écrit les données dans la mem Table.


MemTable stocke temporairement les données en
mémoire. Les données écrites dans la memTable
pour chaque requête d’écriture sont également
écrites dans le Commit log.

3. Lorsque la memTable est saturée, les données


sont vidées dans le fichier de données SSTable.
11
Opérations de lecture

 Le coordinateur (coordinator) envoie une requête de lecture aux réplicas.

 3 types de requêtes de lecture : Direct request, Digest request et Read repair request.

 D’abord, le coordinateur envoie une direct request à l’un des réplicas.

 Ensuite, le coordinateur envoie une digest request au nombre de réplicas spécifié par le
niveau de cohérence et vérifie si les données renvoyées sont des données mises à jour.

 Finalement, le coordinateur envoie une digest request à tous les réplicas restants.

 Si un nœud donne une valeur « périmée », une read repair request en arrière-plan
mettra à jour ces données . Ce processus s'appelle read repair mechanism.

12
Types de données

13
Opérations sur les Keyspaces - Création d’un Keyspace

14
Opérations sur les Keyspaces - Modification d’un Keyspace

15
Opérations sur les Keyspaces - Suppression d’un Keyspace

16
Opérations sur les tables - Création d’une table

17
Opérations sur les tables - Modification d’une table

18
Opérations sur les tables - Suppression d’une table

19
Opérations sur les tables - Table tronquée

20
Opérations sur les données - Ajout de données

21
Opérations sur les données - Interrogation de données

22
Opérations sur les données - Modification de données

23
Opérations sur les données - Suppression de données

24
Opérations sur les Indexes – Création d’un index

25
Opérations sur les Indexes – Suppression d’un index

26
Limites
 Pas d'opérations d’agrégation (min, max, avg,…).
 Pas de “GROUP BY”.
 Pas de “JOIN”.
 Pas de “OR”.
 Pas de filtres sur les colonnes sans la création d’un index.

27
Collections

 BDR : éviter d’utiliser des valeurs multiples dans un même champs.

 Créer une autre table et faire une jointure.

 BDNR : minimiser au maximum les jointures pour faciliter et accélerer la navigation.

 Collections : sets, listes et maps.

28
Collections – Set

 Ensemble non ordonné de valeurs.

 Résoudre le problème de champs multiples, comme les emails par exemple.

29
Opérations sur les collections – Set
 Création de la table « Teacher » avec la colonne « Email » comme collection Set

 Insertion des données dans la collection

30
Collections – List

 Utilisée quand l’ordre d’insertion des éléments compte.

 Utilisée quand la même valeur est insérée plusieurs fois.

31
Opérations sur les collections – List
 Ajout de la colonne « coursenames » de type list à la table « teacher »

 Insertion des données dans la colonne « coursenames »

32
Collections – Map

 Associer deux éléments sous forme de clef/valeur.

33
Opérations sur les collections – Map
 Associer le nom du cours au nom du cours pré-requis.

 Insertion des données

34
 https://www.guru99.com/cassandra-tutorial.html
 https://soat.developpez.com/articles/cassandra/#LIII
 Ploetz, A. et al., Seven NoSQL databases in a week, Packt Publishing, 2018.

35

Vous aimerez peut-être aussi