Presentación del evento Industria 4.0 que Plain Concepts organiza anualmente en Bilbao. Este año hablé de almacenamiento y procesamiento de grandes volumenes de datos, como los que generan las soluciones de monitoriazción e IoT industriales, en la nube. Hablamos de Azure Data Lake, Cosmos DB, SQL Azure y bases de datos de series temporales como InfluxDb y OpenTSDB.
3. TIPOS DE DATOS
Datos operacionales
Datos de lectura y escritura
que representan el estado
de la aplicación
Ejemplos: Ordenes en una
aplicación de comercio
electrónico, información del
cliente en un CRM…
Datos analíticos
Datos de solo lectura
usados para análisis
Ejemplos: Data
warehouses, machine
learning data
Datos en Streaming
Datos producidos en tiempo
real
Examples: Internet of Things
(IoT), e.g., sensor data
4. SQL Database
SQL Data
Warehouse
Stream
Analytics
DATOS EN AZURE, UN RESUMEN
Operacionales Analíticos Streaming
Tables
Cosmos DB
HBase
Storm/Spark
Streaming/Kafka
Data Lake
Analytics/Store
Machine
Learning
Hive/Spark/…
Event Hubs
IoT Hub
Data Factory
HDInsight
5. GENERALIDADES SOBRE DATOS EN LA NUBE
Azure proporciona servicios
PaaS para datos
Todo lo que veremos cae
en esta categoria (con
pequeñas excepciones)
Beneficios comunes de los
servicios PassS
Nada que instalar, nada
que actualizar
Pago por uso
Alta disponibilidad
garantizada
Escalado sencillo
Sin duda es el futuro en
almacenamiento y
procesamiento de datos
Por que no usar servicios que
hacen la gran mayoría del
trabajo sucio por nosotros y
centrarnos en lo que es de
valor
6. - Volúmenes de datos siempre crecientes
- Valor futuro de los datos desconocido
- Datos semi-estructurados
- Datos ligados a eventos y al tiempo
IOT Y DATOS
7. - Paradigma perfectamente conocido
- Mínimos cambios (si alguno) en aplicaciones existentes
- Geo-replicación
- Escalado muy simple
- Optimización automática
- Seguridad
- - Detección automática de amenazas
- - Encriptación transparente
SQL AZURE
9. Ingest all data
regardless of
requirements
Store all data
in native format
without schema
definition
Do analysis
Hadoop, Spark, R,
Azure Data Lake
Analytics (ADLA)
Interactive queries
Batch queries
Machine Learning
Data warehouse
Real-time analytics
Devices
DISEÑADO PARA PODER RESPONDER PREGUNTAS QUE AUN NO CONOCEMOS
DATA LAKES
11. AZURE DATA LAKE (STORE & ANALYTICS)
HDFS Compatible REST API
ADL Store
.NET, SQL, Python, R
scaled out by U-SQL
ADL Analytics
Open Source Apache
Hadoop ADL Client
HDInsight
Hive
• Redimiento y
escalabilidad sin limites
• Optimizado para análisis
• Soporte para tu
herramienta de análisis
favorita
• Un punto central de
almacenamiento de
información en bruto
• Seguridad integrada con
AAD
12. - Optimizado para cargas de trabajo de análisis de datos
- Carpetas y archivos vs. Contenedores y blobs
- Sistema jerarquico vs. Espacio de nombres plano
- Ambos API Rest HTTPS
- API compatible con WebHDFS y por lo tanto con el ecosistema Hive, Spark,
Storm
- Seguridad basada en identidades vs. seguridad basada en claves
- Sin limites de tamaños
- Almacenamiento extremadamente económico
DATA LAKE STORE VS. AZURE STORAGE
13. Con cargas de trabajo BATCH, Data Lake Analytics es ideal
• Para la transformación y preparación de datos para su uso en otros sistemas
• el Análisis de volumenes de datos ENORMES
• de Manera Paralela con programas escritos en .NET, Python y R, escalados con U-SQL
• Y con funciones Cognitivas sobre colecciones de datos
DATA LAKE ANALYTICS
14. y paraleliza código en .NET, Python o R sobre tu Data Lake
Sintasis familiar para millones de desarrolladores SQL & .NET
Unifica
• La naturaleza declarative de SQL con el poder de C#
• Procesa datos estructurados, semistructurados y no estructurados
• Permite consultar multiples fuentes de datos en Azure
• Permite analizar mediante batches, interactivamente, en streaming y con ciertas
capacidades de ML en un lenguaje
U-SQL
Un framework para Big Data
15. @searchlog =
EXTRACT UserId int,
Start DateTime,
Region string,
Query string,
Duration int?,
Urls string,
ClickedUrls string
FROM "/Samples/Data/SearchLog.tsv"
USING Extractors.Tsv();
OUTPUT @searchlog
TO "/output/SearchLog-first-u-sql.csv"
USING Outputters.Csv();
U-SQL SYNTAX
17. ADLA: USAR CÓDIGO C#
CREATE ASSEMBLY IF NOT EXISTS Images FROM
@"/assemblies/Images.dll"; REFERENCE ASSEMBLY
Images;
18. ADLA: EXTRAER IMAGEN
@image_data = EXTRACT image_data byte[] FROM
@"/Samples/input/guard.jpg" USING new
Images.ImageExtractor();
19. ADLA: EXTRAER IMAGEN
@image_data = EXTRACT image_data byte[] FROM
@"/Samples/input/guard.jpg" USING new
Images.ImageExtractor();
20. ADLA: TRANSFORMAR
DECLARE @image_copyright_id int = 0x8298;
DECLARE @image_make_id int = 0x010F;
DECLARE @image_model_id int = 0x0110;
DECLARE @image_description_id int = 0x010E;
@image_properties = SELECT Images.ImageOps.getImageProperty(image_data, @image_copyright_id) AS
image_copyright, Images.ImageOps.getImageProperty(image_data, @image_make_id) AS image_equipment_make,
Images.ImageOps.getImageProperty(image_data, @image_model_id) AS image_equipment_model,
Images.ImageOps.getImageProperty(image_data, @image_description_id) AS image_description FROM
@image_data;
@scaled_image = SELECT Images.ImageOps.scaleImageTo(image_data, 150, 150) AS thumbnail_image FROM
@image_data;
21. ADLA: EXTRAER RESULTADOS
OUTPUT @image_properties TO
@"/Samples/output/metadata.csv" USING
Outputters.Csv(); OUTPUT @scaled_image TO
"/Samples/output/thumbnail.jpg" USING new
Images.ImageOutputter();
23. ¿POR QUÉ USAR NOSQL?
Para escalar a muchos
usuarios y muchos datos
Pros: NoSQL proporciona
mayor escalabilidad que los
Sistemas SQL tradicionales
Cons: Con ciertos sacrificios,
transaccionalidad,
orientación a conjuntos,
familiaridad
Mayor flexibilidad en el
trabajo con datos
Pros: No hay esquemas
fijos
Cons: Los esquemas
previenen errores
To work better with different
data models
Pros: Cada vez manejamos
más datos no relacionales
Cons: No estamos
familiarizados con estos
modelos de datos
24. NOSQL DATA MODELS
DIFERENTES APROXIMACIONES
Key/Value
K V V V V
K V V
K V V V
K V V V V
Document
{ … }
{ … }
{ … }
GraphColumn Family
26. TABLES
¿POR QUÉ?
Simplicidad
Key/value propone un
paradigma muy sencillo
Muy escalable
Una base de datos puede
contener teras de datos
El sharding es muy simple
Low cost
Almacenamiento muy
eficiente en coste
27. Cosmos DB
COSMOS DB
A MULTI-MODEL STORE
Application
Data
K V V V V
K V V
K V V V
K V V V V
{ … }
{ … }
{ … }
Tables API
(key/value
data)
DocumentDB SQL,
MongoDB
(document data)
Gremlin API
(graph data)
Column API
(column family
data)
28. A globally distributed, massively scalable, multi-model database service
Column-family
Document
Graph
Turnkey global distribution
Elastic scale out
of storage & throughput
Guaranteed low latency at the 99th percentile
Comprehensive SLAs
Five well-defined consistency models
Table API
Key-value
Azure Cosmos DB
MongoDB API
29. COSMOS DB
¿POR QUÉ?
Globalmente distribuida
Acceso de baja latencia
desde cualquier lugar del
mundo garantizado
Multiples niveles de
consistencia
Strong
Eventual
Session
…
99% SLAs for many things
Disponibilidad
Redimiento
Latencia (<10ms en lecturas)
Consistencia
30. Servicio básico de Azure presente en todos
los datacenters
Replicación multiregión automática
Multi-homing APIs
Failover automático (o manual)
Diseñado para alta disponibilidad
DISTRIBUCIÓN GLOBAL ‘OUT OF THE BOX’
31. Peticiones servidas desde la misma región
Latencia de un solo dígito en todo el mundo
Motor optimizado para escrituras sin bloqueos y
para SSD
Indexación síncrona transparente con ritmos
sostenidos de ingesta de datos
BAJA LATENCIA GARANTIZADA
32. Escribir aplicaciones distribuidas con cosistencia de datos
es dificil
Cinco niveles bien definidos
Se pueden cambiar por código en cualquier momento
Se pueden sobreescribir por petición
MULTIPLES NIVELES DE CONSISTENCIA BIEN DEFINIDOS
33. Single machine is never a bottle neck
Transparent server-side partition management
Elastically scale storage (GB to PB) and throughput (100 to 100M req/sec)
across many machines and multiple regions
Automatic expiration via policy based TTL
Pay by the hour, change throughput at any time for only what you need
Support for both request per second and requests per minute to handle
spikes cost-effectively
Provisionedrequest/sec
Time
12000000
10000000
8000000
6000000
4000000
2000000
Nov 2016 Dec 2016
Black Friday
Hourly throughput (request/sec)
ESCALADO ELÁSTICO DE ALMACENAMIENTO Y RENDIMIENTO
34. Database engine operates on Atom-Record-Sequence type system
All data models can be efficiently translated to ARS
Multi-model: Key-value, Document, and Graph
Multi-API: SQL (DocumentDB), MongoDB, Table, and Gremlin
More data-models and APIs to be added
MULTI MODELO Y MULTI API
35. En sistemas distribuidos mantener índices y esquemas es muy
complejo.
Indexado automático y sincrono
Hash, range, y geospatial
Funciona con todos los modelos
Muy optimizado para escrituras
Physical index
Schema
INDEXADO AUTOMÁTICO INDEPENDIENTE DEL ESQUEMA
36. Always encrypted at rest and in motion
Fine grained “row level” authorization
Network security with IP firewall rules
Comprehensive Azure compliance certification:
• ISO 27001
• ISO 27018
• EUMC
• HIPAA
• PCI
• SOC1 and SOC2
SEGURIDAD
39. - Optimizadas para datos cuando el tiempo es la clave
- La principal diferencia es que las consultas se filtran
y agregan por cuando ocurrieron
- Además esta optimizadas para almacenar y medir
cambios en el tiempo
- Arquitectura
Almacenamiento y compresión basados en
timespam
Purgado de datos automático
Almacemiento basado en tendencias
BASE DE DATOS DE SERIES TEMPORALES
40. - InfluxDB (VM)
- OpenTSDB sobre HDInsights Hbase
- Azure Time Series
BASE DE DATOS DE SERIES TEMPORALES