La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago.

Presentaciones similares


Presentación del tema: "#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago."— Transcripción de la presentación:

1 #606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago

2 Presentación Speaker Nombre Speaker: Cristóbal Ibarra
- Cargo y empresa: Computer Science MetricArts - MCPS: Microsoft Certified Professional ( , ,70-463) -

3 Patrocinadores del SQL Saturday
PASS Colabora Sponsor SQL Saturday #606 – Santiago, Chile

4 Usando Pig y Hive en HDInsight

5 ¿Qué es Hive? MapReduce Tez
- Un servicio de Metadatos que proyecta esquemas tabulares sobre directorios. Permite consultar el contenido de las carpetas como tablas, Usando consultas semánticas como SQL. Las consultas son traducidas en Jobs que pueden en: MapReduce Tez

6 ¿Por qué usar Hive? Sistema de Almacén de Datos para Hadoop.
Se explora información de manera interactiva. Hive puede procesar datos sin conocimientos de Java o MapReduce.

7 Hive es un viaje Fascinante
¿Te gusta el SQL? -¿Quieres a la vez usar MapReduce? ¿Te gusta la escalabilidad Milti-PetaByte?

8 ¿Dónde ejecutar Hive?

9 Usando Hive …

10 Estructura de una Tabla
Crear Tablas HiveQL Define esquema de metadata para proyectar los datos en el directorio cuando la tabla es consultada. Especificar el formato del archivo y la ruta Base de datos por defecto en la ruta: /hive/warehouse Crear BD adicionales usando CREATE DATABASE Crear tablas internas o externas Internas gestionan la duración de directorios subyacentes. Externas se gestionan indepenpendientemente de los directorios.

11 Estructura de una Tabla
CREATE TABLE Tabla1 (Columna1 STRING , Columna2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' '; CREATE TABLE Tabla2 (col1 STRING , col2 INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/data/table2'; CREATE EXTERNAL TABLE Tabla3 STORED AS TEXTFILE LOCATION '/data/table3'; Tabla Interna (Directorio eliminados cuando la tabla es dada de baja) Ruta por defecto Almacenada en un directorio local (Pero aún es del tipo internal, entonces la carpeta será eliminada cuando la tabla sea dada de baja. Tabla external (Directorio y archivos son dejados intactos en Azure Blob Store cuando la tabla es eliminada)

12 Tipos de Datos en Hive • Numeric – Integers: TINYINT, SMALLINT, INT, BIGINT – Fractional: FLOAT, DOUBLE, DECIMAL • Character – STRING, VARCHAR, CHAR • Date/Time – TIMESTAMP – DATE • Special – BOOLEAN, BINARY, ARRAY, MAP, STRUCT, UNIONTYPE

13 Usando sentencias en Hive
• Guardar archivos de datos en carpeta de archivos (O crear tablas en archivos existentes!) PUT myfile.txt /data/table1 Usar la sentencia LOAD LOAD DATA [LOCAL] INPATH '/data/source' INTO TABLE MiTabla; Usar la sentencias INSERT INSERT INTO TABLE Table2 SELECT Col1, UPPER(Col2), FROM Table1; Usar sentencias CREATE TABLES AS SELECT (CTAS) CREATE TABLE Tabla3 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE LOCATION '/data/summarytable' AS SELECT Col1, SUM(Col2) As Total FROM Table1 GROUP BY Col1;

14 En Hive Puedo .. CREATE TABLE part_table (col1 INT, col2 STRING) PARTITIONED BY (col3 STRING); INSERT INTO TABLE part_table PARTITION(col3='A') SELECT col1, col2 FROM stg_table WHERE col3 = 'A'; SET hive.exec.dynamic.partition = true; SET hive.exec.dynamic.partition.mode=nonstrict; INSERT INTO TABLE part_table PARTITION(col3) SELECT col1, col2, col3 FROM stg_table;

15 Clustering en Hive CREATE TABLE clust_table (col1 INT, col2 STRING, col3 STRING) CLUSTERED BY (col3) INTO 3 BUCKETS; INSERT INTO TABLE clust_table SELECT col1, col2, col3 FROM stg_table;

16 Conociendo Pig…

17 ¿Qué es Pig? Entorno de programación de alto nivel para realizar codificación del tipo MapReduce. El Lenguaje es llamado Pig Latin. Lenguaje poco convencional, pero obtiene una alta disponibilidad increíble. No se necesita escribir códigos tan complejos.

18 Algunas razones para usar PIG
- Estructurados - Semiestructurados - No Estructurados - Lectura como series de pasos. - Java - Python - JavaScript - Ruby Puede procesar cualquier dato. Fácil de aprender, escribir y leer. Extensible para UDF

19 Componentes Script Grunt Embedded
PIG Pig Latin Ejecución Pig Se compone de una serie de operaciones o transformaciones que se aplican a los datos de entrada para producir una salida. Script Grunt Embedded Contiene comandos PIG en un archivo. Shell interactiva para ejecutar comandos PIG. Aprovisionamiento de Scripts Pig en Java.

20 ¿Qué es Pig? Entorno de programación de alto nivel para realizar codificación del tipo MapReduce. El Lenguaje es llamado Pig Latin. Lenguaje poco convencional, pero obtiene una alta disponibilidad increíble. No se necesita escribir códigos tan complejos.

21 ¿Qué es Pig? Una relación es un OUTER BAG
A bag es una colección de tuplas Una tupla es un conjunto ordenado de campos Un campo es un elemento de datos Un Bag puede contener tuplas sin coincidencias en el esquema. Pig toma datos de entrada denominados “BAG”, que representa conjunto de tuplas y emite otro “BAG” como salida.

22 Aprendiendo a Gruñir Operador Descripción DISTINCT Elimina duplicados en una relación. FILTER Selecciona un conjunto de tuplas de una relación basado en una condición FOREACH Itera las tuplas de una relación, generando un nuevo conjunto de datos GROUP Agrupa los datos en una o más relaciones JOIN Une dos o más relaciones (existe tanto inner join como outer join) LIMIT Establece el límite de tuplas de salida LOAD Carga datos de un sistema de archivos ORDER Ordena una relación basado en uno o más campos SPLIT Divide una relación en una o más relaciones STORE Almacena información transformada en el sistema de archivos

23 Aprendiendo a Gruñir pig wasb:///scripts/myscript.pig 2013-06-01 14.00
,12 ,14 ,16 ,9 ,12 -- Cargar el archivo fuente con delimitación ‘,’ Readings = LOAD '/tiempo/datos_temperatura.txt' USING PigStorage(',') AS (date:chararray, temp:long); -- Agrupar las tuplas por datos GroupedReadings = GROUP Readings BY date; -- Obtener el valor promedio de la temperature GroupedAvgs = FOREACH GroupedReadings GENERATE group, AVG(Readings.temp) AS avgtemp; -- Desagrupar las fechas con el valor de la temperatura AvgWeather = FOREACH GroupedAvgs GENERATE FLATTEN(group) as date, avgtemp; -- Ordenar la salida por fecha SortedResults = ORDER AvgWeather BY date ASC; -- Guardar los resultados in /tiempo/resultado STORE SortedResults INTO ' /tiempo/resultado '; pig wasb:///scripts/myscript.pig

24 DEMO DEMO Hive usando HDInsight.
DEMO Pig Usando UDF y Jython en HDInsight. Conectando Hive con Power BI.

25 Sea cual sea su pasión – ¡hay un capítulo virtual para usted!
SQL Saturday #606 – Santiago, Chile

26 #606 | SANTIAGO 2017 ¡Gracias!


Descargar ppt "#606 | SANTIAGO 2017 Abril 1, 2017 Santiago, Chile #sqlsatSantiago."

Presentaciones similares


Anuncios Google