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



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

MapReduce. Nicolas Dugué M2 MIAGE Systèmes d information répartis

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

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

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

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

Cours 8 Not Only SQL

4 Exemples de problèmes MapReduce incrémentaux

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)

Corrigés des premiers exercices sur les classes

Hadoop, Spark & Big Data 2.0. Exploiter une grappe de calcul pour des problème des données massives

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)

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

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

Programmation parallèle et distribuée (Master 1 Info )

Les bases de données relationnelles

Programmation parallèle et distribuée

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Labs Hadoop Février 2013

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Bases de Données NoSQL

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

Programmation parallèle et distribuée

Panorama des solutions analytiques existantes

Introduction à MapReduce/Hadoop et Spark

Comment booster vos applications SAP Hana avec SQLSCRIPT

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Ricco Rakotomalala R.R. Université Lyon 2

Les structures de données. Rajae El Ouazzani

Prototypage et évaluation de performances d un service de traçabilité avec une architecture distribuée basée sur Hadoop

Acquisition des données - Big Data. Dario VEGA Senior Sales Consultant

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

Map-Reduce : un cadre de programmation parallèlle pour l analyse de grandes données. Stéphane Genaud ENSIIE

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Séance d ED n 5 : HTML et JavaScript

Cartographie des solutions BigData

Introduction à ElasticSearch

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

Examen Médian - 1 heure 30

TP JAVASCRIPT OMI4 TP5 SRC

Notes de cours Practical BigData

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

NFE204 Bases de données avancées

Certificat Big Data - Master MAthématiques

Glossaire des outils

AWS avancé. Surveiller votre utilisation d EC2

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

Les structures. Chapitre 3

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Mysql avec EasyPhp. 1 er mars 2006

Flex. Lire les données de manière contrôlée. Programmation Flex 4 Aurélien VANNIEUWENHUYZE

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Rapport de stage Nicolas PLAZE Licence Pro A2I. Rapport de Stage LICENCE PRO A2I. Société INFHOTIK. Nicolas PLAZE

Architecture des ordinateurs

Les arbres binaires de recherche

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

Évaluation et optimisation de requêtes

STAGE IREM 0- Premiers pas en Python

MODE D EMPLOI DU LOGICIEL LIGNES DE TEMPS A partir du film La Mort aux trousses d Alfred Hitchcock

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Programmation Web. Madalina Croitoru IUT Montpellier

Environnements de développement (intégrés)

Java Licence Professionnelle CISII,

Génie Logiciel avec Ada. 4 février 2013


Licence Sciences et Technologies Examen janvier 2010

A QUOI SERVENT LES BASES DE DONNÉES?

Cryptographie. Cours 3/8 - Chiffrement asymétrique

RENAN LUCE, On n'est pas à une bêtise près (3 36)

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Algorithmique & programmation

Introduction aux algorithmes MapReduce. Mathieu Dumoulin (GRAAL), 14 Février 2014

Premiers Pas en Programmation Objet : les Classes et les Objets

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Introduction Big Data

7 Développement d une application de MapReduce

9,95 $/la première année*

TD3: tableaux avancées, première classe et chaînes

Programmation avec des objets : Cours 7. Menu du jour

Programmation Objet - Cours II

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Présentation du langage et premières fonctions

Cours d initiation à la programmation en C++ Johann Cuenin

DOM - Document Object Model

MAC-TC: programmation d un plate forme DSP-FPGA

Création d objet imbriqué sous PowerShell.

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

NoSQL : les meilleures

Introduction à la programmation concurrente

Sécurité des applications web. Daniel Boteanu

55, rue du Faubourg Montmartre Paris +33 (0)

Document réalisé par Khadidjatou BAMBA

Concepteur WEB Option - Web Marketing 1200 Heures

Utilitaires méconnus de StrataFrame

Les quatre piliers d une solution de gestion des Big Data

Guide pratique : Les coûts d emprunt d argent

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Frameworks MapReduce: 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

Rappels : Notions et vocabulaire Vous devriez savoir : Item (entrée), document en ce qui nous concerne. Fonction de Map, implante la transformation appliquée à un item pendant la phase de Map. Paire intermédiaire, c est le résultat de la fonction de Map. Une paire intermédiaire (k, v) comprend l identifiant (étiquette) du groupe auquel v appartient. Groupe intermédiaire, ensemble des valeurs produites par la fonction de Map et partageant le même identifiant de groupe. Fonction de Reduce, implante la transformation appliquée un groupe pendant la phase de Reduce. Ne pas retenir (pour l instant) : comment tout cela s exécute en distribué, avec parallélisation et reprise sur panne.

Frameworks MapReduce : MongoDB Plan de la présentation 1 Frameworks MapReduce : MongoDB 2 Application avec MongoDB 3 Jointures avec MapReduce

Frameworks MapReduce : MongoDB La notion de framework Framework = environnement assumant les aspects génériques d un traitement. Ici : tout ce qui n est pas le cuisinier, le pressoir. Impose un modèle d exécution contraint. Mais il suffit de fournir la spécification fonctionnelle : F map () et F red ()

Frameworks MapReduce : MongoDB Exemple : compter les fruits sains, par catégorie Ecrire une fonction F map () qui teste si un produit est pourri et émet une paire intermédiaire. function controlefruit (fruit) { if (fruit.statut!= pourri) { emit (fruit.type, 1) Chaque groupe intermédiaire contient autant de 1 que de fruits sains. Ecrire une fonction F red () qui additionne les valeurs dans un groupe. function compterpomme (typefruit, groupe) { return <typefruit, sum(groupe)> La fonction est appliquée à chaque groupe. Il reste à soumettre ces deux fonctions au framework. Clair?

Application avec MongoDB Plan de la présentation 1 Frameworks MapReduce : MongoDB 2 Application avec MongoDB 3 Jointures avec MapReduce

Application avec MongoDB MapReduce et MongoDB MongoDB comprend un moteur de calcul MapReduce. Les fonctions doivent être écrites en Javascript. Dans ce qui suit : deux exemples de traitements MapReduce pour Comprendre les principes, le raisonnement. Réaliser les limites quand il s agit d obtenir des traitements un peu complexes. Méditer sur l utilité de la chose... Fonctions fournies : à tester avec l utilitaire mongo ou avec RoboMongo (ou tout autre client).

Application avec MongoDB Exemple : regroupement de films On veut regrouper les films par réalisateur La fonction F map. var maprealisateur = function() { emit(this.director._id, this.title); ; Combien aura-t-on de groupes? La fonction F red. var reducerealisateur = function(directorid, titres) { var res = new Object(); res.director = directorid; res.films = titres; return res; ; Soumission au framework db.movies.mapreduce(maprealisateur, reducerealisateur, {out: {"inline": 1)

Application avec MongoDB Le résultat Chaque exécution de F red produit un document de la forme. { "_id" : "artist:3", "value" :{ "director" : "artist:3", "films" :[ "Vertigo", "Psychose", "Les oiseaux", "Pas de printemps pour Marnie", "La mort aux trousses" ] On aimerait connaître le réalisateur : exercice! Options d exécution : voir le support.

Jointures avec MapReduce Plan de la présentation 1 Frameworks MapReduce : MongoDB 2 Application avec MongoDB 3 Jointures avec MapReduce

Jointures avec MapReduce Jointure : la méthode Notre base est celle contenant les films avec références. Films et artistes sont dans des documents distincts. Le but est d obtenir pour chaque artiste la liste des films qu il/elle a réalisé. Principe (général) : on exploite le mécanisme de regroupement pour associer, dans un même groupe les informations à combiner. On va créer autant de groupes que d artiste. Dans chaque groupe on place : l artiste dont l identifiant correspond à l identifiant du groupe ; les films (0, 1 ou plusieurs) dont l identifiant du metteur en scène correspond à l identifiant du groupe. Méthode très représentative de l application de MapReduce à des algorithmes complexes (pas trop quand même).

Jointures avec MapReduce Illustration : groupement d un metteur en scène et de ses films

Jointures avec MapReduce En pratique : la fonction de Map var mapjoin = function() { // Est-ce que l id du document contient le mot "artist"? if (this._id.indexof("artist")!= 1) { // Oui! C est un artiste. Ajoutons-lui son type. this.type="artist"; // On produit une paire avec pour id celle de l artiste emit(this._id, this); else { // Non: c est un film. Ajoutons-lui son type. this.type="film"; // Simplifions un peu le document pour l affichage delete this.summary; delete this.actors; // On produit une paire avec pour id celle du metteur en sc. emit(this.director._id, this); ;

Jointures avec MapReduce En pratique : la fonction de Reduce var reducejoin = function(id, items) { var director = null, films={result: [] // On cherche l artiste dans cette liste for (var idx = 0; idx < items.length; idx++) { if (items[idx].type=="artist") { director = items[idx]; // Maintenant, director contient l artiste : on l affecte aux films for (var idx = 0; idx < items.length; idx++) { if (items[idx].type=="film" && director!= null) { items[idx].director = director; films.result.push (items[idx]); return films; ;