Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Big Data para Investigadores

Salvador Parra Rosas
November 28, 2016
99

Big Data para Investigadores

Un recorrido por las herramientas y tecnologías de Big Data

Salvador Parra Rosas

November 28, 2016
Tweet

Transcript

  1. Roadmap 1 • Conceptos y Principios • Exploración • Nuevo

    paradigma y Arquitectura 2 • Herramientas • Microsoft HDInsight • Posibilidades con Azure • Open Source y Propietario 3 • Arquitectura de Aplicaciones Robustas • Proyectos y negocios en la nube • Casos de estudio enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 2
  2. Agenda PARTE I 1. Introducción 2. Convergencias Tecnológicas y la

    convergencia Big Data 3. Una caracterización 1. Escenarios Iniciales 2. Principios 3. Propiedades deseables 4. Nuevo paradigma PARTE II 4. Ciclo de vida de Big Data 1. Arquitectura Lambda, estado del arte 2. Arquitectura de Aplicaciones cooperativas 5. Casos de aplicaciones: Series de tiempo, Big Data y la investigación 6. Recorrido rápido por las herramientas 7. Tendencias enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 3
  3. Introducción. ¿Qué es Big Data? enero de 2016 © 2009

    - 2015 SIDERARE SOFTWARE 4 4Vs en grande: • Volumen, Velocidad, Variedad y Variabilidad • Desde el punto de vista técnico, Big Data es un conjunto de técnicas para resolver los problemas de escalabilidad y complejidad de los sistemas de bases de datos y computación modernos, que tienden al manejo de una gran cantidad de datos más allá de la frontera de las bases de datos tradicionales (en la última década). Discusión abierta desde las ciencias del lenguaje: • Big Data es un término acuñado por la industria y no por la academia. • Como muchos otros términos de la industria, está más ligado a propósitos comerciales y tecnológicos que científicos. • Es un ejemplo interesante de cómo la tecnología impacta a la ciencia. • Actualmente representa una oportunidad para el creciente mercado (18k millones de USD) y la investigación…
  4. Introducción. ¿Por qué es interesante? enero de 2016 © 2009

    - 2015 SIDERARE SOFTWARE 5 The Open Science Framework • Más de 9000 resultados de investigaciones y artículos que incluyen el término “Big Data” en osf.io (share) Algunos campos de aplicación en las ciencias: • Bioinformática • Observaciones de la tierra • Ciencias de la Salud • Bibliotecología y ciencias del lenguaje • Ciencias Físicas y Ciencias de la Complejidad • Análisis del clima y el tiempo, etc.
  5. Convergencias Tecnológicas enero de 2016 © 2009 - 2015 SIDERARE

    SOFTWARE 7 ¿Qué es convergencia tecnológica? • La convergencia tecnológica es la tendencia de diferentes sistemas tecnológicos en la evolución hacia la realización de tareas similares. Convergencia en Big Data • La convergencia tecnológica en Big Data se propicia cuando los sistemas de tratamiento de datos y las herramientas están al tanto de su naturaleza distribuida. • A partir de esta naturaleza se forma un ecosistema de herramientas cambiante y adaptativo. • Las herramientas de Big Data se intersectan con el mundo emergente de la Ciencia de Datos.
  6. Escenarios iniciales Escenarios Iniciales: • Escalar con una base de

    datos tradicional: • Escalado con una cola de procesamiento • Al fragmentar la base de datos • Al replicar la base de datos • Problemas típicos 1. Tolerancia a fallos 2. Problemas de corrupción 3. NoSQL no es una panacea, debemos combinar las herramientas en una arquitectura escalable. ¿Cómo nos ayudan las herramientas de Big Data? • El particionamiento y la replicación están manejados por las herramientas (naturaleza distribuida) • El escalamiento es horizontal, es decir, adicionamos nodos para hacer crecer nuestra arquitectura • Los datos se hacen inmutables • Almacenamos datos en bruto (eventos: hechos y errores) en lugar de almacenar información acerca de los cambios en esos datos. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 8
  7. Ejemplo. Escenarios iniciales Esquema relacional para una aplicación analítica simple

    Procesamiento por lotes con una cola (queue) y un procesador (worker) enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 9
  8. Principios ¿Qué hace un sistema de datos? • Intuitivamente •

    Un sistema de datos responde preguntas basado en información que fue adquirida desde el pasado hasta el presente. • Los sistemas no solo memorizan y regurgitan información. Combinan pedazos y piezas de información juntos para producir sus respuestas. Noción de Datos • Una observación crucial es que no todos los pedazos de información son iguales. • Cierta información se deriva de otras piezas de información. • Cuando rastreamos de dónde se ha derivado la información, eventualmente nos encontramos con información que no se deriva de algo. • Esta es la información más cruda que tenemos: información que consideramos cierta simplemente porque existe. Llamemos a esta información Datos (Data). enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 10
  9. Principios Noción de Datos • El término Datos se intercambia

    de manera frecuente con la palabra Información. • Usaremos Datos para referirnos a la información especial de la cual se deriva todo lo demás. • La definición más general que tenemos de un sistema de datos es: • query = function(all data) • La arquitectura Lambda define un enfoque consistente para escoger tecnologías y alambrarlas. Noción de Datos • Una observación crucial es que no todos los pedazos de información son iguales. • Cierta información se deriva de otras piezas de información. • Cuando rastreamos de dónde se ha derivado la información, eventualmente nos encontramos con información que no se deriva de algo. • Esta es la información más cruda que tenemos: información que consideramos cierta simplemente porque existe. Llamemos a esta información Datos (Data). enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 11
  10. Propiedades deseables de Big Data Robustez y Tolerancia a Fallos

    • Los sistemas necesitan comportarse bien independientemente de que los nodos (máquinas) se caigan de manera aleatoria. • Es imperativo que los sistemas sean Tolerantes a fallos humanos. • Actualizar datos incorrectos es inevitable. • Código corrupto o incorrecto. • Inmutabilidad y recomputación en el núcleo de Big Data (sistema resiliente, recovery) Lecturas de baja latencia y actualizaciones • Baja latencia en las lecturas, típicamente milisegundos (de unos pocos a cientos de ms). • La latencia de actualizaciones varía entre aplicaciones: • Consistencia inmediata • Consistencia eventual • Tener disponibles las actualizaciones cuando las necesitemos en Big Data. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 12
  11. Propiedades deseables de Big Data Escalabilidad • La escalabilidad es

    la capacidad de mantener el rendimiento frente a una cantidad cada vez mayor de datos o de carga de trabajo • Se alcanza mediante la adición de recursos al sistema. • Ej. la Arquitectura Lambda es escalable horizontalmente a través de todas las capas de la pila del sistema. • El escalamiento se lleva a cabo mediante la adición de más máquinas. Generalización • Un sistema general puede soportar un amplio rango de aplicaciones. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 13
  12. Propiedades deseables de Big Data Extensibilidad • No es deseable

    inventar la rueda cada vez que adicionamos una característica relacionada o un cambio. • Los sistemas extensibles permiten que la funcionalidad se agregue con un mínimo costo de desarrollo. • Una parte importante de hacer un sistema extensible es facilitar la migraciones de gran escala. Consultas Ad hoc • Tener la habilidad de minar nuestros conjuntos de datos (datasets) de manera arbitraria nos da la oportunidad de optimizar los negocios o proyectos y las nuevas aplicaciones. • No podemos descubrir cosas interesantes para hacer con los datos, a menos que podamos realizar preguntar arbitrarias sobre ellos. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 14
  13. Propiedades deseables de Big Data Mantenimiento mínimo • El mantenimiento

    es un impuesto para los desarrolladores e investigadores. • Se trata del trabajo requerido para mantener un sistema ejecutándose correctamente. • Una parte importante de reducir al mínimo el mantenimiento es la elección de los componentes que tienen poca complejidad en su implementación en lo posible. Trazabilidad • Un sistema de Big Data debe proporcionar la información necesaria para trazar el sistema cuando las cosas van mal. • La clave está en ser capaces de trazar, para cada valor en el sistema, que es lo ha causado exactamente ese valor. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 15
  14. Nuevo Paradigma Paradigma Tradicional • Arquitectura totalmente incremental • Problemas

    inherentes • Necesidad de bases de datos de lectura/escritura para la compactación en línea intensiva (reclamar espacios vacíos) • Complejidad extrema para alcanzar la consistencia eventual • Alta disponibilidad • Consistencia • Problema CAP enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 16
  15. Nuevo Paradigma Uso de la replicación para ofrecer alta disponibilidad

    Lógica adicional para las arquitecturas totalmente incrementales enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 17
  16. Ciclo de Vida De la Arquitectura de Big Data al

    diseño de aplicaciones proactivas. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 18
  17. Arquitectura Lambda Idea central • Construir sistemas de Big Data

    como una serie de capas • Cada capa satisface un subconjunto de propiedades y construcciones subyacentes en cada capa (fachadas) • Todo parte siempre de la ecuación query = function(all data) Capas • Esta arquitectura nos permite definir consultas precomputadas • batch view = function(all data) • query = function(batch view) enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 19
  18. Arquitectura Lambda: Capa de lotes Arquitectura de la capa de

    lotes Capas • Se encarga de implementar la ecuación batch view = function(all data) • La capa batch almacena una copia maestra del conjunto de datos y precomputa vistas de lotes en ese conjunto maestro • El dataset maestro puede ser pensado como una lista muy grande de registro. • Debe hacer dos cosas: almacenar un dataset inmutable en constante crecimiento y computar funciones arbitrarias (vistas) sobre el dataset. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 20
  19. Arquitectura Lambda: Capa de servicios Arquitectura de la capa de

    lotes • La capa de lotes emite vistas como resultado de sus funciones. • El siguiente paso es cargar esas vistas en algún lugar para poder consultarlas. • La capa de servicios es una base de datos distruibuida que carga una vista de lote y hace posible realizar lecturas aleatorias en éste. • Cuando se dispone de una nueva vista de lote, la capa de servicios automáticamente Capas • Se encarga de implementar la ecuación batch view = function(all data) • La capa batch almacena una copia maestra del conjunto de datos y precomputa vistas de lotes en ese conjunto maestro • El dataset maestro puede ser pensado como una lista muy grande de registro. • Debe hacer dos cosas: almacenar un dataset inmutable en constante crecimiento y computar funciones arbitrarias (vistas) sobre el dataset. enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 21
  20. Arquitectura Lambda: Capa de servicios Serving Layer • La capa

    de lotes emite vistas como resultado de sus funciones. • El siguiente paso es cargar esas vistas en algún lugar para poder consultarlas. • La capa de servicios es una base de datos distruibuida que carga una vista de lote y hace posible realizar lecturas aleatorias en éste. • Cuando se dispone de una nueva vista de lote, la capa de servicios automáticamente Capas enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 22
  21. Arquitectura Lambda: Capa de velocidad Speed Layer • La capa

    de servicios actualiza siempre que la capa de lotes finaliza el precómputo de una vista de lotes. • Esto significa que los únicos datos que no están representados en la vista de batch son aquellos que llegaron mientras se hacía el precómputo. • La capa de velocidad completa la arquitectura enfocándose en proporcionar tiempo real. • Esta capa solamente observa datos recientes, mientras que la capa batch observa todos los datos a la vez. • No observa todos los datos nuevos a la vez, sino que actualiza las vistas en tiempo real conforme recibe nuevos datos en lugar de recomputarlos. • Se trata de una estrategia de cómputo incremental: realtime view = function(realtime view, new data) enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 23
  22. Arquitectura Lambda en resumen • batch view = function(all data)

    • realtime view = function(realtime view, new data) • query = function(batch view. realtime view) enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 24
  23. Casos de Aplicaciones Series de tiempo, Big Data y la

    investigación enero de 2016 © 2009 - 2015 SIDERARE SOFTWARE 25
  24. Recorrido rápido de herramientas El ecosistema Hadoop y Spark enero

    de 2016 © 2009 - 2015 SIDERARE SOFTWARE 30
  25. La propuesta de Microsoft Big Data enero de 2016 ©

    2009 - 2015 SIDERARE SOFTWARE 33
  26. PERTINENCIA Y CONCLUSIONES Salvador Parra Rosas Arquitecto de Software/Data Scientist

    Siderare Software México [email protected] +52 (222) 5734838 skype: salvador_pr enero de 2016 © 2009 - 2015 Siderare Software 38