Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Apache Pig — Wikipédia
Apache Pig — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Pig.

Cet article est une ébauche concernant l’informatique.

Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
Apache Pig
Description de l'image defaut.svg.

Informations
Développé par Apache Software FoundationVoir et modifier les données sur Wikidata
Première version 11 septembre 2008 [1]
Dépôt svn.apache.org/repos/asf/pigVoir et modifier les données sur Wikidata
État du projet en developpement
Écrit en JavaVoir et modifier les données sur Wikidata
Système d'exploitation Microsoft Windows, macOS et LinuxVoir et modifier les données sur Wikidata
Environnement Machine virtuelle JavaVoir et modifier les données sur Wikidata
Formats lus Pig source code file (d)Voir et modifier les données sur Wikidata
Formats écrits Pig source code file (d)Voir et modifier les données sur Wikidata
Type Base de donnéesVoir et modifier les données sur Wikidata
Licence Licence ApacheVoir et modifier les données sur Wikidata
Documentation pig.apache.org/docs/r0.17.0Voir et modifier les données sur Wikidata
Site web https://pig.apache.org/

modifier - modifier le code - voir Wikidata (aide)

Pig[2] est une plateforme haut niveau pour la création de programme MapReduce utilisé avec Hadoop. Le langage de cette plateforme est appelé le Pig Latin[2]. Pig Latin s'abstrait du langage de programmation Java MapReduce et se place à un niveau d'abstraction supérieur, similaire à celle de SQL pour systèmes SGBDR. Pig Latin peut être étendue en utilisant UDF (User Defined Functions) que l'utilisateur peut écrire en Java, en Python, en JavaScript, en Ruby ou en Groovy[3] et ensuite être utilisé directement au sein du langage.

Pig était initialement [4] développé chez Yahoo Research dans les années 2006 pour les chercheurs qui souhaitaient avoir une solution ad-hoc pour créer et exécuter des jobs map-reduce sur d'importants jeux de données. En 2007[5], il a été transmis à l'Apache Software Foundation[6].

Exemple

[modifier | modifier le code]

Voici un exemple d'un programme "Word Count" (calcul du nombre d'occurrences de chaque mot) en Pig Latin:

-- Charge le texte depuis un fichier local
 input_lines = LOAD '/tmp/my-copy-of-all-pages-on-internet' AS (line:chararray);
 
 -- Extrait les mots de chaque ligne et transforme-les en type "pig bag",
 -- puis, utilise la fonction "flatten" sur le "pig bag" pour avoir un mot
 -- dans chaque ligne
 words = FOREACH input_lines GENERATE FLATTEN(TOKENIZE(line)) AS word;
 
 -- Filtre en enlevant tous les mots composés uniquement d'espaces
 filtered_words = FILTER words BY word MATCHES '\\w+';
 
 -- Crée un groupe pour chaque mot
 word_groups = GROUP filtered_words BY word;
 
 -- Compte le nombre d'occurrences de chaque mot 
 word_count = FOREACH word_groups GENERATE COUNT(filtered_words) AS count, group AS word;
 
 -- Ordonne les mots par leurs nombres d'occurrences (en ordre décroissant)
 ordered_word_count = ORDER word_count BY count DESC;

 -- Enregistre le résultat dans un fichier local
 STORE ordered_word_count INTO '/tmp/number-of-words-on-internet';

Le programme ci-dessus va générer des tâches exécutables parallèles qui peuvent être distribués sur plusieurs machines dans un cluster Hadoop pour compter le nombre de mots dans un ensemble de données telles que les pages Web sur Internet.

Pig vs SQL

[modifier | modifier le code]

Par rapport au SQL, Pig:

  1. Utilise l'évaluation paresseuse,
  2. utilise des extract, transform, load (ETL),
  3. est capable de stocker des données à tout moment pendant un pipeline,
  4. déclare le plan d'exécution,
  5. exécute le workflow subdivisé selon un graphe, au lieu d'une exécution purement séquentielle.

En revanche, les SGBD sont sensiblement plus rapide que le système de MapReduce une fois que les données sont chargées, ce chargement de données étant beaucoup plus rapide dans un système de MapReduce. Et les systèmes de bases de données relationnels offrent directement prêtes à l'emploi des fonctionnalités de stockage en colonnes, de traitement de données compressées, d'indexation pour une localisation plus rapide des données et de tolérance aux fautes au niveau transactionnel[7].

Pig Latin est un langage procédural et s'inscrit tout naturellement dans le paradigme du pipeline tandis que SQL est plutôt déclaratif.  En SQL, les utilisateurs peuvent spécifier que les données de deux tables doivent être jointes, mais pas quelle implémentation de jointure est à utiliser et «... pour de nombreuses applications le moteur de requêtes n'a pas une connaissance suffisante des données ou une expertise suffisante pour spécifier un algorithme de jointure approprié. »[8]. Pig Latin permet aux utilisateurs de spécifier une implémentation ou des aspects de l'implémentation à utiliser dans l'exécution d'un script de plusieurs façons[9]. En effet, la programmation Pig Latin est similaire à la spécification d'un plan d'exécution de la requête, qui rend plus facile pour les programmeurs de contrôler explicitement le flux de leur tâche de traitement de données[10].

SQL est orienté autour de requêtes qui produisent un résultat unique. Il gère également les arbres, mais n'a aucun mécanisme intégré pour diviser un flux de traitement de données et appliquer les différents opérateurs à chaque sous-flux. Pig Latin décrit un Graphe orienté acyclique (DAG) plutôt qu'un pipeline[9].

Pig Latin est capable d'inclure du code utilisateur à n'importe quel point dans le pipeline. Avec SQL, les données doivent d'abord être importées dans la base de données, avant que l'on puisse lancer un processus de nettoyage et de transformation de celles-ci.

Voir aussi

[modifier | modifier le code]
  • Apache Hive
  • Sawzall — outil similaire de Google
  • Hadoop
  • Catégorie:Écosystème Hadoop

Références

[modifier | modifier le code]
  1. ↑ « Apache Pig Releases », sur apache.org (consulté le 16 novembre 2023).
  2. ↑ a et b « Hadoop: Apache Pig » (consulté le 2 septembre 2011)
  3. ↑ « Pig user defined functions » (consulté le 3 mai 2013)
  4. ↑ « Yahoo Blog:Pig – The Road to an Efficient High-level language for Hadoop » (consulté le 23 mai 2015)
  5. ↑ « Pig into Incubation at the Apache Software Foundation » [archive du 3 février 2016] (consulté le 23 mai 2015)
  6. ↑ « The Apache Software Foundation » (consulté le 1er novembre 2010)
  7. ↑ « Communications of the ACM: MapReduce and Parallel DBMSs: Friends or Foes? » [archive du 1er juillet 2015] [PDF] (consulté le 23 mai 2015)
  8. ↑ (en) alan Gates, « Comparing Pig Latin and SQL for Constructing Data Processing Pipelines », 29 janvier 2010 (consulté le 6 février 2017)
  9. ↑ a et b « Yahoo Pig Development Team: Comparing Pig Latin and SQL for Constructing Data Processing Pipelines » (consulté le 23 mai 2015)
  10. ↑ « ACM SigMod 08: Pig Latin: A Not-So-Foreign Language for Data Processing » [PDF] (consulté le 23 mai 2015)
  • (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Pig (programming tool) » (voir la liste des auteurs).

Liens externes

[modifier | modifier le code]
  • Site officiel
v · m
Science des données
Concepts
  • MapReduce
  • Apprentissage profond
  • Extreme learning machine
  • Apprentissage automatique
  • Apprentissage supervisé
  • Apprentissage non supervisé
  • Réseau de neurones artificiels
  • Visualisation de données
  • Exploration de données
  • Fouille de textes
  • Segmentation
  • Intelligence artificielle
  • Big data
  • Data lineage
Architecture
  • Hadoop
  • Cloudera
  • Hortonworks
  • Apache Hive
  • NoSQL
  • NewSQL
  • HBase
  • Cassandra
  • Apache Spark
Outils
  • Presto
  • Apache Impala
  • Pig
  • Tableau Software
  • Elasticsearch
  • MongoDB
  • Apache Mahout
  • Scikit-learn
  • TensorFlow
  • Theano (logiciel)
  • SPSS
  • JMP
  • Dataiku
  • Apache MXNet
  • ONNX
  • Apache SINGA
  • Keras
Programmation
  • R
  • Ggplot2
  • SAS
  • Python
  • Julia
  • SQL
  • Scala
Statistique
  • ACP
  • AFC
  • ACM
  • Méthode des moindres carrés
  • Analyse des données
  • Homoscédasticité
  • Knn
  • Cartes de Kohonen
  • Statistique multivariée
  • Théorème de Bayes
  • Analyse de la variance
  • Test du χ²
  • Distance de Cook
Articles liés
  • Watson
  • Teradata
  • Glossaire de l'exploration de données
  • Extract-transform-load
  • Traitement analytique en ligne
  • icône décorative Portail des logiciels libres
  • icône décorative Portail des données
  • icône décorative Portail des bases de données
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Apache_Pig&oldid=210500293 ».
Catégories :
  • Logiciel écrit en Java
  • Écosystème Hadoop
  • Apache Software Foundation
  • Cloud computing
  • Langage de modélisation de données
  • Langage de requête
  • Logiciel libre sous licence Apache
Catégories cachées :
  • Article contenant un lien mort
  • Wikipédia:ébauche informatique
  • Image locale sans image sur Wikidata
  • Page utilisant P178
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Page utilisant P400
  • Page utilisant des données de Wikidata à traduire de l'anglais
  • Page utilisant P1072
  • Page utilisant P1073
  • Page utilisant P366
  • Page utilisant P275
  • Page utilisant P2078
  • Article utilisant une Infobox
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Données/Articles liés
  • Portail:Sciences/Articles liés
  • Portail:Bases de données/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id