SlideShare une entreprise Scribd logo
Les bases NoSQL et Python Youenn Boussard
Les bases de données Avant 1960 : organisation classique sous forme de fichier
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 1962 – Premier concept d'internet
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 Beaucoup de données Digg 3TB
Facebook 50TB
Ebay 2PB Beaucoup d'utilisateurs
Beaucoup de trafic
Et les bases relationnelles pour gérer tout cela ?
Le cas de  Partition verticale maître-esclave avec
Maître esclave Réplication Maître esclave Un unique maître
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 Cela implique Le maître est critique
Le maître est le point d'engorgement du système
Partition Horizontale Réparties sur plusieurs noeuds
Les jointures sont déportées au niveau de l'application
Cela implique On n'est plus relationnel
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 C comme Consistence
A comme Availability (Disponibilité)
P comme Partition tolérance  Dr. Eric Brewer CAP THEOREM = On ne peut avoir que  2 états en simultanée dans un système distribué
ACID contre BASE Atomique
Cohérente
Isolée
Durable Basically Available
Soft state
Eventually consistent
Non relationnelle
Distribuée
Open source
Scalable horizontablement Une nouvelle Génération de base de donnée
 
 
CouchDB est Orienté document -> Pas de schéma, représentation des données telle quelle
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 Un document est un objet contenant un ensemble de clés valeurs Une base de données couchdb est une collection à plat de ces documents
RESTFul API REST est basé sur le protocole HTTP Lecture : GET /somedatabase/some_doc_id
Ecriture / update : PUT
Créer : POST
Supprimer : DELETE
Robuste N'écrase pas une donnée « commité »
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 Méthodes pour aggréger et requeter les documents de la base de donnée
Les vues sont définies par des documents spéciaux les « designs documents »
Les vues sont écrites en javascript.

Contenu connexe

Tendances

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
Lilia Sfaxi
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
Yassine Badri
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
Lilia Sfaxi
 
Apache spark its place within a big data stack
Apache spark  its place within a big data stackApache spark  its place within a big data stack
Apache spark its place within a big data stack
Junjun Olympia
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
Amal Abid
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
Lilia Sfaxi
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
ebiznext
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
kamar MEDDAH
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
MongoDB
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
Lilia Sfaxi
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
ENSET, Université Hassan II Casablanca
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
Amal Abid
 
noSQL
noSQLnoSQL
noSQL
Klee Group
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
Lilia Sfaxi
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
Lilia Sfaxi
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
khlifi z
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
Houda TOUKABRI
 
Introduction à Cassandra - campus plex
Introduction à Cassandra - campus plexIntroduction à Cassandra - campus plex
Introduction à Cassandra - campus plex
jaxio
 

Tendances (20)

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
Apache spark its place within a big data stack
Apache spark  its place within a big data stackApache spark  its place within a big data stack
Apache spark its place within a big data stack
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Reporting avec JasperServer & iReport
Reporting avec JasperServer & iReportReporting avec JasperServer & iReport
Reporting avec JasperServer & iReport
 
Les modèles NoSQL
Les modèles NoSQLLes modèles NoSQL
Les modèles NoSQL
 
Les Base de Données NOSQL
Les Base de Données NOSQLLes Base de Données NOSQL
Les Base de Données NOSQL
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
noSQL
noSQLnoSQL
noSQL
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
Intégration des données avec Talend ETL
Intégration des données avec Talend ETLIntégration des données avec Talend ETL
Intégration des données avec Talend ETL
 
Cours data warehouse
Cours data warehouseCours data warehouse
Cours data warehouse
 
Fascicule de tp atelier développement web
Fascicule de tp atelier développement webFascicule de tp atelier développement web
Fascicule de tp atelier développement web
 
Introduction à Cassandra - campus plex
Introduction à Cassandra - campus plexIntroduction à Cassandra - campus plex
Introduction à Cassandra - campus plex
 

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 sql
bchesneau
 
Formation python
Formation pythonFormation python
Formation python
j_lipaz
 
Cours python
Cours pythonCours python
Cours python
salmazen
 
Chap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec pythonChap XIII : calcul scientifique avec python
Chap XIII : calcul scientifique avec python
Mohammed TAMALI
 
Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2Algorithmique_et_programmation_part2
Algorithmique_et_programmation_part2
Emeric 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 Odoo
Hassan 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ée
Quentin Apruzzese
 
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
Pierre-Alban DEWITTE
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 
2 m72 groupe4_présentation
2 m72 groupe4_présentation2 m72 groupe4_présentation
2 m72 groupe4_présentation
litlematth
 
Photographies Historiques
Photographies HistoriquesPhotographies Historiques
Photographies Historiques
suetens
 
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
CERTyou Formation
 
OpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizonOpenStack Havana, tour d'horizon
OpenStack Havana, tour d'horizon
Yannick Foeillet
 
La sabiduría
La sabiduríaLa sabiduría
La sabiduría
anny zapata
 
Solucion y Psicologia del Bienestar
Solucion y Psicologia del BienestarSolucion y Psicologia del Bienestar
Solucion y Psicologia del Bienestar
Dr.Jose A Santos. +4500 contactos
 
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
Ville d'Ergué-Gabéric
 
Python debugger
Python debuggerPython debugger
Python debugger
Damien Garaud
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
Emeric 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 PostgreSQL
Paris, France
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
guest6c050e
 

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
 
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
 
Php & My Sql
Php & My SqlPhp & My Sql
Php & My Sql
 

Similaire à Base NoSql et Python

Coat::Persistent at FPW2009
Coat::Persistent at FPW2009Coat::Persistent at FPW2009
Coat::Persistent at FPW2009
Alexis 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 noSQL
Hervé Leclerc
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
Aymeric Brisse
 
Java Database Connectivity
Java Database ConnectivityJava Database Connectivity
Java Database Connectivity
Korteby Farouk
 
Hibernate
HibernateHibernate
Hibernate
Maher Megadmini
 
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
Olivier Mallassi
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
Ludovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
Oxalide
 
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
MICHRAFY MUSTAFA
 
Développement Web
Développement WebDéveloppement Web
Développement Web
mastertic
 
Cartographie de l'information
Cartographie de l'informationCartographie de l'information
Cartographie de l'information
laureno
 
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
 
Présentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdfPrésentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdf
khalidmoussaid4
 
Linq et Entity framework
Linq et Entity frameworkLinq et Entity framework
Linq et Entity framework
DNG Consulting
 
Ado.net vs jpa
Ado.net vs jpaAdo.net vs jpa
Ado.net vs jpa
Netways
 
ElasticSearch : Architecture et Développement
ElasticSearch : Architecture et DéveloppementElasticSearch : Architecture et Développement
ElasticSearch : Architecture et Développement
Mohamed hedi Abidi
 
Spark SQL principes et fonctions
Spark SQL principes et fonctionsSpark SQL principes et fonctions
Spark SQL principes et fonctions
MICHRAFY MUSTAFA
 
Activity
ActivityActivity
Activity
dido
 

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
 
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
 
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 ...
 
Présentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdfPrésentation langage de programmationHive.pdf
Présentation langage de programmationHive.pdf
 
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
 

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é.