Vad är HiveQL (Hive Query Language)?
Hive tillhandahåller en CLI för att skriva Hive-frågor med Hive Query Language (HiveQL). Generellt liknar HQL-syntax den SQL-syntax som de flesta dataanalytiker känner till.
Hives SQL-inspirerade språk skiljer användaren från komplexiteten i Map Reduce-programmering. Det återanvänder bekanta begrepp från den relationsdatabasvärlden, såsom tabeller, rader, kolumner och scheman, för att underlätta inlärningen.
De flesta interaktioner tenderar att ske över ett kommandoradsgränssnitt (CLI). Hive tillhandahåller en CLI för att skriva Hive-frågor med Hive Query Language (Hive-QL).
I allmänhet liknar HiveQL-syntax den SQL-syntax som de flesta dataanalytiker känner till. Hive stöder fyra filformat, de är TEXTFILE, SEQUENCEFILE, ORC och RCFILE (Record Columnar File).
- För lagring av metadata för enanvändare använder Hive derby-databas och
- För metadata för flera användare eller delat Metadata-fall använder Hive MYSQL
Inbyggda operatörer
Hive tillhandahåller inbyggda operatörer för datahantering som ska implementeras på de tabeller som finns i Hive-lagret.
Dessa operatörer används för matematiska operationer på operander och kommer att returnera specifikt värde enligt den logik som tillämpas.
Typer av inbyggda operatörer i HIVE är:
- Relationsoperatörer
- Aritmetiska operatörer
- Logiska operatörer
- Operatörer på komplexa typer
- Konstruktörer av komplex typ
Relationsoperatörer:
Vi använder relationsoperatörer för jämförelsesjämförelser mellan två operander.
- Operatörer som lika, inte lika, mindre än, större än ... etc
- Operandtyperna är alla nummertyper i dessa operatörer.
Följande tabell ger oss information om relationsoperatörer och dess användning.
Inbyggd operatör | Beskrivning | Operand |
X = Y | SANT om uttryck X motsvarar uttryck Y Annars FALSKT. | Det tar alla primitiva typer |
X! = Y | SANT om uttryck X inte motsvarar uttryck Y Annars FALSKT. | Det tar alla primitiva typer |
X SANT om uttryck X är mindre än uttryck Y Annars FALSKT. | Det tar alla primitiva typer |
|
X <= Y | SANT om uttryck X är mindre än eller lika med uttryck Y Annars FALSKT. | Det tar alla primitiva typer |
X> Y | SANT om uttryck X är större än uttryck Y Annars FALSE. | Det tar alla primitiva typer |
X> = Y | SANT om uttryck X är större än eller lika med uttryck Y Annars FALSKT. | Det tar alla primitiva typer |
X ÄR NULL | SANT om uttryck X utvärderas till NULL annars FALSE. | Det tar alla typer |
X ÄR INTE NULL | FALSE Om uttryck X utvärderas till NULL i annat fall SANT. | Det tar alla typer |
X SOM Y | SANT Om strängmönster X matchar Y annars FALSKT. | Tar bara strängar |
X RLIKE Y | NULL om X eller Y är NULL, SANT om någon delsträng av X matchar Java-reguljära uttryck Y, annars FALSKT. | Tar bara strängar |
X REGEXP Y | Samma som RLIKE. | Tar bara strängar |
Aritmetiska operatörer :
Vi använder aritmetiska operatorer för att utföra aritmetiska operationer på operander
- Aritmetiska operationer som addition, subtraktion, multiplikation och uppdelning mellan operander använder vi dessa operatörer.
- Operandtyperna alla är nummertyper i dessa operatörer
Exempel på exempel:
2 + 3 ger resultat 5.
I detta exempel är '+' operatören och 2 och 3 är operander. Returvärdet är 5
Följande tabell ger oss information om aritmetiska operatörer
Inbyggd operatör | Beskrivning | Operand |
X + Y | Det returnerar resultatet av att lägga till X- och Y-värdet. | Det tar alla nummertyper |
X - Y | Det kommer att returnera resultatet av att subtrahera Y från X-värdet. | Det tar alla nummertyper |
X * Y | Det returnerar resultatet av multiplicerande X- och Y-värden. | Det tar alla nummertyper |
X / Y | Det returnerar resultatet av att dela Y från X. | Det tar alla nummertyper |
X% Y | Den kommer att återställa resten som uppstår genom att dela X med Y. | Det tar alla nummertyper |
X & Y | Det kommer att returnera utdata från bitvis AND av X och Y. | Det tar alla nummertyper |
X | Y | Det returnerar utmatningen av bitvis ELLER av X och Y. | Det tar alla nummertyper |
X Y | Det kommer att returnera utdata från bitvis XOR av X och Y. | Det tar alla nummertyper |
~ X | Det kommer att returnera utdata från bitvis INTE av X. | Det tar alla nummertyper |
Logiska operatörer:
Vi använder logiska operatorer för att utföra logiska operationer på operander
- Logiska operationer som OCH, ELLER, INTE mellan operander använder vi dessa operatörer.
- Operandtyperna är alla av BOOLEAN-typ i dessa operatörer
Följande tabell ger oss information om logiska operatörer
Operatörer | Beskrivning | Operander |
X OCH Y | SANT om både X och Y är SANT, annars FALSKT. | Endast booleska typer |
X && Y | Samma som X OCH Y men här använder vi && symbolen | Endast booleska typer |
X ELLER Y | SANT om antingen X eller Y eller båda är SANTA, annars FALSKA. | Endast booleska typer |
X || Y | Samma som X ELLER Y men här använder vi || symbol | Endast booleska typer |
INTE X | SANT om X är FALSE, annars FALSE. | Endast booleska typer |
! X | Samma som INTE X men här använder vi! symbol | Endast booleska typer |
Operatörer på komplexa typer:
Följande tabell ger oss information om komplexa typoperatörer. Dessa är operatörer som ger en annan mekanism för att komma åt element i komplexa typer.
Operatörer | Operander | Beskrivning |
En] | A är en matris och n är en heltalstyp | Det kommer att returnera det n: te elementet i matrisen A. Det första elementet har index 0 |
M [nyckel] | M är en karta | Det kommer att returnera värdena tillhör nyckeln på kartan |
Konstruktörer av komplex typ:
Följande tabell ger oss information om konstruktörer av komplex typ. Det konstruerar instanser på komplexa datatyper. Dessa är av komplexa datatyper som Array, Map och Struct-typer i Hive.
I det här avsnittet ska vi se de operationer som utförs på konstruktörer av komplex typ.
Operatörer | Operander | Beskrivning |
array | (val1, val2,…) | Det skapar en matris med de angivna elementen som nämns som val1, val2 |
Create_ union | (tagg, val1, val2, ...) | Det skapar en unionstyp med de värden som nämns av taggparametern |
Karta | (key1, value1, key2, value2,…) | Det skapar en karta med de angivna nyckel / värdepar som nämns i operander |
Namngiven_struktur | (namn1, val1, namn2, val2, ...) | Det skapar en Struct med angivna fältnamn och värden som nämns i operander |
STRUKT | (val1, val2, val3,…) | Skapar en struktur med givna fältvärden. Strukturfältnamn kommer att vara col1, col2,. |
Sammanfattning:
Hive tillhandahåller några inbyggda funktioner och operatörer för att manipulera data som lagras i Hive-lager. Hive liknar SQL-språk, som stöder alla typer av datahantering och frågor i tabeller och databaser.