Apache Pig - Panoramica
Cos'è Apache Pig?
Apache Pig è un'astrazione su MapReduce. È uno strumento / piattaforma che viene utilizzato per analizzare set di dati più ampi che li rappresentano come flussi di dati. Il maiale è generalmente usato conHadoop; possiamo eseguire tutte le operazioni di manipolazione dei dati in Hadoop utilizzando Apache Pig.
Per scrivere programmi di analisi dei dati, Pig fornisce un linguaggio di alto livello noto come Pig Latin. Questo linguaggio fornisce vari operatori che utilizzano i quali i programmatori possono sviluppare le proprie funzioni per la lettura, la scrittura e l'elaborazione dei dati.
Per analizzare i dati utilizzando Apache Pig, i programmatori devono scrivere script utilizzando il linguaggio Pig Latin. Tutti questi script vengono convertiti internamente in attività di mappa e riduzione. Apache Pig ha un componente noto comePig Engine che accetta gli script Pig Latin come input e li converte in lavori MapReduce.
Perché abbiamo bisogno di Apache Pig?
I programmatori che non sono così bravi in Java normalmente erano soliti avere difficoltà a lavorare con Hadoop, specialmente durante l'esecuzione di qualsiasi attività di MapReduce. Apache Pig è un vantaggio per tutti questi programmatori.
Utilizzando Pig Latin, i programmatori possono eseguire facilmente le attività di MapReduce senza dover digitare codici complessi in Java.
Usi di Apache Pig multi-query approach, riducendo così la lunghezza dei codici. Ad esempio, un'operazione che richiederebbe di digitare 200 righe di codice (LoC) in Java può essere facilmente eseguita digitando meno di 10 LoC in Apache Pig. In definitiva, Apache Pig riduce i tempi di sviluppo di quasi 16 volte.
Il maiale latino è SQL-like language ed è facile imparare Apache Pig quando si ha familiarità con SQL.
Apache Pig fornisce molti operatori incorporati per supportare le operazioni sui dati come join, filtri, ordini, ecc. Inoltre, fornisce anche tipi di dati nidificati come tuple, sacchetti e mappe che mancano da MapReduce.
Caratteristiche del maiale
Apache Pig include le seguenti funzionalità:
Rich set of operators - Fornisce molti operatori per eseguire operazioni come join, sort, filer, ecc.
Ease of programming - Pig Latin è simile a SQL ed è facile scrivere uno script Pig se sei bravo in SQL.
Optimization opportunities - Le attività in Apache Pig ottimizzano la loro esecuzione automaticamente, quindi i programmatori devono concentrarsi solo sulla semantica del linguaggio.
Extensibility - Utilizzando gli operatori esistenti, gli utenti possono sviluppare le proprie funzioni per leggere, elaborare e scrivere dati.
UDF’s - Pig fornisce la struttura per creare User-defined Functions in altri linguaggi di programmazione come Java e invocali o incorporali in Pig Scripts.
Handles all kinds of data- Apache Pig analizza tutti i tipi di dati, sia strutturati che non strutturati. Memorizza i risultati in HDFS.
Apache Pig Vs MapReduce
Di seguito sono elencate le principali differenze tra Apache Pig e MapReduce.
Maiale Apache | Riduci mappa |
---|---|
Apache Pig è un linguaggio per il flusso di dati. | MapReduce è un paradigma di elaborazione dei dati. |
È una lingua di alto livello. | MapReduce è di basso livello e rigido. |
L'esecuzione di un'operazione di join in Apache Pig è piuttosto semplice. | È piuttosto difficile in MapReduce eseguire un'operazione di unione tra set di dati. |
Qualsiasi programmatore alle prime armi con una conoscenza di base di SQL può lavorare comodamente con Apache Pig. | L'esposizione a Java è necessaria per lavorare con MapReduce. |
Apache Pig utilizza un approccio multi-query, riducendo in tal modo la lunghezza dei codici in larga misura. | MapReduce richiederà quasi 20 volte di più il numero di righe per eseguire la stessa operazione. |
Non è necessaria la compilazione. All'esecuzione, ogni operatore Apache Pig viene convertito internamente in un lavoro MapReduce. | I lavori MapReduce hanno un lungo processo di compilazione. |
Apache Pig Vs SQL
Di seguito sono elencate le principali differenze tra Apache Pig e SQL.
Maiale | SQL |
---|---|
Pig Latin è un file procedural linguaggio. | SQL è un file declarative linguaggio. |
In Apache Pig, schemaè opzionale. Possiamo memorizzare i dati senza progettare uno schema (i valori sono memorizzati come $ 01, $ 02 ecc.) | Lo schema è obbligatorio in SQL. |
Il modello di dati in Apache Pig è nested relational. | Il modello di dati utilizzato in SQL is flat relational. |
Apache Pig offre opportunità limitate per Query optimization. | Ci sono più opportunità per l'ottimizzazione delle query in SQL. |
Oltre alle differenze di cui sopra, Apache Pig Latin -
- Consente le suddivisioni nella pipeline.
- Consente agli sviluppatori di archiviare dati ovunque nella pipeline.
- Dichiara i piani di esecuzione.
- Fornisce agli operatori l'esecuzione di funzioni ETL (Extract, Transform e Load).
Apache Pig Vs Hive
Sia Apache Pig che Hive vengono utilizzati per creare processi MapReduce. E in alcuni casi, Hive funziona su HDFS in modo simile a Apache Pig. Nella tabella seguente, abbiamo elencato alcuni punti significativi che distinguono Apache Pig da Hive.
Maiale Apache | Alveare |
---|---|
Apache Pig utilizza un linguaggio chiamato Pig Latin. È stato originariamente creato aYahoo. | Hive utilizza un linguaggio chiamato HiveQL. È stato originariamente creato aFacebook. |
Pig Latin è un linguaggio per il flusso di dati. | HiveQL è un linguaggio di elaborazione delle query. |
Pig Latin è un linguaggio procedurale e si adatta al paradigma della pipeline. | HiveQL è un linguaggio dichiarativo. |
Apache Pig può gestire dati strutturati, non strutturati e semi-strutturati. | Hive è principalmente per dati strutturati. |
Applicazioni di Apache Pig
Apache Pig viene generalmente utilizzato dai data scientist per eseguire attività che implicano l'elaborazione ad-hoc e la prototipazione rapida. Viene utilizzato Apache Pig -
- Per elaborare enormi fonti di dati come i registri web.
- Per eseguire l'elaborazione dei dati per le piattaforme di ricerca.
- Per elaborare carichi di dati sensibili al tempo.
Apache Pig - Storia
Nel 2006, Apache Pig è stato sviluppato come progetto di ricerca presso Yahoo, in particolare per creare ed eseguire lavori MapReduce su ogni set di dati. Nel2007, Apache Pig è stato open source tramite incubatore Apache. Nel2008, è uscita la prima versione di Apache Pig. Nel2010, Apache Pig si è laureato come progetto di primo livello Apache.