COURS Préparation à la certification : Big Data Chapitre 7 : Bases données NoSQ
COURS Préparation à la certification : Big Data Chapitre 7 : Bases données NoSQL _Cas pratiques: MongoDB Qu’est ce que MongoDB E ´ crit en C++ ; Orienté document ; Mirroring maître /esclave (copie automatique de la base possiblec,e qui induit de la redondance mais augmente la sécurité) ; Interprète les requêtes javascript (coté serveur) ; Une table vide occupe environs 200Mo ; La taille maximale d’un objet est 4Mo. Pour pouvoir stocker les objets volumineux MongoDB implémente son propre système de découpage GridFS). ⇒ Il est utilisé dans le cas où on recherche des performances élevées sur des bases de grande taille. http ://www.mongodb.org/ http ://www.php.net/manual/en/class.mongo.php 2 Installation MongoDB: 1- Ajout du répertoire de MongoDB Avant l’installation du MongoDB, un répertoire doit être ajouté dans un em- placement spécifique. Pour ce faire, il faut taper la commande suivante : [cloudera@quickstart ∼]$sudo vim / etc/ yum.repos.d/ mongodb.repo Une fois l’éditeur est lancé, deux options seront offertes : I Option 1 : Si vous possédez un système de 64 bits, vous devez insérer les informations suivantes : [mongodb] name = MongoDB Repository baseurl = http : // downloads − distro.mongodb.org/ repo/ redhat/ os/ x86 64/ gpgcheck = 0 enabled = 1 I Option 2 : Si votre système est de 32 bits, vous devez alors insérer les informations suivantes : [mongodb] name = MongoDB Repository baseurl = http : // downloads − distro.mongodb.org/ repo/ redhat/ os/ i686/ gpgcheck = 0 enabled = 1 3 Installation de MongoDB: 2- Suite des étapes Comme une question de meilleure pratique, une mise à jour doit être faite en tapant la commande suivante : [cloudera@quickstart ∼]$sudo yum − y update A ` ce stade, l’installation de MongoDB est aussi simple que de lancer une seule commande : [cloudera@quickstart ∼]$sudo yum −y install mongodb−org mongodb −org−server Le répertoire par défaut de MongoDB est /data/db. Sa création est indispendable en suivant les commandes ci-dessous : [cloudera@quickstart ∼]$cd / [cloudera@quickstart / ]$sudo mkdir data [cloudera@quickstart / ]$cd data [cloudera@quickstart data]$sudo mkdir db 4 Installation de MongoDB: 3. Démarrage du serveur Le lancement du serveur se fait en suivant les commandes suivantes : [cloudera@quickstart ∼]$cd / usr/ bin [cloudera@quickstart bin]$sudo mongod Le serveur est démarré, il écoute sur le port 27017. Pour plus de souplesse, on préférera lancer le serveur en tâche de fond, c’est à dire en mode daemon. [cloudera@quickstart bin]$sudo mongod − − fork − − logpath / var/ log/ mongodb. log − − logappend 5 Instance MongoDB Caractéristiques d’une instance MongoDB : I Un port d’écoute (par défaut 27017) ; I Un processus serveur ; I Un répertoire racine de stockage ; I Un fichier de log ; I Un fichier de configuration : mongod.conf. Les outils et commandes MongoDB : I mongod : le moteur de base ; I mongo : le shell javascript ; I mongos : le contrôleur de Sharding ; I Les outils d’import/export : mongoimport,mongoexport,mongodump, mongorestore, bsondump ; I mongofiles : l’utilitaire GridFS ; I mongostat : visualisation des stats d’une instance mongoDB ; I mongosniff : le tcpdump de mongo. 6 Les Bases de données Création / Suppression Création de bases de données : > use< db name> I Démarrage de l’outilen ligne de commande : [cloudera@quickstartbin]$mongo I I Suppression de bases de données : > use< db name> ; > db.runCommand{(dropDatabase : 1 } ) ; > db.dropDatabase() ; Pour chaque base : I initialisation de deux fichiers< db name> .0 et < db name> .1 I La taille de chaque fichier est le double de la taille du précédent (64, 128, 256, etc.) ; I Taille maximale d’un fichier = 2Gb ; I Le fichier< nom fichier> .ns stocke les namespaces de la base (16 Mb pa défaut, modifiable via l’option -nssize, avec pour taille maximale 2Gb). 7 Test et premiers pas avec MongoDB La distribution de MongoDB inclue un outil en ligne de commande (MongoDB interactive shell). Cet utilitaire permet d’envoyer des commandes au serveur à partir de la ligne de la commande. Il permet aussi d’exécuter des fichiers JavaScript pour exécuter des scripts dŠadministration. Ce shell permet de : I Consulter le contenu de la base ; I Tester des requêtes de consultation ; I Créer des indexes ; I Exécuter des scripts de maintenance ; I Administrer la base. Affichage de la base en cours : > db Affichage de la liste des bases : > show dbs Mongo créé par défaut deux bases : I local une base qui a la particularité de n’être jamais dupliqué et qui peut servir à stocker des documents qui n’ont d’utilité que sur une machine ; I test base vide sans particularité ; I Il peut aussi contenir une base admin permettant à ses utilisateurs d’utiliser des commandes d’administration (comme l’arrêt du serveur) qui ne sont pas disponibles avec les autres bases et config qui est utilisée en mode partitionnement pour stocker des informations sur les nœuds. 8 Définition d’un schéma de données avec MongoDB Les collections Un schéma de données orienté documents possède deux éléments de bas Documents et collections ; Une Collection c’est quoi ? I E ´ quivalent de la table en relationnel ; I Deux modes de création. - Automatiquement lors d’une insertion de document (tuple) ; - En exécutant la commande db.createCollection(”< nom collection> ”). Les opérations sur les Collections : I Créer : - > db.createCollection(’gens’) ; I Lister : - > show collections ; - > db.getCollections() ; I Insérer un document : - > show collections ; - > db.< collection name> .insert({ var1 : ”valeur”, var2 : ”valeur”, var3 : ”valeur”, } ) ; I Supprimer : - > db.< nom collection> .drop() ; 9 Définition d’un schéma de données avec MongoDB Les documents Un Document c’est quoi ? I E ´ quivalent d’un enregistrement (tuple) en relationnel ; I Trois modes d’insertion : - En utilisant la commande d b < . nom collection> .insert() du schell ; - En utilisant la commande d b < . nom collection> .save () du schell ; - En utilisant un driver : PHP, Ruby, Java, Python. I Chaque document crée contient le champ ” id” - Généré automatiquement ; - Type primary key ; - Indexé. 10 Création de la base et mise en oeuvre du schéma I I I I Lister les bases créées > show dbs Création de la base > use bibliotheque > show collections I Création des collections > db.createCollection(”livres”); > db.createCollection(”Editeurs”); > show collections Renommer une Collection > db.Editeurs.renameCollection(”editeurs”); > show collections Stockage des données [cloudera@quickstart bin]$ls− lh / data/ db Exemple complet : https ://docs.mongodb.org/ 11 Insertion des données dans MongoDB (1) Nous insérons trois documents (livres, auteur, editeur) dans notre base, ils reprennent notre structure mais ont chacun des champs supplémentaires : 12 Insertion des données dans MongoDB (2) Nous commençons par ajouter les éditeurs : > show dbs > use bibliotheque > db.editeurs.insert( { nom : ”Hachette” } ); > db.editeurs.insert( { nom : ”Hatier ” } ); > db.editeurs.insert( { nom : ”O 0Reilly ”} ); Consultons le contenu de la collection editeurs : > db.editeurs.find( {} ) On a bien ajouté trois documents dans la collection editeurs. On remarque que MongoDB a automatiquement ajouté un identifiant. On peut maintenant ajouter les documents livres en reprenant les Id des éditeurs. >db. livres. insert( { type : ”livre” , titre : ”Aubonheurdesdames” , annee : 2010, editeur : new DBRef ( ‘ editeurs‘ , ObjectId(”4fa40cbe9ff 7ba90f 5d13eed”)) , ISBN : ”2012814557” , auteurs : [ { nom : ”Zola” , prenom : ”Emile” } ]} ); > db. livres. insert( { type : ”livre” , titre : ”Germinal ” , annee : 1995, editeur : newDBRef ( ‘ editeurs‘, ObjectId(”4fa40d359ff 7ba90f 5d13eee”)) , format : ”Poche” , auteurs : [ { nom : ”Zola” , prenom : ”Emile” } ]} ); > db. livres. insert( { type : ”livre” , titre : ”TheDefinitiveGuidetoMongodb” , annee : 2003, editeur : newDBRef ( ‘ Editeurs‘ , ObjectId(”4fa40dfb7b071ce946d6dc34”)) , ISBN : ”1449381561” , pages : 206, langue : ”Anglais” , auteurs : [ { nom : ”Dirolf ” , prenom : ”Michael” }, { nom : ”Dirolf ” , prenom : ”Kristina” } ]} ); Vérification du nombre de livres en base : > db. livres. count() 13 Consultation des données avec MongoDB (1) Recherche standard : MongoDB propose deux fonctions de recherche simples : - findOne() : recherche et retourne un document ; - find() : retourne une liste de documents, avec un curseur permettant de se déplacer à l’intérieur de la liste. - Rechercher un document suivant la clé titre : > db.livres.findOne({ titre : ”Germinal ” } ) ; - Rechercher uniquement les titres des documents ayant pour nom d’auteur Zola : > db.livres.find( { ”auteurs .nom” : ”Zola” }, {titre : 1 } ) ; - Rechercher uniquement les titres des documents ayant pour nom uploads/s3/lecon7-mongodb.pdf
Documents similaires










-
39
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 28, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.5981MB