PrezFlash :: NoSQLJérôme Mainaud19 juillet201111
« NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. »Emmanuel Bernard — 2011
SQLIl était une fois
Modèle de données relationnelPanierPAN_IDCLI_IDDATEMONTANT_TOTALTVAClientCLI_IDNOMADRESSECLI_IDPAN_IDArticlePAN_IDCMD_IDQUANTITEPRIX_UNITAIRE
SQLUn langage de requête plus ou moins norméTout information est décrite par des listes de n-upletsOpérations puissanteSélection (where)Projection (select)Produit cartésien (join)UnionIntersectionDifférence
Transactions ACID
Marché matureUtilisé depuis des dizaines d’annéesDe nombreux fournisseurs et de nombreux outilsOracleSQL ServerMysqlPostgresqlMariaDB (clone de Mysql)MS Access
Bases de données relationnellesUtilisémais paschoisi
Mise en œuvre d’un SGBD-RBase de donnéesServeur ApplicatifHTTPJDBC
Mise en œuvre d’un SGBD-RServeurs ApplicatifsBase de donnéesJDBCHTTP
Mise en œuvre d’un SGBD-RBase de donnéesServeurs ApplicatifsHTTPJDBC
Mise en œuvre d’un SGBD-RServeurs ApplicatifsBase de donnéesJDBCHTTP
Montée en charge difficileLes règles d’intégrité compliquent la montée horizontaleMontée en charge verticaleCoût non linéaireAtteint une limitePoint unique de défaillance
Coût des transactions ACIDLa lecture est éparpilléeLecture d’un panier de N articles2 requêtes2 IO pour lire le panierN+1 IO pour les articlesL’écriture est lenteIO synchronisésLa durée d’une requête est difficile à prévoirSelect * fromtwhere id = ?Select * fromtwhere date < (select max(date) fromot)
Le modèle Entité Relation peu exploitéLe modèle Entité-Relation est souvent peu exploitéUtilisation du CRUDUtilisation de caches MemcacheEhcacheCorrespondance ORM C’est le modèle objet qui est privilégié
Not oNLY SQLRepenser les bases de données
Montée en charge linéaireDeux critèresVolume des donnéesNombre de requêtesTwitterJanvier 2010 : 50 M/jJuin 2011 : 200 M/jLe coût doit augmenter linéairement
Performances — temps d’accèsIl est plus rapide d’interroger une autre machine que de lire sur le disque local
Performances prédictiblesLa performance des opérations doit être prédictibleAmazon: Perte de 1 % de chiffre d’affaire si le temps d’affichage des pages augmente de 0,1 sPlan qualité interne : Temps de réponse doit être < 300 ms pour 99,9 % des requêtes pour un pic de 500 requêtes par secondesGoogle pénalise les sites dont les pages s’affichent en plus de 1,5 s
Prise en compte des pannesLa panne est la règleAmazon:Un datacenter de 100 000 disques entre 6 000 et 10 000 disques en panne par an (25 disques par jour)Les sources de panne sont nombreusesMatériel serveur (disque)Matériel réseauAlimentation électriqueAnomalies logiciellesMises à jour des logiciels et des OS.
CAP
Théorème CAP« You can have atmosttwo of theseproperties for anysharded-data system. »Eric A. Brewer— 19 juillet 2000
Théorème CAPBases distribuéesVerrous distribuésVerrou pessimisteLa partition minoritaire est indisponibleOracle RACLDAPCommit à 2 phasesCache validationDNSCache WebExpirationRésolution de conflitVerrou optimiste
Nœud 1Nœud 2Version 1Version 1Client AClient BThéorème CAP — Démonstration par  l’exemple
Nœud 1Nœud 2MAJ 1  2Version 1Version 1Client AClient BThéorème CAP — Démonstration par  l’exemple
Nœud 1Nœud 2Version 2Version 1Client AClient BMAJ 1  2Théorème CAP — Démonstration par  l’exemple
Nœud 1Nœud 2Version 2Version 2Client AClient BThéorème CAP — Démonstration par  l’exempleLit version 2
Nœud 1Nœud 2MAJ 1  2Version 1Version 1Client AClient BThéorème CAP — Démonstration par  l’exemple
Nœud 1Nœud 2Version 2Version 1Client AClient BMAJ 1  2Théorème CAP — Démonstration par  l’exemplePerte du message
Théorème CAP — Démonstration par  l’exemple
Le choix d’AmazonLors qu’un client clique sur le bouton « acheter »Faut-il ?
Cohérence à termeContinuum
Cohérence par QuorumV1V2V1Client AN réplicasV1V1Client BV1
Cohérence par QuorumLe client attend E OK pour valider l’écritureV2OKV2Client AOKN réplicasV2OKV?Client BV?
Cohérence par QuorumLe client B lit L valeursV2V2Client AN réplicasV2V?Client BV?Si E + L > N la lecture est cohérente avec l’écriture
Architecture décentraliséeA,B,CW,X,Y,ZClient AD,E,FGOSSIPT,U,VG,H,IJ,K,LP,Q,R,SClient BM,N,O
Map-ReduceTraiter les données
Map-ReduceTechnique de traitement des données de grandes taillesActeurs réputés:GoogleHadoopCouchDBMongoDBMapInputSortReduce(C1V1)(K2V2)(K2[V2 V2’])(K3V3)Traitement localTraitement global
Modèles de donnéesRepenser les bases de données
Entités-relationPanierPAN_IDCLI_IDDATEMONTANT_TOTALTVAClientCLI_IDNOMADRESSECLI_IDPAN_IDArticlePAN_IDCMD_IDQUANTITEPRIX_UNITAIRE
Entité-relationSQLOracle DatabaseSQL Server (Microsoft)MySQL (Oracle)IBM DB2PostgreSQLMariaDBNewSQLBases entièrement en mémoire et réparties sur plusieurs nœuds avec réplication.VoltDBvFabricSQLFire (Vmware)  (beta)
Clef-valeur
Clef-valeurBerkley DB (Oracle)CohérenteMaitre/esclaveMemcacheMemcacheDB = Memcache + BerkeleyDBMembase  (couchbase.org)ErlangRiakCohérentErlangRedis (Vmware)Cohérenten mémoire ; écriture disque asynchronetypes évolués (liste et map) et opérations évoluées associéesDynamo (Amazon)Cohérent à termeUtilisation indirecte avec les outils Amazon AWSVoldemort (LinkedIn)Cohérent à termeGigaspaceInfinityspan (RedHat, JBoss)Hibernate OGM
Bases de documents{     "_id" : ObjectId("4c220a42f3924d31102bd866"),     "cli_id" : ObjectId("4c220a42f3924d31102bd867"),    "date" : "2011-07-19",    "montant_total” : 123,    "tva” : 20.16,    "articles” : [ 	{ “art_id” : ObjectId("4c220a42f3924d31102bd85b"),                  “qte” : 2,                  "pu” : 50 },               { “art_id” : ObjectId("4c220a42f3924d31102bd869"),                 "qte” : 1,                 "pu": 23 } ]}Collection de documents JSON
Bases de documents
Bases de documentsMongoDBCohérentBien documentéeRéférencesFoursquareBit.lySourceforgeThe New York TimesGithubGroovesharkCouchDB(Apache)Cohérent à termeErlangComplexeOrientDBJava embarquableTerrastoreLotus Notes (IBM)Cohérent à termeRavenDB.Net
Bases orientées colonnesTable clairseméeLa liste des colonnes peut changer d’une ligne à l’autre
Bases orientées colonnesGère un très grand nombre de donnéesEx: CassandraMax nombre colonnes : 2 000 000 000Max taille clef et du nom de colonne: 64 KioMax taille valeur d’une cellule : 2 Gio
Bases orientées colonnes
Bases orientées colonnesBigtable (Google)CohérentUtilisable via Google App EngineBasée sur Google File SystemSimple DB (Amazon)Cohérent à termeOption de lecture cohérenteUtilisable comme service AWSHbase (Apache)CohérenteBase historique de HadoopCréée par Yahoo!Open sourceCassandra (Apache)Cohérent à termeNiveau de cohérence réglableCréée par FacebookGrande communautéEn cours d’intégration avec la suite HadoopOpen source
GrapheBases qui permettent d’étudier globalement les relations entre entités.Ex: Graph social
GrapheNeo4jGPLTrès actifBases RDFJena (HP)Sesame (OpenRDF)BigdataLangage de requête normé : SPARQLPrezFlashWeb SémantiqueOctobre 2011
Questions ?Retrouvez nous sur le blog technique de Kleehttp://blog.kleegroup.com/teknicsteKnics@kleegroup.com@teKnics_Klee

Contenu connexe

PDF
BigData_Chp1: Introduction à la Big Data
PDF
BigData_Chp4: NOSQL
PDF
Thinking Big - Big data: principes et architecture
PDF
BigData_Chp3: Data Processing
PPTX
Presentation cassandra
PPTX
Base de données NoSQL
PDF
TP1 Big Data - MapReduce
PDF
Hadoop Hbase - Introduction
BigData_Chp1: Introduction à la Big Data
BigData_Chp4: NOSQL
Thinking Big - Big data: principes et architecture
BigData_Chp3: Data Processing
Presentation cassandra
Base de données NoSQL
TP1 Big Data - MapReduce
Hadoop Hbase - Introduction

Tendances (20)

PDF
Big Data, Hadoop & Spark
PPTX
Introduction à la big data v3
PDF
Les BD NoSQL
PDF
BI : Analyse des Données avec Mondrian
PPTX
Les Base de Données NOSQL -Presentation -
PDF
Chapitre 2 hadoop
PDF
Business Intelligence
PPTX
Les modèles NoSQL
PDF
BigData_Chp2: Hadoop & Map-Reduce
PDF
Chapitre 3 spark
PPTX
introduction à MongoDB
PDF
Cours Big Data Chap2
PDF
Données liées et Web sémantique : quand le lien fait sens.
PDF
BigData_TP5 : Neo4J
PDF
Technologies pour le Big Data
PDF
BigData_TP3 : Spark
PPTX
Chp3 - Modélisation Multidimensionnelle
PDF
Introduction au web sémantique
PPTX
Les Base de Données NOSQL
PDF
BigData_Chp5: Putting it all together
Big Data, Hadoop & Spark
Introduction à la big data v3
Les BD NoSQL
BI : Analyse des Données avec Mondrian
Les Base de Données NOSQL -Presentation -
Chapitre 2 hadoop
Business Intelligence
Les modèles NoSQL
BigData_Chp2: Hadoop & Map-Reduce
Chapitre 3 spark
introduction à MongoDB
Cours Big Data Chap2
Données liées et Web sémantique : quand le lien fait sens.
BigData_TP5 : Neo4J
Technologies pour le Big Data
BigData_TP3 : Spark
Chp3 - Modélisation Multidimensionnelle
Introduction au web sémantique
Les Base de Données NOSQL
BigData_Chp5: Putting it all together
Publicité

En vedette (9)

PPTX
NoSql : conception des schémas, requêtage, et optimisation
PDF
Introduction aux bases de données NoSQL
PDF
Bases de données NoSQL
PDF
NoSQL et Big Data
ZIP
NoSQL databases
PPT
NoSQL Slideshare Presentation
PDF
Introduction NoSql 201406 - lbroudoux
ODP
Dojo 02 : Introduction au noSQL
PPTX
Architectures techniques NoSQL
NoSql : conception des schémas, requêtage, et optimisation
Introduction aux bases de données NoSQL
Bases de données NoSQL
NoSQL et Big Data
NoSQL databases
NoSQL Slideshare Presentation
Introduction NoSql 201406 - lbroudoux
Dojo 02 : Introduction au noSQL
Architectures techniques NoSQL
Publicité

Similaire à noSQL (20)

PDF
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
PDF
NoSQL panorama - Jean Seiler Softeam
PDF
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
PDF
Introduction nosql
PPTX
Cours 3 big data de donnes non sql for studets
PPTX
Les bases de donnees nosql
PDF
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
PDF
Introduction NoSQL 201401 - Ensim
PDF
Database/ Bases de données
PDF
ODP
Base NoSql et Python
PDF
No Sql - Olivier Mallassi - September 2010
PPTX
Quand utiliser MongoDB … Et quand vous en passer…
PDF
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
PDF
Relational databases & NoSQL databases
PPTX
Big data: NoSQL comme solution
PDF
SSL 2011 : Présentation de 2 bases noSQL
PPTX
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
PDF
Hibernate vs le_cloud_computing
PDF
Adopte une BDD
NoSQL: Quoi, quand et pour qui par Orlando Cassano du CETIC
NoSQL panorama - Jean Seiler Softeam
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Introduction nosql
Cours 3 big data de donnes non sql for studets
Les bases de donnees nosql
Tours JUG (oct 2010) - NoSQL, des grands du Web aux entreprises
Introduction NoSQL 201401 - Ensim
Database/ Bases de données
Base NoSql et Python
No Sql - Olivier Mallassi - September 2010
Quand utiliser MongoDB … Et quand vous en passer…
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Relational databases & NoSQL databases
Big data: NoSQL comme solution
SSL 2011 : Présentation de 2 bases noSQL
Webinaire 1 de la série Retour aux fondamentaux : Introduction à NoSQL
Hibernate vs le_cloud_computing
Adopte une BDD

Plus de Klee Group (11)

PDF
HTML5
PPTX
Web Sémantique — Linked Data
PPTX
Introduction AOP
PPTX
Panorama d'applications Web
PPT
Internet@TV
PPTX
Sécurité des applications Web
PPTX
Drools
PPTX
Talend
PPTX
Application lifecycle management
PPTX
Intégration continue
PPTX
Architecture orientée service (SOA)
HTML5
Web Sémantique — Linked Data
Introduction AOP
Panorama d'applications Web
Internet@TV
Sécurité des applications Web
Drools
Talend
Application lifecycle management
Intégration continue
Architecture orientée service (SOA)

Dernier (9)

PPTX
test pour la présentation foire de Chalôns V1
PPT
Pratiques des systèmes d'information ppt
PDF
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
PDF
Architecture logicielle et Modeles de Conception
PDF
COURS GCDs Chap 9.pdf tous les éléments.
PDF
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
PDF
Démystification des QR codes - histoire - utilisations - techniques
PPTX
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
PDF
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26
test pour la présentation foire de Chalôns V1
Pratiques des systèmes d'information ppt
IPTV Meilleur - Le Meilleur Abonnement IPTV en France pour 2025
Architecture logicielle et Modeles de Conception
COURS GCDs Chap 9.pdf tous les éléments.
Analyse technique approfondie pour la gestion des transports dans SAP S/4HANA...
Démystification des QR codes - histoire - utilisations - techniques
Projet de Fin d’Études – Plateforme FMS pour la Gestion des FCPR
Frais et décompte dans SAP S/4HANA Transportation Management, S4TM3 Col26

noSQL

  • 1. PrezFlash :: NoSQLJérôme Mainaud19 juillet201111
  • 2. « NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. »Emmanuel Bernard — 2011
  • 4. Modèle de données relationnelPanierPAN_IDCLI_IDDATEMONTANT_TOTALTVAClientCLI_IDNOMADRESSECLI_IDPAN_IDArticlePAN_IDCMD_IDQUANTITEPRIX_UNITAIRE
  • 5. SQLUn langage de requête plus ou moins norméTout information est décrite par des listes de n-upletsOpérations puissanteSélection (where)Projection (select)Produit cartésien (join)UnionIntersectionDifférence
  • 7. Marché matureUtilisé depuis des dizaines d’annéesDe nombreux fournisseurs et de nombreux outilsOracleSQL ServerMysqlPostgresqlMariaDB (clone de Mysql)MS Access
  • 8. Bases de données relationnellesUtilisémais paschoisi
  • 9. Mise en œuvre d’un SGBD-RBase de donnéesServeur ApplicatifHTTPJDBC
  • 10. Mise en œuvre d’un SGBD-RServeurs ApplicatifsBase de donnéesJDBCHTTP
  • 11. Mise en œuvre d’un SGBD-RBase de donnéesServeurs ApplicatifsHTTPJDBC
  • 12. Mise en œuvre d’un SGBD-RServeurs ApplicatifsBase de donnéesJDBCHTTP
  • 13. Montée en charge difficileLes règles d’intégrité compliquent la montée horizontaleMontée en charge verticaleCoût non linéaireAtteint une limitePoint unique de défaillance
  • 14. Coût des transactions ACIDLa lecture est éparpilléeLecture d’un panier de N articles2 requêtes2 IO pour lire le panierN+1 IO pour les articlesL’écriture est lenteIO synchronisésLa durée d’une requête est difficile à prévoirSelect * fromtwhere id = ?Select * fromtwhere date < (select max(date) fromot)
  • 15. Le modèle Entité Relation peu exploitéLe modèle Entité-Relation est souvent peu exploitéUtilisation du CRUDUtilisation de caches MemcacheEhcacheCorrespondance ORM C’est le modèle objet qui est privilégié
  • 16. Not oNLY SQLRepenser les bases de données
  • 17. Montée en charge linéaireDeux critèresVolume des donnéesNombre de requêtesTwitterJanvier 2010 : 50 M/jJuin 2011 : 200 M/jLe coût doit augmenter linéairement
  • 18. Performances — temps d’accèsIl est plus rapide d’interroger une autre machine que de lire sur le disque local
  • 19. Performances prédictiblesLa performance des opérations doit être prédictibleAmazon: Perte de 1 % de chiffre d’affaire si le temps d’affichage des pages augmente de 0,1 sPlan qualité interne : Temps de réponse doit être < 300 ms pour 99,9 % des requêtes pour un pic de 500 requêtes par secondesGoogle pénalise les sites dont les pages s’affichent en plus de 1,5 s
  • 20. Prise en compte des pannesLa panne est la règleAmazon:Un datacenter de 100 000 disques entre 6 000 et 10 000 disques en panne par an (25 disques par jour)Les sources de panne sont nombreusesMatériel serveur (disque)Matériel réseauAlimentation électriqueAnomalies logiciellesMises à jour des logiciels et des OS.
  • 21. CAP
  • 22. Théorème CAP« You can have atmosttwo of theseproperties for anysharded-data system. »Eric A. Brewer— 19 juillet 2000
  • 23. Théorème CAPBases distribuéesVerrous distribuésVerrou pessimisteLa partition minoritaire est indisponibleOracle RACLDAPCommit à 2 phasesCache validationDNSCache WebExpirationRésolution de conflitVerrou optimiste
  • 24. Nœud 1Nœud 2Version 1Version 1Client AClient BThéorème CAP — Démonstration par l’exemple
  • 25. Nœud 1Nœud 2MAJ 1  2Version 1Version 1Client AClient BThéorème CAP — Démonstration par l’exemple
  • 26. Nœud 1Nœud 2Version 2Version 1Client AClient BMAJ 1  2Théorème CAP — Démonstration par l’exemple
  • 27. Nœud 1Nœud 2Version 2Version 2Client AClient BThéorème CAP — Démonstration par l’exempleLit version 2
  • 28. Nœud 1Nœud 2MAJ 1  2Version 1Version 1Client AClient BThéorème CAP — Démonstration par l’exemple
  • 29. Nœud 1Nœud 2Version 2Version 1Client AClient BMAJ 1  2Théorème CAP — Démonstration par l’exemplePerte du message
  • 30. Théorème CAP — Démonstration par l’exemple
  • 31. Le choix d’AmazonLors qu’un client clique sur le bouton « acheter »Faut-il ?
  • 33. Cohérence par QuorumV1V2V1Client AN réplicasV1V1Client BV1
  • 34. Cohérence par QuorumLe client attend E OK pour valider l’écritureV2OKV2Client AOKN réplicasV2OKV?Client BV?
  • 35. Cohérence par QuorumLe client B lit L valeursV2V2Client AN réplicasV2V?Client BV?Si E + L > N la lecture est cohérente avec l’écriture
  • 38. Map-ReduceTechnique de traitement des données de grandes taillesActeurs réputés:GoogleHadoopCouchDBMongoDBMapInputSortReduce(C1V1)(K2V2)(K2[V2 V2’])(K3V3)Traitement localTraitement global
  • 39. Modèles de donnéesRepenser les bases de données
  • 41. Entité-relationSQLOracle DatabaseSQL Server (Microsoft)MySQL (Oracle)IBM DB2PostgreSQLMariaDBNewSQLBases entièrement en mémoire et réparties sur plusieurs nœuds avec réplication.VoltDBvFabricSQLFire (Vmware) (beta)
  • 43. Clef-valeurBerkley DB (Oracle)CohérenteMaitre/esclaveMemcacheMemcacheDB = Memcache + BerkeleyDBMembase (couchbase.org)ErlangRiakCohérentErlangRedis (Vmware)Cohérenten mémoire ; écriture disque asynchronetypes évolués (liste et map) et opérations évoluées associéesDynamo (Amazon)Cohérent à termeUtilisation indirecte avec les outils Amazon AWSVoldemort (LinkedIn)Cohérent à termeGigaspaceInfinityspan (RedHat, JBoss)Hibernate OGM
  • 44. Bases de documents{ "_id" : ObjectId("4c220a42f3924d31102bd866"), "cli_id" : ObjectId("4c220a42f3924d31102bd867"), "date" : "2011-07-19", "montant_total” : 123, "tva” : 20.16, "articles” : [ { “art_id” : ObjectId("4c220a42f3924d31102bd85b"), “qte” : 2, "pu” : 50 }, { “art_id” : ObjectId("4c220a42f3924d31102bd869"), "qte” : 1, "pu": 23 } ]}Collection de documents JSON
  • 46. Bases de documentsMongoDBCohérentBien documentéeRéférencesFoursquareBit.lySourceforgeThe New York TimesGithubGroovesharkCouchDB(Apache)Cohérent à termeErlangComplexeOrientDBJava embarquableTerrastoreLotus Notes (IBM)Cohérent à termeRavenDB.Net
  • 47. Bases orientées colonnesTable clairseméeLa liste des colonnes peut changer d’une ligne à l’autre
  • 48. Bases orientées colonnesGère un très grand nombre de donnéesEx: CassandraMax nombre colonnes : 2 000 000 000Max taille clef et du nom de colonne: 64 KioMax taille valeur d’une cellule : 2 Gio
  • 50. Bases orientées colonnesBigtable (Google)CohérentUtilisable via Google App EngineBasée sur Google File SystemSimple DB (Amazon)Cohérent à termeOption de lecture cohérenteUtilisable comme service AWSHbase (Apache)CohérenteBase historique de HadoopCréée par Yahoo!Open sourceCassandra (Apache)Cohérent à termeNiveau de cohérence réglableCréée par FacebookGrande communautéEn cours d’intégration avec la suite HadoopOpen source
  • 51. GrapheBases qui permettent d’étudier globalement les relations entre entités.Ex: Graph social
  • 52. GrapheNeo4jGPLTrès actifBases RDFJena (HP)Sesame (OpenRDF)BigdataLangage de requête normé : SPARQLPrezFlashWeb SémantiqueOctobre 2011
  • 53. Questions ?Retrouvez nous sur le blog technique de Kleehttp://blog.kleegroup.com/teknicsteKnics@kleegroup.com@teKnics_Klee