SlideShare une entreprise Scribd logo
1  sur  53
PrezFlash :: NoSQL Jérôme Mainaud 19 juillet2011 1 1
« NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. » Emmanuel Bernard — 2011
SQL Il était une fois
Modèle de données relationnel Panier PAN_ID CLI_ID DATE MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE
SQL Un langage de requête plus ou moins normé Tout information est décrite par des listes de n-uplets Opérations puissante Sélection (where) Projection (select) Produit cartésien (join) Union Intersection Différence
Transactions ACID
Marché mature Utilisé depuis des dizaines d’années De nombreux fournisseurs et de nombreux outils Oracle SQL Server Mysql Postgresql MariaDB (clone de Mysql) MS Access
Bases de données relationnelles Utilisé mais pas choisi
Mise en œuvre d’un SGBD-R Base de données Serveur Applicatif HTTP JDBC
Mise en œuvre d’un SGBD-R Serveurs Applicatifs Base de données JDBC HTTP
Mise en œuvre d’un SGBD-R Base de données Serveurs Applicatifs HTTP JDBC
Mise en œuvre d’un SGBD-R Serveurs Applicatifs Base de données JDBC HTTP
Montée en charge difficile Les règles d’intégrité compliquent la montée horizontale Montée en charge verticale Coût non linéaire Atteint une limite Point unique de défaillance
Coût des transactions ACID La lecture est éparpillée Lecture d’un panier de N articles 2 requêtes 2 IO pour lire le panier N+1 IO pour les articles L’écriture est lente IO synchronisés La durée d’une requête est difficile à prévoir Select * 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 CRUD Utilisation de caches  Memcache Ehcache Correspondance ORM  C’est le modèle objet qui est privilégié
Not oNLY SQL Repenser les bases de données
Montée en charge linéaire Deux critères Volume des données Nombre de requêtes Twitter Janvier 2010 : 50 M/j Juin 2011 : 200 M/j Le coût doit augmenter linéairement
Performances — temps d’accès Il est plus rapide d’interroger une autre machine que de lire sur le disque local
Performances prédictibles La performance des opérations doit être prédictible Amazon:  Perte de 1 % de chiffre d’affaire si le temps d’affichage des pages augmente de 0,1 s Plan qualité interne : Temps de réponse doit être < 300 ms pour 99,9 % des requêtes pour un pic de 500 requêtes par secondes Google pénalise les sites dont les pages s’affichent en plus de 1,5 s
Prise en compte des pannes La panne est la règle Amazon: 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 nombreuses Matériel serveur (disque) Matériel réseau Alimentation électrique Anomalies logicielles Mises à 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 CAP Bases distribuées Verrous distribués Verrou pessimiste La partition minoritaire est indisponible Oracle RAC LDAP Commit à 2 phases Cache validation DNS Cache Web Expiration Résolution de conflit Verrou optimiste
Nœud 1 Nœud 2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par  l’exemple
Nœud 1 Nœud 2 MAJ 1  2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par  l’exemple
Nœud 1 Nœud 2 Version 2 Version 1 Client A Client B MAJ 1  2 Théorème CAP — Démonstration par  l’exemple
Nœud 1 Nœud 2 Version 2 Version 2 Client A Client B Théorème CAP — Démonstration par  l’exemple Lit version 2
Nœud 1 Nœud 2 MAJ 1  2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par  l’exemple
Nœud 1 Nœud 2 Version 2 Version 1 Client A Client B MAJ 1  2 Théorème CAP — Démonstration par  l’exemple Perte du message
Théorème CAP — Démonstration par  l’exemple
Le choix d’Amazon Lors qu’un client clique  sur le bouton « acheter » Faut-il ?
Cohérence à terme Continuum
Cohérence par Quorum V1 V2 V1 Client A N réplicas V1 V1 Client B V1
Cohérence par Quorum Le client attend E OK  pour valider l’écriture V2 OK V2 Client A OK N réplicas V2 OK V? Client B V?
Cohérence par Quorum Le client B lit  L valeurs V2 V2 Client A N réplicas V2 V? Client B V? Si E + L > N la lecture est cohérente avec l’écriture
Architecture décentralisée A,B,C W,X,Y,Z Client A D,E,F GOSSIP T,U,V G,H,I J,K,L P,Q,R,S Client B M,N,O
Map-Reduce Traiter les données
Map-Reduce Technique de traitement des données de grandes tailles Acteurs réputés: Google Hadoop CouchDB MongoDB Map Input Sort Reduce (C1V1) (K2V2) (K2[V2 V2’]) (K3V3) Traitement local Traitement global
Modèles de données Repenser les bases de données
Entités-relation Panier PAN_ID CLI_ID DATE MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE
Entité-relation SQL Oracle Database SQL Server (Microsoft) MySQL (Oracle) IBM DB2 PostgreSQL MariaDB NewSQL Bases entièrement en mémoire et réparties sur plusieurs nœuds avec réplication. VoltDB vFabricSQLFire (Vmware)  (beta)
Clef-valeur
Clef-valeur Berkley DB (Oracle) Cohérente Maitre/esclave Memcache MemcacheDB = Memcache + BerkeleyDB Membase  (couchbase.org) Erlang Riak Cohérent Erlang Redis (Vmware) Cohérent en mémoire ; écriture disque asynchrone types évolués (liste et map) et opérations évoluées associées Dynamo (Amazon) Cohérent à terme Utilisation indirecte avec les outils Amazon AWS Voldemort (LinkedIn) Cohérent à terme Gigaspace Infinityspan (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 documents MongoDB Cohérent Bien documentée Références Foursquare Bit.ly Sourceforge The New York Times Github Grooveshark CouchDB(Apache) Cohérent à terme Erlang Complexe OrientDB Java embarquable Terrastore Lotus Notes (IBM) Cohérent à terme RavenDB .Net
Bases orientées colonnes Table clairsemée La liste des colonnes peut changer d’une ligne à l’autre
Bases orientées colonnes Gère un très grand nombre de données Ex: Cassandra Max nombre colonnes : 2 000 000 000 Max taille clef et du nom de colonne: 64 Kio Max taille valeur d’une cellule : 2 Gio
Bases orientées colonnes
Bases orientées colonnes Bigtable (Google) Cohérent Utilisable via Google App Engine Basée sur Google File System Simple DB (Amazon) Cohérent à terme Option de lecture cohérente Utilisable comme service AWS Hbase (Apache) Cohérente Base historique de Hadoop Créée par Yahoo! Open source Cassandra (Apache) Cohérent à terme Niveau de cohérence réglable Créée par Facebook Grande communauté En cours d’intégration avec la suite Hadoop Open source
Graphe Bases qui permettent d’étudier globalement les relations entre entités. Ex: Graph social
Graphe Neo4j GPL Très actif Bases RDF Jena (HP) Sesame (OpenRDF) Bigdata Langage de requête normé : SPARQL PrezFlash Web Sémantique Octobre 2011
Questions ? Retrouvez nous sur le blog technique de Klee http://blog.kleegroup.com/teknics teKnics@kleegroup.com @teKnics_Klee

Contenu connexe

Tendances

Tendances (20)

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 
Big data
Big dataBig data
Big data
 
Introduction aux bases de données NoSQL
Introduction aux bases de données NoSQLIntroduction aux bases de données NoSQL
Introduction aux bases de données NoSQL
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-business
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Big data
Big dataBig data
Big data
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Chp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique DécisionnelleChp1 - Introduction à l'Informatique Décisionnelle
Chp1 - Introduction à l'Informatique Décisionnelle
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
 
Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -Les Base de Données NOSQL -Presentation -
Les Base de Données NOSQL -Presentation -
 
Base de données distribuée
Base de données distribuéeBase de données distribuée
Base de données distribuée
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 

En vedette

Architectures techniques NoSQL
Architectures techniques NoSQLArchitectures techniques NoSQL
Architectures techniques NoSQL
OCTO Technology
 

En vedette (8)

NoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisationNoSql : conception des schémas, requêtage, et optimisation
NoSql : conception des schémas, requêtage, et optimisation
 
Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQL
 
NoSQL et Big Data
NoSQL et Big DataNoSQL et Big Data
NoSQL et Big Data
 
NoSQL databases
NoSQL databasesNoSQL databases
NoSQL databases
 
NoSQL Slideshare Presentation
NoSQL Slideshare Presentation NoSQL Slideshare Presentation
NoSQL Slideshare Presentation
 
Introduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudouxIntroduction NoSql 201406 - lbroudoux
Introduction NoSql 201406 - lbroudoux
 
Dojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQLDojo 02 : Introduction au noSQL
Dojo 02 : Introduction au noSQL
 
Architectures techniques NoSQL
Architectures techniques NoSQLArchitectures techniques NoSQL
Architectures techniques NoSQL
 

Similaire à noSQL

2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
Patrick Guimonet
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Bruno Bonnin
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6
MongoDB
 

Similaire à noSQL (20)

Xebicon2019 m icroservices
Xebicon2019   m icroservicesXebicon2019   m icroservices
Xebicon2019 m icroservices
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
Track 2 - Atelier 2 - Introduction à redshift
Track 2 - Atelier 2 - Introduction à redshiftTrack 2 - Atelier 2 - Introduction à redshift
Track 2 - Atelier 2 - Introduction à redshift
 
Tech Round Table
Tech Round TableTech Round Table
Tech Round Table
 
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
Valtech - NoSQL, solution alternative ou complémentaire aux bases de données ...
 
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data LakeGestion des données d'entreprise à l'ère de MongoDB et du Data Lake
Gestion des données d'entreprise à l'ère de MongoDB et du Data Lake
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
Architectures microservices
Architectures microservicesArchitectures microservices
Architectures microservices
 
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
Guide (un tout petit peu) pratique (et totalement subjectif) du stream proces...
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Apache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalitésApache Cassandra - Concepts et fonctionnalités
Apache Cassandra - Concepts et fonctionnalités
 
MongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptxMongoDB 3.6 Customer Deck pptx.pptx
MongoDB 3.6 Customer Deck pptx.pptx
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6
 
Introduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - EnsimIntroduction NoSQL 201401 - Ensim
Introduction NoSQL 201401 - Ensim
 
Cartographie du big data
Cartographie du big dataCartographie du big data
Cartographie du big data
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Introduction au Domain Driven Design
Introduction au Domain Driven DesignIntroduction au Domain Driven Design
Introduction au Domain Driven Design
 
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...AWS Paris Summit 2014 - T3 -  Architecturer avec AWS pour des millions d'util...
AWS Paris Summit 2014 - T3 - Architecturer avec AWS pour des millions d'util...
 
What's new in MongoDB 3.6
What's new in MongoDB 3.6What's new in MongoDB 3.6
What's new in MongoDB 3.6
 
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big DataAzure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
Azure Camp 9 Décembre 2014 - slides session développeurs IOT Big Data
 

Plus de Klee Group (11)

HTML5
HTML5HTML5
HTML5
 
Web Sémantique — Linked Data
Web Sémantique — Linked DataWeb Sémantique — Linked Data
Web Sémantique — Linked Data
 
Introduction AOP
Introduction AOPIntroduction AOP
Introduction AOP
 
Panorama d'applications Web
Panorama d'applications WebPanorama d'applications Web
Panorama d'applications Web
 
Internet@TV
Internet@TVInternet@TV
Internet@TV
 
Sécurité des applications Web
Sécurité des applications WebSécurité des applications Web
Sécurité des applications Web
 
Drools
DroolsDrools
Drools
 
Talend
TalendTalend
Talend
 
Application lifecycle management
Application lifecycle managementApplication lifecycle management
Application lifecycle management
 
Intégration continue
Intégration continueIntégration continue
Intégration continue
 
Architecture orientée service (SOA)
Architecture orientée service (SOA)Architecture orientée service (SOA)
Architecture orientée service (SOA)
 

noSQL

  • 1. PrezFlash :: NoSQL Jérôme Mainaud 19 juillet2011 1 1
  • 2. « NoSQL is like sex for teenagers: everybody is talking about it but few have actually gone for it. » Emmanuel Bernard — 2011
  • 3. SQL Il était une fois
  • 4. Modèle de données relationnel Panier PAN_ID CLI_ID DATE MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE
  • 5. SQL Un langage de requête plus ou moins normé Tout information est décrite par des listes de n-uplets Opérations puissante Sélection (where) Projection (select) Produit cartésien (join) Union Intersection Différence
  • 7. Marché mature Utilisé depuis des dizaines d’années De nombreux fournisseurs et de nombreux outils Oracle SQL Server Mysql Postgresql MariaDB (clone de Mysql) MS Access
  • 8. Bases de données relationnelles Utilisé mais pas choisi
  • 9. Mise en œuvre d’un SGBD-R Base de données Serveur Applicatif HTTP JDBC
  • 10. Mise en œuvre d’un SGBD-R Serveurs Applicatifs Base de données JDBC HTTP
  • 11. Mise en œuvre d’un SGBD-R Base de données Serveurs Applicatifs HTTP JDBC
  • 12. Mise en œuvre d’un SGBD-R Serveurs Applicatifs Base de données JDBC HTTP
  • 13. Montée en charge difficile Les règles d’intégrité compliquent la montée horizontale Montée en charge verticale Coût non linéaire Atteint une limite Point unique de défaillance
  • 14. Coût des transactions ACID La lecture est éparpillée Lecture d’un panier de N articles 2 requêtes 2 IO pour lire le panier N+1 IO pour les articles L’écriture est lente IO synchronisés La durée d’une requête est difficile à prévoir Select * 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 CRUD Utilisation de caches Memcache Ehcache Correspondance ORM C’est le modèle objet qui est privilégié
  • 16. Not oNLY SQL Repenser les bases de données
  • 17. Montée en charge linéaire Deux critères Volume des données Nombre de requêtes Twitter Janvier 2010 : 50 M/j Juin 2011 : 200 M/j Le coût doit augmenter linéairement
  • 18. Performances — temps d’accès Il est plus rapide d’interroger une autre machine que de lire sur le disque local
  • 19. Performances prédictibles La performance des opérations doit être prédictible Amazon: Perte de 1 % de chiffre d’affaire si le temps d’affichage des pages augmente de 0,1 s Plan qualité interne : Temps de réponse doit être < 300 ms pour 99,9 % des requêtes pour un pic de 500 requêtes par secondes Google pénalise les sites dont les pages s’affichent en plus de 1,5 s
  • 20. Prise en compte des pannes La panne est la règle Amazon: 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 nombreuses Matériel serveur (disque) Matériel réseau Alimentation électrique Anomalies logicielles Mises à 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 CAP Bases distribuées Verrous distribués Verrou pessimiste La partition minoritaire est indisponible Oracle RAC LDAP Commit à 2 phases Cache validation DNS Cache Web Expiration Résolution de conflit Verrou optimiste
  • 24. Nœud 1 Nœud 2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par l’exemple
  • 25. Nœud 1 Nœud 2 MAJ 1  2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par l’exemple
  • 26. Nœud 1 Nœud 2 Version 2 Version 1 Client A Client B MAJ 1  2 Théorème CAP — Démonstration par l’exemple
  • 27. Nœud 1 Nœud 2 Version 2 Version 2 Client A Client B Théorème CAP — Démonstration par l’exemple Lit version 2
  • 28. Nœud 1 Nœud 2 MAJ 1  2 Version 1 Version 1 Client A Client B Théorème CAP — Démonstration par l’exemple
  • 29. Nœud 1 Nœud 2 Version 2 Version 1 Client A Client B MAJ 1  2 Théorème CAP — Démonstration par l’exemple Perte du message
  • 30. Théorème CAP — Démonstration par l’exemple
  • 31. Le choix d’Amazon Lors qu’un client clique sur le bouton « acheter » Faut-il ?
  • 32. Cohérence à terme Continuum
  • 33. Cohérence par Quorum V1 V2 V1 Client A N réplicas V1 V1 Client B V1
  • 34. Cohérence par Quorum Le client attend E OK pour valider l’écriture V2 OK V2 Client A OK N réplicas V2 OK V? Client B V?
  • 35. Cohérence par Quorum Le client B lit L valeurs V2 V2 Client A N réplicas V2 V? Client B V? Si E + L > N la lecture est cohérente avec l’écriture
  • 36. Architecture décentralisée A,B,C W,X,Y,Z Client A D,E,F GOSSIP T,U,V G,H,I J,K,L P,Q,R,S Client B M,N,O
  • 38. Map-Reduce Technique de traitement des données de grandes tailles Acteurs réputés: Google Hadoop CouchDB MongoDB Map Input Sort Reduce (C1V1) (K2V2) (K2[V2 V2’]) (K3V3) Traitement local Traitement global
  • 39. Modèles de données Repenser les bases de données
  • 40. Entités-relation Panier PAN_ID CLI_ID DATE MONTANT_TOTAL TVA Client CLI_ID NOM ADRESSE CLI_ID PAN_ID Article PAN_ID CMD_ID QUANTITE PRIX_UNITAIRE
  • 41. Entité-relation SQL Oracle Database SQL Server (Microsoft) MySQL (Oracle) IBM DB2 PostgreSQL MariaDB NewSQL Bases entièrement en mémoire et réparties sur plusieurs nœuds avec réplication. VoltDB vFabricSQLFire (Vmware) (beta)
  • 43. Clef-valeur Berkley DB (Oracle) Cohérente Maitre/esclave Memcache MemcacheDB = Memcache + BerkeleyDB Membase (couchbase.org) Erlang Riak Cohérent Erlang Redis (Vmware) Cohérent en mémoire ; écriture disque asynchrone types évolués (liste et map) et opérations évoluées associées Dynamo (Amazon) Cohérent à terme Utilisation indirecte avec les outils Amazon AWS Voldemort (LinkedIn) Cohérent à terme Gigaspace Infinityspan (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 documents MongoDB Cohérent Bien documentée Références Foursquare Bit.ly Sourceforge The New York Times Github Grooveshark CouchDB(Apache) Cohérent à terme Erlang Complexe OrientDB Java embarquable Terrastore Lotus Notes (IBM) Cohérent à terme RavenDB .Net
  • 47. Bases orientées colonnes Table clairsemée La liste des colonnes peut changer d’une ligne à l’autre
  • 48. Bases orientées colonnes Gère un très grand nombre de données Ex: Cassandra Max nombre colonnes : 2 000 000 000 Max taille clef et du nom de colonne: 64 Kio Max taille valeur d’une cellule : 2 Gio
  • 50. Bases orientées colonnes Bigtable (Google) Cohérent Utilisable via Google App Engine Basée sur Google File System Simple DB (Amazon) Cohérent à terme Option de lecture cohérente Utilisable comme service AWS Hbase (Apache) Cohérente Base historique de Hadoop Créée par Yahoo! Open source Cassandra (Apache) Cohérent à terme Niveau de cohérence réglable Créée par Facebook Grande communauté En cours d’intégration avec la suite Hadoop Open source
  • 51. Graphe Bases qui permettent d’étudier globalement les relations entre entités. Ex: Graph social
  • 52. Graphe Neo4j GPL Très actif Bases RDF Jena (HP) Sesame (OpenRDF) Bigdata Langage de requête normé : SPARQL PrezFlash Web Sémantique Octobre 2011
  • 53. Questions ? Retrouvez nous sur le blog technique de Klee http://blog.kleegroup.com/teknics teKnics@kleegroup.com @teKnics_Klee