SlideShare une entreprise Scribd logo
1  sur  30
Télécharger pour lire hors ligne
INTRODUCTION
Mme Ines Slimene
Ines_slimene@yahoo.fr
Plan
Modèle JSON et Organisation
Modèlisation
Replica Set
Sharding
Sauvegarde et restauration des données
https://inesslimene.wixsite.com/moncours MODÉLISATION 2
Modèle et
organisation
https://inesslimene.wixsite.com/moncours MODÉLISATION 3
Introduction
Un document est la représentation d'une donnée en BSON.
BSON = Binary JSON.
Extension du JSON (support officiel du type Date, ... ).
Pas de schéma, pas de relation, pas de transaction.
https://inesslimene.wixsite.com/moncours MODÉLISATION 4
Modèle JSON
JSON (Javascript Object Notation) est le format de sérialisation des objets
Javascript.
Avantage principal : il est possible de le parser directement sous la forme
d’un objet du langage (javascript, mais aussi tous les langages de scripts,
voire Java ou C++)
Une valeur est soit une chaîne de caractère, un numérique, un Booléen, un
objet ou un tableau.
Un objet est une liste non-ordonnée de paires (clé, valeur).
Exemple: {first_name: ‘Joe’, last_name: ‘Doe’}
Un tableau est une liste ordonnée de valeurs.
[“doe@cnam.fr”, “john.doe@cnam.fr”,“doej@cnam.fr”]
https://inesslimene.wixsite.com/moncours MODÉLISATION 5
Exemple avec JSON
Point de départ : listes associatives, i.e., des enregistrements avec des
paires (clé, valeur).
{nom: "Alan", tél: 2157786, email: "agb@abc.com"}
Extension naturelle : les valeurs sont elles-mêmes d’autres structures.
{nom: {prénom: "Alan", famille: "Black"},tél: 2157786, email:
"agb@abc.com"}
Autre exemple: imbrication de listes.
{name: "Alan", téls: [2157786, 2498762] }
https://inesslimene.wixsite.com/moncours MODÉLISATION 6
Organisation
Un serveur MongoDB est composé de bases de données.
Une base de données contient des collections.
Les collections possèdent les documents.
Chaque document possède un identifiant unique généré par MongoDB,
le champ _id.
https://inesslimene.wixsite.com/moncours MODÉLISATION 7
Organisation
https://inesslimene.wixsite.com/moncours MODÉLISATION 8
RDBMS MongoDB
Database Database
Table, View Collection
Row Document (JSON, BSON)
Column Field
Index Index
Join Embedded Document
Foreign Key Reference
Partition Shard
Documents
Un document est l’équivalent d’une ligne dans une base de données
SQL avec quelques différences :
◦ Les documents sont sans schéma
◦ Les documents utilise le syntaxe BSON
◦ La taille max d’un document est 16 mégabytes
◦ Non Relationnel
https://inesslimene.wixsite.com/moncours MODÉLISATION 9
Documents
Exemple :
{
name : ‘MongoDB’,
type : ‘database’,
count : 1,
info :{
x : 203,
y : 102
}
}
https://inesslimene.wixsite.com/moncours MODÉLISATION 10
Modélisation: quelques règles
simples
https://inesslimene.wixsite.com/moncours MODÉLISATION 11
Modélisation: quelques règles
simples
https://inesslimene.wixsite.com/moncours MODÉLISATION 12
Modélisation: quelques règles
simples
https://inesslimene.wixsite.com/moncours MODÉLISATION 13
Modélisation: quelques règles
simples
https://inesslimene.wixsite.com/moncours MODÉLISATION 14
Modélisation: quelques règles
simples
Ne pas oubliez d’en tenir compte !
● “J’ai besoin de l’ensemble des données à chaque requête”
○ Mettez tout dans une seule collection
● “J’ai besoin d’en avoir seulement une partie”
○ Faites plusieurs collections et des références
○ Ex: les posts d’un blog et leurs commentaires :
■ 2 besoins : affichage liste des posts + affichage post avec
commentaires
■ Modélisation avec 2 collections (posts, comments)
https://inesslimene.wixsite.com/moncours MODÉLISATION 15
Références entre docs
Avantages à séparer dans plusieurs docs ?
● Flexibilité
○ Changement sur une collection sans impact sur les autres
● Cardinalité forte / gros document:
○ Attention à la place mémoire
○ Taille max des docs: 16Mo
Désavantages à séparer dans plusieurs docs ?
● On risque d’avoir à gérer des jointures dans l’application, compliqué !
https://inesslimene.wixsite.com/moncours MODÉLISATION 16
Sharding et
Réplica Set
https://inesslimene.wixsite.com/moncours MODÉLISATION 17
Réplica Set : cohérence
éventuelle
La lecture des données est effectuée dans le master.
La lecture peut être effectuée a partir du slave mais problème de
consistance (la réplication est asynchrone) => cohérence éventuelle
https://inesslimene.wixsite.com/moncours MODÉLISATION 18
Master Slave Slave Slave
Replica set
Réplica set : Élection
Type de nœud:
◦ regular : a full copy of data & voting & ready to be primary
◦ Passive : a full copy of data & voting
◦ arbiter : voting & no data replicated (ne peut pas être un master)
◦ Hidden : ne peut pas être un master
https://inesslimene.wixsite.com/moncours MODÉLISATION 19
Réplica set : Failover
https://inesslimene.wixsite.com/moncours MODÉLISATION 20
Serveur d’application
Master Slave Slave Slave
écriture
Réplica set : Failover
https://inesslimene.wixsite.com/moncours MODÉLISATION 21
Serveur d’application
Master Slave Slave Slave
écriture
Élection
Réplica set : Failover
Suite a la reprise de l’ancien master, il essaye de synchroniser avec le nouveau master. S’il trouve
qu’il a des données en plus il doit effectuer un Rollback pour qu’il soit a niveau avec les autres
nœuds.
https://inesslimene.wixsite.com/moncours MODÉLISATION 22
Serveur d’application
Slave Master Slave Slave
écriture
Rollback
Sharding (segmentation)
Répartition des données en segments et sauvegarde de chaque
segment dans un serveur (shard)
La répartition peut être effectuée de façon arbitraire ou bien selon un
sharding_key
◦ Arbitraire : parcourir tous les serveurs pour trouver une information.
◦ Shard_key: tableau de correspondance entre shard_key et segment de
donnée (recherche facile de l’information)
◦ Exemple : collection orders, order_id peut être considérer comme shard_key
https://inesslimene.wixsite.com/moncours MODÉLISATION 23
Sharding
https://inesslimene.wixsite.com/moncours MODÉLISATION 24
application
mongos
Shard 0
Shard 1
Shard 2
Shard 3
Serveurs de
configuration
Implication du sharding
Tout document doit contenir un shard key
Le shard key est immuable (une fois défini on ne peut plus le modifier)
Choix de shard key:
◦ cardinalité suffisante (une valeur qui ne figure que 3 fois ne peut pas être
repartie sur 100 shard)
◦ Incrémentation continue (id ou timestamp): plage de valeur de min au max.
pour les valeurs qui dépassent le max elles vont être insérer dans le dernier
shard d’où problème de répartition des données.
Index doit commencer par le shard key (exemple : supposant que
student_id est le shard key index(student_id,class_id)
Shard key doit être spécifié comme multiple (cas update multi)
Pas de shard key : problème de recherche dans tout les segments
https://inesslimene.wixsite.com/moncours MODÉLISATION 25
Transfert de
données
https://inesslimene.wixsite.com/moncours MODÉLISATION 26
Import/export
mongoexport et mongoimport sont deux commandes utilisées pour
l’import et l’export de données a partir de fichiers JSON ou CSV.
Exemple :
◦ Export sous format json
mongoexport --db test --collection people –out people.json
◦ Export sous format csv
mongoexport --db test --collection people --csv --fields nom,salaire,dept --out people.csv
https://inesslimene.wixsite.com/moncours MODÉLISATION 27
Import/export
Importer à partir d’un fichier json
mongoimport --db base --file people.json
Importer a partir d’un fichier csv
mongoimport --db base --type csv --file people.csv --headerline
https://inesslimene.wixsite.com/moncours MODÉLISATION 28
Sauvegarde et récupération
Sauvegarde :
Mongodump : permet de sauvegarder une partie ou la totalité de la base dans
un dossier dump.
mongodump –help : visualiser les options de mongodump
◦ --db DBNAME sauvegarde de la base DBNAME
◦ --collection COLLECTIONNAME sauvegarde la collection COLLECTIONNAME
Exemple :
mongodump --db test --out backup
→ sauvegarder la base test dans le répertoire backup
https://inesslimene.wixsite.com/moncours MODÉLISATION 29
Sauvegarde et récupération
Récupération :
mongorestore : récupère les données a partir d’un fichier BSON
--db et--collection permettent de récupérer une base et une collection
spécifique.
Exemple:
mongorestore --db test --collection people backup/test/people.bson
→récupérer la collection people dans la base test a partir du fichier
people.bson
https://inesslimene.wixsite.com/moncours MODÉLISATION 30

Contenu connexe

Tendances

Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPKristen Le Liboux
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirYves Van Goethem
 
OWASP Top Ten 2007 - Sommaire executif - French version
OWASP Top Ten 2007 - Sommaire executif - French versionOWASP Top Ten 2007 - Sommaire executif - French version
OWASP Top Ten 2007 - Sommaire executif - French versionspl0it
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partiekadzaki
 

Tendances (7)

La 2ème partie de la présentation PHP
La 2ème partie de la présentation PHPLa 2ème partie de la présentation PHP
La 2ème partie de la présentation PHP
 
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHPUn exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
 
Mongo DB
Mongo DBMongo DB
Mongo DB
 
Beautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenirBeautiful CSS : Structurer, documenter, maintenir
Beautiful CSS : Structurer, documenter, maintenir
 
OWASP Top Ten 2007 - Sommaire executif - French version
OWASP Top Ten 2007 - Sommaire executif - French versionOWASP Top Ten 2007 - Sommaire executif - French version
OWASP Top Ten 2007 - Sommaire executif - French version
 
Cours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partieCours php & Mysql - 1ére partie
Cours php & Mysql - 1ére partie
 
Taweb projet pyramide
Taweb projet pyramideTaweb projet pyramide
Taweb projet pyramide
 

Similaire à Intro mongodb

Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasBruno Bonnin
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosqlInes Slimene
 
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
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Nicolas Georgeault
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptxEsokia
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQLmohamednacim
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2dhugomallet
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Olivier DASINI
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réelMartin Menestret
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Meetup CocoaHeads Montpellier : conférence sur l'Auto Layout
Meetup CocoaHeads Montpellier : conférence sur l'Auto LayoutMeetup CocoaHeads Montpellier : conférence sur l'Auto Layout
Meetup CocoaHeads Montpellier : conférence sur l'Auto LayoutIdean France
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeCyrille Coeurjoly
 
Cascade et héritage : concevoir, organiser, optimiser…
Cascade et héritage : concevoir, organiser, optimiser…Cascade et héritage : concevoir, organiser, optimiser…
Cascade et héritage : concevoir, organiser, optimiser…Romy Duhem-Verdière
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJSVISEO
 
ASP.NET Futures
ASP.NET FuturesASP.NET Futures
ASP.NET Futuresloicbar
 

Similaire à Intro mongodb (20)

Crud
CrudCrud
Crud
 
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pasTout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started MongoDB ne vous dira pas
 
Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Introduction nosql
Introduction nosqlIntroduction nosql
Introduction nosql
 
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
 
Optimisation du stockage share point 2010
Optimisation du stockage share point 2010Optimisation du stockage share point 2010
Optimisation du stockage share point 2010
 
Symfony with angular.pptx
Symfony with angular.pptxSymfony with angular.pptx
Symfony with angular.pptx
 
Initiation au langage MySQL
Initiation au langage MySQLInitiation au langage MySQL
Initiation au langage MySQL
 
Cours yeoman backbone box2d
Cours yeoman backbone box2dCours yeoman backbone box2d
Cours yeoman backbone box2d
 
Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...Une gestion efficace du changement de vos structures de données relationnelle...
Une gestion efficace du changement de vos structures de données relationnelle...
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réel
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Meetup CocoaHeads Montpellier : conférence sur l'Auto Layout
Meetup CocoaHeads Montpellier : conférence sur l'Auto LayoutMeetup CocoaHeads Montpellier : conférence sur l'Auto Layout
Meetup CocoaHeads Montpellier : conférence sur l'Auto Layout
 
L'avenir de LAMP
L'avenir de LAMPL'avenir de LAMP
L'avenir de LAMP
 
Les secrets d'un bon tableau de bord excel
Les secrets d'un bon tableau de bord excelLes secrets d'un bon tableau de bord excel
Les secrets d'un bon tableau de bord excel
 
Mop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commandeMop export-dataloader-salesforce-en-ligne-commande
Mop export-dataloader-salesforce-en-ligne-commande
 
Cascade et héritage : concevoir, organiser, optimiser…
Cascade et héritage : concevoir, organiser, optimiser…Cascade et héritage : concevoir, organiser, optimiser…
Cascade et héritage : concevoir, organiser, optimiser…
 
Aperçu de RequireJS
Aperçu de RequireJSAperçu de RequireJS
Aperçu de RequireJS
 
ASP.NET Futures
ASP.NET FuturesASP.NET Futures
ASP.NET Futures
 

Plus de Ines Slimene (13)

Spark
SparkSpark
Spark
 
Redis
RedisRedis
Redis
 
Cassandra
CassandraCassandra
Cassandra
 
Agregation
AgregationAgregation
Agregation
 
Pig
PigPig
Pig
 
Neo4j
Neo4jNeo4j
Neo4j
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Introduction
IntroductionIntroduction
Introduction
 
Hive
HiveHive
Hive
 
Hdfs
HdfsHdfs
Hdfs
 
Hbase
HbaseHbase
Hbase
 
Hadoop
HadoopHadoop
Hadoop
 
Indexation
IndexationIndexation
Indexation
 

Dernier

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetJeanYvesMoine
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxhamzagame
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...Nguyen Thanh Tu Collection
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaireTxaruka
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxrajaakiass01
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfAmgdoulHatim
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxabdououanighd
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Coursebenezerngoran
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxRayane619450
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsJaouadMhirach
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxShinyaHilalYamanaka
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Technologia Formation
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKNassimaMdh
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfssuserc72852
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLElebaobabbleu
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...Universidad Complutense de Madrid
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxikospam0
 

Dernier (20)

Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 

Intro mongodb

  • 2. Plan Modèle JSON et Organisation Modèlisation Replica Set Sharding Sauvegarde et restauration des données https://inesslimene.wixsite.com/moncours MODÉLISATION 2
  • 4. Introduction Un document est la représentation d'une donnée en BSON. BSON = Binary JSON. Extension du JSON (support officiel du type Date, ... ). Pas de schéma, pas de relation, pas de transaction. https://inesslimene.wixsite.com/moncours MODÉLISATION 4
  • 5. Modèle JSON JSON (Javascript Object Notation) est le format de sérialisation des objets Javascript. Avantage principal : il est possible de le parser directement sous la forme d’un objet du langage (javascript, mais aussi tous les langages de scripts, voire Java ou C++) Une valeur est soit une chaîne de caractère, un numérique, un Booléen, un objet ou un tableau. Un objet est une liste non-ordonnée de paires (clé, valeur). Exemple: {first_name: ‘Joe’, last_name: ‘Doe’} Un tableau est une liste ordonnée de valeurs. [“doe@cnam.fr”, “john.doe@cnam.fr”,“doej@cnam.fr”] https://inesslimene.wixsite.com/moncours MODÉLISATION 5
  • 6. Exemple avec JSON Point de départ : listes associatives, i.e., des enregistrements avec des paires (clé, valeur). {nom: "Alan", tél: 2157786, email: "agb@abc.com"} Extension naturelle : les valeurs sont elles-mêmes d’autres structures. {nom: {prénom: "Alan", famille: "Black"},tél: 2157786, email: "agb@abc.com"} Autre exemple: imbrication de listes. {name: "Alan", téls: [2157786, 2498762] } https://inesslimene.wixsite.com/moncours MODÉLISATION 6
  • 7. Organisation Un serveur MongoDB est composé de bases de données. Une base de données contient des collections. Les collections possèdent les documents. Chaque document possède un identifiant unique généré par MongoDB, le champ _id. https://inesslimene.wixsite.com/moncours MODÉLISATION 7
  • 8. Organisation https://inesslimene.wixsite.com/moncours MODÉLISATION 8 RDBMS MongoDB Database Database Table, View Collection Row Document (JSON, BSON) Column Field Index Index Join Embedded Document Foreign Key Reference Partition Shard
  • 9. Documents Un document est l’équivalent d’une ligne dans une base de données SQL avec quelques différences : ◦ Les documents sont sans schéma ◦ Les documents utilise le syntaxe BSON ◦ La taille max d’un document est 16 mégabytes ◦ Non Relationnel https://inesslimene.wixsite.com/moncours MODÉLISATION 9
  • 10. Documents Exemple : { name : ‘MongoDB’, type : ‘database’, count : 1, info :{ x : 203, y : 102 } } https://inesslimene.wixsite.com/moncours MODÉLISATION 10
  • 15. Modélisation: quelques règles simples Ne pas oubliez d’en tenir compte ! ● “J’ai besoin de l’ensemble des données à chaque requête” ○ Mettez tout dans une seule collection ● “J’ai besoin d’en avoir seulement une partie” ○ Faites plusieurs collections et des références ○ Ex: les posts d’un blog et leurs commentaires : ■ 2 besoins : affichage liste des posts + affichage post avec commentaires ■ Modélisation avec 2 collections (posts, comments) https://inesslimene.wixsite.com/moncours MODÉLISATION 15
  • 16. Références entre docs Avantages à séparer dans plusieurs docs ? ● Flexibilité ○ Changement sur une collection sans impact sur les autres ● Cardinalité forte / gros document: ○ Attention à la place mémoire ○ Taille max des docs: 16Mo Désavantages à séparer dans plusieurs docs ? ● On risque d’avoir à gérer des jointures dans l’application, compliqué ! https://inesslimene.wixsite.com/moncours MODÉLISATION 16
  • 18. Réplica Set : cohérence éventuelle La lecture des données est effectuée dans le master. La lecture peut être effectuée a partir du slave mais problème de consistance (la réplication est asynchrone) => cohérence éventuelle https://inesslimene.wixsite.com/moncours MODÉLISATION 18 Master Slave Slave Slave Replica set
  • 19. Réplica set : Élection Type de nœud: ◦ regular : a full copy of data & voting & ready to be primary ◦ Passive : a full copy of data & voting ◦ arbiter : voting & no data replicated (ne peut pas être un master) ◦ Hidden : ne peut pas être un master https://inesslimene.wixsite.com/moncours MODÉLISATION 19
  • 20. Réplica set : Failover https://inesslimene.wixsite.com/moncours MODÉLISATION 20 Serveur d’application Master Slave Slave Slave écriture
  • 21. Réplica set : Failover https://inesslimene.wixsite.com/moncours MODÉLISATION 21 Serveur d’application Master Slave Slave Slave écriture Élection
  • 22. Réplica set : Failover Suite a la reprise de l’ancien master, il essaye de synchroniser avec le nouveau master. S’il trouve qu’il a des données en plus il doit effectuer un Rollback pour qu’il soit a niveau avec les autres nœuds. https://inesslimene.wixsite.com/moncours MODÉLISATION 22 Serveur d’application Slave Master Slave Slave écriture Rollback
  • 23. Sharding (segmentation) Répartition des données en segments et sauvegarde de chaque segment dans un serveur (shard) La répartition peut être effectuée de façon arbitraire ou bien selon un sharding_key ◦ Arbitraire : parcourir tous les serveurs pour trouver une information. ◦ Shard_key: tableau de correspondance entre shard_key et segment de donnée (recherche facile de l’information) ◦ Exemple : collection orders, order_id peut être considérer comme shard_key https://inesslimene.wixsite.com/moncours MODÉLISATION 23
  • 25. Implication du sharding Tout document doit contenir un shard key Le shard key est immuable (une fois défini on ne peut plus le modifier) Choix de shard key: ◦ cardinalité suffisante (une valeur qui ne figure que 3 fois ne peut pas être repartie sur 100 shard) ◦ Incrémentation continue (id ou timestamp): plage de valeur de min au max. pour les valeurs qui dépassent le max elles vont être insérer dans le dernier shard d’où problème de répartition des données. Index doit commencer par le shard key (exemple : supposant que student_id est le shard key index(student_id,class_id) Shard key doit être spécifié comme multiple (cas update multi) Pas de shard key : problème de recherche dans tout les segments https://inesslimene.wixsite.com/moncours MODÉLISATION 25
  • 27. Import/export mongoexport et mongoimport sont deux commandes utilisées pour l’import et l’export de données a partir de fichiers JSON ou CSV. Exemple : ◦ Export sous format json mongoexport --db test --collection people –out people.json ◦ Export sous format csv mongoexport --db test --collection people --csv --fields nom,salaire,dept --out people.csv https://inesslimene.wixsite.com/moncours MODÉLISATION 27
  • 28. Import/export Importer à partir d’un fichier json mongoimport --db base --file people.json Importer a partir d’un fichier csv mongoimport --db base --type csv --file people.csv --headerline https://inesslimene.wixsite.com/moncours MODÉLISATION 28
  • 29. Sauvegarde et récupération Sauvegarde : Mongodump : permet de sauvegarder une partie ou la totalité de la base dans un dossier dump. mongodump –help : visualiser les options de mongodump ◦ --db DBNAME sauvegarde de la base DBNAME ◦ --collection COLLECTIONNAME sauvegarde la collection COLLECTIONNAME Exemple : mongodump --db test --out backup → sauvegarder la base test dans le répertoire backup https://inesslimene.wixsite.com/moncours MODÉLISATION 29
  • 30. Sauvegarde et récupération Récupération : mongorestore : récupère les données a partir d’un fichier BSON --db et--collection permettent de récupérer une base et une collection spécifique. Exemple: mongorestore --db test --collection people backup/test/people.bson →récupérer la collection people dans la base test a partir du fichier people.bson https://inesslimene.wixsite.com/moncours MODÉLISATION 30