Nosql - jeudi d'ilex

  • Published on
    14-Apr-2017

  • View
    54

  • Download
    0

Embed Size (px)

Transcript

<p>Jeudi dILEX</p> <p>NoSQL</p> <p>Jeudi dIlex</p> <p>19/03/2015Gestion des Identits&amp; des Accs</p> <p>1</p> <p>SQL vs NoSQLQuest ce que le NoSQL ?Avantages / InconvnientsTypes des bases NoSQLActeurs du marchRetour dexprienceConclusion</p> <p>SommaireMeibo</p> <p>SQL vs NoSQLLes bases de donnes SQL?Elles dominent le march depuis plus de 30 ans</p> <p>Ncessite de nombreuses lectures / critures en simultanes. </p> <p>Les SGBDR proposent un systme de gestion de transaction efficace permettant d'viter le pire.</p> <p>Les SGBDR ont impos la mise en place dun modle de conception.</p> <p>Langage de requtage globalement commun toute les bases de donnes (SQL).</p> <p>Nombreux outils disponibles pour les dveloppeurs et pour ladministration des bases.</p> <p>De nombreuses connaissances et retour dexprience sur les diffrentes bases. </p> <p>SGBDR : Systme de gestion de base de donnes relationnelle</p> <p>N</p> <p>SQL vs NoSQLLes limites des bases relationnelles?</p> <p>Scalabilit :Le modle de consistance des SGBDR empche l'utilisation de plusieurs machines pour rpartir la charge (au moins en criture)</p> <p>Linterdpendance :Un grand volume de donnes rend trs dpendante les donnes entre elles</p> <p>Conception de la base plus complique mettre en place (il y a souvent besoin dexpert)Pour augmenter la performance d'accs la base, pas d'autre moyen que d'acheter un plus gros serveur, puis un autre, puis un autre, </p> <p>N</p> <p>Prsentation NoSQLNoSQL ?</p> <p>NoSQL sloigne du modle de donnes relationnelles pour gnralement proposer un modle par agrgat.Terme apparu en 2009 avec plusieurs interprtations possibles:No SQLNot Only SQL </p> <p>Pas de dfinition formelle mais des caractristiques communes partages par les bases dites NoSQL:N'utilise pas de modle relationnel et donc pas le langage SQLPas dinterdpendance entre les donnesConu pour tre fortement scalablePas de notion de schma il est donc possible de stocker n'importe quelle donne dans n'importe quelle ligne</p> <p>N</p> <p>Avantages inconvnientsAvantages / inconvnients du NoSQL</p> <p>Pas de schma (les proprits ne sont pas fixes lavance)</p> <p>Performance (en lecture et criture)</p> <p>Scalabilit linaire (pour augmenter la performance on ajoute un nud, sharding)</p> <p>Scurit (pas dinjection possible)</p> <p>Modlisation des donnes faites par les concepteurs dapplications</p> <p>Permet de stocker un trs grand volume de donnes</p> <p>Avantages</p> <p>Pas de jointure entre les donnes (sil y a un besoin de jointure, cest lapplicatif de sen charger)</p> <p>La plupart des bases NoSQL ne respecte pas les proprits ACID (tous les clients ne voient pas la mme vue lorsquil y a des mises--jour)</p> <p>Dplacement de la connaissance pour loptimisation des bases (du DBA vers le dveloppeur)</p> <p>Peux de Frameworks dabstraction disponibles (Spring Data, Hibernate OGM)</p> <p>InconvnientsLe NoSQL ne rpond pas tous les besoins en base de donnes</p> <p>N</p> <p>Types de bases NoSQLDiffrents types de bases NoSQL :</p> <p>Cls/valeurs :Ce modle peut tre assimil une hashmap distribue.Oprations possibles PUT, GET et DELETEIl nest possible de requter que sur les cls utiliser pour les donnes volatiles ou accdes trs rgulirement</p> <p>Graphe:Ce modle de reprsentation des donnes se base sur la thorie des graphes Il sappuie sur la notion de nuds, de relations et de proprits qui leur sont rattachesCe modle facilite la reprsentation du monde rel, ce qui le rend adapt au traitement des donnes des rseaux sociaux utiliser pour les donnes qui sont fortement connectes</p> <p>N</p> <p>Types de bases NoSQLDiffrents types de base NoSQL :</p> <p>Colonne :Ce modle ressemble premire vue une table dans un SGBDR, sauf que le nombre de colonnes est dynamiqueLe nombre de colonnes peut varier dun enregistrement un autre ce qui vite de retrouver des colonnes ayant des valeurs NULL utiliser quand les donnes ont une partie structure et une partie non structure</p> <p>Document :Ressemble au cl valeur sauf que la valeur est un document JsonIl est possible de requter lintrieur du document Json utiliser quand les donnes ont une partie structure et une partie non structure</p> <p>N</p> <p>Acteurs du march</p> <p>N</p> <p>Retour dexprience mongoDB </p> <p>Leader actuel du march du NoSQL</p> <p>Base base sur le modle document</p> <p>OpenSource</p> <p>Prise en main facile</p> <p>Drivers officiels disponibles pour de nombreux langagesJava, C, C++, C#, Node.js, Perl, PHP, Python, Motor, Ruby, Scala</p> <p>Outil dadministration (MMS) de mongoDB disponible directement en ligne</p> <p>MongoDB</p> <p>N</p> <p>Retour dexprience mongoDB Projet Canal+ - Mise en place dun cache dauthentification</p> <p>Sauvegarde des informations utilisateurs et des droits dabonnement chaque authentification</p> <p>Infrastructure avec 1 base mongo maitre et 2 esclaves. Pas de sharding mis en place.</p> <p>Environ 8.5 millions de documents depuis mai 2014.</p> <p>La base reprsente environ 17Go de donnes et actuellement toutes les donnes tiennent en RAM</p> <p>Une recherche utilisateur met environ 5ms avec une base de cette taille</p> <p>Pourquoi avoir choisi mongoDB ?Pour des besoins de performance</p> <p>N</p> <p>Retour dexprience mongoDB Projet Canal+ - Gestion des profils utilisateurs</p> <p>Stockage des informations de profils utilisateurs des utilisateurs Canal+ pour lensemble des services du groupe (WEB, Mobile, TV )</p> <p>Utilisation de la mme infrastructure mongoDB que pour le cache dauthentification</p> <p>Utilisation de la notion du schemaless. Les donnes disponibles pour chaque profil nest pas prdfini lavance, chaque service peut ajouter de nouvelles donnes sans modification de lapplication.</p> <p>Pourquoi avoir choisi mongoDB ?Pour des besoins de performancePour pouvoir ajouter de nouvelles donnes sans modification applicative</p> <p>N</p> <p>Retour dexprience mongoDB Projet en cours Affichage dun captcha a lauthentification</p> <p>Le but est de bloquer la dcouverte de comptes (attaques de robots)</p> <p>Sauvegarde de chaque IP qui fait une tentative dauthentification</p> <p>La sauvegarde se fait dans mongoDB</p> <p>Nous positionnons une dure de vie des entres dans mongoDBUne fois la dure dpass mongoDB supprime automatiquement les entres</p> <p>Pourquoi avoir choisi mongoDB ?Pour des besoins de performance (requte sur la base chaque authentification)Pour la gestion dune dure de validit des documents</p> <p>N</p> <p>ConclusionConclusion</p> <p>Technologie la mode</p> <p>NoSQL ne remplace pas le SQL</p> <p>NoSQL pour les besoins de performance et/ou dvolutivit Barrire dentre pour un nouveau dveloppement assez peu leve</p> <p>N</p>