Hvad er HiveQL (Hive Query Language)?
Hive giver en CLI til at skrive Hive-forespørgsler ved hjælp af Hive Query Language (HiveQL). Generelt ligner HQL-syntaks den SQL-syntaks, som de fleste dataanalytikere kender.
Hives SQL-inspirerede sprog adskiller brugeren fra kompleksiteten ved Map Reduce programmering. Det genbruger velkendte begreber fra den relationelle databaseverden, såsom tabeller, rækker, kolonner og skema, for at lette indlæringen.
De fleste interaktioner har tendens til at finde sted over en kommandolinjegrænseflade (CLI). Hive giver en CLI til at skrive Hive-forespørgsler ved hjælp af Hive Query Language (Hive-QL).
Generelt ligner HiveQL-syntaksen den SQL-syntaks, som de fleste dataanalytikere kender til. Hive understøtter fire filformater, de er TEXTFILE, SEQUENCEFILE, ORC og RCFILE (Record Columnar File).
- For enkeltbruger metadatalagring bruger Hive derby-database og
- Til metadata til flere brugere eller delt Metadata-sag bruger Hive MYSQL
Indbyggede operatører
Hive leverer indbyggede operatører til, at datafunktioner kan implementeres på de tabeller, der findes i Hive-lageret.
Disse operatorer bruges til matematiske operationer på operander, og det returnerer specifik værdi i henhold til den anvendte logik.
Typer af indbyggede operatører i HIVE er:
- Relationelle operatører
- Aritmetiske operatører
- Logiske operatører
- Operatører på komplekse typer
- Konstruktioner af kompleks type
Relationelle operatører:
Vi bruger relationelle operatører til sammenligning af forhold mellem to operander.
- Operatører som lig med, ikke lig med, mindre end, større end… osv
- Operandtyperne er alle nummertyper i disse operatører.
Følgende tabel giver os detaljer om relationelle operatører og dens anvendelse.
Indbygget operatør | Beskrivelse | Operand |
X = Y | SAND, hvis udtryk X svarer til udtryk Y Ellers FALSK. | Det tager alle primitive typer |
X! = Y | SAND, hvis udtryk X ikke svarer til udtryk Y Ellers FALSK. | Det tager alle primitive typer |
X SAND, hvis udtryk X er mindre end udtryk Y Ellers FALSK. | Det tager alle primitive typer |
|
X <= Y | SAND, hvis udtryk X er mindre end eller lig med udtryk Y Ellers FALSK. | Det tager alle primitive typer |
X> Y | SAND, hvis udtryk X er større end udtryk Y Ellers FALSK. | Det tager alle primitive typer |
X> = Y | SAND, hvis udtryk X er større end eller lig med udtryk Y Ellers FALSK. | Det tager alle primitive typer |
X ER NULL | SAND, hvis udtryk X evalueres til NULL ellers FALSE. | Det tager alle typer |
X ER IKKE NUL | FALSE Hvis udtryk X evalueres til NULL ellers SAND. | Det tager alle typer |
X Ligesom Y | SAND Hvis strengmønster X matcher Y, ellers FALSE. | Tager kun strenge |
X RLIKE Y | NULL, hvis X eller Y er NULL, SAND, hvis nogen understreng af X matcher Java-regulære udtryk Y, ellers FALSE. | Tager kun strenge |
X REGEXP Y | Samme som RLIKE. | Tager kun strenge |
Aritmetiske operatører :
Vi bruger aritmetiske operatorer til at udføre aritmetiske operationer på operander
- Aritmetiske operationer som addition, subtraktion, multiplikation og division mellem operander bruger vi disse operatører.
- Operandtyperne er alle nummertyper i disse operatører
Eksempeleksempel:
2 + 3 giver resultat 5.
I dette eksempel er '+' operatøren, og 2 og 3 er operander. Returværdien er 5
Følgende tabel giver os detaljer om aritmetiske operatorer
Indbygget operatør | Beskrivelse | Operand |
X + Y | Det returnerer output for at tilføje X- og Y-værdi. | Det tager alle nummertyper |
X - Y | Det returnerer output fra at trække Y fra X-værdi. | Det tager alle nummertyper |
X * Y | Det returnerer output af multiplikation af X- og Y-værdier. | Det tager alle nummertyper |
X / Y | Det vil returnere output for at dividere Y fra X. | Det tager alle nummertyper |
X% Y | Den returnerer resten som følge af at dividere X med Y. | Det tager alle nummertyper |
X & Y | Det vil returnere output fra bitvis AND af X og Y. | Det tager alle nummertyper |
X | Y | Det vil returnere output fra bitvis ELLER af X og Y. | Det tager alle nummertyper |
X Y | Det vil returnere output fra bitvis XOR af X og Y. | Det tager alle nummertyper |
~ X | Det vil returnere output fra bitvis IKKE af X. | Det tager alle nummertyper |
Logiske operatører:
Vi bruger logiske operatorer til at udføre logiske operationer på operander
- Logiske operationer som AND, ELLER, IKKE mellem operander, vi bruger disse operatører.
- Alle operandtyperne er af BOOLEAN-typen i disse operatører
Følgende tabel giver os detaljer om logiske operatorer
Operatører | Beskrivelse | Operander |
X OG Y | SAND, hvis både X og Y er SAND, ellers FALSK. | Kun boolske typer |
X && Y | Samme som X OG Y, men her bruger vi && symbol | Kun boolske typer |
X ELLER Y | SAND, hvis enten X eller Y eller begge er SANDE, ellers FALSK. | Kun boolske typer |
X || Y | Samme som X ELLER Y, men her bruger vi || symbol | Kun boolske typer |
IKKE X | SAND, hvis X er FALSK, ellers FALSK. | Kun boolske typer |
!X | Samme som IKKE X, men her bruger vi! symbol | Kun boolske typer |
Operatører på komplekse typer:
Følgende tabel giver os detaljer om Complex Type Operators. Dette er operatører, der giver en anden mekanisme til at få adgang til elementer i komplekse typer.
Operatører | Operander | Beskrivelse |
A [n] | A er en matrix og n er en heltalstype | Det returnerer det nte element i array A. Det første element har indeks på 0 |
M [nøgle] | M er et kort | Det vil returnere værdierne tilhører nøglen på kortet |
Konstruktioner af kompleks type:
Følgende tabel giver os detaljer om komplekskonstruktører. Det konstruerer forekomster på komplekse datatyper. Disse er af komplekse datatyper som Array, Map og Struct-typer i Hive.
I dette afsnit vil vi se de operationer, der udføres på komplekskonstruktører.
Operatører | Operander | Beskrivelse |
array | (val1, val2,…) | Det opretter en matrix med de givne elementer som nævnt som val1, val2 |
Create_ union | (tag, val1, val2,…) | Det opretter en unionstype med de værdier, som tagparameteren nævner |
kort | (nøgle1, værdi1, nøgle2, værdi2,…) | Det opretter et kort med de givne nøgle / værdipar nævnt i operander |
Navngivet_struktur | (navn1, val1, navn2, val2,…) | Det opretter en Struct med de givne feltnavne og værdier nævnt i operander |
STRUKT | (val1, val2, val3,…) | Opretter en struktur med de givne feltværdier. Strukturfeltnavne vil være col1, col2,. |
Resumé:
Hive giver nogle indbyggede funktioner og operatører til at manipulere de data, der er gemt i Hive-lageret. Hive svarer til SQL-sprog, som understøtter alle typer datafunktioner og forespørgsler på tabeller og databaser.