Co je HiveQL (Hive Query Language)?
Hive poskytuje rozhraní příkazového řádku pro psaní dotazů Hive pomocí jazyka Hive Query Language (HiveQL). Obecně je syntaxe HQL podobná syntaxi SQL, kterou většina analytiků dat zná.
Jazyk inspirovaný SQL Hive odděluje uživatele od složitosti programování Map Reduce. K usnadnění učení opakovaně používá známé koncepty ze světa relačních databází, jako jsou tabulky, řádky, sloupce a schémata.
Většina interakcí obvykle probíhá přes rozhraní příkazového řádku (CLI). Hive poskytuje rozhraní příkazového řádku pro psaní dotazů Hive pomocí Hive Query Language (Hive-QL).
Obecně je syntaxe HiveQL podobná syntaxi SQL, kterou většina analytiků dat zná. Hive podporuje čtyři formáty souborů, kterými jsou TEXTFILE, SEQUENCEFILE, ORC a RCFILE (Record Columnar File).
- Pro úložiště metadat jednoho uživatele používá Hive databázi derby a
- Pro víceuživatelská metadata nebo sdílená metadata používá Hive MYSQL
Integrovaní operátoři
Hive poskytuje integrované operátory pro datové operace, které mají být implementovány do tabulek přítomných ve skladu Hive.
Tyto operátory se používají pro matematické operace s operandy a vrátí konkrétní hodnotu podle použité logiky.
Typy integrovaných operátorů v HIVE jsou:
- Relační operátoři
- Aritmetické operátory
- Logičtí operátoři
- Operátoři na komplexních typech
- Konstruktory komplexního typu
Relační operátoři:
Relační operátory používáme pro srovnání vztahů mezi dvěma operandy.
- Operátory jako rovný, ne rovný, menší než, větší než… atd
- Typy operandů jsou všechny typy čísel v těchto Operátorech.
Následující tabulka nám poskytne podrobnosti o relačních operátorech a jejich použití.
Integrovaný operátor | Popis | Operand |
X = Y | TRUE, pokud výraz X je ekvivalentní výrazu Y, jinak FALSE. | Trvá to všechny primitivní typy |
X! = Y | TRUE, pokud výraz X není ekvivalentní výrazu Y Jinak FALSE. | Trvá to všechny primitivní typy |
X TRUE, pokud je výraz X menší než výraz Y, jinak FALSE. | Trvá to všechny primitivní typy |
|
X <= Y | TRUE, pokud je výraz X menší nebo roven výrazu Y Jinak FALSE. | Trvá to všechny primitivní typy |
X> Y | TRUE, pokud je výraz X větší než výraz Y, jinak FALSE. | Trvá to všechny primitivní typy |
X> = Y | TRUE, pokud je výraz X větší nebo roven výrazu Y Jinak FALSE. | Trvá to všechny primitivní typy |
X JE NULL | TRUE, pokud se výraz X vyhodnotí na NULL, jinak FALSE. | Zabere to všechny typy |
X NENÍ NULL | FALSE Pokud je výraz X vyhodnocen jako NULL, jinak TRUE. | Zabere to všechny typy |
X JAKO Y | TRUE Pokud se vzor řetězce X shoduje s Y, jinak FALSE. | Bere pouze struny |
X JAKO Y | NULL, pokud X nebo Y je NULL, TRUE, pokud se jakýkoli podřetězec X shoduje s regulárním výrazem Java Y, jinak FALSE. | Bere pouze struny |
X REGEXP Y | Stejné jako RLIKE. | Bere pouze struny |
Aritmetické operátory :
Pro provádění aritmetických operací s operandy používáme aritmetické operátory
- Aritmetické operace, jako je sčítání, odčítání, násobení a dělení mezi operandy, používáme tyto operátory.
- Všechny typy operandů jsou v těchto Operátorech typy čísel
Ukázkový příklad:
2 + 3 dává výsledek 5.
V tomto příkladu je '+' operátor a 2 a 3 jsou operandy. Návratová hodnota je 5
Následující tabulka nám poskytne podrobnosti o aritmetických operátorech
Integrovaný operátor | Popis | Operand |
X + Y | Vrátí výstup přidání hodnoty X a Y. | Zabere všechny typy čísel |
X - Y | Vrátí výstup odečtení Y od hodnoty X. | Zabere všechny typy čísel |
X * Y | Vrátí výstup vynásobení hodnot X a Y. | Zabere všechny typy čísel |
X / Y | Vrátí výstup dělení Y z X. | Zabere všechny typy čísel |
X% Y | Vrátí zbytek vyplývající z dělení X na Y. | Zabere všechny typy čísel |
X a Y | Vrátí výstup bitového AND X a Y. | Zabere všechny typy čísel |
X | Y | Vrátí výstup bitového NEBO z X a Y. | Zabere všechny typy čísel |
X Y | Vrátí výstup bitového XOR z X a Y. | Zabere všechny typy čísel |
~ X | Vrátí výstup bitového NOT z X. | Zabere všechny typy čísel |
Logičtí operátoři:
Logické operátory používáme k provádění logických operací na operandech
- Logické operace jako AND, OR, NOT mezi operandy používáme tyto operátory.
- Všechny typy operandů jsou v těchto operátorech typu BOOLEAN
Následující tabulka nám poskytne podrobnosti o logických operátorech
Operátoři | Popis | Operandy |
X A Y. | TRUE, pokud jsou X i Y TRUE, jinak FALSE. | Pouze booleovské typy |
X && Y | Stejné jako X AND Y, ale zde používáme symbol && | Pouze booleovské typy |
X NEBO Y. | TRUE, pokud je X, Y nebo obojí TRUE, jinak FALSE. | Pouze booleovské typy |
X || Y | Stejné jako X NEBO Y, ale zde používáme || symbol | Pouze booleovské typy |
NE X | TRUE, pokud X je FALSE, jinak FALSE. | Pouze booleovské typy |
!X | Stejné jako NOT X, ale tady používáme! symbol | Pouze booleovské typy |
Provozovatelé komplexních typů:
Následující tabulka nám poskytne podrobnosti o operátorech komplexního typu. Jedná se o operátory, které poskytnou jiný mechanismus pro přístup k prvkům v komplexních typech.
Operátoři | Operandy | Popis |
A [n] | A je pole a n je celočíselný typ | Vrátí n-tý prvek v poli A. První prvek má index 0 |
M [klíč] | M je mapa | Vrátí hodnoty patřící ke klíči na mapě |
Konstruktory komplexního typu:
Následující tabulka nám poskytne podrobnosti o konstruktorech komplexního typu. Bude konstruovat instance na komplexních datových typech. Jedná se o složité datové typy, jako jsou Array, Map a Struct typy v Hive.
V této části uvidíme operace prováděné na konstruktorech komplexního typu.
Operátoři | Operandy | Popis |
pole | (val1, val2,…) | Vytvoří pole s danými prvky, jak je uvedeno jako val1, val2 |
Create_ union | (tag, val1, val2,…) | Vytvoří typ spojení s hodnotami, které jsou zmíněny parametrem značky |
mapa | (klíč1, hodnota1, klíč2, hodnota2, ...) | Vytvoří mapu s danými páry klíč / hodnota uvedenými v operandech |
Pojmenovaný_strukt | (name1, val1, name2, val2,…) | Vytvoří Struct s danými názvy polí a hodnot uvedenými v operandech |
STRUKTURA | (val1, val2, val3,…) | Vytvoří Struct s danými hodnotami pole. Názvy polí struktury budou col1, col2,. |
Souhrn:
Hive poskytuje některé vestavěné funkce a operátory pro manipulaci s daty uloženými ve skladu Hive. Úl je podobný jazyku SQL, který podporuje všechny typy datových operací a dotazování na tabulky a databáze.