Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube

1,435 views

Published on

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.

Published in: Software
  • Be the first to comment

  • Be the first to like this

Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube

  1. 1. RODRIGO CORRAL GONZÁLEZ ALM TEAM LEAD & SOFTWARE ARCHITECT RCORRAL@PLAINCONCEPTS.COM @R_CORRAL
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. - 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
  6. 6. - 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
  7. 7. - MariaDB - PostgreSQL - MySQL OTRAS BBDD RELACIONALES EN AZURE
  8. 8. 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
  9. 9. AZURE DATA LAKE
  10. 10. 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
  11. 11. - 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
  12. 12. 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
  13. 13. 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
  14. 14. @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
  15. 15. https://github.com/Azure/usql/tree/master/Examples/ImageApp/Images
  16. 16. ADLA: USAR CÓDIGO C# CREATE ASSEMBLY IF NOT EXISTS Images FROM @"/assemblies/Images.dll"; REFERENCE ASSEMBLY Images;
  17. 17. ADLA: EXTRAER IMAGEN @image_data = EXTRACT image_data byte[] FROM @"/Samples/input/guard.jpg" USING new Images.ImageExtractor();
  18. 18. ADLA: EXTRAER IMAGEN @image_data = EXTRACT image_data byte[] FROM @"/Samples/input/guard.jpg" USING new Images.ImageExtractor();
  19. 19. 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;
  20. 20. 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();
  21. 21. DEMO: DATA LAKE
  22. 22. ¿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
  23. 23. 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
  24. 24. Tables TABLES ALMACENAMIENTO KEY/VALUE Application Key/Value Data K V V V V K V V K V V V K V V V V Send key K Return values V V V
  25. 25. 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
  26. 26. 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)
  27. 27. 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
  28. 28. 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
  29. 29. 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’
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. DEMO: COSMOS DB PLAYGROUND
  37. 37. DEMO: COSMOS DB
  38. 38. - 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
  39. 39. - InfluxDB (VM) - OpenTSDB sobre HDInsights Hbase - Azure Time Series BASE DE DATOS DE SERIES TEMPORALES
  40. 40. DEMO: GRAFANA
  41. 41. THANKS!

×