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

Post on 13-Feb-2017

181 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Leonardo Micheloni

@leomicheloni

Azure Analytics

Moderador
Notas de la presentación
Inicio – Opción 1a

Quién soy?

• Desarrollador de software hace 15 años• Trabajabo en Kinetica Solutions• Actualmente estamos utilizando estas herramientas

De qué vamos a hablar?

• Captura y análisis de datos en tiempo real• Azure• Variantes• Ventajas• Costos

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

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

Qué ofrece Azure?

• Event hubs• Hadoop• Stream analytics• DocumentDb• Web sites• Máquinas virtuales• Otros sistemas

Qué ofrece Azure?

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

Características

• Permite inyectar eventos a gran escala• Publish / suscriber• Millones de eventos• Halo, Minecraft, Xbox 360• HTTP / AMQP• SAS

Evet hubs

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

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

Particiones

• Definen las lecturas simultáneas• Partition key• Hasta 32• Pedidos especiales hasta 1000

Event hubs

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

HTTP / AMQP

• Soporta el estándar AMQP• Interoperable con múltiples plataformas

• Java• PHP• IoT

• Posibilidad de usar HTTP

Event hubs

SAS

• Posibilidad de definir la seguridad por cadena de conexión• Se define una key para un nivel de lectura o escritura

Event hubs

Demo

Event hubs

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

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

Stream AnalyticsStream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

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

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

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

Transformación (queries)Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

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

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

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

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

Outputs• Son el resultado del procesamiento en las queries

• Múltiples posibles

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

OutputsStream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

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

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

Escalabilidad• Escalabildad:

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

Stream Analytics

Moderador
Notas de la presentación
Inicio – Opción 2a

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

Demo

Event hubs

Moderador
Notas de la presentación
Inicio – Opción 2a

¿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

Azure Data Services – antes...DocumentDb

Fuente: http://channel9.msdn.com

Moderador
Notas de la presentación
Inicio – Opción 2a

Azure Data Services - después...DocumentDb

Fuente: http://channel9.msdn.com

Moderador
Notas de la presentación
Inicio – Opción 2a

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

Modelo de recursosDocumentDb

Moderador
Notas de la presentación
Inicio – Opción 2a

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

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

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

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

"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

¿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

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

Demo

DocumentDb

Moderador
Notas de la presentación
Inicio – Opción 2a

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

top related