Jaql - Jaql - Wikipedia
Paradigma | Funkční |
---|---|
Navrhl | Vuk Ercegovac (Google ) |
Poprvé se objevil | 9. října 2008 |
Stabilní uvolnění | 0.5.1 / 12. července 2010 |
Jazyk implementace | Jáva |
OS | Cross-platform |
Licence | Licence Apache 2.0 |
webová stránka | kód |
Hlavní, důležitý implementace | |
IBM BigInsights |
Jaql (vyslovuje se „šakal“) je a funkční jazyk pro zpracování dat a dotazy, který se nejčastěji používá JSON zpracování dotazů na velká data.
Začalo to jako open source projekt ve společnosti Google[1] ale nejnovější vydání bylo 2010-07-12. IBM[2] převzal jako primární jazyk pro zpracování dat pro jejich Hadoop softwarový balíček BigInsights.
Ačkoli byl vyvinut pro JSON podporuje řadu dalších zdrojů dat, jako je CSV, TSV, XML.
Srovnání[3] do dalších dotazovacích jazyků BigData PIG latina a Úl QL ilustruje aspekty výkonu a použitelnosti těchto technologií.
Jaql podporuje[4] líné hodnocení, takže výrazy se projeví pouze v případě potřeby.
Syntax
Základní koncept Jaql je
zdroj -> operátor(parametr) -> dřez ;
kde umyvadlo může být zdrojem pro následný operátor. Program Jaql tedy obvykle musí mít následující strukturu, vyjadřující a graf zpracování dat:
zdroj -> operátor1(parametr) -> operátor2(parametr) -> operátor2(parametr) -> operátor3(parametr) -> operátor4(parametr) -> dřez ;
Nejčastěji z důvodu čitelnosti jsou programy Jaql za šipkou zalomeny řádky, což je také běžný idiom na Twitteru Obarení:
zdroj -> operátor1(parametr)-> operátor2(parametr)-> operátor2(parametr)-> operátor3(parametr)-> operátor4(parametr)-> dřez ;
Základní operátoři[5]
Rozšířit
Pomocí výrazu EXPAND vyrovnejte vnořená pole. Tento výraz bere jako vstup pole vnořených polí [[T]] a vytváří výstupní pole [T] tím, že propaguje prvky každého vnořeného pole do výstupního pole nejvyšší úrovně.
Filtr
Pomocí operátoru FILTER odfiltrujte prvky ze zadaného vstupního pole. Tento operátor bere jako vstup pole prvků typu T a vydává pole stejného typu, přičemž si zachovává ty prvky, u kterých se predikát vyhodnotí jako true. Je to Jaql ekvivalent SQL KDE doložka. Příklad:
data = [ {název: „Jon Doe“, příjem: 20000, manažer: Nepravdivé}, {název: „Vince Wayne“, příjem: 32500, manažer: Nepravdivé}, {název: „Jane Dean“, příjem: 72000, manažer: skutečný}, {název: „Alex Smith“, příjem: 25000, manažer: Nepravdivé}];data -> filtr $.manažer;[ { "příjem": 72000, "manažer": skutečný, "název": „Jane Dean“ }]data -> filtr $.příjem < 30000;[ { "příjem": 20000, "manažer": Nepravdivé, "název": „Jon Doe“ }, { "příjem": 25000, "manažer": Nepravdivé, "název": „Alex Smith“ }]
Skupina
Pomocí výrazu GROUP můžete seskupit jedno nebo více vstupních polí na seskupovacím klíči a použít agregační funkci na skupinu.
Připojit se
Pomocí operátoru JOIN můžete vyjádřit spojení mezi dvěma nebo více vstupními poli. Tento operátor podporuje více typů spojení, včetně přirozeného, levého vnějšího, pravého vnějšího a vnějšího spojení.
Třídit
Pomocí operátoru TŘÍDĚNÍ seřaďte vstup podle jednoho nebo více polí.
Horní
TOP výraz vybere prvních k prvků svého vstupu. Pokud je k dispozici komparátor, výstup je sémanticky ekvivalentní třídění vstupu a výběru prvního k elementy.
Přeměnit
Použijte operátor TRANSFORM k realizaci projekce nebo k použití funkce na všechny položky výstupu.