5.7.1. PIG dili-nin imkanları Hadoop-da tələb olunan verilənlər manipulyasiyaları Pig Latin ilə yerinə yetirmək mümkündür. O, verilənlər axınları üzərində daha böyük nəzarət təklif edir və MapReduce vasitəsilə bütün verilənlər manipulyasiya əməliyyatlarını həyata keçirə bilər. Pig, bu səbəbdən ETL (Çıxarmaq, Çevirmək və Yükləmək) işlərinə çox uyğundur. Bir ETL işi mənbədən verilənləri çıxarır, qayda yığımına görə çevirir və sonra verilənlər anbarına yükləyir. Pig Latın, verilənlər kəmərində bölünmələrə imkan verir. O, developerlərə məlumatları kəmərin istənilən yerində saxlamağa imkan verir. Bu, oxuma/yazma kodunun birdən çox yerdə təkrarlanması ehtiyacını azaldır və kodun ümumi uzunluğunu da xeyli azaldır. Pig, Java ilə müqayisədə proqramın ölçüsünü 10 dəfə azaldır və beləliklə müqayisə edilə bilən verilənlər manipulyasiya imkanları təqdim edərkən inkişaf müddətini 10 dəfə azaldır.
Pig, öyrənilməsi asan olan SQL-ə bənzər bir dildir. Əsas SQL biliklərinə sahib olan hər kəs Pig ilə rahat işləyə bilər. Pig, qoşulma, çeşidləmə və filtrlər kimi verilənlər əməliyyatlarını dəstəkləmək üçün bir çox daxili operator təmin edir. Bu səbəbdən, Pigdə Join kimi əhəmiyyətli bir əlaqəli əməliyyat həyata keçirmək çox sadədir. Pig zəngin daxili funksiyalar kitabxanasına malikdir. Əlavə olaraq, inkişaf etmiş bir proqram məntiqinin Java-da və digər bu kimi dillərdə yazılmasını təmin edən və daha sonra Pig içərisindən işə salınan İstifadəçi Tərifli funksiyaların (UDF) istifadəsinə imkan verir. Əksinə Pig skriptləri başqa dillərdə də icra edilə bilər. Beləliklə, Pig-dən həqiqi iş problemlərini həll edən daha böyük və daha mürəkkəb tətbiqetmələrin tərkib hissələrini yaratmaq üçün istifadə etmək olar.
Pig əsasən Hadoop Paylanmış Fayl Sistemində saxlanılan verilənlərlə işləyir. MapReduce paralel işləmə mexanizmi vasitəsilə işləyir. Pig fayllardan, axınlardan və ya digər mənbələrdən verilənləri ala bilər. İstifadəçi Tərifli Funksiyaları (UDF) ilə yanaşı daxili funksiyalardan da istifadə edərək verilənlər çox mürəkkəb şəkildə qəbul edilə və dəyişdirilə bilər. Nəticələr HDFS-də saxlanılır.
Pig strukturlaşdırılmış, strukturlaşdırılmamış və yarı strukturlaşdırılmış verilənləri idarə edə bilər. Pig, Atom, Tuple, Bag, Map və Relations kimi bir çox verilənlər strukturunu təmin edir. Pig verilənlər quruluşu üçün əlaqəli bir sxem lazım deyil. Apache Pig-də verilənlər modeli iç içədir. MapReduce-də mövcud olmayan bağlayıcılar və xəritələr kimi daxil edilmiş verilənlər tiplərini təmin edir. Pig-in xüsusi bir metadata bölməsi yoxdur; sxemli proqramın özündə müəyyənləşdirilməsi lazımdır. Pig, əvvəllər SQL ilə təcrübəsi olmayan birisi üçün daha asan ola bilər.