Azure Realtime analytics: Análisis de datos en tiempo real
-
Upload
software-guru -
Category
Software
-
view
184 -
download
0
Transcript of Azure Realtime analytics: Análisis de datos en tiempo real
![Page 1: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/1.jpg)
Leonardo Micheloni
@leomicheloni
Azure Analytics
![Page 2: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/2.jpg)
Quién soy?
• Desarrollador de software hace 15 años• Trabajabo en Kinetica Solutions• Actualmente estamos utilizando estas herramientas
![Page 3: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/3.jpg)
De qué vamos a hablar?
• Captura y análisis de datos en tiempo real• Azure• Variantes• Ventajas• Costos
![Page 4: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/4.jpg)
Planteo del problema
• Necesidad de recibir y analizar una gran cantidad de datos• De diversos orígenes• A diferentes tasas de arribo• Manipulación de los datos (contar, agrupar, seleccionar, etc.)
• Posibles escenarios• Análisis de tráfico en grandes ciudades• Comportamiento de clientes• IoT• Medición de audiencias
![Page 5: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/5.jpg)
Qué podríamos hacer?
• Solución custom• Implica mucha inversión de hardware• Si es un éxito hay que conseguir más hardware• Si falla tenemos que arreglarlo nosotros• Centralizado geográficamente
• Usar una solución de terceros (Azure)• Podemos escalar a demanda• No falla• Disponibilidad geográfica
![Page 6: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/6.jpg)
Qué ofrece Azure?
• Event hubs• Hadoop• Stream analytics• DocumentDb• Web sites• Máquinas virtuales• Otros sistemas
![Page 7: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/7.jpg)
Qué ofrece Azure?
![Page 8: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/8.jpg)
Por qué PAAS?
Aplicaciones
Data
Runtime
O/S
Virtualización
Servidores
Networking
IAAS
Aplicaciones
Data
Runtime
O/S
Virtualización
Servidores
Networking
Aplicaciones
Data
Runtime
O/S
Virtualización
Servidores
Networking
PAAS SAAS
![Page 9: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/9.jpg)
Características
• Permite inyectar eventos a gran escala• Publish / suscriber• Millones de eventos• Halo, Minecraft, Xbox 360• HTTP / AMQP• SAS
Evet hubs
![Page 10: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/10.jpg)
Publish Suscriber
• Más adecuado para este tipo de escenarios que las colas• Arquitectura basada en particiones en lugar de base de datos• Existen clientes para las principales plataformas• Es trivial crear un cliente
Event hubs
![Page 11: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/11.jpg)
Millones de eventos
• Up to 1GB/s input• Up to 100.000 sources / event hub• Thoughput: 1MB per unit, up to 1000 units per secound• Consumer groups• Storage 84GB / day• Retention policy 1 up to 7 day (pedidos especiales hasta 20 días)• 2.8 c/u$s por millón de eventos
Event hubs
![Page 12: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/12.jpg)
Particiones
• Definen las lecturas simultáneas• Partition key• Hasta 32• Pedidos especiales hasta 1000
Event hubs
![Page 13: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/13.jpg)
Retention policy
• Se retienen los eventos hasta ser consumidos• 24 horas por defecto sin costo adicional• Días adicionales tienen costo hasta 7 días (especial 30)• Checkpoint en caso de falla se retoma, se puede “rebobinar”• Up to 84GB
Event hubs
Checkpoint
![Page 14: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/14.jpg)
HTTP / AMQP
• Soporta el estándar AMQP• Interoperable con múltiples plataformas
• Java• PHP• IoT
• Posibilidad de usar HTTP
Event hubs
![Page 15: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/15.jpg)
SAS
• Posibilidad de definir la seguridad por cadena de conexión• Se define una key para un nivel de lectura o escritura
Event hubs
![Page 16: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/16.jpg)
Demo
Event hubs
![Page 17: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/17.jpg)
Stream Analytics
![Page 18: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/18.jpg)
Qué es Stream Analytics
• PaaS (Platform as a Service)• Motor de procesamiento a gran escala (hasta 1GB/s)• Real-time streaming.• Fuerte integración con EventHub (Out of the Box)• Agrupación y agregación de datos.
Stream Analytics
![Page 19: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/19.jpg)
Stream AnalyticsStream Analytics
![Page 20: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/20.jpg)
Características• Captura, procesa y agrega datos en tiempo real.• Sin pérdida de datos.• Troughput de hasta 1GB x seg (millones de eventos).• Alta disponibilidad y capacidad de recuperación.• Bajo costo en desarrollo y en administración• 3 componentes principales:
• Inputs• Queries• Outputs
Stream Analytics
![Page 21: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/21.jpg)
Captura (inputs)• Múltiples, en simultáneo
• Tipos de input:• Data de referencia• Data de streaming (Event-hubs, IoT, Blobs)
Stream Analytics
![Page 22: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/22.jpg)
Transformación (queries)• SQL-Like queries.
• Multiple input, multiple outputs.
• Agrupamiento basado en ventanas (Tumbling, Hopping, Sliding)
Stream Analytics
![Page 23: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/23.jpg)
Transformación (queries)Stream Analytics
![Page 24: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/24.jpg)
Windowing - conceptos• Agrupamiento basado en ventanas (Tumbling, Hopping, Sliding)• Windows de tamaño fijo• El Timestamp de output representa el fin de la ventana• Requiere agrupamiento.
Stream Analytics
![Page 25: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/25.jpg)
Tumbling Windows• Cantidad de lecturas de sensor por device cada 10 segundos.
Stream Analytics
SELECT sensorId, COUNT(*) AS CountFROM SensorReadings TIMESTAMP BY timeGROUP BY sensorId, TumblingWindow(second, 10)
![Page 26: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/26.jpg)
Hopping Windows• Cada 5 segundos,
cantidad de lecturas de sensor y la temperatura promedio en los últimos 10 segundos
Stream Analytics
SELECT sensorId, COUNT(*) AS Count, AVG(temp) FROM SensorReadings TIMESTAMP BY timeGROUP BY sensorId, HoppingWindow(second, 10, 5 )
![Page 27: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/27.jpg)
Sliding Windows• Temperatura es mayor a
75 para un total de 5 segundos
Stream Analytics
SELECT sensorId, MIN(temp) as temp FROM SensorReadingsTIMESTAMP BY timeGROUP BY sensorId, SlidingWindow(second, 5)HAVING MIN(temp) > 75
![Page 28: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/28.jpg)
Outputs• Son el resultado del procesamiento en las queries
• Múltiples posibles
Stream Analytics
![Page 29: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/29.jpg)
OutputsStream Analytics
![Page 30: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/30.jpg)
Configuración• Event Ordering Policy
• Late Arrival tolerance Window• Out of Order tolerance window• Action (Adjust – Drop)
Stream Analytics
![Page 31: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/31.jpg)
Out of Order/ Late ArrivalStream Analytics
En query...TIMESTAMP BY...
Por default: Timestamp by
Enqueue timestamp
Evento 115:43 (-3)
Evento 215:42 (-3)
En query...TIMESTAMP BY...
Evento 3TIMESTAMP: 15:43:25 (-3)
Encolado:15:43.26 NUEVO TIMESTAMP (AJUSTADO): 15:43:29 (-3)
Causas:• Clock Skews
• EH Clock Skews
• Network Delay
![Page 32: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/32.jpg)
Escalabilidad• Escalabildad:
• Streaming Units (1 MB/s Cada SU) (Hasta 48) • Pricing:
Stream Analytics
![Page 33: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/33.jpg)
No tan bueno• Esencial manejo desde el portal
• Deployment por PS con json
• El SAQL es limitado
• Puede tener latencia asociada
Stream Analytics
![Page 34: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/34.jpg)
Demo
Event hubs
![Page 35: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/35.jpg)
¿Qué es DocumentDB?
• Database as a service• NoSql ->
• Key-value store• Column store• Graph databases• Document store
• Diseñado para aplicaciones escalables y altamente performantes
DocumentDb
✔
![Page 36: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/36.jpg)
Azure Data Services – antes...DocumentDb
Fuente: http://channel9.msdn.com
![Page 37: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/37.jpg)
Azure Data Services - después...DocumentDb
Fuente: http://channel9.msdn.com
![Page 38: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/38.jpg)
Alternativas de terceros:DocumentDb
• Más orientadas a IAAS que PAAS• "desventajas" de IAAS: sharding a mano, al igual que la replicación• PAAS -> todo manejado dentro de Azure• Escalabidad on-demand controlada
![Page 39: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/39.jpg)
Modelo de recursosDocumentDb
![Page 40: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/40.jpg)
Interacción con DocumentDBDocumentDb
• RESTful http interface• SDK (.Net, Node, Python, JS) • Queries -> gramática SQL (extensibilidad con Javascript)
![Page 41: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/41.jpg)
Javascript para lógica de negocioDocumentDb
• DocumentDb fue escrito pensado y optimizado para Javascript• Se pueden escribir UDF, SP y Triggers en Javascript• Transacciones integradas al lenguaje (los procedures se ejecutan
dentro de una transacción implícita)
![Page 42: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/42.jpg)
Schema-freeDocumentDb
• Schema-free REAL• No se definen índices (campos se indizan automáticamente, no hay
inferencia de schema)• Posibilidad de customizar los índices
![Page 43: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/43.jpg)
Digresión: el teorema CAPDocumentDb• Un sistema distribuido no puede garantizar, simultáneamente:
• Consistency• Availability• Partition network tolerance
• Con esto en mente, un sistema distribuido puede ser:• "CP" -> consistente pero NO disponible bajo una partición de red• "AP" -> disponible pero NO consistente bajo una partición de red• "CA" -> imposible!
{A, B, C} -> {A,B} {C}
![Page 44: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/44.jpg)
"tunnable consistency"DocumentDb
• 4 niveles de consistencia de datos• Eventual consistency• Strong consistency• Bounded staleness consistency• Session consistency
![Page 45: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/45.jpg)
¿Cómo escala?DocumentDb
• Collections -> 10gb de capacidad de storage• Performance levels• RequestUnit (RU) -> mide lo que tarda en procesar un request• 1 RU -> read json de 1kb con 10 properties• Esto asumiendo Session Consistency• x-ms-request-charge se incluye en los responses
![Page 46: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/46.jpg)
QuotasDocumentDb
• 5 DocumentDB accounts• 100 base de datos por account• 100 colecciones por base de datos• 500.000 usuarios (entre todas las DB)• 25 SP, triggers y UDF (cada uno) por colección• 10GB por colección• Tamaño máximo de documento json: 512KB
![Page 47: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/47.jpg)
Demo
DocumentDb
![Page 48: Azure Realtime analytics: Análisis de datos en tiempo real](https://reader031.fdocuments.ec/reader031/viewer/2022022201/58a0d5b61a28abeb378b4bf9/html5/thumbnails/48.jpg)
MVA
http://blog.sysfore.com/the-a-z-of-microsoft-azure-services/
Recursos Continúa Aprendiendo
Microsoft Virtual Academyhttp://aka.ms/academia
Channel 9http://aka.ms/canal9