Čo je HiveQL (Hive Query Language)?
Hive poskytuje CLI na písanie dotazov Hive pomocou jazyka Hive Query Language (HiveQL). Všeobecne je syntax HQL podobná syntaxe SQL, ktorú pozná väčšina analytikov údajov.
Jazyk inšpirovaný Hive SQL oddeľuje používateľa od zložitosti programovania Map Reduce. Na uľahčenie učenia opakovane používa známe koncepty zo sveta relačných databáz, ako sú tabuľky, riadky, stĺpce a schéma.
Väčšina interakcií sa zvyčajne odohráva cez rozhranie príkazového riadku (CLI). Hive poskytuje CLI na písanie dotazov Hive pomocou jazyka Hive Query Language (Hive-QL).
Syntax HiveQL je vo všeobecnosti podobná syntaxe SQL, ktorú pozná väčšina analytikov údajov. Úľ podporuje štyri formáty súborov, a to TEXTFILE, SEQUENCEFILE, ORC a RCFILE (Record Columnar File).
- Pre úložisko metadát jedného používateľa používa Hive databázu derby a
- V prípade metadát viacerých používateľov alebo zdieľaných metadát používa úľ MYSQL
Zabudované operátory
Hive poskytuje vstavané operátory pre dátové operácie, ktoré sa majú implementovať do tabuliek nachádzajúcich sa v sklade Hive.
Tieto operátory sa používajú na matematické operácie s operandmi a vrátia konkrétnu hodnotu podľa použitej logiky.
Typy zabudovaných operátorov v HIVE sú:
- Relační operátori
- Aritmetické operátory
- Logickí operátori
- Prevádzkovatelia komplexných typov
- Konštruktory komplexného typu
Relační operátori:
Relačné operátory používame na porovnávanie vzťahov medzi dvoma operandmi.
- Operátory ako rovný, nerovný, menší ako, väčší ako ... atď
- Typy operandov sú všetky typy čísel v týchto operátoroch.
V nasledujúcej tabuľke sú uvedené podrobnosti o relačných operátoroch a ich použití.
Zabudovaný operátor | Popis | Operand |
X = Y | TRUE, ak výraz X zodpovedá výrazu Y, inak FALSE. | Trvá to všetko primitívne typy |
X! = Y | TRUE, ak výraz X nie je ekvivalentný výrazu Y, inak FALSE. | Trvá to všetko primitívne typy |
X TRUE, ak je výraz X menší ako výraz Y, inak FALSE. | Trvá to všetko primitívne typy |
|
X <= Y | TRUE, ak je výraz X menší alebo rovný výrazu Y, inak FALSE. | Trvá to všetko primitívne typy |
X> Y | TRUE, ak je výraz X väčší ako výraz Y, inak FALSE. | Trvá to všetko primitívne typy |
X> = Y | TRUE, ak je výraz X väčší alebo rovnaký ako výraz Y, inak FALSE. | Trvá to všetko primitívne typy |
X JE NULL | TRUE, ak sa výraz X vyhodnotí ako NULL, inak FALSE. | Trvá to všetkých druhov |
X NIE JE NULL | FALSE Ak je výraz X vyhodnotený ako NULL, inak TRUE. | Trvá to všetkých druhov |
X AKO Y | TRUE Ak sa vzor reťazca X zhoduje s Y, inak je FALSE. | Berie iba struny |
X PODOBNE Y | NULL, ak X alebo Y je NULL, TRUE, ak sa niektorý podreťazec X zhoduje s regulárnym výrazom Y v jazyku Java, inak FALSE. | Berie iba struny |
X REGEXP Y | Rovnaké ako RLIKE. | Berie iba struny |
Aritmetické operátory :
Na vykonávanie aritmetických operácií s operandmi používame aritmetické operátory
- Aritmetické operácie ako sčítanie, odčítanie, násobenie a delenie medzi operandmi používame tieto operátory.
- Všetky typy operandov sú typmi čísel v týchto operátoroch
Ukážkový príklad:
2 + 3 dáva výsledok 5.
V tomto príklade je „+“ operátor a 2 a 3 sú operandy. Návratová hodnota je 5
V nasledujúcej tabuľke sú uvedené podrobnosti o aritmetických operátoroch
Zabudovaný operátor | Popis | Operand |
X + Y | Vráti výstup sčítania hodnoty X a Y. | Zaberá všetky typy čísel |
X - Y | Vráti výstup odpočítania Y od hodnoty X. | Zaberá všetky typy čísel |
X * Y | Vráti výstup vynásobenia hodnôt X a Y. | Zaberá všetky typy čísel |
X / Y | Vráti výstup z delenia Y od X. | Zaberá všetky typy čísel |
X% Y | Vráti zvyšok, ktorý vznikne vydelením X a Y. | Zaberá všetky typy čísel |
X a Y | Vráti výstup bitového AND z X a Y. | Zaberá všetky typy čísel |
X | Y | Vráti výstup bitového ALEBO z X a Y. | Zaberá všetky typy čísel |
X Y | Vráti výstup bitového XOR z X a Y. | Zaberá všetky typy čísel |
~ X | Vráti výstup bitového NOT z X. | Zaberá všetky typy čísel |
Logickí operátori:
Na vykonávanie logických operácií na operandoch používame logické operátory
- Logické operácie ako AND, OR, NOT medzi operandmi používame týchto operátorov.
- Všetky typy operandov sú v týchto operátoroch typu BOOLEAN
V nasledujúcej tabuľke sú uvedené podrobnosti o logických operátoroch
Operátorov | Popis | Operandy |
X A Y | TRUE, ak sú X aj Y TRUE, inak FALSE. | Iba booleovské typy |
X && Y | Rovnaké ako X AND Y, ale tu používame symbol && | Iba booleovské typy |
X ALEBO Y. | TRUE, ak je X alebo Y alebo obidve TRUE, inak FALSE. | Iba booleovské typy |
X || Y | Rovnaké ako X ALEBO, ale tu používame || symbol | Iba booleovské typy |
NIE X | TRUE, ak X je FALSE, inak FALSE. | Iba booleovské typy |
!X | Rovnaké ako NOT X, ale tu používame! symbol | Iba booleovské typy |
Prevádzkovatelia komplexných typov:
V nasledujúcej tabuľke sú uvedené podrobnosti o operátoroch komplexného typu. Jedná sa o operátory, ktoré poskytnú iný mechanizmus na prístup k prvkom v zložitých typoch.
Operátorov | Operandy | Popis |
A [n] | A je pole a n je celočíselný typ | Vráti n-tý prvok v poli A. Prvý prvok má index 0 |
M [kľúč] | M je mapa | Vráti hodnoty patriace ku kľúču na mape |
Konštruktory komplexného typu:
V nasledujúcej tabuľke sú uvedené podrobnosti o konštruktoroch komplexného typu. Bude konštruovať inštancie na komplexných údajových typoch. Jedná sa o zložité dátové typy, ako sú typy polí, mapy a štruktúry v úli.
V tejto časti sa pozrieme na operácie vykonávané na komplexných typoch konštruktorov.
Operátorov | Operandy | Popis |
pole | (val1, val2, ...) | Vytvorí pole s danými prvkami, ako sú uvedené ako val1, val2 |
Create_ union | (značka, val1, val2, ...) | Vytvorí typ spojenia s hodnotami, na ktoré odkazuje parameter značky |
mapa | (kľúč1, hodnota1, kľúč2, hodnota2, ...) | Vytvorí mapu s danými pármi kľúč / hodnota uvedenými v operandoch |
Named_struct | (name1, val1, name2, val2, ...) | Vytvorí štruktúru s danými názvami polí a hodnotami uvedenými v operandoch |
ŠTRUKTÚRA | (val1, val2, val3, ...) | Vytvorí štruktúru s danými hodnotami poľa. Názvy polí štruktúry budú col1, col2,. |
Zhrnutie:
Hive poskytuje niektoré vstavané funkcie a operátory na manipuláciu s údajmi uloženými v sklade Hive. Úľ je podobný jazyku SQL, ktorý podporuje všetky typy dátových operácií a dopytovania v tabuľkách a databázach.