azure realtime analytics: análisis de datos en tiempo real

48
Leonardo Micheloni @leomicheloni Azure Analytics

Upload: software-guru

Post on 13-Feb-2017

179 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Azure Realtime analytics: Análisis de datos en tiempo real

Leonardo Micheloni

@leomicheloni

Azure Analytics

Moderador
Notas de la presentación
Inicio – Opción 1a
Page 2: Azure Realtime analytics: Análisis de datos en tiempo real

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

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

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

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

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

Qué ofrece Azure?

Page 8: Azure Realtime analytics: Análisis de datos en tiempo real

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

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

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

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

Moderador
Notas de la presentación
Page 12: Azure Realtime analytics: Análisis de datos en tiempo real

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

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

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

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

Demo

Event hubs

Page 17: Azure Realtime analytics: Análisis de datos en tiempo real

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 18: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 19: Azure Realtime analytics: Análisis de datos en tiempo real

Stream AnalyticsStream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 20: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 21: Azure Realtime analytics: Análisis de datos en tiempo real

Captura (inputs)• Múltiples, en simultáneo

• Tipos de input:• Data de referencia• Data de streaming (Event-hubs, IoT, Blobs)

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 22: Azure Realtime analytics: Análisis de datos en tiempo real

Transformación (queries)• SQL-Like queries.

• Multiple input, multiple outputs.

• Agrupamiento basado en ventanas (Tumbling, Hopping, Sliding)

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 23: Azure Realtime analytics: Análisis de datos en tiempo real

Transformación (queries)Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 24: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 25: Azure Realtime analytics: Análisis de datos en tiempo real

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)

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 26: Azure Realtime analytics: Análisis de datos en tiempo real

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 )

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 27: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 28: Azure Realtime analytics: Análisis de datos en tiempo real

Outputs• Son el resultado del procesamiento en las queries

• Múltiples posibles

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 29: Azure Realtime analytics: Análisis de datos en tiempo real

OutputsStream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 30: Azure Realtime analytics: Análisis de datos en tiempo real

Configuración• Event Ordering Policy

• Late Arrival tolerance Window• Out of Order tolerance window• Action (Adjust – Drop)

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 31: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 32: Azure Realtime analytics: Análisis de datos en tiempo real

Escalabilidad• Escalabildad:

• Streaming Units (1 MB/s Cada SU) (Hasta 48) • Pricing:

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 33: Azure Realtime analytics: Análisis de datos en tiempo real

No tan bueno• Esencial manejo desde el portal

• Deployment por PS con json

• El SAQL es limitado

• Puede tener latencia asociada

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 34: Azure Realtime analytics: Análisis de datos en tiempo real

Demo

Event hubs

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 35: Azure Realtime analytics: Análisis de datos en tiempo real

¿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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 36: Azure Realtime analytics: Análisis de datos en tiempo real

Azure Data Services – antes...DocumentDb

Fuente: http://channel9.msdn.com

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 37: Azure Realtime analytics: Análisis de datos en tiempo real

Azure Data Services - después...DocumentDb

Fuente: http://channel9.msdn.com

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 38: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 39: Azure Realtime analytics: Análisis de datos en tiempo real

Modelo de recursosDocumentDb

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 40: Azure Realtime analytics: Análisis de datos en tiempo real

Interacción con DocumentDBDocumentDb

• RESTful http interface• SDK (.Net, Node, Python, JS) • Queries -> gramática SQL (extensibilidad con Javascript)

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 41: Azure Realtime analytics: Análisis de datos en tiempo real

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)

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 42: Azure Realtime analytics: Análisis de datos en tiempo real

Schema-freeDocumentDb

• Schema-free REAL• No se definen índices (campos se indizan automáticamente, no hay

inferencia de schema)• Posibilidad de customizar los índices

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 43: Azure Realtime analytics: Análisis de datos en tiempo real

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}

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 44: Azure Realtime analytics: Análisis de datos en tiempo real

"tunnable consistency"DocumentDb

• 4 niveles de consistencia de datos• Eventual consistency• Strong consistency• Bounded staleness consistency• Session consistency

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 45: Azure Realtime analytics: Análisis de datos en tiempo real

¿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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 46: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 47: Azure Realtime analytics: Análisis de datos en tiempo real

Demo

DocumentDb

Moderador
Notas de la presentación
Inicio – Opción 2a
Page 48: Azure Realtime analytics: Análisis de datos en tiempo real

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

Moderador
Notas de la presentación
Final