Pig pode entenderse como a parte de Hadoop que nos permite escribir e compilar os programas que se han executar nunha plataforma Hadoop.
Pig en sí mesmo é unha plataforma para a análise de grandes conxuntos de datos, composta por unha linguaxe de alto nivel na que se expresan os programas de análise de datos, acompañada dunha infraestrutura para a avaliación deses programas. A gran característica dos programas feitos en Pig é que a súa estrutura é susceptíbel de ser paralelizábel facilmente, o que lles permite aos programas manexar conxuntos de datos realmente grandes.
No momento actual, a capa de infraestrutura de Pig consiste nun compilador que produce series de programas acordes ao paradigma Mapreduce, do que existen aplicacións libres (como pode ser a do proxecto Hadoop). A capa de linguaxe de Pig consiste actualmente nunha linguaxe textual chamada Pig Latin, que ten as seguintes características:
- Facilidade de programación: conseguir a execución en paralelo de tarefas simples de análise de datos é trivial. As tarefas complexas compostas por múltiplas transformacións de datos interrelacionadas codifícanse explicitamente como secuencias de fluxos de datos, o que as fai sinxelas de escribir, comprender e manter.
- Capacidades de optimización: a maneira na que se codifican as tarefas permítelle ao sistema optimizar automaticamente a súa execución, co que así o usuario pódese concentrar na semántica, olvidándose da eficiencia.
- Extensibilidade: os usuarios poden crear as súas propias funcións para o procesamento de datos con obxectivos particulares.
