Jean-Philippe Barbé& Mathieu CousySenior Consultant                      NoSQLValtech Toulouse
SommaireÒ  Présentation NoSQLÒ  DynamoDB   Ò  Cas d’utilisation   Ò  Architecture   Ò  Cas PratiqueÒ  Cassandra   Ò...
Cas d’utilisation•  Technologie relative aux bases de données    Alternatives au SGBD relationnels pour gérer de gros volu...
L’écosystème NoSQL             Document   ColonneClé Valeur                        Graphe                        4
Les bases Clé Valeur                                         Clé   Valeur• Implémentations très nombreuses                ...
Les bases Colonnes• Une table est définie par des familles de colonnes       •  Chaque famille peut avoir un nombre quelco...
Les bases Document• La clé correspond à un document soit       CléXML soit JSON                                           ...
Les bases Graphe• Reposent sur la notion  de nœuds  et de relations  et de propriétés• Traitement des données de réseaux s...
Le CAP Theorem (Eric Brewer)                      9
NoSQL   Amazon DynamoDB
SOMMAIREÒ  PRESENTATIONÒ  PRINCIPALES FONCTIONNALITESÒ  DYNAMODB vs. AUTRES SERVICESÒ  ARCHITECTUREÒ  PROVISIONNED TH...
PRESENTATIONÒ  DynamoDB est la base NoSQL utilisée en interne par    Amazon depuis 2007 et rendue publique le 18 janvier ...
PRINCIPALES FONCTIONNALITESÒ  Base de données orientée clé-valeur.Ò  Indexation sur un attribut ou un attribut et un ran...
DynamoDB vs autres services AmazonAmazon Relational Database Service (RDS):  Ò  AMI de base de données relationnelle Amaz...
DynamoDB vs autres services AmazonAmazon SimpleDB:  Les deux sont des bases non relationnelles sans besoin  d’administrati...
DynamoDB vs autres services AmazonAmazon S3 (Simple Storage Service):  Ò       A m a z o n   D y n a m o D B  s t o c k e...
ARCHITECTUREBase clé-valeur vs base orientée document :  Ò  Une base clé valeur est le modèle le plus simple: une valeur ...
ARCHITECTUREÒ  Le modèle de données DynamoDB repose sur des tables,    des items et des attributs.Ò  Une table contient ...
ARCHITECTUREÒ  Pas de schema à part la déclaration de clé primaire.Ò  Clé primaire de type hash ou hash et range.Ò  Typ...
Le CAP Theorem (Eric Brewer)
PROVISIONNED THROUGHPUTÒ  Sur chaque table il faut définit le «provisionned    throughput» pour permettre à Amazon d’allo...
CONSISTANCEÒ  Dépend du provisionned throughputÒ  Ecriture conditionnelle:    Ò  Permet de définir des règles de priori...
APIÒ  Amazon  DynamoDB  est un  Web Service qui  utilise le    protocole HTTP  et HTTPS  comme transport,  et    JSON com...
API fournies par les SDKsÒ  CreateTable  : permet de créer une table et de spécifier    lindex primaire utilisé pour accé...
API: Query et ScanÒ  QueryUne  requête ne cherche que  les valeurs des   clés primaires et  prend en charge  un sous-ense...
ELASTIC MAP REDUCEÒ  Permet d’effectuer en parallèle des calculs sur de gros    volumes de données.   Ò  Map: découper l...
ELASTIC MAP REDUCEL’utilisation d’Elastic Map Reduce sur DynamoDB permet :Ò  Importer/Exporter les données vers et depuis...
SECURITEAmazon   DynamoDB  intègre   AWS   Identity et AccessManagement (IAM), un service qui permet de :Ò  Créer des uti...
CAS D’UTILISATIONÒ  Mise en cache  de  pages wiki  (document  JSON  de toutes les    pages du wiki de DynamoDB, qui repré...
CAS D’UTILISATIONÒ  Exemple d’un site de critiques de livres
CAS D’UTILISATIONÒ  Table Book:    Ò  Clé primaire: isbn(number)    Ò  Attributs: title(string), author(string), pages(...
CAS D’UTILISATION
CAS D’UTILISATION
CAS D’UTILISATION
CAS D’UTILISATIONÒ  Table Tag avec une relation many-to-many:   Ò  Clé primaire: name(string)   Ò  Attributs: isbns(set...
FACTUREÒ  Paiement en l’usage sur 3 critères:   Ò  Capacité de débit réservé:       Débit décriture : $0,0113 par heure ...
FACTUREExemple de facturation du site de critique de livresÒ  4 tables.Ò  2KB par item et 5000 itemsÒ  10 écritures et ...
CONCLUSIONÒ  Flexibilité et évolutivité => scalabilitéÒ  Administration et utilisation simpleÒ  Monitoring intégréÒ  I...
NO-SQL   La solution grand format
PrésentationÒ  Créé en 2008 par Facebook, il est depuis 2010 un projet Apache.Ò  Solution de stockage NO-SQL de type «  ...
Cas d’utilisation    Ò  Site de location de films, streaming - 288 instances de Cassandra sur       Amazon Web Services (...
Architecture - Data ModelÒ  KeySpace : Namespace le plus « haut » dans    l’architecture CASSANDRA. Généralement, un KeyS...
Architecture - Data Model                       Nom       Prenom            Tel           Email                1    Dupond...
Architecture - Data ModelÒ  Super-Column :    Colonne qui            Column Family: Client    référence un autre         ...
Architecture - Data Model          Une valeur recherchée doit correspondre à une clé dans un          enregistrement d’un ...
Architecture - Répartition des données (Sharding)  Ò  Une instance Cassandra = Ensemble de nœuds  Ò  Tous les nœuds d’un...
Architecture - Réplication des donnéesÒ  Pour des raisons de fiabilité et de tolérance aux erreurs, Cassandra    permet d...
Architecture - Réplication des donnéesÒ  SimpleStrategy: Stratégie par défaut. L’emplacement du 1er réplica est    déterm...
Architecture - Réplication des donnéesÒ  NetworkTopolgyStrategy:   •  Cette stratégie est préférable si la répartition de...
Architecture - Niveau de consistanceÒ  Consistency Level : Permet de contrôler le comportement en lecture et    un écritu...
Architecture - Niveau de consistance                        Write ANY (N=3) => tolérance la plus haute                    ...
Architecture - Niveau de consistance            Write ALL(N=3) => consistance la plus haute                               ...
Architecture - Niveau de consistance               Write QUORUM (N=3): Q = N/2 +1 = 2                                     ...
Architecture - Niveau de consistance3 fonctionnalités pour garantir la consistance:Ò  Hinted Handoff: l’écriture est envo...
Le CAP Theorem (Eric Brewer)                      55
Cas pratiques – Montée en Charge (Scalabilité)Ò  Le débit en écriture et en lecture augmente linéairement au fur et à    ...
Cas pratiques - Client / APIÒ  Cassandra-cli : Outil ligne de commande fourni par Cassandra    permettant d’interroger l’...
DataStax - OPSCENTER                       58
Conclusion - Dangers / CritiquesÒ  Consistance. Forte réflexion à mener afin de déterminer le niveau souhaité pour    cha...
ConclusionÒ  Pourquoi Cassandra?    Ò  Montée en charge linéaire = Stockage de données illimité    Ò  Scalabilité aisée...
Conclusion NO-SQL            Big Data
Architecture 2.0                   62
Big Data ROICoût faible               Gros Volume                             Haute Disponibilité                      63
QUESTIONS            64
Big Data           65
Prochain SlideShare
Chargement dans…5
×

Valtech - NoSQL, solution alternative ou complémentaire aux bases de données relationnelles traditionnelles ?

3 489 vues

Publié le

NoSQL, solution alternative ou complémentaire aux bases de données relationnelles traditionnelles ?

Séminaire NoSQL, 28 juin, Valtech Toulouse

Hervé Desaunois, Responsable Technique
Herve.Desaunois@valtech.fr

Jean-Philippe Barbé, Senior Consultant
jean-philippe.barbe@valtech.fr

Mathieu Cousy, Senior Consultant
mathieu.cousy@valtech.fr

Publié dans : Technologie
0 commentaire
4 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
3 489
Sur SlideShare
0
Issues des intégrations
0
Intégrations
7
Actions
Partages
0
Téléchargements
132
Commentaires
0
J’aime
4
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Valtech - NoSQL, solution alternative ou complémentaire aux bases de données relationnelles traditionnelles ?

  1. 1. Jean-Philippe Barbé& Mathieu CousySenior Consultant NoSQLValtech Toulouse
  2. 2. SommaireÒ  Présentation NoSQLÒ  DynamoDB Ò  Cas d’utilisation Ò  Architecture Ò  Cas PratiqueÒ  Cassandra Ò  Cas d’utilisation Ò  Architecture Ò  Cas PratiqueÒ  Conclusion 2
  3. 3. Cas d’utilisation•  Technologie relative aux bases de données Alternatives au SGBD relationnels pour gérer de gros volumes•  Émergence printemps 2009 avec le Cloud Computing et le Web 2.0 BigTable Google, Dynamo Amazon, Hbase Facebook, Cassandra Twitter•  De nombreuses solutions Open Source Cassandra, CouchDB, MongoDB, Riak, HBase, … Neo4J 3
  4. 4. L’écosystème NoSQL Document ColonneClé Valeur Graphe 4
  5. 5. Les bases Clé Valeur Clé Valeur• Implémentations très nombreuses Clé Valeur• Structure de données très simple Clé Valeur •  Map• Base simple à créerÒ  DynamoDB, Redis, Voldemort, MemcacheDB … 5
  6. 6. Les bases Colonnes• Une table est définie par des familles de colonnes •  Chaque famille peut avoir un nombre quelconque de colonnes •  Les colonnes sont représentées par des couples clés-valeur• Optimisé pour l’accès par colonne• Représentation plus flexible Famille •  One to many •  Grand nombre de colonnes •  Sparse data Clé Clé Valeur Clé Valeur Clé Clé Valeur Clé ValeurÒ  HBase, Cassandra, BigTable Clé Clé Valeur Clé Valeur Colonne 6
  7. 7. Les bases Document• La clé correspond à un document soit CléXML soit JSON Clé Valeur• Retrouver avec une seule clé un Clé Valeurensemble d’informations structurées demanière hiérarchique Clé Valeur •  L’utilisateur, ses statuts, ses Clé Valeur amis Clé Valeur• L’équivalent en relationnel impliquerait Clé Valeurbeaucoup de jointures Clé ValeurÒ  MongoDB, CouchDB Clé Valeur 7
  8. 8. Les bases Graphe• Reposent sur la notion de nœuds et de relations et de propriétés• Traitement des données de réseaux sociaux •  l’utilisateur, ses amis, les amis de ses amis• En phase avec les outils du web sémantique (RDF, SparQL)Ò  Neo4J 8
  9. 9. Le CAP Theorem (Eric Brewer) 9
  10. 10. NoSQL Amazon DynamoDB
  11. 11. SOMMAIREÒ  PRESENTATIONÒ  PRINCIPALES FONCTIONNALITESÒ  DYNAMODB vs. AUTRES SERVICESÒ  ARCHITECTUREÒ  PROVISIONNED THROUGHPUT / CONSISTANCEÒ  APIÒ  ELASTIC MAP REDUCEÒ  SECURITEÒ  CAS D’UTILISATIONÒ  FACTUREÒ  CONCLUSION
  12. 12. PRESENTATIONÒ  DynamoDB est la base NoSQL utilisée en interne par Amazon depuis 2007 et rendue publique le 18 janvier 2012.Ò  DynamoDB est une base orientée clé-valeur.Ò  DynamoDB est une implémentation de  Dynamo storage system et donc peut être comparée à Riak, Redis et Voldemort.Ò  DynamoDB fait partie des services cloud d’Amazon et est disponible uniquement en SaaS.
  13. 13. PRINCIPALES FONCTIONNALITESÒ  Base de données orientée clé-valeur.Ò  Indexation sur un attribut ou un attribut et un range.Ò  Réplication et haute disponibilité.Ò  Réactivité : < 5ms en lecture, < 10 ms en écriture (disque SSD)Ò  Map/Reduce.Ò  CloudWatch pour monitorer et affiner les réglages.Ò  Prix en fonction de la consistance des données.Ò  Web Services HTTP et HTTPS + API.
  14. 14. DynamoDB vs autres services AmazonAmazon Relational Database Service (RDS): Ò  AMI de base de données relationnelle Amazon EC2 (MySQL ou Oracle) Ò  Amazon RDS traite les longues tâches de gestion de base de données, comme la gestion des corrections, les sauvegardes et la réplication
  15. 15. DynamoDB vs autres services AmazonAmazon SimpleDB: Les deux sont des bases non relationnelles sans besoin d’administration. Ò  SimpleDB est vraiment simplifiée au maximum, l’utilisateur a très peu de contrôle, limite de stockage de 10Go, toutes les colonnes sont indexées et une limite dans la capacité de requêtes pouvant être exécutées. Ò  DynamoDB peut être configurée plus finement, seules les clés primaires sont indexées et le modèle de prix est plus clair (nombre de lecture/écriture contre « heure machine »)
  16. 16. DynamoDB vs autres services AmazonAmazon S3 (Simple Storage Service): Ò  A m a z o n   D y n a m o D B  s t o c k e   d e s d o n n é e s structurées,  indexées par  clé primaire,  et permet  une faible latence pour lire et écrire des items allant de 1 octet à 64Ko. Ò  Amazon S3  stocke  des blobs  non structurés  et est donc adapté pour stocker des objets de grande taille jusquà 5 TB.
  17. 17. ARCHITECTUREBase clé-valeur vs base orientée document : Ò  Une base clé valeur est le modèle le plus simple: une valeur indexée par une clé.  •  limité à la requête par clé et les valeurs sont opaques, le magasin ne sait rien  à leur sujet.  Cela permet de très rapide  lectures et écritures (un accès au disque simple)  •  c e m o d è l e  p e u t ê t r e v u c o m m e u n e s o r t e d e cache  non  volatile  (cest à dire bien  adapté  si vous avez besoin d’accès rapides par clé aux données). Ò  Une base de données  orientée document  étend le modèle  précédent  et les valeurs  sont stockées  dans un format structuré  (un document,  doù le nom)  que la  base de données peut  comprendre.  Les requêtes peuvent donc aller plus loin que la simple clé.
  18. 18. ARCHITECTUREÒ  Le modèle de données DynamoDB repose sur des tables, des items et des attributs.Ò  Une table contient un ensemble d’items composés d’attributs sous la forme « clé/valeur »
  19. 19. ARCHITECTUREÒ  Pas de schema à part la déclaration de clé primaire.Ò  Clé primaire de type hash ou hash et range.Ò  Types de valeur: nombres / chaines de caractères / ensemble de nombres ou de chaînes.Ò  Un item d’une table a un nombre illimité d’attributs, mais il y a une limite de taille à 64 KB (somme des tailles des noms et des valeurs de tous les attributs)
  20. 20. Le CAP Theorem (Eric Brewer)
  21. 21. PROVISIONNED THROUGHPUTÒ  Sur chaque table il faut définit le «provisionned throughput» pour permettre à Amazon d’allouer des ressources matérielles suffisantes.Ò  U n e u n i t é d e W r i t e C a p a c i t y  p e r m e t deffectuer  une  écriture  par seconde pour des envois de jusquà 1KB.Ò  Une unité  de Read Capacity permet deffectuer  une lecture  fortement consistante  par seconde  (ou deux finalement cohérentes par seconde) darticles jusquà 1KB. Expected Item Consistency Desired Reads Provisioned Size Per Second Throughput Required 1KB Consistent 50 50 2KB Consistent 50 100 1KB Eventually 50 25 Consistent 2KB Eventually 50 50 Consistent
  22. 22. CONSISTANCEÒ  Dépend du provisionned throughputÒ  Ecriture conditionnelle: Ò  Permet de définir des règles de priorités en cas d’accès concurrents Ò  Overwrite ou mise à jour avant d’écrireÒ  Compteur atomique
  23. 23. APIÒ  Amazon  DynamoDB  est un  Web Service qui  utilise le protocole HTTP  et HTTPS  comme transport,  et JSON comme format de sérialisation message.Ò  Accès direct à l’API  DynamoDB dans une application.  Il faut alors écrire  le code nécessaire  pour signer et authentifier vos demandes.Ò  AWS SDK  pour Java,  Microsoft.  NET, PHP,    Android,  iOS,  et Ruby.Ò  Les SDKs pour Java and .NET fournissent une API de persistance pour mapper directement les classes de l’application sur des tables DynamoDB.
  24. 24. API fournies par les SDKsÒ  CreateTable  : permet de créer une table et de spécifier lindex primaire utilisé pour accéder aux données.Ò  UpdateTable : permet de mettre à jour les valeurs du débit réservé pour une table donnée.Ò  DeleteTable : permet de supprimer une table.Ò  DescribeTables  : permet dobtenir des informations relatives à la taille, au statut et à lindex de la table.Ò  PutItem / UpdateItem / DeleteItem   : opérations classiques éventuellement conditionnellesÒ  GetItem  : opération consistante à terme sinon il faut utiliser ConsistentReadÒ  BatchGetItem  :  renvoie les attributs associés à plusieurs éléments depuis plusieurs tables à laide des clés primaires correspondantesÒ  Query / Scan
  25. 25. API: Query et ScanÒ  QueryUne  requête ne cherche que  les valeurs des   clés primaires et  prend en charge  un sous-ensemble  des opérateurs decomparaison.  Une requête renvoie toutes les données  desitems correspondants.Ò  ScanUne opération de scan parcours lensemble de la table. Il est possible de spécifier des filtres  à appliquer  auxrésultats  pour affiner  les  valeurs remontées après lescan complet.
  26. 26. ELASTIC MAP REDUCEÒ  Permet d’effectuer en parallèle des calculs sur de gros volumes de données. Ò  Map: découper les données en sous ensembles Ò  Compute: traiter les sous ensembles séparément Ò  Reduce: Consolider les résultats des sous ensembles
  27. 27. ELASTIC MAP REDUCEL’utilisation d’Elastic Map Reduce sur DynamoDB permet :Ò  Importer/Exporter les données vers et depuis Amazon S3.Ò  Requêter les données en live sur DynamoDB en utilisant HiveQL (un langage SQL-like pour Hadoop)Ò  Charger des données de DynamoDB sur un Hadoop Distributed File System
  28. 28. SECURITEAmazon   DynamoDB  intègre   AWS   Identity et AccessManagement (IAM), un service qui permet de :Ò  Créer des utilisateurs  et des groupes  sous votre  compte AWSÒ  A t t r i b u e r   d e s i n f o r m a t i o n s d i d e n t i f i c a t i o n   d e sécurité propres à chaque utilisateurÒ  Gérer  le contrôle daccès  aux services et ressources par utilisateurÒ  Obtenir  une seule facture  pour tous les utilisateurs  sous le compte AWS
  29. 29. CAS D’UTILISATIONÒ  Mise en cache  de  pages wiki  (document  JSON  de toutes les pages du wiki de DynamoDB, qui représente  ~51 GB ). Ò  Quelques raisons d’utiliser une base clés/valeurs: Ò  Quand la vitesse d’écriture est la priorité (Mozilla Test Pilot pour récupérer le feedback des utilisateurs de Firefox). Ò  Quand la lecture par clé primaire suffit.Ò  Qui utilise DynamoDB: Ò  Amazon Le panier dachat et le service de session du site  Ò  IMDb Le système de notation des films
  30. 30. CAS D’UTILISATIONÒ  Exemple d’un site de critiques de livres
  31. 31. CAS D’UTILISATIONÒ  Table Book: Ò  Clé primaire: isbn(number) Ò  Attributs: title(string), author(string), pages(number)Ò  Table Thread: Ò  Clé primaire: subject(string) Ò  Attributs: isbns(set of numbers), author(string), content(string)Ò  Table Reply: Ò  Clé primaire range: isbn + subject(string) et date (datetime) Ò  Attributs: author(string), reply(string)
  32. 32. CAS D’UTILISATION
  33. 33. CAS D’UTILISATION
  34. 34. CAS D’UTILISATION
  35. 35. CAS D’UTILISATIONÒ  Table Tag avec une relation many-to-many: Ò  Clé primaire: name(string) Ò  Attributs: isbns(set of numbers)Ò  Table Book avec une relation many-to-many: Ò  Attributs: tags(set of string)
  36. 36. FACTUREÒ  Paiement en l’usage sur 3 critères: Ò  Capacité de débit réservé: Débit décriture : $0,0113 par heure pour 10 unités de capacité décriture Débit de lecture : $0,0113 par heure pour 50 unités de capacité de lecture Ò  Stockage de données indexées: $1,13 par Go-mois Ò  Transfert de données Premier 1 Go / mois : $0 par GB Jusquà 10 To / mois : $0,12 par GBÒ  100 Mo de stockage gratuit et capacité de débit permanent de 5 écritures/seconde et de 10 lectures/ seconde au maximum offerte par table.
  37. 37. FACTUREExemple de facturation du site de critique de livresÒ  4 tables.Ò  2KB par item et 5000 itemsÒ  10 écritures et 20 lectures consistantes par secondeÒ  Prix par table: Ò  Prix du débit par table: 10 x 2 x 0.0113/10 + 20 x 2 x 0.0113/50 = 0.032 $/h Ò  Sur un mois: 0.032 x 24 x 31 = 23.1$Ò  Prix du stockage de 10MB = 0$Ò  Total: 23.1 x 4 – Free Tier = 80.55 $ (hors taxe)
  38. 38. CONCLUSIONÒ  Flexibilité et évolutivité => scalabilitéÒ  Administration et utilisation simpleÒ  Monitoring intégréÒ  Intégré aux autres services Amazon
  39. 39. NO-SQL La solution grand format
  40. 40. PrésentationÒ  Créé en 2008 par Facebook, il est depuis 2010 un projet Apache.Ò  Solution de stockage NO-SQL de type «  colonne  » basée sur un modèle « clé-valeur » avec 2 niveaux d’imbrication.Ò  Assemblage des technologies Dynamo (Amazon) et BigTable (Google).Ò  Destiné aux applications avec de gros volumes de données fortement liées demandant une haute disponibilité.Ò  L’architecture Cassandra est composée de nœuds (machines) regroupés en Clusters (racks) eux même regroupés en DataCenters. 40
  41. 41. Cas d’utilisation Ò  Site de location de films, streaming - 288 instances de Cassandra sur Amazon Web Services (Datacenter nouvelle génération) Ò  Site de microbloging – stockage de + de 50 millions de tweets/jour Ò  Hébergement, solutions de stockage, cloud computing - 3 To/jour de logs enregistrés dans Cassandra Ò  WebEx – Outil de collaboration On-Demand – Stockage de l’activité des utilisateurs en direct Ò  Site communautaire de votes sur des pages web intéressantes – jointures entre tables de centaines de millions de lignes – Trop lent avec MySQL Ò  Concurrent de Digg – Migration en 10 jours ! Ò  … 41
  42. 42. Architecture - Data ModelÒ  KeySpace : Namespace le plus « haut » dans l’architecture CASSANDRA. Généralement, un KeySpace par applicationÒ  Column Family : Un keyspace contient un ou plusieurs « Column Family ». Ensemble de colonnes indexées à l’aide d’une clé. Column Family: EMPLOYE PRENOM NOM AGE cdupont Cédric DUPONT 33Ò  Column : Composé d’un nom, d’une valeur éventuelle et un timestamp. Le nom d’une colonne peut être une clé qui référence une valeur d’une autre colonne 42
  43. 43. Architecture - Data Model Nom Prenom Tel Email 1 Dupond Tom d.tom@mail.com 2 Durand Max 0102030405 3 André Pierre Organisation d’une table dans une base de données relationnelle 1 Nom Dupond Prenom Tom Email d.tom@mail.com 2 Nom Durand Prenom Max Tel 0102030405 3 Nom André Prenom Pierre Organisation d’un column-family dans une base de données orientée colonnesl  Pas de Schéma : Stockage de données sans schéma. Un enregistrement d’une même column-family peut avoir un nombre de colonnes différent. 43
  44. 44. Architecture - Data ModelÒ  Super-Column : Colonne qui Column Family: Client référence un autre Ligne: France Telecom couple clé/valeur. Une super colonne Super-Colonne: tdupond Super-Colonne: mdurant ne contient pas de timestamp. La valeur … d’une super colonne est un ensemble de colonne. Ligne: AirbusÒ  Super-Column- Super-Colonne: pandre Super-Colonne: dlarue Family : Column- Family dont les enregistrements sont … un ensemble de super-column. 44
  45. 45. Architecture - Data Model Une valeur recherchée doit correspondre à une clé dans un enregistrement d’un column-family ou d’un super column- family.Ø  Création de nouveaux Column-Families pour répondre aux différentes requêtes de l’application.Ø  Redondance de l’informationØ  Toutes les requêtes de l’application doivent être connues à l’avance. Très optimisé pour les opérations de mise à jour.Ø  Tiré de Google BigTable à une solution de stockage de données cohérente « log-structured ».Ø  Les mises à jour rapides peuvent être employées pour optimiser les temps de requêtage. 45
  46. 46. Architecture - Répartition des données (Sharding) Ò  Une instance Cassandra = Ensemble de nœuds Ò  Tous les nœuds d’un même cluster sont égaux Ò  Une action de lecture ou d’écriture se fait en se connectant sur n’importe quel nœud => coordinateur Ò  La répartition, se fait en fonction du « token » définit pour le nœud. 0 # Nœud et son token Division 4: 76-0 Division 1: 1-25 ByteOrderedPartitioner: RandomPartitioner: ordonné avec la valeur de la position sur le nœud en clé. Bon pour les requêtesfonction du hashage de la ordonnées ligne 75 Cluster 1 25 Division 3: 51-75 Division 2: 26-50 50 Exemple de partitionnement des données sur un cluster de 4 nœuds 46
  47. 47. Architecture - Réplication des donnéesÒ  Pour des raisons de fiabilité et de tolérance aux erreurs, Cassandra permet de répliquer les données sur les différents nœuds.Ò  Réplica: 1 copie de ligneÒ  Facteur de réplication = nombre de réplica pour une ligne.Ò  Pas de réplica maître.Ò  Plusieurs stratégies de réplication: Ò  SimpleStrategy Ò  NetworkTopolgyStrategy 47
  48. 48. Architecture - Réplication des donnéesÒ  SimpleStrategy: Stratégie par défaut. L’emplacement du 1er réplica est déterminé par le partitionner et les autres sont placés dans les nœuds suivant le nœud en court en considérant le token des nœuds. A1 C3 D2 Nœud Xy Réplicat A B D1 B1 C2 Cluster 1 A2 B3 D3 D C C1 B2 A3 Exemple de réplication des données sur un cluster de 4 nœuds avec un factor de réplication à 3 52
  49. 49. Architecture - Réplication des donnéesÒ  NetworkTopolgyStrategy: •  Cette stratégie est préférable si la répartition des nœuds dans le Data- Center est bien connue ou si le cluster regroupe plusieurs Data- Centers. •  Cela permet de définir le nombre de réplicas pour chaque Data-Center. •  Automatiquement NTS sépare les réplicas sur un maximum de racks quand c’est possible. Afin d’isoler l’impacte des problèmes physiques des machines. 1 2 9 10 Rack 1 Rack 1 3 4 11 12 # Nœud Data Center 1 Data Center 2 5 6 13 14 Rack 2 Rack 2 7 8 15 16 Exemple de répartition des nœuds dans 2 Data-Centers 49
  50. 50. Architecture - Niveau de consistanceÒ  Consistency Level : Permet de contrôler le comportement en lecture et un écriture.Ò  Se base sur le factor de réplication du schéma.Ò  Revient à définir le nombre de nœuds à bloquer pour la lecture ou pour l’écriture.Ò  On distingue 6 niveaux principaux: Niveau   ANY   ONE   QUORUM   LOCAL_QUORUM   EACH_QUORUM   ALL  Ò  Le niveau « QUORUM » est le plus utilisé car il permet une bonne disponibilité des données en gardant une bonne consistance. 50
  51. 51. Architecture - Niveau de consistance Write ANY (N=3) => tolérance la plus haute Réplica DownRequête Ecriture Réplica Insert Toujours OK Nœud pilote Ecriture Down Hint * Réplica Down Nouvelle Tentative Perte définitive si > 60 minutes*Seulement si Hinted Handoff 51activé
  52. 52. Architecture - Niveau de consistance Write ALL(N=3) => consistance la plus haute RéplicaRequête Ecriture Nœud pilote Ecriture Réplica Insert OK OK Réplica 52
  53. 53. Architecture - Niveau de consistance Write QUORUM (N=3): Q = N/2 +1 = 2 RéplicaRequête Ecriture Nœud pilote Ecriture Réplica Insert OK OK Réplica Down 53
  54. 54. Architecture - Niveau de consistance3 fonctionnalités pour garantir la consistance:Ò  Hinted Handoff: l’écriture est envoyée à tous les réplicas, si un ou plusieurs sont indisponibles l’ordre est conservé (paramétrable dans le temps) par le coordinateur le temps que le réplica soit à nouveau disponible.Ò  Read and repair: permet à un nœud de vérifier que sa donnée est autant à jour que les autres réplicas. Déclenché quand le réplica n’est pas élu par une requête. Efficace pour les données accédées régulièrementÒ  Anti entropy node repair: Même fonctionnalité que le read repair mais sous forme de script d’entretien pour les données accédées rarement donc rarement éligible au read and repair 54
  55. 55. Le CAP Theorem (Eric Brewer) 55
  56. 56. Cas pratiques – Montée en Charge (Scalabilité)Ò  Le débit en écriture et en lecture augmente linéairement au fur et à mesure que de nouvelles machines sont ajoutées sans temps d’interruption et sans reconfiguration des applications. Il est très simple d’ajouter un noeud (machine) Ò Installer Cassandra sur la machine Ò Mettre la propriété autobootStrap à true Ò Renseigner l’ip d’un noeud du cluster Ò Démarrer le noeud.Ò  Cassandra peut tolérer un plantage de plusieurs nœuds du cluster sans engendrer des pertes de performances ni d’interruptions de service. Il utilise un outil de détection de pannes pour savoir si un nœud est « up » ou « down ». 56
  57. 57. Cas pratiques - Client / APIÒ  Cassandra-cli : Outil ligne de commande fourni par Cassandra permettant d’interroger l’espace de stockage. Toutes les opérations de bases sont prévues: Ò  Requetage (get, list) Ò  Création, Modification, Suppression d’objets de lignes, colonnes et Column-Family Ò  Administration: •  Keyspace •  Niveau de consistanceÒ  CQL (Cassandra Query Language) : Est apparu à partir de la V0.8 pour harmoniser la manières d’attaquer Cassandra avec tous les langages. Basé sur la syntaxe SQL. Hector en est l’implémentation JavaÒ  Object Mapping: Hector (Java), Pycassa (Python), PhpCassa(PHP).Ò  OPSCenter: Outil de management et monitoring 57
  58. 58. DataStax - OPSCENTER 58
  59. 59. Conclusion - Dangers / CritiquesÒ  Consistance. Forte réflexion à mener afin de déterminer le niveau souhaité pour chaque requête.Ò  No ACID Ò  Atomic (Tout fonctionne ou non) L’atomicité chez Cassandra et garantie au niveau ligne, c’est tout. Ò  Consistent (état consistant après la transaction) Dépend du Niveau de consistance choisi. Le read & repair met à jour les nœuds en retard (qui était en erreur au moment clé) Ò  Isolated (pas d’interaction entre les transactions) L’accès concurrent en mise à jour sur une ligne ne pose pas de problème, le timestamp le plus récent remporte la mise à jour. Ò  Durable (persistent dans le temps) Dépend du niveau de consistance choisi. 59
  60. 60. ConclusionÒ  Pourquoi Cassandra? Ò  Montée en charge linéaire = Stockage de données illimité Ò  Scalabilité aisée à chaud Ò  Pas de point unique de défaillance = Très haute disponibilité Ò  La meilleure logique de distributivité Ò  OpenSourceÒ  Maturité Ò  La version actuelle de Cassandra est v1.1.0. C’est une version mature qui est déjà exploitée en production par de grands « noms »: Netflix, Twitter, Rackspace, Cisco Ò  Communauté importante 60
  61. 61. Conclusion NO-SQL Big Data
  62. 62. Architecture 2.0 62
  63. 63. Big Data ROICoût faible Gros Volume Haute Disponibilité 63
  64. 64. QUESTIONS 64
  65. 65. Big Data 65

×