Što je HiveQL (jezik upita za košnice)?
Hive nudi CLI za pisanje upita o košnici koristeći jezik upita za košnice (HiveQL). Općenito je HQL sintaksa slična SQL sintaksi koju poznaje većina analitičara podataka.
Hiveov jezik nadahnut SQL-om odvaja korisnika od složenosti programiranja Map Reduce. Ponovno koristi poznate koncepte iz svijeta relacijskih baza podataka, poput tablica, redaka, stupaca i shema, kako bi se olakšalo učenje.
Većina interakcija obično se odvija preko sučelja naredbenog retka (CLI). Hive nudi CLI za pisanje upita o košnici koristeći Hive Query Language (Hive-QL).
Općenito, sintaksa HiveQL slična je sintaksi SQL koja je poznata većini analitičara podataka. Hive podržava četiri formata datoteka, a to su TEXTFILE, SEQUENCEFILE, ORC i RCFILE (Datoteka stupca snimanja).
- Za pohranu metapodataka za jednog korisnika Hive koristi bazu podataka derbija i
- Za višekorisničke metapodatke ili zajednički slučaj metapodataka Hive koristi MYSQL
Ugrađeni operatori
Hive pruža ugrađene operatore za operacije podataka koje će se implementirati na stolovima unutar skladišta Hive.
Ovi se operateri koriste za matematičke operacije nad operandima i vratit će određenu vrijednost prema primijenjenoj logici.
Vrste ugrađenih operatora u HIVE su:
- Relacijski operateri
- Aritmetički operatori
- Logički operatori
- Operatori na složenim vrstama
- Konstruktori složenog tipa
Relacijski operateri:
Relacijske operatore koristimo za usporedbu odnosa između dva operanda.
- Operatori kao što su jednaki, nisu jednaki, manji od, veći od ... itd
- Tipovi operanda su svi tipovi brojeva u ovim Operatorima.
Sljedeća tablica pružit će nam detalje o relacijskim operatorima i njegovoj upotrebi.
Ugrađeni operater | Opis | Operand |
X = Y | TRUE ako je izraz X ekvivalentan izrazu Y Inače FALSE. | Potrebne su sve primitivne vrste |
X! = Y | TRUE ako izraz X nije ekvivalentan izrazu Y Inače FALSE. | Potrebne su sve primitivne vrste |
X ISTINA ako je izraz X manji od izraza Y Inače FALSE. | Potrebne su sve primitivne vrste |
|
X <= Y | TRUE ako je izraz X manji ili jednak izrazu Y Inače FALSE. | Potrebne su sve primitivne vrste |
X> Y | ISTINA ako je izraz X veći od izraza Y Inače FALSE. | Potrebne su sve primitivne vrste |
X> = Y | ISTINA ako je izraz X veći ili jednak izrazu Y Inače FALSE. | Potrebne su sve primitivne vrste |
X JE NIŠTA | ISTINA ako izraz X izračunava NULL u suprotnom FALSE. | Potrebne su sve vrste |
X NIJE NULTA | FALSE Ako izraz X izračunava NULL u suprotnom TRUE. | Potrebne su sve vrste |
X KAO Y | ISTINA Ako se obrazac niza X podudara s Y, inače je FALSE. | Zauzima samo žice |
X POVEZATI Y | NULL ako je X ili Y NULL, TRUE ako se bilo koji podniz X podudara s Java regularnim izrazom Y, inače FALSE. | Zauzima samo žice |
X REGEXP Y | Isto kao i RLIKE. | Zauzima samo žice |
Aritmetički operatori :
Za izvođenje aritmetičkih operacija na operandima koristimo aritmetičke operatore
- Aritmetičke operacije poput zbrajanja, oduzimanja, množenja i dijeljenja između operanda koristimo ove operatore.
- Sve vrste operanda su tipovi brojeva u ovim Operatorima
Primjer uzorka:
2 + 3 daje rezultat 5.
U ovom primjeru, '+' je operater, a 2 i 3 su operandi. Povratna vrijednost je 5
Sljedeća tablica pružit će nam detalje o aritmetičkim operatorima
Ugrađeni operater | Opis | Operand |
X + Y | Vratit će izlaz dodavanja vrijednosti X i Y. | Potrebne su sve vrste brojeva |
X - Y | Vratit će se izlaz oduzimanja Y od X vrijednosti. | Potrebne su sve vrste brojeva |
X * Y | Vratit će izlaz množenja X i Y vrijednosti. | Potrebne su sve vrste brojeva |
X / Y | Vratit će izlaz dijeljenja Y iz X. | Potrebne su sve vrste brojeva |
X% Y | Vratit će ostatak koji je rezultat dijeljenja X s Y. | Potrebne su sve vrste brojeva |
X & Y | Vratit će izlaz bitnog I od X i Y. | Potrebne su sve vrste brojeva |
X | Y | Vratit će izlaz bitnog ILI od X i Y. | Potrebne su sve vrste brojeva |
X Y | Vratit će izlaz bitnog XOR-a X i Y. | Potrebne su sve vrste brojeva |
~ X | Vratit će izlaz bitnog NIJE od X. | Potrebne su sve vrste brojeva |
Logički operateri:
Za izvođenje logičkih operacija na operandima koristimo logičke operatore
- Logičke operacije poput I, ILI, NE između operanda koristimo ove operatore.
- Svi tipovi operanda su u ovim Operatorima tipa BOOLEAN
Sljedeća tablica pružit će nam detalje o logičkim operatorima
Operateri | Opis | Operandi |
X I Y | TRUE ako su i X i Y TRUE, inače FALSE. | Samo logičke vrste |
X && Y | Isto kao X I Y, ali ovdje koristimo simbol && | Samo logičke vrste |
X ILI Y | TRUE ako su X ili Y ili oboje TRUE, inače FALSE. | Samo logičke vrste |
X || Y | Isto kao X ILI Y, ali ovdje koristimo || simbol | Samo logičke vrste |
NIJE X | TRUE ako je X FALSE, u suprotnom FALSE. | Samo logičke vrste |
!X | Isto kao NOT X, ali ovdje koristimo! simbol | Samo logičke vrste |
Operatori na složenim vrstama:
Sljedeća tablica pružit će nam detalje o operatorima složenog tipa. To su operatori koji će pružiti drugačiji mehanizam za pristup elementima složenih tipova.
Operateri | Operandi | Opis |
A [n] | A je niz, a n je cijeli broj | Vratit će n-ti element u polju A. Prvi element ima indeks 0 |
M [tipka] | M je karta | Vratit će vrijednosti koje pripadaju ključu na karti |
Konstruktori složenog tipa:
Sljedeća tablica pružit će nam detalje o konstruktorima složenog tipa. Konstruirat će instance na složenim vrstama podataka. Riječ je o složenim vrstama podataka kao što su tipovi polja, mape i strukture u košnici.
U ovom ćemo odjeljku vidjeti operacije izvedene na konstruktorima složenog tipa.
Operateri | Operandi | Opis |
niz | (val1, val2,…) | Stvorit će niz s danim elementima kao što je spomenuto poput val1, val2 |
Create_ union | (oznaka, val1, val2,…) | Stvorit će tip unije s vrijednostima na koje se spominje parametar oznake |
karta | (ključ1, vrijednost1, ključ2, vrijednost2,…) | Stvorit će mapu s danim parovima ključ / vrijednost koji se spominju u operandima |
Nazvani_strukt | (ime1, val1, ime2, val2,…) | Stvorit će strukturu s danim imenima polja i vrijednostima spomenutim u operandima |
STRUKT | (val1, val2, val3,…) | Stvara strukturu s danim vrijednostima polja. Imena polja strukture bit će col1, col2,. |
Sažetak:
Hive nudi neke ugrađene funkcije i operatore za manipulaciju podacima pohranjenim u skladištu Hive. Hive je sličan SQL jeziku, koji podržava sve vrste podatkovnih operacija i upite u tablicama i bazama podataka.