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



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

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

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

1 Introduction et installation

Bases de données avancées Introduction

NFE204 Bases de données avancées

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

Le langage SQL Rappels

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

Introduction à MapReduce/Hadoop et Spark

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Anticiper et prédire les sinistres avec une approche Big Data

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

TP Bases de données réparties

Jean-François Boulicaut & Mohand-Saïd Hacid

Les bases de données

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

Bases de données - Modèle relationnel

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

M2 GL UE DOC «In memory analytics»

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

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

Bases de données relationnelles

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)

Introduction aux bases de données

Certificat Big Data - Master MAthématiques

Évaluation et optimisation de requêtes

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

INTRODUCTION AU DATA MINING

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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de données relationnelles : Introduction

Bases de données cours 1

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)

Langage SQL : créer et interroger une base

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

Cartographie des solutions BigData

Importation et exportation de données dans HDFS

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Notes de cours Practical BigData

SQL Historique

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

Hadoop dans l entreprise: du concept à la réalité. Pourquoi et comment?

Optimisation SQL. Quelques règles de bases

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

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

Bases de données et sites WEB Licence d informatique LI345

Dossier I Découverte de Base d Open Office

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13


Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Java et les bases de données

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

Session S12 Les bases de l optimisation SQL avec DB2 for i

ArcGIS 10.1 for Server

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

Ricco Rakotomalala R.R. Université Lyon 2

Introduction au Système de Gestion de Base de Données et aux Base de Données

Hashtag Twitter #datatuesday

Entreposage et analyse en ligne dans les nuages avec Pig

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Panorama des solutions analytiques existantes

td3a correction session7az

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Quality Awareness in Data Management and Mining

A QUOI SERVENT LES BASES DE DONNÉES?

Interpréteur d algèbre relationnelle

Intégration des Tableaux Multidimensionnels en Pig pour l Entreposage de Données sur les Nuages

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Le Langage SQL version Oracle

Hadoop / Big Data. Benjamin Renaut <renaut.benjamin@tokidev.fr> MBDS

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

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

Les enjeux du Big Data Innovation et opportunités de l'internet industriel. Datasio 2013

Avant-propos. Organisation du livre

Créer un rapport pour Reporting Services

2015 kmeans. September 3, 2015

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Bases de données élémentaires Maude Manouvrier

Administration de Bases de Données : Optimisation

Quelques aspects du Relationnel-Objet du SGBD Oracle

Big Data Concepts et mise en oeuvre de Hadoop

Bases de Données. Plan

I4 : Bases de Données

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Module d anonymisation

Architecture de la plateforme SBC

TD n 10 : Ma première Base de Données

Thème : Gestion commerciale

<Insert Picture Here> Exadata Storage Server et DB Machine V2

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

PHP 5. La base de données MySql. A. Belaïd 1

Transcription:

Bases de données documentaires et distribuées Cours NFE04 Le langage Pig latin 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

Programmer facilement en MapReduce : Pig Basics Pig Latin Motivation : définir un langage de haut niveau, type SQL, qui s appuie sur un moteur d exécution MapReduce. Une requête Pig définit un opérateur qui prend une relation en entrée et produit une autre relation en sortie. Les requêtes consistent en une séquence d instructions suivant généralement le schéma suivant : 1 L instruction LOAD charge les données d un fichier (HDFS) sous la forme d une relation (liste de n-uplets). 2 Une série de transformations traite les données. 3 L instruction (optionnelle) STORE écrit le résultat dans le système de fichiers (HDFS) ; on peut aussi faire un DUMP pour afficher à l écran. Les requêtes sont evaluées par une combinaison de jobs MapReduce.

Programmer facilement en MapReduce : Pig Basics Tester Pig Pig est un programme Java qui s exécute en ligne de commande. Télécharger depuis http://pig.apache.org. Décompresser dans un répertoire, disons pighome Placer le répertoire pighome/bin dans le chemin d exécuton (PATH) Deux modes d exécution local on lit les données sur le disque local, on évalue sans MapReduce MapReduce on exécute dans un cluster MapReduce, en lisant depuis HDFS. Pour exécuter en local : pig -x local grunt>run <script>.pig

Programmer facilement en MapReduce : Pig Basics Exemple de données en entrées (format tabulaire) Un fichier texte, un n-uplet par ligne, champs séparés par des tabulations. Fichier : publishers.txt Fundations of Databases Addison-Wesley USA Fundations of Databases Vuibert France Web Data Management and Distribution CUP GB Fichier : books.txt 1995 Fundations of Databases Abiteboul 1995 Fundations of Databases Hull 1995 Fundations of Databases Vianu 2010 Web Data Management Abiteboul 2010 Web Data Management Manolescu 2010 Web Data Management Rigaux 2010 Web Data Management Rousset 2010 Web Data Management Senellart En pratique On peut écrire une fonction Java qui charge les données des fichiers et les transforme en relation.

Programmer facilement en MapReduce : Pig Basics Premier exemple On regroupe les auteurs par livre. Chargement books = load books.txt as (year: int, title: chararray, author: chararray) ; Regroupement group_auth = group books by title; Restruturation authors = foreach group_auth generate group, books.author; Affichage dump authors; Exécution pig -x local grunt>run groupby.pig

Programmer facilement en MapReduce : Pig Basics Modèle de données Modèle semi-structuré, type XML/JSON. Imbrication de structures ensemblistes ( bags ) et de n-uplets. Exemple : le bag group_auth. ( ) Fundations of Databases, { (1995,Fundations of Databases,Abiteboul), (1995,Fundations of Databases,Hull), (1995,Fundations of Databases,Vianu) } Imbrication sans limite, mais pas de références ou dépendance externe : un document autonome. Objectif parallélisation! Les champs peuvent être référencés par leur nom (quand il y a un schéma) ou par leur position (ex, $1).

Programmer facilement en MapReduce : Pig Basics Un exemple complet : le fichier Fichier : journal-small.txt 2005 VLDB J. Model-based approximate querying in sensor networks. 1997 VLDB J. Dictionary-Based Order-Preserving String Compression. 2003 SIGMOD Record Time management for new faculty. 2001 VLDB J. E-Services - Guest editorial. 2003 SIGMOD Record Exposing undergraduate students to system internals. 1998 VLDB J. Integrating Reliable Memory in Databases. 1996 VLDB J. Query Processing and Optimization in Oracle Rdb 1996 VLDB J. A Complete Temporal Relational Algebra. 1994 SIGMOD Record Data Modelling in the Large. 2002 SIGMOD Record Data Mining: Concepts and Techniques - Book Review.

Programmer facilement en MapReduce : Pig Basics Un exemple complet : le programme Regroupement des publications par année. Chargement des documents de journal small.txt articles = load journal small.txt as (year: chararray, journal:chararray, title: chararray) ; sr_articles = filter articles BY journal== SIGMOD Record ; year_groups = group sr_articles by year; avg_nb = foreach year_groups generate group, COUNT(sr_articles.title); dump avg_nb; À décomposer...

Les opérateurs Pig Principaux opérateurs Pig Operator foreach filter distinct join group cogroup cross order limit union split Description Applique une expression à chaque document Filtre les tuples sur certains critères Elimination des doublons Jointures de deux bags Regroupement Association de n-uplets provenant de deux sources Produit cartésien de deux sources Tri Limite la taille des données traitées Union de deux sources (dont les schémas peuvent être très différents) Partition d une relation selon certains critères

Les opérateurs Pig Opérateur de dégroupage flatten déploie une imbrication (flatten.pig). Take the authors bag and flatten the nested set flattened = foreach authors generate group, flatten($1); Appliqué à la relation authors créée précédemment, on obtient : (Foundations of Databases,Abiteboul) (Foundations of Databases,Hull) (Foundations of Databases,Vianu) (Web Data Management,Abiteboul) (Web Data Management,Manolescu) (Web Data Management,Rigaux) (Web Data Management,Rousset) (Web Data Management,Senellart)

Les opérateurs Pig L opérateur cogroup Permet d assembler des n-uplets sur un ensemble de critères. Exemple (cogroup.pig) : publishers = load webdam publishers.txt as (title: chararray, publisher: chararray) ; cogrouped = cogroup flattened by group, publishers by title;

Les opérateurs Pig Résultat (mis en forme) Pour chaque valeur de regroupement, deux ensembles imbriqués, provenant de chacune des sources. (Foundations of Databases, { (Foundations of Databases,Abiteboul), (Foundations of Databases,Hull), (Foundations of Databases,Vianu) }, {(Foundations of Databases,Addison-Wesley), (Foundations of Databases,Vuibert) } ) Une sorte de jointure, dans un état intermédiaire, permis par le modèle semim-structuré.

Les opérateurs Pig Jointures Come précédemment, mais produit un résultat mis à plat. On effectue le produit cartésien des n-uplets imbriqués (join.pig). Take the flattened bag, join with publishers joined = join flattened by group, publishers by title; (Foundations of Databases,Abiteboul, Fundations of Databases,Addison-Wesley) (Foundations of Databases,Abiteboul, Fundations of Databases,Vuibert) (Foundations of Databases,Hull, Fundations of Databases,Addison-Wesley) (Foundations of Databases,Hull,...

Les opérateurs Pig Un exemple à tester Avec ajout de filtres pour sélectionner certain n-uplets. Chargement de books.txt books = load books.txt as (year: int, title: chararray, author: chararray) ; On prend les livres de Victor Vianu vianu = filter books by author == Vianu ; Chargement de publishers.txt publishers = load publishers.txt as (title: chararray, publisher: chararray) ; Jointure sur le titre joined = join vianu by title, publishers by title; Groupement sur le nom de l auteur grouped = group joined by vianu::author; Maintenant, comptons les editeurs (exercice: supprimer les doublons!) count = foreach grouped generate group, COUNT(joined.publisher); À vous de jouer.