¿Qué es HiveQL (Hive Query Language)?
Hive proporciona una CLI para escribir consultas de Hive mediante Hive Query Language (HiveQL). Generalmente, la sintaxis de HQL es similar a la sintaxis de SQL con la que están familiarizados la mayoría de los analistas de datos.
El lenguaje inspirado en SQL de Hive separa al usuario de la complejidad de la programación de Map Reduce. Reutiliza conceptos familiares del mundo de las bases de datos relacionales, como tablas, filas, columnas y esquemas, para facilitar el aprendizaje.
La mayoría de las interacciones tienden a tener lugar a través de una interfaz de línea de comandos (CLI). Hive proporciona una CLI para escribir consultas de Hive mediante Hive Query Language (Hive-QL).
Generalmente, la sintaxis de HiveQL es similar a la sintaxis SQL con la que están familiarizados la mayoría de los analistas de datos. Hive admite cuatro formatos de archivo que son TEXTFILE, SEQUENCEFILE, ORC y RCFILE (Record Columnar File).
- Para el almacenamiento de metadatos de un solo usuario, Hive utiliza la base de datos derby y
- Para el caso de metadatos de varios usuarios o metadatos compartidos, Hive usa MYSQL
Operadores integrados
Hive proporciona operadores integrados para que las operaciones de datos se implementen en las tablas presentes dentro del almacén de Hive.
Estos operadores se utilizan para operaciones matemáticas en operandos y devolverán un valor específico según la lógica aplicada.
Los tipos de operadores integrados en HIVE son:
- Operadores relacionales
- Operadores aritméticos
- Operadores logicos
- Operadores en tipos complejos
- Constructores de tipo complejo
Operadores relacionales:
Usamos operadores relacionales para comparaciones de relaciones entre dos operandos.
- Operadores como iguales, no iguales, menor que, mayor que… etc.
- Los tipos de operandos son todos tipos de números en estos operadores.
La siguiente tabla nos dará detalles sobre los operadores relacionales y su uso.
Operador incorporado | Descripción | Operando |
X = Y | VERDADERO si la expresión X es equivalente a la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
X! = Y | VERDADERO si la expresión X no es equivalente a la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
X VERDADERO si la expresión X es menor que la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
|
X <= Y | VERDADERO si la expresión X es menor o igual que la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
X> Y | VERDADERO si la expresión X es mayor que la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
X> = Y | VERDADERO si la expresión X es mayor o igual que la expresión Y En caso contrario, FALSO. | Toma todos los tipos primitivos |
X ES NULO | TRUE si la expresión X se evalúa como NULL; de lo contrario, FALSE. | Se necesitan todos los tipos |
X NO ES NULO | FALSE Si la expresión X se evalúa como NULL en caso contrario, TRUE. | Se necesitan todos los tipos |
X COMO Y | VERDADERO Si el patrón de cadena X coincide con Y, de lo contrario, FALSO. | Toma solo cadenas |
X RLIKE Y | NULL si X o Y es NULL, TRUE si alguna subcadena de X coincide con la expresión regular de Java Y, de lo contrario FALSE. | Toma solo cadenas |
X REGEXP Y | Igual que RLIKE. | Toma solo cadenas |
Operadores aritméticos :
Usamos operadores aritméticos para realizar operaciones aritméticas en operandos.
- Para operaciones aritméticas como suma, resta, multiplicación y división entre operandos usamos estos Operadores.
- Todos los tipos de operandos son tipos de números en estos operadores
Ejemplo de muestra:
2 + 3 da el resultado 5.
En este ejemplo, '+' es el operador y 2 y 3 son operandos. El valor de retorno es 5
La siguiente tabla nos dará detalles sobre los operadores aritméticos.
Operador incorporado | Descripción | Operando |
X + Y | Devolverá el resultado de agregar el valor X e Y. | Se necesitan todos los tipos de números |
X - Y | Devolverá el resultado de restar Y del valor X. | Se necesitan todos los tipos de números |
X * Y | Devolverá el resultado de multiplicar los valores de X e Y. | Se necesitan todos los tipos de números |
X / Y | Devolverá el resultado de dividir Y de X. | Se necesitan todos los tipos de números |
X% Y | Devolverá el resto resultante de dividir X por Y. | Se necesitan todos los tipos de números |
X e Y | Devolverá la salida de AND bit a bit de X e Y. | Se necesitan todos los tipos de números |
X | Y | Devolverá la salida de bit a bit OR de X e Y. | Se necesitan todos los tipos de números |
X Y | Devolverá la salida de XOR bit a bit de X e Y. | Se necesitan todos los tipos de números |
~ X | Devolverá la salida bit a bit NO de X. | Se necesitan todos los tipos de números |
Operadores logicos:
Usamos operadores lógicos para realizar operaciones lógicas en operandos.
- Las operaciones lógicas como Y, O, NO entre operandos usamos estos Operadores.
- Todos los tipos de operandos son de tipo BOOLEANO en estos operadores
La siguiente tabla nos dará detalles sobre los operadores lógicos
Operadores | Descripción | Operandos |
X Y Y | VERDADERO si tanto X como Y son VERDADEROS, de lo contrario FALSO. | Solo tipos booleanos |
X && Y | Igual que X e Y, pero aquí usamos el símbolo && | Solo tipos booleanos |
X O Y | VERDADERO si X, Y o ambos son VERDADEROS, de lo contrario FALSO. | Solo tipos booleanos |
X || Y | Igual que X O Y pero aquí usamos || símbolo | Solo tipos booleanos |
NO X | VERDADERO si X es FALSO, de lo contrario FALSO. | Solo tipos booleanos |
!X | Igual que NO X pero aquí usamos! símbolo | Solo tipos booleanos |
Operadores en tipos complejos:
La siguiente tabla nos dará detalles sobre los operadores de tipo complejo. Estos son operadores que proporcionarán un mecanismo diferente para acceder a elementos en tipos complejos.
Operadores | Operandos | Descripción |
Un] | A es una matriz yn es un tipo entero | Devolverá el n-ésimo elemento en la matriz A. El primer elemento tiene un índice de 0 |
M [tecla] | M es un mapa | Devolverá los valores que pertenecen a la clave en el mapa. |
Constructores de tipo complejo:
La siguiente tabla nos dará detalles sobre los constructores de tipo complejo. Construirá instancias sobre tipos de datos complejos. Se trata de tipos de datos complejos, como los tipos Array, Map y Struct en Hive.
En esta sección, vamos a ver las operaciones realizadas en Constructores de tipo Complejo.
Operadores | Operandos | Descripción |
formación | (val1, val2,…) | Creará una matriz con los elementos dados como se menciona como val1, val2 |
Create_ union | (etiqueta, val1, val2,…) | Creará un tipo de unión con los valores que se mencionan en el parámetro de etiqueta |
mapa | (clave1, valor1, clave2, valor2,…) | Creará un mapa con los pares clave / valor dados mencionados en los operandos |
Estructura_namada | (nombre1, val1, nombre2, val2,…) | Creará una estructura con los nombres de campo dados y los valores mencionados en los operandos |
ESTRUCTURA | (val1, val2, val3,…) | Crea una estructura con los valores de campo dados. Los nombres de los campos de estructura serán col1, col2,. |
Resumen:
Hive proporciona algunas funciones y operadores incorporados para manipular los datos almacenados en el almacén de Hive. Hive es similar al lenguaje SQL, que admite todo tipo de operaciones de datos y consultas en tablas y bases de datos.