Wat is HiveQL (Hive Query Language)?
Hive biedt een CLI om Hive-query's te schrijven met behulp van Hive Query Language (HiveQL). Over het algemeen is de HQL-syntaxis vergelijkbaar met de SQL-syntaxis waarmee de meeste gegevensanalisten bekend zijn.
De op SQL geïnspireerde taal van Hive scheidt de gebruiker van de complexiteit van Map Reduce-programmering. Het hergebruikt bekende concepten uit de relationele databasewereld, zoals tabellen, rijen, kolommen en schema's, om het leren te vergemakkelijken.
De meeste interacties vinden meestal plaats via een opdrachtregelinterface (CLI). Hive biedt een CLI om Hive-query's te schrijven met behulp van Hive Query Language (Hive-QL).
Over het algemeen is de HiveQL-syntaxis vergelijkbaar met de SQL-syntaxis waarmee de meeste gegevensanalisten bekend zijn. Hive ondersteunt vier bestandsindelingen, namelijk TEXTFILE, SEQUENCEFILE, ORC en RCFILE (Record Columnar File).
- Voor de opslag van metagegevens van één gebruiker gebruikt Hive Derby-database en
- Voor metagegevens van meerdere gebruikers of gedeelde metagegevens gebruikt Hive MYSQL
Ingebouwde operators
Hive biedt ingebouwde operators voor gegevensbewerkingen die kunnen worden geïmplementeerd op de tabellen die aanwezig zijn in het Hive-magazijn.
Deze operatoren worden gebruikt voor wiskundige bewerkingen op operanden, en het retourneert een specifieke waarde volgens de toegepaste logica.
Typen ingebouwde operators in HIVE zijn:
- Relationele operators
- Rekenkundige operatoren
- Logische operators
- Operators op complexe typen
- Complex type constructeurs
Relationele operators:
We gebruiken relationele operatoren voor het vergelijken van relaties tussen twee operanden.
- Operatoren zoals gelijk aan, Niet gelijk aan, kleiner dan, groter dan… enz
- De operandtypen zijn alle typen nummers in deze operatoren.
De volgende tabel geeft ons details over relationele operatoren en het gebruik ervan.
Ingebouwde operator | Omschrijving | Operand |
X = Y | WAAR als uitdrukking X gelijk is aan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
X! = Y | WAAR als uitdrukking X niet gelijk is aan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
X WAAR als uitdrukking X kleiner is dan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
|
X <= Y | WAAR als uitdrukking X kleiner is dan of gelijk is aan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
X> Y | WAAR als uitdrukking X groter is dan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
X> = Y | WAAR als uitdrukking X groter is dan of gelijk is aan uitdrukking Y Anders ONWAAR. | Alle primitieve typen zijn nodig |
X IS NULL | WAAR als uitdrukking X resulteert in NULL, anders ONWAAR. | Er zijn alle soorten voor nodig |
X IS NIET NULL | FALSE Als uitdrukking X resulteert in NULL, anders TRUE. | Er zijn alle soorten voor nodig |
X ZOALS Y | TRUE Als stringpatroon X overeenkomt met Y, anders FALSE. | Neemt alleen snaren |
X RLIKE Y | NULL als X of Y NULL is, WAAR als een deelstring van X overeenkomt met de Java-reguliere expressie Y, anders FALSE. | Neemt alleen snaren |
X REGEXP Y | Hetzelfde als RLIKE. | Neemt alleen snaren |
Rekenkundige operatoren :
We gebruiken rekenkundige operatoren voor het uitvoeren van rekenkundige bewerkingen op operanden
- Rekenkundige bewerkingen zoals optellen, aftrekken, vermenigvuldigen en delen tussen operanden gebruiken we deze operatoren.
- De operandtypen zijn allemaal getaltypen in deze operatoren
Voorbeeldvoorbeeld:
2 + 3 geeft resultaat 5.
In dit voorbeeld is '+' de operator en zijn 2 en 3 operanden. De retourwaarde is 5
De volgende tabel geeft ons details over rekenkundige operatoren
Ingebouwde operator | Omschrijving | Operand |
X + Y | Het retourneert de uitvoer van het toevoegen van de X- en Y-waarde. | Alle typen nummers zijn nodig |
X - Y | Het retourneert de uitvoer van het aftrekken van Y van de X-waarde. | Alle typen nummers zijn nodig |
X * Y | Het retourneert de uitvoer van het vermenigvuldigen van X- en Y-waarden. | Alle typen nummers zijn nodig |
X / Y | Het retourneert de uitvoer van het delen van Y van X. | Alle typen nummers zijn nodig |
X% Y | Het retourneert de rest die het resultaat is van het delen van X door Y. | Alle typen nummers zijn nodig |
X & Y | Het retourneert de uitvoer van bitsgewijze EN van X en Y. | Alle typen nummers zijn nodig |
X | Y | Het retourneert de uitvoer van bitsgewijze OF van X en Y. | Alle typen nummers zijn nodig |
X Y | Het retourneert de uitvoer van bitsgewijze XOR van X en Y. | Alle typen nummers zijn nodig |
~ X | Het retourneert de uitvoer van bitsgewijze NOT van X. | Alle typen nummers zijn nodig |
Logische operators:
We gebruiken logische operatoren voor het uitvoeren van logische bewerkingen op operanden
- Logische bewerkingen zoals EN, OF, NIET tussen operanden gebruiken we deze operatoren.
- De operandtypen zijn allemaal van het BOOLEAN-type in deze operators
De volgende tabel geeft ons details over logische operatoren
Operatoren | Omschrijving | Operanden |
X EN Y | WAAR als X en Y beide WAAR zijn, anders ONWAAR. | Alleen Booleaanse typen |
X && Y | Hetzelfde als X EN Y, maar hier gebruiken we het &&-symbool | Alleen Booleaanse typen |
X OF Y | WAAR als X of Y of beide WAAR zijn, anders ONWAAR. | Alleen Booleaanse typen |
X || Y | Hetzelfde als X OF Y maar hier gebruiken we || symbool | Alleen Booleaanse typen |
NIET X | WAAR als X ONWAAR is, anders ONWAAR. | Alleen Booleaanse typen |
!X | Hetzelfde als NIET X, maar hier gebruiken we! symbool | Alleen Booleaanse typen |
Operators op complexe typen:
De volgende tabel geeft ons details over complexe type-operators. Dit zijn operators die een ander mechanisme bieden om toegang te krijgen tot elementen in complexe typen.
Operatoren | Operanden | Omschrijving |
Een] | A is een array en n is een integer-type | Het retourneert het n-de element in de array A. Het eerste element heeft een index van 0 |
M [sleutel] | M is een kaart | Het retourneert de waarden die bij de sleutel op de kaart horen |
Complex type constructeurs:
De volgende tabel geeft ons details over constructeurs van het complexe type. Het zal instanties construeren op complexe gegevenstypen. Dit zijn complexe gegevenstypen zoals Array-, Map- en Struct-typen in Hive.
In deze sectie gaan we de bewerkingen bekijken die worden uitgevoerd op Complexe typeconstructeurs.
Operatoren | Operanden | Omschrijving |
array | (val1, val2, ...) | Het zal een array maken met de gegeven elementen zoals vermeld, zoals val1, val2 |
Create_ union | (tag, val1, val2, ...) | Het zal een verenigingstype creëren met de waarden waarnaar wordt verwezen door de tag-parameter |
kaart | (sleutel1, waarde1, sleutel2, waarde2, ...) | Het zal een kaart maken met de gegeven sleutel / waarde-paren die in operanden worden genoemd |
Named_struct | (naam1, waarde1, naam2, waarde2, ...) | Het zal een structuur creëren met de opgegeven veldnamen en waarden die in operanden worden genoemd |
STRUCT | (val1, val2, val3, ...) | Creëert een structuur met de opgegeven veldwaarden. Struct-veldnamen zijn col1, col2,. |
Overzicht:
Hive biedt een aantal ingebouwde functies en operators om de gegevens te manipuleren die zijn opgeslagen in het Hive-magazijn. Hive is vergelijkbaar met SQL-taal, die alle soorten gegevensbewerkingen en query's op tabellen en databases ondersteunt.