Pig Latin is de taal voor Pig-programma's. Pig vertaalt het Pig Latin-script naar MapReduce-taken dat het in het Hadoop-cluster kan worden uitgevoerd. Toen hij met Pig Latin kwam, volgde het ontwikkelteam drie belangrijke ontwerpprincipes:
-
Houd het simpel . Pig Latin biedt een gestroomlijnde methode voor interactie met Java MapReduce. Het is een abstractie, met andere woorden, die het maken van parallelle programma's op het Hadoop-cluster vereenvoudigt voor gegevensstromen en analyse. Complexe taken kunnen een reeks onderling gerelateerde datatransformaties vereisen - dergelijke reeksen zijn gecodeerd als datastroomreeksen.
Het schrijven van datatransformatie en -stromen als Pig Latin-scripts in plaats van Java MapReduce-programma's maakt deze programma's gemakkelijker te schrijven, te begrijpen en te onderhouden omdat a) u de job niet in Java hoeft te schrijven, b) u hoeft niet te denken in termen van MapReduce en c) u hoeft geen aangepaste code te verzinnen om rijke gegevenstypen te ondersteunen.
Pig Latin biedt een eenvoudiger taal om uw Hadoop-cluster te exploiteren, waardoor het voor meer mensen gemakkelijker wordt om de kracht van Hadoop te benutten en sneller productief te worden.
-
Maak het slim. Misschien herinnert u zich dat de Pig Latin Compiler het werk doet om een Pig Latin-programma om te zetten in een reeks Java MapReduce-taken. De truc is om ervoor te zorgen dat de compiler de uitvoering van deze Java MapReduce-taken automatisch kan optimaliseren, zodat de gebruiker zich kan concentreren op semantiek in plaats van op het optimaliseren en openen van de gegevens.
Voor jou SQL-typen die er zijn, klinkt deze discussie bekend. SQL is ingesteld als een declaratieve query die u gebruikt voor toegang tot gestructureerde gegevens die zijn opgeslagen in een RDBMS. De RDBMS-engine vertaalt de query eerst naar een gegevenstoegangsmethode en kijkt vervolgens naar de statistieken en genereert een reeks benaderingen voor gegevenstoegang. De kostengebaseerde optimizer kiest de meest efficiënte aanpak voor uitvoering.
-
Geen beperking van ontwikkeling. Maak Pig uitbreidbaar, zodat ontwikkelaars functies kunnen toevoegen om hun specifieke zakelijke problemen aan te pakken.
Traditionele RDBMS-datawarehouses maken gebruik van het ETL-gegevensverwerkingspatroon, waarbij u e xtract-gegevens van externe bronnen extraheren, t deze naar uw operationele behoeften omzetten en vervolgens > l oad het in het einddoel, of het nu een operationeel gegevensarchief is, een datawarehouse of een andere variant van de database. Met big data wilt u echter meestal de hoeveelheid gegevens verminderen die u wilt verplaatsen, zodat u de verwerking zelf naar de gegevens brengt.
De taal voor Pig-gegevensstromen voldoet daarom aan de oude ETL-benadering en gaat in plaats daarvan met ELT:
E xtract de gegevens uit uw verschillende bronnen, l oad het in HDFS, en vervolgens t om het te laten uitvoeren als noodzakelijk om de gegevens voor te bereiden voor verdere analyse.