O que é HiveQL (Hive Query Language)?
O Hive fornece uma CLI para escrever consultas Hive usando Hive Query Language (HiveQL). Geralmente a sintaxe HQL é semelhante à sintaxe SQL com a qual a maioria dos analistas de dados está familiarizada.
A linguagem inspirada em SQL do Hive separa o usuário da complexidade da programação Map Reduce. Ele reutiliza conceitos familiares do mundo do banco de dados relacional, como tabelas, linhas, colunas e esquema, para facilitar o aprendizado.
A maioria das interações tende a ocorrer em uma interface de linha de comando (CLI). O Hive fornece uma CLI para escrever consultas Hive usando Hive Query Language (Hive-QL).
Geralmente, a sintaxe HiveQL é semelhante à sintaxe SQL com a qual a maioria dos analistas de dados está familiarizada. O Hive suporta quatro formatos de arquivo: TEXTFILE, SEQUENCEFILE, ORC e RCFILE (Arquivo Colunar de Registro).
- Para armazenamento de metadados de usuário único, o Hive usa banco de dados Derby e
- Para metadados de vários usuários ou caso de metadados compartilhados, o Hive usa MYSQL
Operadores integrados
O Hive fornece operadores integrados para operações de dados a serem implementadas nas tabelas presentes no warehouse do Hive.
Esses operadores são usados para operações matemáticas em operandos e retornarão um valor específico de acordo com a lógica aplicada.
Os tipos de operadores integrados no HIVE são:
- Operadores relacionais
- Operadores aritméticos
- Operadores lógicos
- Operadores em tipos complexos
- Construtores de tipo complexo
Operadores relacionais:
Usamos operadores relacionais para comparações de relacionamento entre dois operandos.
- Operadores como igual, diferente, menor que, maior que ... etc
- Os tipos de operandos são todos tipos de números nesses operadores.
A tabela a seguir nos dará detalhes sobre os operadores relacionais e seu uso.
Operador embutido | Descrição | Operando |
X = Y | TRUE se a expressão X for equivalente à expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
X! = Y | TRUE se a expressão X não for equivalente à expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
X TRUE se a expressão X for menor que a expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
|
X <= Y | TRUE se a expressão X for menor ou igual à expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
X> Y | TRUE se a expressão X for maior que a expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
X> = Y | TRUE se a expressão X for maior ou igual à expressão Y Caso contrário, FALSE. | Leva todos os tipos primitivos |
X IS NULL | TRUE se a expressão X for avaliada como NULL, caso contrário, FALSE. | Aceita todos os tipos |
X NÃO É NULO | FALSE Se a expressão X for avaliada como NULL, caso contrário, TRUE. | Aceita todos os tipos |
X LIKE Y | TRUE Se o padrão de string X corresponder a Y, caso contrário, FALSE. | Leva apenas cordas |
X RLIKE Y | NULL se X ou Y for NULL, TRUE se qualquer substring de X corresponder à expressão regular Y do Java, caso contrário, FALSE. | Leva apenas cordas |
X REGEXP Y | O mesmo que RLIKE. | Leva apenas cordas |
Operadores aritméticos :
Usamos operadores aritméticos para realizar operações aritméticas em operandos
- Operações aritméticas como adição, subtração, multiplicação e divisão entre operandos usamos esses operadores.
- Todos os tipos de operandos são tipos de números nestes Operadores
Exemplo de amostra:
2 + 3 dá o resultado 5.
Neste exemplo, '+' é o operador e 2 e 3 são operandos. O valor de retorno é 5
A tabela a seguir nos dará detalhes sobre os operadores aritméticos
Operador embutido | Descrição | Operando |
X + Y | Ele retornará a saída da adição dos valores X e Y. | Aceita todos os tipos de números |
X - Y | Ele retornará a saída da subtração de Y do valor de X. | Aceita todos os tipos de números |
X * Y | Ele retornará a saída da multiplicação dos valores X e Y. | Aceita todos os tipos de números |
X / Y | Ele retornará a saída da divisão de Y de X. | Aceita todos os tipos de números |
X% Y | Ele retornará o restante resultante da divisão de X por Y. | Aceita todos os tipos de números |
X e Y | Ele retornará a saída de AND bit a bit de X e Y. | Aceita todos os tipos de números |
X | Y | Ele retornará a saída de OR bit a bit de X e Y. | Aceita todos os tipos de números |
X Y | Ele retornará a saída de XOR bit a bit de X e Y. | Aceita todos os tipos de números |
~ X | Ele retornará a saída de bit a bit NOT de X. | Aceita todos os tipos de números |
Operadores lógicos:
Usamos operadores lógicos para realizar operações lógicas em operandos
- Operações lógicas como AND, OR, NOT entre operandos, usamos esses Operadores.
- Todos os tipos de operando são do tipo BOOLEANO nesses operadores
A tabela a seguir nos dará detalhes sobre os operadores lógicos
Operadores | Descrição | Operandos |
X AND Y | TRUE se X e Y forem TRUE, caso contrário, FALSE. | Tipos booleanos apenas |
X && Y | O mesmo que X AND Y, mas aqui estamos usando o símbolo && | Tipos booleanos apenas |
X OU Y | TRUE se X ou Y ou ambos forem TRUE, caso contrário, FALSE. | Tipos booleanos apenas |
X || Y | O mesmo que X OR Y, mas aqui estamos usando || símbolo | Tipos booleanos apenas |
NÃO X | TRUE se X for FALSE, caso contrário, FALSE. | Tipos booleanos apenas |
! X | Mesmo que NÃO X, mas aqui estamos usando! símbolo | Tipos booleanos apenas |
Operadores em tipos complexos:
A tabela a seguir nos dará detalhes sobre os operadores de tipo complexo. Esses são operadores que fornecerão um mecanismo diferente para acessar elementos em tipos complexos.
Operadores | Operandos | Descrição |
A] | A é um Array en é um tipo inteiro | Ele retornará o enésimo elemento na matriz A. O primeiro elemento tem índice de 0 |
M [tecla] | M é um Mapa | Ele retornará os valores pertencentes à chave no mapa |
Construtores de tipo complexo:
A tabela a seguir nos dará detalhes sobre construtores de tipo complexo. Ele construirá instâncias em tipos de dados complexos. São tipos de dados complexos, como tipos Array, Map e Struct no Hive.
Nesta seção, veremos as operações realizadas em construtores do tipo complexo.
Operadores | Operandos | Descrição |
variedade | (val1, val2, ...) | Ele criará uma matriz com os elementos fornecidos, conforme mencionado como val1, val2 |
Create_ union | (tag, val1, val2, ...) | Ele criará um tipo de união com os valores que estão sendo mencionados pelo parâmetro de tag |
mapa | (chave1, valor1, chave2, valor2, ...) | Irá criar um mapa com os pares chave / valor fornecidos mencionados nos operandos |
Named_struct | (nome1, val1, nome2, val2, ...) | Ele criará uma Struct com os nomes de campo fornecidos e os valores mencionados nos operandos |
ESTRUTURA | (val1, val2, val3, ...) | Cria um Struct com os valores de campo fornecidos. Os nomes dos campos de estrutura serão col1, col2,. |
Resumo:
O Hive fornece algumas funções e operadores integrados para manipular os dados armazenados no warehouse do Hive. O Hive é semelhante à linguagem SQL, que oferece suporte a todos os tipos de operações de dados e consultas em tabelas e bancos de dados.