Bases de données documentaires et distribuées Cours NFE04

Documents pareils
NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Bases de données documentaires et distribuées Cours NFE04

Bases de données documentaires et distribuées Cours NFE04

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

NFE204 Bases de données avancées

Bases de données documentaires et distribuées Cours NFE04

Les bases de données relationnelles

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

Hibernate vs. le Cloud Computing

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Bases de Données NoSQL

Bases de données cours 1

Introduction à ElasticSearch

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Cartographie des solutions BigData

Bases de données - Modèle relationnel

Présentation du PL/SQL

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Devenez un véritable développeur web en 3 mois!

OpenPaaS Le réseau social d'entreprise

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Le NoSQL - Cassandra

Bases de données documentaires et distribuées Cours NFE04

Présentation du module Base de données spatio-temporelles

CATALOGUE DES FORMATIONS 2014

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

NoSQL : les meilleures

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

NoSQL. Etat de l art et benchmark

Introduction aux applications réparties

Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d événements par an

Cours 8 Not Only SQL

Le langage SQL Rappels

Le passage à l échelle de serveur J2EE : le cas des EJB

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Programmation Web. Madalina Croitoru IUT Montpellier

Séance 1 Introduction aux bases de données

Bases de données Cours 1 : Généralités sur les bases de données

Formation : WEbMaster

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Alfstore workflow framework Spécification technique

et les Systèmes Multidimensionnels

CESI Bases de données

LEA.C5. Développement de sites Web transactionnels

PHP 4 PARTIE : BASE DE DONNEES

PostgreSQL. Formations. SQL avancé Calendrier... 18

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011

Introduction aux SGBDR

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

//////////////////////////////////////////////////////////////////// Administration bases de données

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

PostgreSQL. Formations. Calendrier... 14

1 Introduction et installation

Cours Bases de données

Windows Server 2012 R2 Failover de serveurs DHCP

Quels choix de base de données pour vos projets Big Data?

Module BDR Master d Informatique (SAR)

SOLUTION POUR CENTRE D'APPEL

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Cloud (s) Positionnement

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

BIRT (Business Intelligence and Reporting Tools)

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Documentation d information technique spécifique Education. PGI Open Line PRO

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

BES WEBDEVELOPER ACTIVITÉ RÔLE

Bases de données avancées Introduction

Chapitre 10. Architectures des systèmes de gestion de bases de données

42 Formations Web & Open Source

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

Rémi GILANTE Certifié d Informatique et Gestion. Jean-Claude NOUSSIGUE Agrégé d Économie et Gestion, option B

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Systèmes d information et bases de données (niveau 1)

Langage SQL : créer et interroger une base

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Les technologies du Big Data

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Master1 ère année. Réseaux avancés I. TP nº5 filière ISICG

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

GPC Computer Science

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Groupe Eyrolles, 2004 ISBN :

Solutions informatiques (SI) Semestre 1

IT203 : Systèmes de gestion de bases de données. A. Zemmari zemmari@labri.fr

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

Travail collaboratif. Glossaire

Compte Rendu d intégration d application

Labs Hadoop Février 2013

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Benjamin Cornu Florian Joyeux. Les choses à connaître pour (essayer) de concurrencer Facebook.

Architectures d'intégration de données

les techniques d'extraction, les formulaires et intégration dans un site WEB

Mercredi 15 Janvier 2014

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Introduction a MongoDB Auteurs : Raphaël Fournier-S niehotta, Philippe Rigaux, Nicolas Travers prénom.nom@cnam.fr Département d informatique Conservatoire National des Arts & Métiers, Paris, France

Basics Plan de la présentation

Basics Qu est-ce que MongoDB,? MongoDB, un système "NoSQL", l un des plus populaires fait partie des NoSQL dits documentaires (avec CouchDB) s appuie sur un modèle de données semi-structuré (encodage JSON) ; pas de schéma (complète flexibilité) ; un langage d interrogation original (et spécifique) ; pas (ou très peu) de support transactionnel. Construit dès l origine comme un système scalable et distribué. distribution par partionnement (sharding) ; technique adoptée : découpage par intervalles (type BigTable, Google) ; tolérance aux pannes par réplication.

Basics Objectifs de ce cours Découvrir un système NoSQL session interactive commentée. Modélisation. Comment modélise-t-on une application? Avantages/inconvénients vs. un système relationnel. Un aperçu du langage d interrogation de MongoDB. A faire : récupérer les documents JSON sur le site BDPédia.

Session découverte! Plan de la présentation

Session découverte! Le minimum à savoir Vous connaissez déjà JSON? Système client/serveur ; le serveur est mongod Open-source, multi plate-formes : installez-le chez vous! Un client en mode terminal : mongo ; langage Javascript ; D autres clients plus ergonomiques, dont RockMongo, une interface Web. Conçu et développé par 10gen.

Session découverte! Découvrons (avec le client mongo) On se place dans une base nfe204 (cd. MySQL) use nfe024 On insère un document JSON dans une collection > db.test.insert ({"nom": "nfe024"}) On affiche le contenu de la collection > db.test.find() On insère n importe quel autre document (pas de schéma) > db.test.insert ({"produit": "Grulband", prix: 230, enstock: true}) On peut donner un identifiant explicite : > db.test.insert ({_id: "1", "produit": "Kramölk", prix: 10, enstock: true}) > db.test.count()

Session découverte! Quelques documents plus sérieux Sur le site http://webscope.bdpedia.fr, récupérer des documents JSON pour les films. Exemple { "_id": "movie:100", "title": "The Social network", "summary": "On a fall night in 2003, Harvard undergrad and programming genius Mark Zuckerberg sits down at his computer and heatedly begins working on a new idea. (...)", "year": 2010, "director": {"last_name": "Fincher", "first_name": "David"}, "actors": [ {"first_name": "Jesse", "last_name": "Eisenberg"}, {"first_name": "Rooney", "last_name": "Mara"} ] }

Session découverte! Aperçu du langage de requêtes On peut exprimer l équivalent du select-from-where, sur une seule collection (pas de jointure). db.movies.find ({"_id": "movie:2"}) Avec des expressions de chemin (simples!) db.test.find ({"director.last_name": "Scott"} ) Fonctionne aussi pour les acteurs (même si c est un tableau). db.test.find ({"actors.last_name": "Weaver"}) Mise à jour : db.test.update ({"_id": "movie:2"}, {$set: {sous_titre: "Le passager"}} ) db.test.update ({"_id": "movie:2"}, {$unset: {country: 1}} ) Et on supprime tout : db.test.remove()

Manipulation de données avec MongoDB Plan de la présentation

Manipulation de données avec MongoDB Créer une petite base Aller sur le site Webscope (http://wbescope.bdpedia.fr) et exporter les films et les artistes séparément en JSON. Importer les données JSON avec mongoimport. mongoimport -d nfe204 -c movies --file movies.json --jsonarray Idem pour les artistes mongoimport -d nfe204 -c artists --file artists.json --jsonarray

Manipulation de données avec MongoDB Les requêtes Recherche par clé (très rapide). db.artists.find({_id: "artist:99"}) Remarquez l utilisation de findone. Avec un chemin. db.movies.find({"actors._id": "artist:99"}) Avec pagination db.movies.find({"actors._id": "artist:99"}).skip(0).limit(2) Avec une projection db.movies.find({"actors._id": "artist:99"}, {"title": 1}) Avec une expression régulière (pas de guillemets!) : db.movies.find({"title": /^Re/}, {"title": 1}) Par intervalle : db.movies.find({"year": {$gte: 2000, $lte: 2005}, {"title": 1})

Manipulation de données avec MongoDB Les requêtes, suite Quelques clauses ensemblistes db.artists.find({_id: {$in: ["artist:34", "artist:98", "artist:1"]}, { Autres possibilités : $nin, $all, $exist db.movies.find({ summary : {$exists: true}}, {"title": 1})

Manipulation de données avec MongoDB Et les jointures Il faut les effectuer du côté client. Exemple (en supposant un schéma uniquement avec références) : tous les films réalisés par Clint Eastwood. eastwood = db.artists.findone({"first_name": "Clint", "last_name": "Ea db.movies.find({"director._id": eastwood[ _id ]}, {"title": 1}) Notez le findone! Revient à effectuer une jointure par boucle imbriquées avec l application client : très peu efficace à grande échelle. Exemple : noms des réalisateurs (toujours dans un schéma avec références) Sélectionner dans movies tous les ids des réalisateurs directors = db.movies.find({}, {"director._id": 1}) Faire une boucle sur directors, pour chaque director noms = db.artists.find({"_id": director[ _id ]}, {"last_name": 1})

Manipulation de données avec MongoDB Comparaison des techniques de jointure