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. Los campos obligatorios están marcados con *

You May Also Like

Forzar affinidad NUMA para SSIS

Hace algún tiempo escribí sobre paralelismo en SQL Server y debatimos entre algunas cosas sobre la importancia del afinamiento de CPU a la hora de obtener el máximo rendimiento de tu Hardware (puedes leer aqui: Paralelismo en SQL Server (I) )

Despliegue de Proyectos en Integration Services 2012

En entradas anteriores hemos revisado las características que ofrece el nuevo modelo de servidor de Integration Services, que se basa en Proyectos y Entornos en lugar de Paquetes y Configuraciones.En SQL Server 2012 se mantendrá la compatibilidad con el modelo de despliegue anterior, basado en paquetes, con la denominación Package Deployment Model. Los procedimientos para realizar despliegues en este modo no han variado desde versiones anteriores por lo que nos centraremos en el modelo de despliegue de proyectos Project Deployment Model.