Hva er HiveQL (Hive Query Language)?
Hive gir en CLI for å skrive Hive-spørsmål ved hjelp av Hive Query Language (HiveQL). Generelt ligner HQL-syntaksen den SQL-syntaksen som de fleste dataanalytikere er kjent med.
Hives SQL-inspirerte språk skiller brukeren fra kompleksiteten i Map Reduce programmering. Det gjenbruker kjente konsepter fra den relasjonelle databaseverdenen, for eksempel tabeller, rader, kolonner og skjema, for å lette læringen.
De fleste interaksjoner har en tendens til å finne sted over et kommandolinjegrensesnitt (CLI). Hive gir en CLI for å skrive Hive-spørsmål ved hjelp av Hive Query Language (Hive-QL).
Generelt ligner HiveQL-syntaksen SQL-syntaksen som de fleste dataanalytikere er kjent med. Hive støtter fire filformater, de er TEXTFILE, SEQUENCEFILE, ORC og RCFILE (Record Columnar File).
- For enbruker metadata lagring bruker Hive derby database og
- For metadata for flere brukere eller delt Metadata-sak bruker Hive MYSQL
Innebygde operatører
Hive tilbyr innebygde operatører for datadrift som skal implementeres på tabellene i Hive-lageret.
Disse operatørene brukes til matematiske operasjoner på operander, og den vil gi spesifikk verdi i henhold til den logikken som er brukt.
Typer innebygde operatører i HIVE er:
- Relasjonsoperatører
- Aritmetiske operatører
- Logiske operatører
- Operatører på komplekse typer
- Komplekse konstruksjoner
Relasjonsoperatører:
Vi bruker Relasjonsoperatører for forholdssammenligning mellom to operander.
- Operatører som lik, Ikke lik, mindre enn, større enn ... osv
- Operand-typene er alle nummertyper i disse operatørene.
Tabellen nedenfor gir oss detaljer om relasjonsoperatører og bruken av den.
Innebygd operatør | Beskrivelse | Operand |
X = Y | SANT hvis uttrykk X tilsvarer uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
X! = Y | SANT hvis uttrykk X ikke tilsvarer uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
X SANT hvis uttrykk X er mindre enn uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
|
X <= Y | SANT hvis uttrykk X er mindre enn eller lik uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
X> Y | SANT hvis uttrykk X er større enn uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
X> = Y | SANT hvis uttrykk X er større enn eller lik uttrykk Y Ellers FALSE. | Det tar alle primitive typer |
X ER NULL | SANT hvis uttrykk X evalueres til NULL ellers FALSE. | Det tar alle typer |
X ER IKKE NULL | FALSE Hvis uttrykk X evalueres til NULL ellers SANT. | Det tar alle typer |
X SOM Y | SANT Hvis strengmønster X samsvarer med Y ellers FALSE. | Tar bare strenger |
X RLIKE Y | NULL hvis X eller Y er NULL, SANT hvis noen understreng av X samsvarer med Java-regulære uttrykk Y, ellers FALSE. | Tar bare strenger |
X REGEXP Y | Samme som RLIKE. | Tar bare strenger |
Aritmetiske operatører :
Vi bruker aritmetiske operatorer for å utføre aritmetiske operasjoner på operander
- Aritmetiske operasjoner som addisjon, subtraksjon, multiplikasjon og deling mellom operander bruker vi disse operatørene.
- Operand-typene alle er nummertyper i disse operatørene
Eksempeleksempel:
2 + 3 gir resultat 5.
I dette eksemplet er '+' operatøren og 2 og 3 er operander. Returverdien er 5
Følgende tabell gir oss detaljer om aritmetiske operatører
Innebygd operatør | Beskrivelse | Operand |
X + Y | Det vil returnere resultatet av å legge til X- og Y-verdien. | Det tar alle nummertyper |
X - Y | Det vil returnere resultatet av å trekke Y fra X-verdien. | Det tar alle nummertyper |
X * Y | Det vil returnere resultatet av multipliserende X- og Y-verdier. | Det tar alle nummertyper |
X / Y | Det vil returnere resultatet av å dele Y fra X. | Det tar alle nummertyper |
X% Y | Den vil returnere resten som følge av å dele X med Y. | Det tar alle nummertyper |
X & Y | Det vil returnere utdataene fra bitvis AND av X og Y. | Det tar alle nummertyper |
X | Y | Det vil returnere utdataene fra bitvis ELLER av X og Y. | Det tar alle nummertyper |
X Y | Det vil returnere utdataene fra bitvis XOR av X og Y. | Det tar alle nummertyper |
~ X | Det vil returnere utdataene fra bitvis IKKE av X. | Det tar alle nummertyper |
Logiske operatører:
Vi bruker logiske operatører for å utføre logiske operasjoner på operander
- Logiske operasjoner som OG, ELLER, IKKE mellom operander bruker vi disse operatørene.
- Alle operand-typene er av BOOLEAN-type i disse operatørene
Tabellen nedenfor gir oss detaljer om logiske operatører
Operatører | Beskrivelse | Operander |
X OG Y | SANT hvis både X og Y er SANNE, ellers FALSE. | Bare boolske typer |
X && Y | Samme som X OG Y, men her bruker vi && symbol | Bare boolske typer |
X ELLER Y | SANT hvis enten X eller Y eller begge er SANNE, ellers FALSE. | Bare boolske typer |
X || Y | Samme som X ELLER Y, men her bruker vi || symbol | Bare boolske typer |
IKKE X | SANT hvis X er FALSE, ellers FALSE. | Bare boolske typer |
! X | Samme som IKKE X, men her bruker vi! symbol | Bare boolske typer |
Operatører på komplekse typer:
Følgende tabell vil gi oss detaljer om Complex Type Operators. Dette er operatører som vil gi en annen mekanisme for å få tilgang til elementer i komplekse typer.
Operatører | Operander | Beskrivelse |
A [n] | A er en matrise og n er en heltallstype | Det vil returnere det nte elementet i matrisen A. Det første elementet har indeks på 0 |
M [nøkkel] | M er et kart | Det vil returnere verdiene tilhører nøkkelen i kartet |
Komplekse konstruksjoner:
Tabellen nedenfor gir oss detaljer om konstruksjoner av kompleks type. Den vil konstruere forekomster på komplekse datatyper. Disse er av komplekse datatyper som Array, Map og Struct-typer i Hive.
I denne delen skal vi se operasjonene utført på konstruksjoner av kompleks type.
Operatører | Operander | Beskrivelse |
array | (val1, val2,…) | Det vil opprette en matrise med de gitte elementene som nevnt som val1, val2 |
Create_ union | (tag, val1, val2,…) | Det vil opprette en foreningstype med verdiene som nevnes av tag-parameteren |
kart | (nøkkel1, verdi1, nøkkel2, verdi2, ...) | Det vil opprette et kart med de gitte nøkkel / verdiparene som er nevnt i operander |
Navngitt_struktur | (name1, val1, name2, val2,…) | Det vil opprette en struktur med de angitte feltnavnene og verdiene nevnt i operander |
STRUKT | (val1, val2, val3,…) | Oppretter en struktur med de angitte feltverdiene. Strukturfeltnavn vil være col1, col2,. |
Sammendrag:
Hive tilbyr noen innebygde funksjoner og operatører for å manipulere dataene som er lagret i Hive-lageret. Hive ligner på SQL-språk, som støtter alle typer dataoperasjoner og spørring på tabeller og databaser.