37
#dotNETSpain2015 Luis Guerrero Technical Evangelist Azure [email protected] Gestión masiva de datos en la era IoT Y A X B

Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Embed Size (px)

Citation preview

Page 1: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

#dotNETSpain2015

Luis GuerreroTechnical Evangelist [email protected]

Gestión masiva de datos en la era IoT

Y

AX B

Page 2: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

#dotNETSpain2015

Page 3: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

¿Qué son los datos en movimiento?

Azure Stream Analytics Twitter Streaming API +

DotNetSpain2015 + Azure

Agenda

Page 4: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

¿Por qué es relevante?

¿Qué son los datos en movimiento?

Page 5: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

¿Que son los datos en movimiento?

Datos en movimiento

Datos parados

Page 6: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Escenarios IoT conectados

Smart grid Alertas de ventas con CRM

Detección de fraudes en tiempo real

Coches conectados

Page 7: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Escenarios IoT conectados

Servicios de protección de datos e identidad

Registro financiero de las ventas en tiempo real

Análisis de los clicks de las apps

Alertas en tiempo real de datos financieros

Page 8: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Resumen de escenarios

Ingesta

ARCHIVADO

Analíticas

TELEMETRÍA / ANÁLISIS DE REGISTROS

Acciones

INTERNET OF THINGS (IOT)

Page 9: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

¿Cómo se crean esta soluciones de análisis de flujos en tiempo real?

TiempoRecursos de desarrollo e infraestructura

Infraestructura – Instalación y configuración

Desarrollo de la solución (código) para la ingesta, procesado de datos

y archivado

Desarrolla soluciones que integren otras soluciones como Machine

Learning, Business Intelligence, etc

Desarrolla soluciones que tengan resiliencia a fallos en infraestructura

y almacenado

Desarrolla soluciones e infraestructura que crezcan con tus

necesidades de negocio

Monitoriza y analiza los errores de la solución

Page 10: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Presentamos Azure Stream Analytics

Page 11: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Análisis de Twitts en tiempo real

Page 12: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Twittea con #dotnetspain2015

#megusta #nomegusta

Page 13: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Ingesta de Twitts en tiempo real con Event Hubs

Page 14: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Azure Service BusAzure Service

BusRelay

Queue

Topic

Notification Hub

Event Hub

Servicio de Firewall trasversal de NATServicios Request/ResponsSin búfer con TCP Throttling

Broker transacciones en la nube con AMQP/HTTPMensajería de alta escalabilidad, alta disponibilidadsoporte de sesiones, envío programado, etc.

Distribución transaccional de mensajesHasta 2000 subscriptores por temaHasta 2K/100K reglas de filtro por subscripción

Envío de notificaciones de alto rendimientoSoporta la mayoría de proveedores móvilesMillones de notificaciones por etiqueta

Page 15: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Presentamos Azure Event Hubs

Rendimiento de procesamiento de las unidades:• 1 ≤ TUs ≤ Número de

particiones

• TU: 1 MB/s escritura, 2 MB/s lectura

Productores de

eventos

Azure Event Hub

> 1M productores> 1GB/seg Rendimiento de procesamiento agregado

Hasta 32 particiones a través

del portal, se pueden solicitar

más

Part

icio

nes

Directo

PartitionKeyHash

Grupo de

consumo

Receptores

AMQP 1.0

Control del flujo basado en crédito

Cursores en los clientes

Desplazamiento por Id o Timestamp

Event Processor Host

IEventProcessor

Page 16: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Muchos tipos de publicadores De corta vida, bajo rendimiento de

procesado: HTTPS De larga vida, alto rendimiento de

procesado: AMQP Conexiones de larga vida basadas en

AMQP son facturables, las particiones HTTPS no; las conexiones AMQP están permitidos dentrol del tier

Publica por… PartitionId

Directo PartitionKey

PartitionKey seleccionado PartitionId Política del publicador

(<eh>/publishers/<name>) <name> overriding PartitionKey

Publicadores

Productores de eventos

Directo

PartitionKeyHash

Part

itio

ns

Page 17: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Vistas sobre el flujo de Event Hub Conceptualmente son similares a la suscripción

a los temas ya que son vistas del Event Hub Puntos de control manejados por el consumidor

del grupo Anclaje pare crear receptores por partición Siempre hay un grupo de consumo

predeterminado $default Se pueden crear hasta 20 grupos de consumo

con nombre Stream Analytics siempre consume el

grupo predeterminado, si quieres consumir a la vez crea otro grupo de consumo

Grupo de consumo

Grupos de consumo

Page 18: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

¿Qué es Azure Stream Analytics?

Page 19: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Presentando Stream Analytics

Disponible, escalable y con soporte de aplicaciones de misión crítica

Permite un desarrollo rápido

Sistema de analítica completamente administrado y en tiempo real

Page 20: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Procesa millones de eventos por segundoProcesa datos desde dispositivos/apps conectadaIntegración con el sistema de publicador consumidor altamente escalable

Procesa flujos de datos de manera muy sencillaTransforma, argumenta, realiza operaciones basadas en tiempoDetecta patrones y anomalías en los flujos de datos

Correlaciona datos dentro del flujo

Analítica en tiempo real

Page 21: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Sin desafíos en el despliegue

No es necesario adquirir hardware y mantenerlo

Bypasses deployment expertiseUp and running in a few clicks (and within minutes)No software provisioning and maintainingPerformance tuning

Easily expand your business globally

Page 22: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Presentando Stream Analytics

Disponible, escalable y con soporte de aplicaciones de misión crítica

Permite un desarrollo rápido

Sistema de analítica completamente administrado y en tiempo real

Page 23: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Garantías en las entregas de eventosGarantía de no perder ningún evento o de una salida incorrectaPreserva el orden de los evento por dispositivo

Garantizado la continuidad de tu negocioAlta disponibilidad (tres nueves de disponibilidad)Se recupera automáticamente de los fallosGestión automática del estado que permite una rápida recuperación

Confiabilidad

Page 24: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

La elasticidad de la nube para escalar hacia arriaba o hacia abajoDesde pocos recursos hasta mucho cuando sea requeridoDistribuido, con una arquitectura de escalado horizontalSe puede escalar recursos directamente desde el portal sin necesidad de escribir código.

Precio de entrada muy bajoProvisiona y ejecuta soluciones de Stream Analytics desde $25/mesPaga sólo por los recursos que usasHabilidad para añadir recursos de manera incremental

Escalado automático

Page 25: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Presentando Stream Analytics

Disponible, escalable y con soporte de aplicaciones de misión crítica

Permite un desarrollo rápido

Sistema de analítica completamente administrado y en tiempo real

Page 26: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Utiliza el lenguaje de procesado de Stream Analytics basado en un lenguaje SQLStreamAnalytics se basa en un lenguaje SQL muy parecido al de los motores de base datos relacionesFiltra, haz proyecciones, agregaciones, une flujos, añade información estática, detecta patrones todo ello con muy pocas líneas de código SQL

Menos mantenimiento de código requeridoHaz cambios y pruebas en minutos, no en días ni semanas

Desarrolla y depura directamente desde el Portal de AzureEstadísticas de uso en tiempo real a través del portal

Integración con otros servicios de AzureEventHub, Azure Blobs y Azure SQL DB

Desarrollo rápido

Page 27: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Lenguaje de consultaDML Statements• SELECT• FROM• WHERE• GROUP BY• HAVING• CASE• JOINS• UNION

Scaling Functions• WITH• PARTITION BY

Date and Time Functions• DATENAME• DATEPART• DAY• MONTH• YEAR• DATETIMEFROMPARTS• DATEDIFF• DATADD

Windowing Extensions• Tumbling Window• Hopping Window• Sliding Window

Aggregate Functions• SUM• COUNT• AVG• MIN• MAX

String Functions• LEN

CONCATCHARINDEX

• SUBSTRING• PATINDEX

Page 28: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Utiliza funciones basadas en tiempo de manera sencillaTumbling Windows

Repeating, non-overlapping, fixed interval windows

Hopping WindowsGeneric window, overlapping, fixed

size

Sliding WindowsSlides by an epsilon and produces

output at the occurrence of an event

Administra eventos fuera de orden

Funciones basadas en tiempo

Page 29: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Demo

Page 30: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Arquitectura

Origen de datos Ingesta Procesado ConsumoSalida

Entradas- Event Hub

Dos consultas#megusta#nomegusta

Outputs- Event Hub

☁AzureStorage

Worker Role Twitter Streaming API

Worker Role Persistencia• SQL

Azure• Storage

Tables

Azure Web Site

WebSockets SignalR

Page 31: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Canonical eventing scenario

Ingestor (broker)

Collection Presentation and action

Event producers

Transformation

Long-term storage

Event hubs

Storage adapters

Stream processingCloud gateways

(web APIs)

Field gateways

Applications

Legacy IOT (custom protocols)

Devices

IP-capable devices(Windows/Linux)

Low-power devices (RTOS)

Search and query

Data analytics (Excel)

Web/thick client dashboards

Service bus

Azure DBs

Azure storage

HDInsight

Stream Analytics

Devices to take action

Page 32: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Todos los eventos que fluyen por el sistema tienen un timestamp

Se puede hacer consultas utilizando el tiemstamp SELECT * FROM TwitterStream TIMESTAMP BY

CreatedAt

Se puede consultar el Tiemstamp SELECT System.Timestamp AS Time, Text FROM

TwitterStream

Nota: System.Timestamp es una propiedad reserva del sistema.

Los eventos y la fecha

Page 33: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Dime el número de twitts por zona cada 10 segundos

Tumbling Windows

SELECT TimeZone, COUNT(*) AS Count FROM TwitterStream TIMESTAMP BY CreatedAt GROUP BY TimeZone, TumblingWindow(second,10)

1 5 4 26 8 6 5

0 5 2010 15 Time (secs)

1 5 4 26

8 6

25

A 10-second Tumbling Window

30

3 6 1

5 3 6 1

Page 34: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Dame cada 5 segundos el número de twitts y la media de sentimiento de los últimos 10 segundos

Hopping Windows

SELECT Topic, COUNT(*) AS TotalTweets, AVG(SentimentScore) FROM TwitterStream TIMESTAMP BY CreatedAtGROUP BY Topic, HoppingWindow(second, 10 , 5)

1 5 4 26 8 7

0 5 2010 15 Time (secs)

25

A 10-second Hopping Window with a 5-second “Hop”

30

4 26

8 6

5 3 6 1

1 5 4 26

8 6 5 3

6 15 3

Page 35: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

Give me the count of tweets for all topics which are tweeted more than 10 times in the last 10 seconds

Sliding Windows

SELECT Topic, COUNT(*) FROM TwitterStream TIMESTAMP BY CreatedAtGROUP BY Topic, SlidingWindow(second, 10)HAVING COUNT(*) > 10

1 5

0 5 2010 15 Time (secs)

25

A 10-second Sliding Window

8

8

51

9

51 9

1

Page 36: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

List all users and the topics on which they switched their sentiment within a minute

Joining multiple streams

SELECT TS1.UserName, TS1.TopicFROM TwitterStream TS1 TIMESTAMP BY CreatedAt JOIN TwitterStream TS2 TIMESTAMP BY CreatedAtON TS1.UserName = TS2.UserName AND TS1.Topic = TS2.Topic AND DATEDIFF(second, TS1, TS2) BETWEEN 1 AND 60WHERE TS1.SentimentScore != TS2.SentimentScore

{“XO”, 4, “Hawks”} {“Jo”, 0, “ALS”} {“Foo”,4, “ALS”}Twitter Stream: {“Dip”, 2, “XBox”}

{“XO”, 0, “Hawks”} {“Dip”, 0, “Xbox”}{“Jo”, 4, “ALS”} {“Foo”, 0, “ALS”}

Twitter Stream:

time

Page 37: Y A XB. Tiempo Recursos de desarrollo e infraestructura Infraestructura – Instalación y configuración Desarrollo de la solución (código)

#dotNETSpain2015

¡¡¡Si te ha gustado no olvides rellenar la encuesta!!!Thanks

Y

AX B