En esta sesión veremos una introducción al nuevo lenguaje de U-SQL, que une las ventajas de SQL con el poder expresivo de su propio código donde millones de desarrolladores SQL y .NET ahora pueden procesar y analizar todos sus datos con los conocimientos que ya tienen. El apoyo del lenguaje U-SQL en Azure Data Lake Tools para Visual Studio incluye ayuda técnica para la creación, depuración y rendimiento avanzado de funciones de análisis para aumentar la productividad al optimizar los trabajos que se ejecutan a través de miles de nodos.
2. Introducción a U-SQL lenguaje que hace fácil
el procesamiento de Big Data
John Alexander Bulla Torres
Data Platform MVP
Synergy TPC
Director BDotNet
MVP | MCS | MCSA | MCP | MCTS
Blog: http://geeks.ms/johnbulla
Twitter: @johnbulla
3. 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
7. Big Data – La revolución en los datos
Los datos digitales crecerán 40x 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 |
8. Qué es Big Data?
"Big data" es un término aplicado a
conjuntos de datos que superan la
capacidad del software habitual para ser
capturados, gestionados y procesados en
un tiempo razonable.
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 20168 |
9. 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 |
10. Big Data – Las 4 V’s
Volumen
Velocidad
Variedad
Veracidad
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201610 |
11. Big Data – Las 4 V’s
12 Tb
día
21 Pb
Hadoop
cluster
7 Pb
mes
1 Tb
tweets/dia
75
Million
scores/day
14 Tb
Hadoop
cluster
4 Billion
Graph
edg/day
7 Tb
datos/dia
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201611 |
12. 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 |
13. 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 |
14. 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 y
el rendimiento
Sin reutilización de código / compartir a través de consultas
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201614 |
15. 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 |
16. 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 |
17. 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 |
18. 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 float
FROM "/input/orders.txt"
USING Extractors.Csv();
@c = EXTRACT cid int, name string, city string
FROM "/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.cid
WHERE c.city.StartsWith("New")
&& MyNamespace.MyFunction(o.odate) > 10
GROUP 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 |
19. 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 |
22. 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
25. 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 |
26. 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 |
27. 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 poder
expresivo 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 |
28. 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
0100101001000101010100101001000
10101010010100100010101010010100
10001010101001010010001010101001
0100100010101010010100100010101
0100101001000101010100101001000
10101010010100100010101010010100
10001010101001010010001010101001
0100100010101010010100100010101
0100101001000101010100101001000
10101010010100100010101010010100
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201628 |
29. 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 poder
expresivo 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 |
30. Azure Data Lake – Visual Studio
Disponible Tipos
de Proyecto
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201630 |
31. 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 |
32. 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)
33. 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
34. Azure Data Lake – Visual Studio
Programación estilo flujo
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201634 |
36. 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 Soon
To 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 |
37. Microsoft Azure Data Centers
Major datacenter
US Gov Virginia
Virginia
São Paulo, BR
US Gov Iowa
Iowa
23/04/2016 | SQL Saturday #490 – San José, Costa Rica 201637 |
To be announced
To be announced
North America Region Europe Region Asia Pacific Region Oceania RegionSouth America Region
38. 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 |