Kaj je HiveQL (Hive Query Language)?
Hive ponuja CLI za pisanje poizvedb Hive s pomočjo jezika poizvedb HiveQL (HiveQL). Sintaksa HQL je na splošno podobna sintaksi SQL, ki jo pozna večina analitikov podatkov.
Hiveov jezik, ki ga navdihuje SQL, ločuje uporabnika od zapletenosti programiranja Map Reduce. Za lažje učenje ponovno uporabi znane koncepte iz sveta relacijskih baz podatkov, kot so tabele, vrstice, stolpci in sheme.
Večina interakcij ponavadi poteka prek vmesnika ukazne vrstice (CLI). Hive ponuja CLI za pisanje poizvedb Hive z uporabo jezika poizvedb Hive (Hive-QL).
Sintaksa HiveQL je na splošno podobna sintaksi SQL, ki jo pozna večina analitikov podatkov. Hive podpira štiri formate datotek, in sicer TEXTFILE, SEQUENCEFILE, ORC in RCFILE (Record Columnar File).
- Za shranjevanje metapodatkov za enega uporabnika Hive uporablja bazo podatkov derby in
- Za več uporabniške metapodatke ali v skupni rabi metapodatkov Hive uporablja MYSQL
Vgrajeni operaterji
Hive zagotavlja vgrajene operaterje za izvajanje podatkovnih operacij na mizah v skladišču Hive.
Ti operatorji se uporabljajo za matematične operacije nad operandi in vrnejo specifično vrednost glede na uporabljeno logiko.
Vrste vgrajenih operaterjev v HIVE so:
- Relacijski operaterji
- Aritmetični operaterji
- Logični operaterji
- Operaterji na kompleksnih vrstah
- Konstruktorji kompleksnega tipa
Relacijski operaterji:
Za primerjavo odnosov med dvema operandoma uporabljamo relacijske operatorje.
- Operaterji, kot so enaki, ne enaki, manjši od, večji od ... itd
- Vrste operand so vse vrste števil v teh operaterjih.
Naslednja tabela bo vsebovala podrobnosti o relacijskih operaterjih in njihovi uporabi.
Vgrajen operater | Opis | Operand |
X = Y | TRUE, če je izraz X enakovreden izrazu Y V nasprotnem primeru FALSE. | Potrebuje vse primitivne vrste |
X! = Y | TRUE, če izraz X ni enakovreden izrazu Y V nasprotnem primeru FALSE. | Potrebuje vse primitivne vrste |
X TRUE, če je izraz X manjši od izraza Y V nasprotnem primeru FALSE. | Potrebuje vse primitivne vrste |
|
X <= Y | TRUE, če je izraz X manjši ali enak izrazu Y Sicer FALSE. | Potrebuje vse primitivne vrste |
X> Y | TRUE, če je izraz X večji od izraza Y V nasprotnem primeru FALSE. | Potrebuje vse primitivne vrste |
X> = Y | TRUE, če je izraz X večji ali enak izrazu Y Sicer FALSE. | Potrebuje vse primitivne vrste |
X JE NIČEN | TRUE, če izraz X izračuna NULL, sicer FALSE. | Potrebuje vse vrste |
X NI NULL | FALSE Če izraz X izračuna NULL, sicer TRUE. | Potrebuje vse vrste |
X KOT Y | TRUE Če se vzorec niza X ujema z Y, sicer FALSE. | Zajema samo nize |
X VZDRŽI Y | NULL, če je X ali Y NULL, TRUE, če se kateri koli podniz X ujema z Java-ovim regularnim izrazom Y, sicer FALSE. | Zajema samo nize |
X REGEXP Y | Enako kot RLIKE. | Zajema samo nize |
Aritmetični operaterji :
Za izvajanje aritmetičnih operacij na operandih uporabljamo aritmetične operatorje
- Aritmetične operacije, kot so seštevanje, odštevanje, množenje in deljenje med operandi, uporabljamo te operaterje.
- Vse vrste operandov so ti številski tipi v teh operatorjih
Primer vzorca:
2 + 3 daje rezultat 5.
V tem primeru je '+' operater, 2 in 3 pa operanda. Vrnjena vrednost je 5
Naslednja tabela nam bo dala podrobnosti o aritmetičnih operatorjih
Vgrajen operater | Opis | Operand |
X + Y | Vrnil bo rezultat dodajanja vrednosti X in Y. | Zajema vse vrste številk |
X - Y | Vrnil bo izhod odštevanja Y od vrednosti X. | Zajema vse vrste številk |
X * Y | Vrnil bo izhod množenja vrednosti X in Y. | Zajema vse vrste številk |
X / Y | Vrnil bo izhod delitve Y iz X. | Zajema vse vrste številk |
X% Y | Vrnil bo preostanek, ki je posledica deljenja X z Y. | Zajema vse vrste številk |
X & Y | Vrnil bo izhod bitnih AND od X in Y. | Zajema vse vrste številk |
X | Y. | Vrnil bo izhod bitnega ALI X in Y. | Zajema vse vrste številk |
X Y | Vrnil bo izhod bitnega XOR od X in Y. | Zajema vse vrste številk |
~ X | Vrnil bo izhod bitnega NOT of X. | Zajema vse vrste številk |
Logični operaterji:
Za izvajanje logičnih operacij nad operandi uporabljamo logične operatorje
- Logične operacije, kot so AND, OR, NOT med operandi, ki jih uporabljamo.
- V teh operaterjih so vsi tipi operandov BOOLEAN
Naslednja tabela nam bo dala podrobnosti o logičnih operaterjih
Operaterji | Opis | Operandi |
X IN Y | TRUE, če sta X in Y TRUE, sicer FALSE. | Samo logične vrste |
X && Y | Enako kot X IN Y, vendar tu uporabljamo simbol && | Samo logične vrste |
X ALI Y | TRUE, če sta X ali Y ali oboje TRUE, sicer FALSE. | Samo logične vrste |
X || Y. | Enako kot X ALI Y, vendar tu uporabljamo || simbol | Samo logične vrste |
NE X | TRUE, če je X FALSE, sicer FALSE. | Samo logične vrste |
! X | Enako kot NOT X, ampak tukaj uporabljamo! simbol | Samo logične vrste |
Operaterji na kompleksnih vrstah:
Naslednja tabela bo vsebovala podrobnosti o operaterjih kompleksnega tipa. To so operaterji, ki bodo zagotovili drugačen mehanizem za dostop do elementov v kompleksnih vrstah.
Operaterji | Operandi | Opis |
A [n] | A je matrika, n pa celoštevilska vrsta | Vrnil bo n-ti element v matriki A. Prvi element ima indeks 0 |
M [tipka] | M je zemljevid | Vrnil bo vrednosti pripada ključu na zemljevidu |
Konstruktorji kompleksnega tipa:
Naslednja tabela nam bo dala podrobnosti o konstruktorjih kompleksnega tipa. Zgradil bo primerke na zapletenih podatkovnih vrstah. To so zapleteni podatkovni tipi, kot so vrste matrike, zemljevida in struktur v panju.
V tem poglavju si bomo ogledali operacije, izvedene na konstruktorjih kompleksnega tipa.
Operaterji | Operandi | Opis |
matriko | (val1, val2,…) | Ustvaril bo matriko z danimi elementi, kot je omenjeno kot val1, val2 |
Create_ union | (oznaka, val1, val2,…) | Ustvaril bo tip zveze z vrednostmi, ki jih omenja parameter oznake |
zemljevid | (tipka1, vrednost1, tipka2, vrednost2,…) | Ustvaril bo zemljevid z danimi pari ključ / vrednost, omenjenimi v operandih |
Named_struct | (ime1, val1, ime2, val2,…) | Ustvaril bo strukturo z danimi imeni polj in vrednostmi, omenjenimi v operandih |
STRUKT | (val1, val2, val3,…) | Ustvari strukturo z danimi vrednostmi polj. Imena polj strukture bodo col1, col2,. |
Povzetek:
Hive ponuja nekaj vgrajenih funkcij in operaterjev za upravljanje podatkov, shranjenih v skladišču Hive. Hive je podoben jeziku SQL, ki podpira vse vrste podatkovnih operacij in poizvedovanja po tabelah in bazah podatkov.