Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

40
Abril 23, 2016 San José, Costa Rica

Transcript of Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Page 1: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Abril 23, 2016San José, Costa Rica

Page 2: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Introducción a U-SQL lenguaje que hace fácil

el procesamiento de Big Data

John Alexander Bulla TorresData Platform MVP

Synergy TPC

Director BDotNet

MVP | MCS | MCSA | MCP | MCTS

Blog: http://geeks.ms/johnbulla

Twitter: @johnbulla

Page 3: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Introducción a U-SQL lenguaje que hace fácil el

procesamiento de Big Data

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20163 |

@johnbulla

geeks.ms/johnbulla

linkedin.com/in/johnbulla

Page 4: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Organiza

http://tinyurl.com/ComunidadWindows

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20164 |

Page 5: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Patrocinadores del SQL Saturday

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20165 |

Platinum Sponsor

Diamond Sponsor

Bronze Sponsor

Page 6: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Agenda

Fundamentos Big Data

U-SQL

Azure Data Lake Store

Azure Data Lake Analytics

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20166 |

Page 7: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Big Data – La revolución en los datos

Los datos digitales crecerán40x próxima década

En 2016, servicios de nube pública tendrán 46% de crecimiento neto en gasto de ti

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20167 |

Page 8: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Qué es Big Data?

"Big data" es un término aplicado aconjuntos de datos que superan lacapacidad del software habitual para sercapturados, gestionados y procesados enun tiempo razonable.

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20168 |

Page 9: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Qué es Big Data?

Big data es una colección de conjuntos de

datos tan grande y complejo que se vuelve

difícil para trabajar con el uso de

herramientas de gestión de base de datos

tradicionales. Las dificultades incluyen la

captura, almacenamiento, búsqueda,

intercambio, análisis y visualización.

Fuente: Eduardo Castro MVP – SQL Saturday #247 Bogotá

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20169 |

Page 10: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Big Data – Las 4 V’s

Volumen

Velocidad

Variedad

Veracidad

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201610 |

Page 11: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Big Data – Las 4 V’s

12 Tbdía

21 PbHadoop

cluster

7 Pbmes

1 Tbtweets/dia

75

Millionscores/day

14 TbHadoop

cluster

4 BillionGraph

edg/day

7 Tbdatos/dia

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201611 |

Page 12: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

?

Características de Big Data Analytics

• Requiere procesamiento de

cualquier tipo de datos.

• Permite el uso de algoritmos

personalizados

• Escala a cualquier tamaño y es

eficiente

Algunos ejemplos

• Unidad de Crimen Digital - Analizar los patrones de ataques

complejos para entender los botnets y poder predecir y prevenir

los ataques en el futuro mediante el análisis de los logs de registro

con algoritmos complejos personalizados

• Procesamiento de Imágenes - extracción de características de

imagen a gran escala y la clasificación de acuerdo con el código

personalizado

• Recomendación de compras - Complejo análisis de patrones y la

predicción sobre los registros de compras utilizando algoritmos

propietarios

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201612 |

Page 13: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

?

SQL para Big Data

Declarativamente hace escalamiento y paralelización por usted

Extensibilidad no es “nativa”

Difícil de operar en los datos no estructurados

Difícil extender con código personalizado

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201613 |

Page 14: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

?

Lenguajes de programación para Big Data

Declarativamente no es “nativo”

Extensibilidad a través de un código personalizado que es “nativa”

El usuario a menudo tiene que preocuparse acerca de la escalabilidad yel rendimiento

Sin reutilización de código / compartir a través de consultas

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201614 |

Page 15: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

?

Declarativo y Extensivo nativamente en el lenguaje

Hace que sea fácil para usted mediante la unificación:

Procesamiento de datos estructurados y no estructurados

SQL declarativo y código personalizado imperativo

Consultas locales y remotas

Aumentar la productividad y la agilidad desde el día 1

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201615 |

Page 16: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Alcance – Lenguaje de Big Data interno de Microsoft

• Modelo de integración SQL y C#

• Modelo de Optimización y Escalamiento

• Ejecuta 100000 Jobs diariamente

Hive

• Tipos de datos complejos (Mapas, Arrays)

• Alineación de formato de datos para archivos de texto

T-SQL/ANSI SQL

• Muchas de las capacidades de SQL (Funciones Windows, modelo

de metadatos, etc.)

U-SQL

Orígenes de U-SQL

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201616 |

Page 17: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

Extender U-SQL con C# / .Net

Operadores internos,

funciones, agregados

C# expresiones (en expresiones SELECT)

User-defined aggregates (UDAGGs)

User-defined functions (UDFs)

User-defined operators (UDOs)

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201617 |

Page 18: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Filosofía del Lenguaje

U-SQL

REFERENCE MyDB.MyAssembly;

CREATE TABLE T( cid int, first_order DateTime, last_order DateTime, order_count int, order_amount float );

@o = EXTRACT oid int, cid int, odate DateTime, amount floatFROM "/input/orders.txt"USING Extractors.Csv();

@c = EXTRACT cid int, name string, city stringFROM "/input/customers.txt"USING Extractors.Csv();

@j = SELECT c.cid, MIN(o.odate) AS firstorder, MAX(o.date) AS lastorder, COUNT(o.oid) AS ordercnt, AGG<MyAgg.MySum>(c.amount) AS totalamount

FROM @c AS c LEFT OUTER JOIN @o AS o ON c.cid == o.cidWHERE c.city.StartsWith("New")

&& MyNamespace.MyFunction(o.odate) > 10GROUP BY c.cid;

OUTPUT @j TO "/output/result.txt"USING new MyData.Write();

INSERT INTO T SELECT * FROM @j;

Query Declarativo y Transformación del lenguaje:

• Utiliza SQL’s SELECT FROM WHERE con GROUP BY/Aggregation,

Joins, Funciones Analíticas SQL

• Optimizable, Escalable

Expresión - estilo de programación de flujo:

• Fácil de usar la composición de funciones lambda

• Globalmente optimizable

Funciona con datos estructurados y no estructurados

• Esquema de lectura sobre los archivos

• Objetos de metadatos relacionales (Ej. base de datos, tablas)

Extensible desde cero:

• Tipo de Dato basado en C#

• Lenguaje de Expresión C#

• User-defined functions (U-SQL and C#)

• User-defined Aggregators (C#)

• User-defined Operators (UDO) (C#)

U-SQL provides the Parallelization and Scale-out Framework for

Usercode

EXTRACTOR, OUTPUTTER, PROCESSOR, REDUCER, COMBINER, APPLIER

Federated query across distributed data sources

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201618 |

Page 19: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

Escribiendo Scripts U-SQL

Extracción de la información desde la fuente

de datos origen usando instrucciones

integradas o personalizadas

Transformación / Análisis de los datos

usando sintaxis SQL y llamadas a métodos

C#

Salida o Envío del resultado a una fuente de

datos destino usando instrucciones

integradas o personalizadas

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201619 |

Page 20: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

Escribiendo Scripts U-SQL

Apoyado por

IntelliSense

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201620 |

Page 21: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

U-SQL

Escribiendo Scripts U-SQL

Code behind

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201621 |

Page 22: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Data Lake

El concepto puede ser comparado a un cuerpo de agua, un lago, donde el agua fluye en, llenar un depósito

y fluye hacia fuera.

El flujo de entrada representa múltiples

archivos de datos en bruto que van

desde mensajes de correo electrónico,

hojas de cálculo, el contenido de las

redes sociales, etc.

La salida de agua son los datos

analizados

A través de este proceso, se

debe seleccionar los datos

correctos de forma rápida para

obtener información clave del

negocio.

El depósito de agua es un conjunto de

datos, donde usted realiza el análisis

de todos los datos.

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201622 |

DATOS ESTRUCTURADOS

1. La información en filas y columnas

2. Fácilmente ordenados y procesados

con herramientas de minería de datos

DATOS NO ESTRUCTURADOS

1. Filas, los datos no organizados

2. Los correos electrónicos

3. Archivos PDF

4. Imágenes, vídeo y audio

5. Redes sociales

Page 23: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake

Analytics

Storage

HDInsight(“managed clusters”)

Azure Data Lake Analytics

Azure Data Lake Storage

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201623 |

Page 24: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake

WebHDFS

YARN

U-SQL

Analytics Service HDInsight

(managed Hadoop Clusters)Analytics

Store

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201624 |

Page 25: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake Store

Un repositorio de gran escala para grandes cargas de trabajo de análisis de datos

• No hay límites para escalar

• Almacenamiento ilimitado

• Almacena todos los datos en su formato nativo

• Los tamaños de archivos pueden ser de Gigabytes de petabytes

• Sistema de archivo de Hadoop (HDFS) para la nube

• Control de acceso listo para la empresa, cifrado en reposo

• Optimizado para el rendimiento de carga de trabajo analítico

• Se integra con HDInsight, Hortonworks y Cloudera

• Soporta archivos y objetos de carpeta y operaciones

• Se integra con Azure Active Directory

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201625 |

Page 26: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake Store

Cualquier dato

• Datos no estructurados

• Datos semi-estructurados

• Datos estructurados

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201626 |

Page 27: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake Analytics

Un servicio de análisis elástico construido con Apache YARN que procesa todos los datos, en cualquier tamaño

• No hay límites para escalar

• Incluye T-SQL, un lenguaje que une los beneficios de SQL con el poderexpresivo de C #

• Optimizado para trabajar con la tienda de ADL

• Consultas federadas a través de fuentes de datos Azure

• Control de acceso basado en roles listo para la empresa y Auditoria

• Se paga por Job y escala por Job

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201627 |

Page 28: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake Analytics

Grado -

Empresarial

Escala sin

limites

Productividad

desde el

primer día

Preparación

de datos fácil

y potente

Todos los

Datos

010010100100010101010010100100010101010010100100010101010010100

10001010101001010010001010101001

01001000101010100101001000101010100101001000101010100101001000

10101010010100100010101010010100

100010101010010100100010101010010100100010101010010100100010101

0100101001000101010100101001000

10101010010100100010101010010100

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201628 |

Page 29: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

Un servicio de análisis elástico construido con Apache YARN que procesa todos los datos, en cualquier tamaño

• No hay límites para escalar

• Incluye T-SQL, un lenguaje que une los beneficios de SQL con el poderexpresivo de C #

• Optimizado para trabajar con la tienda de ADL

• Consultas federadas a través de fuentes de datos Azure

• Control de acceso basado en roles listo para la empresa y Auditoria

• Se paga por Job y escala por Job

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201629 |

Page 30: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

Disponible Tipos

de Proyecto

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201630 |

Page 31: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

• Monitorear y administrar los

Jobs

• Explorar y gestionar el

almacenamiento

• Explorar catálogo U-SQL

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201631 |

Page 32: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

Ejecución con paralelismo

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201632 |

Paralelismo Solicitado = 1

(Reserva suficiente para hacer 1 vértice a la vez)

Paralelismo Solicitado = 4

(Reserva suficiente para hacer 4 vértices a la vez)

Page 33: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

Etapa de detalles

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201633 |

252 Piezas de trabajo

AVG Tiempo de ejecución del

Vertex

4.3 Billones de Filas

Información Leida & Escrita

Page 34: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Azure Data Lake – Visual Studio

Programación estilo flujo

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201634 |

Page 35: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201635 |

Page 36: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Microsoft Azure Data Centers

North America Region Europe Region Asia Pacific Region

Major datacenter

Chicago, IL

Singapore, SG

Hong Kong, HK

Dublin, IE Amsterdam, NL

San Antonio, TX

Virginia

Los Angeles, CA

Melbourne, AU Sydney, AU

Oceania Region

Saitama, JP

Sao Paulo, BR

Osaka, JP

Iowa

South America Region

Beijing, CN New Shanghai, CN New

Mumbai, IN New

Pune, IN New

Chennai, IN New

Toronto, ON

Coming Soon

Quebec City, QC

Coming SoonTo be announced

Magdeburg, DE

Coming Soon

To be announced

Frankfurt, DE

Coming Soon

https://azure.microsoft.com/en-gb/regions/#services

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201636 |

Page 37: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Microsoft Azure Data Centers

Major datacenter

US Gov VirginiaVirginia

São Paulo, BR

US Gov IowaIowa

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201637 |

To be announcedTo be announced

North America Region Europe Region Asia Pacific Region Oceania RegionSouth America Region

Page 38: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Recursos

Blog John Bulla http://geeks.ms/johnbulla

Documentación Azure http://azure.microsoft.com/es-es/

Portal Azure https://portal.azure.com

U-SQL http://usql.io/

Twitter: @JohnBulla

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201638 |

Page 39: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Comunidad de Desarrolladores

http://meetup.com/bdotnet

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201639 |

Page 40: Introducción a U-SQL lenguaje que hace fácil el procesamiento de Big Data

Muchas Gracias …..

@johnbulla

geeks.ms/johnbulla

linkedin.com/in/johnbulla

23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201640 |