Che cos'è HiveQL (Hive Query Language)?
Hive fornisce una CLI per scrivere query Hive utilizzando Hive Query Language (HiveQL). Generalmente la sintassi HQL è simile alla sintassi SQL con cui la maggior parte degli analisti di dati ha familiarità.
Il linguaggio ispirato a SQL di Hive separa l'utente dalla complessità della programmazione Map Reduce. Riutilizza concetti familiari del mondo dei database relazionali, come tabelle, righe, colonne e schemi, per facilitare l'apprendimento.
La maggior parte delle interazioni tende a verificarsi tramite un'interfaccia a riga di comando (CLI). Hive fornisce una CLI per scrivere query Hive utilizzando Hive Query Language (Hive-QL).
In genere, la sintassi di HiveQL è simile alla sintassi SQL con cui la maggior parte degli analisti di dati ha familiarità. Hive supporta quattro formati di file: TEXTFILE, SEQUENCEFILE, ORC e RCFILE (Record Columnar File).
- Per l'archiviazione dei metadati per utente singolo, Hive utilizza il database derby e
- Per metadati di più utenti o metadati condivisi, Hive utilizza MYSQL
Operatori integrati
Hive fornisce operatori incorporati per operazioni sui dati da implementare sulle tabelle presenti all'interno del magazzino di Hive.
Questi operatori vengono utilizzati per operazioni matematiche sugli operandi e restituiranno un valore specifico secondo la logica applicata.
I tipi di operatori incorporati in HIVE sono:
- Operatori relazionali
- Operatori aritmetici
- Operatori logici
- Operatori su tipi complessi
- Costruttori di tipo complesso
Operatori relazionali:
Utilizziamo operatori relazionali per confronti di relazioni tra due operandi.
- Operatori come uguale a, non uguale a, minore di, maggiore di ... ecc
- I tipi di operandi sono tutti i tipi di numero in questi operatori.
La tabella seguente ci fornirà dettagli sugli operatori relazionali e sul loro utilizzo.
Operatore integrato | Descrizione | Operando |
X = Y | VERO se l'espressione X è equivalente all'espressione Y Altrimenti FALSO. | Prende tutti i tipi primitivi |
X! = Y | TRUE se l'espressione X non è equivalente all'espressione Y Altrimenti FALSE. | Prende tutti i tipi primitivi |
X VERO se l'espressione X è minore dell'espressione Y Altrimenti FALSO. | Prende tutti i tipi primitivi |
|
X <= Y | VERO se l'espressione X è minore o uguale all'espressione Y Altrimenti FALSO. | Prende tutti i tipi primitivi |
X> Y | TRUE se l'espressione X è maggiore dell'espressione Y Altrimenti FALSE. | Prende tutti i tipi primitivi |
X> = Y | VERO se l'espressione X è maggiore o uguale all'espressione Y Altrimenti FALSO. | Prende tutti i tipi primitivi |
X È NULLO | TRUE se l'espressione X restituisce NULL altrimenti FALSE. | Ci vogliono tutti i tipi |
X NON È NULLO | FALSE Se l'espressione X restituisce NULL, altrimenti TRUE. | Ci vogliono tutti i tipi |
X COME Y | TRUE Se lo schema di stringa X corrisponde a Y, altrimenti FALSE. | Accetta solo archi |
X RLIKE Y | NULL se X o Y è NULL, TRUE se una qualsiasi sottostringa di X corrisponde all'espressione regolare Java Y, altrimenti FALSE. | Accetta solo archi |
X REGEXP Y | Come RLIKE. | Accetta solo archi |
Operatori aritmetici :
Usiamo operatori aritmetici per eseguire operazioni aritmetiche su operandi
- Usiamo questi operatori per operazioni aritmetiche come addizione, sottrazione, moltiplicazione e divisione tra operandi.
- I tipi di operandi sono tutti tipi di numeri in questi operatori
Esempio di esempio:
2 + 3 dà il risultato 5.
In questo esempio, "+" è l'operatore e 2 e 3 sono operandi. Il valore restituito è 5
La tabella seguente ci fornirà dettagli sugli operatori aritmetici
Operatore integrato | Descrizione | Operando |
X + Y | Restituirà l'output dell'aggiunta di valori X e Y. | Accetta tutti i tipi di numero |
X - Y | Restituirà l'output della sottrazione di Y dal valore X. | Accetta tutti i tipi di numero |
X * Y | Restituirà l'output della moltiplicazione dei valori X e Y. | Accetta tutti i tipi di numero |
X / Y | Restituirà l'output della divisione di Y da X. | Accetta tutti i tipi di numero |
X% Y | Restituirà il resto risultante dalla divisione di X per Y. | Accetta tutti i tipi di numero |
X e Y | Restituirà l'output di AND bit per bit di X e Y. | Accetta tutti i tipi di numero |
X | Y | Restituirà l'output di OR bit per bit di X e Y. | Accetta tutti i tipi di numero |
X Y | Restituirà l'output di XOR bit per bit di X e Y. | Accetta tutti i tipi di numero |
~ X | Restituirà l'output di bit per bit NOT di X. | Accetta tutti i tipi di numero |
Operatori logici:
Usiamo operatori logici per eseguire operazioni logiche su operandi
- Usiamo questi operatori per operazioni logiche come AND, OR, NOT tra gli operandi.
- I tipi di operandi sono tutti di tipo BOOLEANO in questi operatori
La tabella seguente ci fornirà dettagli sugli operatori logici
Operatori | Descrizione | Operandi |
X e Y | TRUE se sia X che Y sono TRUE, altrimenti FALSE. | Solo tipi booleani |
X && Y | Come X AND Y ma qui usiamo il simbolo && | Solo tipi booleani |
X O Y | VERO se X o Y o entrambi sono VERO, altrimenti FALSO. | Solo tipi booleani |
X || Y | Uguale a X OR Y ma qui usiamo || simbolo | Solo tipi booleani |
NON X | TRUE se X è FALSE, altrimenti FALSE. | Solo tipi booleani |
!X | Come NOT X ma qui lo usiamo! simbolo | Solo tipi booleani |
Operatori su tipi complessi:
La tabella seguente ci fornirà i dettagli sugli operatori di tipo complesso. Si tratta di operatori che forniranno un meccanismo diverso per accedere agli elementi in tipi complessi.
Operatori | Operandi | Descrizione |
Un] | A è un array e n è un tipo intero | Restituirà l'ennesimo elemento nell'array A. Il primo elemento ha indice 0 |
M [tasto] | M è una mappa | Restituirà i valori che appartengono alla chiave nella mappa |
Costruttori di tipo complesso:
La tabella seguente ci fornirà dettagli sui costruttori di tipo complesso. Costruirà istanze su tipi di dati complessi. Si tratta di tipi di dati complessi come i tipi Array, Map e Struct in Hive.
In questa sezione vedremo le operazioni eseguite su Costruttori di tipo Complesso.
Operatori | Operandi | Descrizione |
Vettore | (val1, val2, ...) | Creerà un array con gli elementi dati come menzionato come val1, val2 |
Crea_ unione | (tag, val1, val2, ...) | Creerà un tipo di unione con i valori menzionati dal parametro tag |
carta geografica | (chiave1, valore1, chiave2, valore2, ...) | Creerà una mappa con le coppie chiave / valore fornite menzionate negli operandi |
Named_struct | (nome1, val1, nome2, val2, ...) | Creerà uno Struct con i nomi di campo ei valori indicati negli operandi |
STRUTTURA | (val1, val2, val3, ...) | Crea uno Struct con i valori di campo dati. I nomi dei campi Struct saranno col1, col2,. |
Sommario:
Hive fornisce alcune funzioni e operatori integrati per manipolare i dati archiviati in Hive warehouse. Hive è simile al linguaggio SQL, che supporta tutti i tipi di operazioni sui dati e di query su tabelle e database.