Apache Pig РDescripción general

¬ŅQu√© es Apache Pig?

Apache Pig es una abstracción de MapReduce. Es una herramienta / plataforma que se utiliza para analizar grandes conjuntos de datos, representándolos como flujos de datos. El cerdo se suele utilizar con Hadoop; podemos hacer toda la manipulación de datos en Hadoop usando Apache Pig.

Para escribir programas de an√°lisis de datos, Pig proporciona un lenguaje de alto nivel conocido como Pig Latin… El lenguaje proporciona varios operadores con los que los programadores pueden desarrollar sus propias funciones para leer, escribir y procesar datos.

Para analizar datos usando Pig apache, los programadores necesitan escribir guiones en Pig Latin. Todos estos scripts se convierten internamente en tareas de Map y Reduce. Apache Pig tiene un componente conocido como Motor de cerdo que toma los scripts de Pig Latin como entrada y convierte esos scripts en trabajos de MapReduce.

¬ŅPor qu√© necesitamos Apache Pig?

Los programadores que no son muy expertos en Java suelen tener dificultades para trabajar con Hadoop, especialmente cuando realizan tareas de MapReduce. Apache Pig es un regalo del cielo para todos estos programadores.

  • A trav√©s de Pig Latinlos programadores pueden realizar f√°cilmente tareas de MapReduce sin escribir c√≥digo complejo de Java.

  • Usos de Apache Pig enfoque de consulta m√ļltiple, reduciendo as√≠ la longitud de los c√≥digos. Por ejemplo, una operaci√≥n que requiere que ingrese 200 l√≠neas de c√≥digo (LoC) en Java se puede realizar f√°cilmente escribiendo solo 10 l√≠neas de c√≥digo en Apache Pig. En √ļltima instancia, Apache Pig reduce el tiempo de desarrollo en casi 16 veces.

  • Pig Latin Lenguaje similar a SQL y Apache Pig es f√°cil de aprender si est√° familiarizado con SQL.

  • Apache Pig proporciona muchos operadores integrados para admitir operaciones de datos como combinaciones, filtros, ordenaci√≥n, etc. Adem√°s, tambi√©n proporciona tipos de datos anidados como tuplas, paquetes y mapas de los que carece MapReduce.

Características del cerdo

Apache Pig tiene las siguientes características:

  • Amplio conjunto de operadores – Proporciona muchos operadores para realizar operaciones como unir, ordenar, filtrar, etc.

  • Facilidad de programaci√≥n – Pig Latin es similar a SQL, y si eres bueno en SQL, escribir un script de Pig no es dif√≠cil.

  • Posibilidades de optimizaci√≥n – Las tareas en Apache Pig optimizan autom√°ticamente su ejecuci√≥n, por lo que los programadores solo necesitan centrarse en la sem√°ntica del lenguaje.

  • Extensibilidad – Utilizando operadores existentes, los usuarios pueden desarrollar sus propias funciones para leer, procesar y escribir datos.

  • UDF – El cerdo da la oportunidad de crear Funciones personalizadas en otros lenguajes de programaci√≥n como Java y llamarlos o incrustarlos en Pig Scripts.

  • Maneja todo tipo de datos – Apache Pig analiza todo tipo de datos, tanto estructurados como no estructurados. Almacena los resultados en HDFS.

Apache Pig vs MapReduce

Las principales diferencias entre Apache Pig y MapReduce se enumeran a continuación.

Pig apache Mapa reducido
Apache Pig es un lenguaje de flujo de datos. MapReduce es un paradigma de procesamiento de datos.
Este es un idioma de alto nivel. MapReduce es de bajo nivel y ajustado.
La operación de conexión en Apache Pig es bastante simple. En MapReduce es bastante difícil realizar una operación de unión entre conjuntos de datos.
Cualquier programador novato con conocimientos básicos de SQL puede trabajar cómodamente con Apache Pig. Se requiere familiaridad con Java para trabajar con MapReduce.
Apache Pig adopta un enfoque de solicitudes m√ļltiples, lo que reduce en gran medida la longitud de los c√≥digos. MapReduce requerir√° casi 20 veces m√°s l√≠neas para realizar la misma tarea.
No se requiere compilación. Cuando se ejecuta, cada declaración de Apache Pig se asigna internamente a un trabajo MapReduce. Los trabajos de MapReduce requieren un largo proceso de compilación.

Apache Pig vs SQL

Las siguientes son las principales diferencias entre Apache Pig y SQL.

Pig SQL
Pig Latin procesal lengua. SQL es declarativo lengua.
En Apache Pig, esquema es opcional. Podemos almacenar datos sin crear esquemas (los valores se almacenan como $ 01, $ 02, etc.) El esquema es obligatorio en SQL.
Modelo de datos de Apache Pig: relación anidada El modelo de datos utilizado en SQL relacional plano
Apache Pig ofrece opciones limitadas para Optimización de consultas SQL tiene más opciones para optimizar consultas.

Adem√°s de las diferencias anteriores, Apache Pig Latin:

  • Le permite dividir la tuber√≠a.
  • Permite a los desarrolladores almacenar datos en cualquier lugar del proceso.
  • Anuncia planes de ejecuci√≥n.
  • Proporciona operadores para realizar funciones ETL (extraer, transformar y cargar).

Apache Pig vs Hive

Tanto Apache Pig como Hive se utilizan para crear trabajos MapReduce. Y en algunos casos, Hive funciona con HDFS de forma similar a Apache Pig. En la siguiente tabla, hemos enumerado algunos puntos importantes que hacen que Apache Pig sea diferente de Hive.

Pig apache Colmena
Apache Pig usa un lenguaje llamado Pig Latin… Fue creado originalmente en Yahoo Hive usa un lenguaje llamado HiveQL… Fue creado originalmente en Facebook
Pig Latin es un lenguaje de flujo de datos. HiveQL es un lenguaje de procesamiento de consultas.
Pork Latin es un lenguaje de procedimientos que encaja en el paradigma de la tubería. HiveQL es un lenguaje declarativo.
Apache Pig puede manejar datos estructurados, no estructurados y semiestructurados. Hive es principalmente para datos estructurados.

Aplicaciones de Apache Pig

Los cient√≠ficos de datos suelen utilizar Apache Pig para realizar tareas que implican procesamiento personalizado y creaci√≥n r√°pida de prototipos. Se utiliza Apache Pig –

  • Para manejar grandes fuentes de datos como weblogs.
  • Realizar procesamiento de datos para plataformas de b√ļsqueda.
  • Para manejar la carga de datos sensibles al tiempo.

Apache Pig – Historia

EN 2006 a√ĪoApache Pig fue desarrollado en Yahoo como un proyecto de investigaci√≥n espec√≠ficamente para crear y ejecutar trabajos de MapReduce para cada conjunto de datos. EN 2007 a√ĪoApache Pig era de c√≥digo abierto a trav√©s de Apache Incubator. EN 2008 r., se lanz√≥ la primera versi√≥n de Apache Pig. EN 2010Apache Pig termin√≥ como un proyecto de nivel superior de Apache.

ūüöę