SlideShare une entreprise Scribd logo
1  sur  62
Les bases NoSQL et Python Youenn Boussard
Les bases de données ,[object Object]
1960 : 1er base de donnée : militaire , hiérarchique, sous forme d'arbre
1970 : Théorie sur l'algèbre relationnelle de Codd
1980 : troisième génération des sgbd :  les bases de données orientées objets
Le développement Internet ,[object Object]
1969 – RFC
1974 – Mise au point de la norme IP
1981 – 213 ordinateurs connectés
1989 – Naissance du World wide Web
2004 – Web 2.0, Facebook
2006 – twitter
186,7 millions de sites web
Web 2.0 et les limites des modèles relationnels ,[object Object]
Facebook 50TB
Ebay 2PB ,[object Object]
Beaucoup de trafic
Et les bases relationnelles pour gérer tout cela ?
Le cas de  ,[object Object]
Maître esclave ,[object Object]
Un ou plusieurs esclave
Toute les écritures vont sur le maître, répliquer sur les esclaves
Les lectures sont réparties entre les différents maîtres et esclaves ,[object Object],[object Object]
Le maître est le point d'engorgement du système
Partition Horizontale ,[object Object]
Les jointures sont déportées au niveau de l'application
Cela implique ,[object Object]
Le fonctionnel devient compliqué
La maintenance aussi !!
Et la disponibilité !! Des centaines de millions de  lignes Des millions de  lignes 14sec
Sytème distribué : Trois états ,[object Object]
A comme Availability (Disponibilité)
P comme Partition tolérance  ,[object Object],CAP THEOREM = On ne peut avoir que  2 états en simultanée dans un système distribué
ACID contre BASE ,[object Object]
Cohérente
Isolée
Durable ,[object Object]
Soft state
Eventually consistent
[object Object]
Distribuée
Open source
Scalable horizontablement ,[object Object]
 
 
CouchDB est ,[object Object]
Accessible via RESTful
Distribué, réplication incrémental, résolution de conflit bi directionnel
Donnée indexable et requetable suivant des vues
Ecrit en
Un document ,[object Object],[object Object]
RESTFul API REST est basé sur le protocole HTTP ,[object Object]
Ecriture / update : PUT
Créer : POST
Supprimer : DELETE
Robuste ,[object Object]
Si le serveur tombe, il faut juste redémarrer CouchDB -> pas de « repair »
On peut prendre des snapshots avec des simples cp
Plusieurs niveaux de durabilité :  Choix entre synchroniser à toutes les mises à jours ou à la demande
Vues ,[object Object]
Les vues sont définies par des documents spéciaux les « designs documents »
Les vues sont écrites en javascript.

Contenu connexe

Tendances

BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring CloudFlorian Beaufumé
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
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 NoSQLAntoine Augusti
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreMICHRAFY MUSTAFA
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantALTIC Altic
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…MongoDB
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de ThèseLilia Sfaxi
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 

Tendances (20)

BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
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
 
Base de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvreBase de données graphe, Noe4j concepts et mise en oeuvre
Base de données graphe, Noe4j concepts et mise en oeuvre
 
Apache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performantApache Kafka, Un système distribué de messagerie hautement performant
Apache Kafka, Un système distribué de messagerie hautement performant
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Présentation de Thèse
Présentation de ThèsePrésentation de Thèse
Présentation de Thèse
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Introduction au langage SQL
Introduction au langage SQLIntroduction au langage SQL
Introduction au langage SQL
 
MongoDB.pptx
MongoDB.pptxMongoDB.pptx
MongoDB.pptx
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 

En vedette

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sqlbchesneau
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Cours python
Cours pythonCours python
Cours pythonsalmazen
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonMohammed TAMALI
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancépierrepo
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Emeric Tapachès
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec OdooHassan WAHSISS
 
Les systèmes de base de donnée
Les systèmes de base de donnéeLes systèmes de base de donnée
Les systèmes de base de donnéeQuentin Apruzzese
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniShellmates
 
2 m72 groupe4_présentation
2 m72 groupe4_présentation2 m72 groupe4_présentation
2 m72 groupe4_présentationlitlematth
 
Photographies Historiques
Photographies HistoriquesPhotographies Historiques
Photographies Historiquessuetens
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCERTyou Formation
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonYannick Foeillet
 
4 annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret
4  annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret4  annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret
4 annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arretVille d'Ergué-Gabéric
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Emeric Tapachès
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLParis, France
 

En vedette (20)

Python et les bases de données non sql
Python et les bases de données non sqlPython et les bases de données non sql
Python et les bases de données non sql
 
Formation python
Formation pythonFormation python
Formation python
 
Cours python
Cours pythonCours python
Cours python
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
 
Cours python avancé
Cours python avancéCours python avancé
Cours python avancé
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
 
Python et son intégration avec Odoo
Python et son intégration avec OdooPython et son intégration avec Odoo
Python et son intégration avec Odoo
 
Les systèmes de base de donnée
Les systèmes de base de donnéeLes systèmes de base de donnée
Les systèmes de base de donnée
 
Python après 15 ans de JAVA
Python après 15 ans de JAVAPython après 15 ans de JAVA
Python après 15 ans de JAVA
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
2 m72 groupe4_présentation
2 m72 groupe4_présentation2 m72 groupe4_présentation
2 m72 groupe4_présentation
 
Photographies Historiques
Photographies HistoriquesPhotographies Historiques
Photographies Historiques
 
Cypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-pythonCypyth formation-programmation-objet-en-langage-python
Cypyth formation-programmation-objet-en-langage-python
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizon
 
La sabiduría
La sabiduríaLa sabiduría
La sabiduría
 
Solucion y Psicologia del Bienestar
Solucion y Psicologia del BienestarSolucion y Psicologia del Bienestar
Solucion y Psicologia del Bienestar
 
4 annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret
4  annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret4  annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret
4 annexe3 etudeoa_hypotheses_amenagement_2013-06-03_arret
 
Python debugger
Python debuggerPython debugger
Python debugger
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
 
SeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQLSeSQL : un moteur de recherche en Python et PostgreSQL
SeSQL : un moteur de recherche en Python et PostgreSQL
 

Similaire à Base NoSql et Python

Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Alexis Sukrieh
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLHervé Leclerc
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database ConnectivityKorteby Farouk
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide
 
Développement Web
Développement WebDéveloppement Web
Développement Webmastertic
 
Cartographie de l'information
Cartographie de l'informationCartographie de l'information
Cartographie de l'informationlaureno
 
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 ...Valtech
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity frameworkDNG Consulting
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpaNetways
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementMohamed hedi Abidi
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctionsMICHRAFY MUSTAFA
 
Activity
ActivityActivity
Activitydido
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQLBruno Bonnin
 

Similaire à Base NoSql et Python (20)

Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
 
SSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQLSSL 2011 : Présentation de 2 bases noSQL
SSL 2011 : Présentation de 2 bases noSQL
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
 
Hibernate
HibernateHibernate
Hibernate
 
mix-it 2011
mix-it 2011mix-it 2011
mix-it 2011
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Développement Web
Développement WebDéveloppement Web
Développement Web
 
Cartographie de l'information
Cartographie de l'informationCartographie de l'information
Cartographie de l'information
 
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 ...
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
 
RDF en quelques slides
RDF en quelques slidesRDF en quelques slides
RDF en quelques slides
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpa
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
 
Activity
ActivityActivity
Activity
 
Stream processing et SQL
Stream processing et SQLStream processing et SQL
Stream processing et SQL
 
Cours php bac info
Cours php bac infoCours php bac info
Cours php bac info
 

Base NoSql et Python

Notes de l'éditeur

  1. Les données sont apparues avec les programmes. L'exploitation des ces données est la raison d'être de l'informatique. Avec la gestion automatique des données, l'entreprise et les états peuvent évoluer et rivaliser avec leur concurrent à l'aide de nouveaux moyens. Base de donnée relationnelle : données dans de simple tables à deux dimentions -> Suffisant pour toutes les applications ? Milieu des années 80 : conviction que tout les problemes seront résolue par les bases de donnée avec leur structure logique et physique, indépendante des applications. Année 90 avenement des technologies objets : Des estimations montrent en effet que les développeurs de programmes OO utilisant des bases de données relationnelles passent entre 25 et 40 % de leur temps à écrire un code mappant les objets aux tables relationnelles.
  2. L’histoire de l’Internet remonte au développement des premiers réseaux de télécommunication. L’idée d’un réseau informatique, permettant aux utilisateurs de différents ordinateurs de communiquer, se développa par de nombreuses étapes successives. 1 Licklider présente l'ordinateur comme un outil de communication et de partage des ressources. C'est le concept de l'Internet. 2 Request for comment – mise en place des norme qui régiront internet 4 Dès les années 1980, les techniques que nous reconnaissons maintenant comme les fondements de l’Internet moderne commencèrent à se répandre autour du globe 5 - La tendance depuis 2004 est l'apparition d'applications web 2.0 pour lesquelles l'internaute joue un rôle participatif.
  3. Digg est un site Internet communautaire qui a pour but de faire voter les utilisateurs pour une page web intéressante et proposée par un utilisateur Facebook
  4. Lorsque l'on veux scaler une base de données,une première solution peut être le partitionnement : Vertical : une base pour les livres, une base pour les CDs, etc Horizontal : une base pour les livre de A-M et une pour les livres de N-Z, …
  5. On renonce à la normalisation des données Frais de gestion importante La scabilité a un coup qui devient important
  6. consistence -> tout les noeuds ont les meme données en meme temps disponible -> le systeme est toujours disponible tant qu'il y a un noeud tolérance à la partition -> le systeme continue à fonctionner malgré la perte de message
  7. Certaines données nous paraissent logiques d'être consistantes mais cela est souvent du à notre inertie d'esprit. Prenons le cas d'une valeur indiquant le stock d'un article. Si deux serveurs ont des valeurs non consistantes, il peut arriver qu'un serveur considère qu'il en reste un alors qu'un autre qui a était mis à jour, sait qu'il n'en reste plus. Lorsque vous faites un achat et si par malchance vous acheter un livre qui n'est plus en stock, le site marchand à deux possibilités : vous rembourser ou réapprovisionner le stock (je ne sais pas vous, mais cela m'est déjà arrivé de recevoir un mail en disant que le produit était épuisé,après l'avoir commandé) les sites ont fait leur choix ! Amazon a d'ailleurs constaté qu'un dixième de seconde de latence leur fait diminuer les ventes de 1%, et Google a remarqué qu'une demi seconde de latence fait chuter le trafic d'un cinquième.
  8. Nosql : not only sql schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID)
  9. Les différents types de base de donnée : Relationnel -> ACID Key-value -> support get, put, delete sur leur cle Orientée colonne -> utilise des tables mais pas de joins, les données sont stockées par colonne opposé aux traditionnels données stocké en ligne Orientée document -> stocke des documents structurée en JSON ou en XML : facil de mapper avec des langages orientée objets CA : ont des difficultés avec les partitions et doivent répliquer leurs données (base de donnée) CP : ont des difficultés avec la disponibilités en gardant consistante leurs données sur l'ensemble des noeuds AP : eventuellement consitant avec la replication et les verifications.
  10. Elle est conçue avant tout pour les applications web Chaque document est composé de propriétés. Il n’y a aucune contrainte sur le nombre de propriétés d’un document, sur le type de ces propriétés... Le protocole permettant d’accéder à un serveur CouchDB est basé sur HTTP, avec une interface REST. Erlang est langage fonctionnel concurrent, temps réel et distribué basé sur le modèle d'acteur. Il possède des fonctionnalités de tolérance aux pannes et de mise à jour du code à chaud permettant le développement d'applications à haute disponibilité.
  11. Il y a trois clés qui sont imposées par CouchDB : ● _id : l’identifiant unique du document ; ● _rev : le numéro de révision du document, géré automatiquement par le moteur CouchDB ; ● _attachments : les éventuels fichiers attachés à ce document. Stockée sous la forme de texte json ( Javascript Standard Object Notation) sérialisation d'objet une chaîne de caractères doit être mise entre quotes : "ceci est un string". ● un objet (qui supporte des données de type "clé" => valeur") est représenté par des accolades : { "key1": "value1", "key2":"value2" }. ● une liste de valeurs (un tableau) est représenté par des crochets : [ "value1","value2"]. ● JSON supporte les booléens : true et false ainsi que null. ● JSON supporte les nombres flottants : 21.34576. MVCC : multiversion concurrency control
  12. REST : Representational State Transfer, est connu comme une alternative simple au protocole SOAP, pour interfacer des web services. Rest n’est pas un protocole, c’est un style d’architecture.
  13. CouchDB uses an "optimistic concurrency" model Ie Couchdb rejete le document si celui si n'est pas celui que vous avez envoyer ! Retrieve the document, take note of the _rev property that CouchDB sends along Decrement the quantity field, if it's greater than zero Send the updated document back, using the _rev property If the _rev matches the currently stored number, be done! If there's a conflict (when _rev doesn't match), retrieve the newest document version
  14. Map Par exemple, considérons une liste de notes d'examen, où chaque note est 1 point trop élevée. Une fonction map de s - 1 pourrait être appliquée sur chaque note s. Reduce comment faire si l'on souhaite connaître la moyenne de la classe ? On peut définir une fonction de réduction qui diminue de moitié la liste par ajout d'une entrée dans la liste des voisins, récursivement, on continue jusqu'à ce qu'il y ait seulement une (grosse) entrée, et divise la somme totale par l'entrée originale d'éléments pour avoir la moyenne).
  15. 1 – Le plus gros cluster cassandra utilise 100 TB de donnée répartie sur 150 machine 2 – Les donnée sont automatiquement repliqués dur des mutliples noeud . La replication entre plusieurs data center est supporter . Les noeuds mort sont remplacer sans rupture de service 3 – Tout les noeuds sont identiques. Pas de point de failure 4 – Vous avez le choix entre une replication assynchrone et synchone pour chaque mis à jour 5 – Modele oriente colonne 5 – les lectures et les écritures augmente lineairement lorsqu'on ajoute des machines 6 – Procedure via un commitlog de ne perdre aucune donnée
  16. 1 – Au lieu de travailler sur des statc et rigide table avec des lignes et des colonnes vous travailler sur un graph flexible qui s'adapte a vos besoin en ayant a votre disposition des noeud , des relation et des propriétés. 2 – C'est l'application qui embarque la base de donnée neo4j 3 – Une gestion de stokage optimiser pour stocker plusieurs billion de noeud, de relaction , de proprietes. La base de donnée peut etre répartie sur plusieurs disque 4 framework performant de traversé.