AnnéeUniversitaire Universitaire2018 2018--2019 2019 Introduction Caractérist
AnnéeUniversitaire Universitaire2018 2018--2019 2019 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 13 Types de données 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 uploads/Philosophie/ch6-cassandra-pdf.pdf
Documents similaires










-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Apv 22, 2021
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 2.5717MB