En publicaciones anteriores hemos creado la BBDD de Hive para almacenar datos, y hemos cargado datos en HDInsight (HDI) además de crear la tabla externa que hace referencia a los archivos cargados.

Recapitulando información de la Introducción a Hive, debemos recordar que el objetivo que se persigue con Hive es:

  • Utilizar un lenguaje parecido al SQL tradicional (HiveSQ).
  • Mediante este lenguaje ejecutar trabajos Map&Reduce sobre el data almacenado.

A continuación vamos a ejecutar consultas con la herramienta de línea de comando y analizaremos el comportamiento.

Otros artículos relacionados con las primeras consultas son los siguientes:

Operadores Relacionales en HiveQL

Además de los conocidos en TSQL, puedes utilizar el operador != que es lo mismo que <>

Operadores Aritméticos en HiveQL

Igual que TSQL

Operadores Lógicos en HiveQL

Igual que TSQL; además se soporta && que es lo mismo que AND y || que es lo mismo que OR.

Funciones Matemáticas en HiveQL

Parecido a TSQL con extensiones.

Funciones de fecha en HiveQL

En versiones de Hadoop anteriores a la 0.12 el tipo de datos Date no existe (en Hadoop 2.0 ya estará implementado). Mientras tanto, las fechas es natural almacenarlas como string o como timestamps (conteo desde 1970-01-01 hasta el 2038).

Mientras tanto, existe una lista de funciones que realizan las conversiones asumiendo que la fecha que pasamos a las funciones es del formato (“1970-01-01 00:00:00“). Existen funciones como YEAR, MINUTE, DAY, MONTH, WEEKOFYEAR, DATEDIFF, DATE_ADD, DATE_SUB.

Aquí puedes encontrar información respecto a la implementación de Date a partir de Hadoop 0.12 (https://issues.apache.org/jira/browse/HIVE-4055).

La implementación de tipo de datos timestamp está disponible desde la versión de Hadoop 0.8 (https://issues.apache.org/jira/browse/HIVE-2272)

Funciones de cadena en HiveQL

Para trabajar con funciones revisa el siguiente enlace: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF, y busca la sección “String Functions”.

Allí podrás ver que todas (incluso más) las funciones de cadena que has utilizado en TSQL, están implementadas en HiveQL. No están implementadas con los nombres que conoces en TSQL; no te resultará complicado familiarizarte; por ejemplo, CONCAT, DECODE, CONCAT_WS, DECODE, ENCODE, FIND_IN_SET, FORMAT, INSTR, LENGTH, LPAP, LOWER, UPPER, LTRIM, RTIM, TRIM, SUBSTR. Incluso verás funciones nuevas como STR_TO_MAP, SPLIT, y REGX* para expresiones regulares. Obviamente, no haremos una publicación por cada función; la práctica hará que se sientas más cómodo con el formato de estas nuevas funciones.

Referencias

Tutorial Apache Hive (lenguaje): https://cwiki.apache.org/confluence/display/Hive/Tutorial

Apache Hive (Arquitectura): https://cwiki.apache.org/confluence/display/Hive/Home

Funciones en Hive: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

 

0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada.

You May Also Like
Leer más

Azure Stream Analytics serie. Parte 1: Uso e implementación de funciones en JavaScript en un job de ASA

En esta serie de posts vamos a comentar diferentes aspectos de Azure Stream Analytics (ASA de ahora en adelante), que pueden resultarnos útiles en nuestros desarrollos del día a día. Sino conoces Azure Stream Analytics puedes ver una introducción en este enlace. Parte 1: Uso e implementación de funciones en JavaScript en un job de ASA