Archivo de la etiqueta: paradigma

Arquitectura Lambda para sistemas Big Data (y III)

(venimos de una serie hablando de los tres paradigmas, para haber hablado luego del paradigma batch y luego del tiempo real)

Fuente: http://image.slidesharecdn.com/bigdatarealtimearchitectures-150823093028-lva1-app6891/95/big-data-real-time-architectures-5-638.jpg?cb=1440322348
Fuente: http://image.slidesharecdn.com/bigdatarealtimearchitectures-150823093028-lva1-app6891/95/big-data-real-time-architectures-5-638.jpg?cb=1440322348

Terminamos esta serie de artículos, hablando de las arquitecturas Lambda. Y es que una de las cosas que decíamos a la hora de procesar flujos de datos en tiempo real, es que se puede no renunciar a la aproximación batch. Es decir, que podemos diseñar sistemas de Big Data que los integren a ambos, dando así una opción genérica y que para cada necesidad concreta, pueda emplear las tecnologías Batch o Tiempo Real.

Nathan Marz publicó el libro «Big Data: Principles and best practices of scalable realtime data systems» en abril de 2015 para explicar todo esto (aquí está el primer capítulo, gratis). Lo resumió en «la Arquitectura Lambda«, que representamos a continuación:

Arquitectura Lambda (Fuente: http://lambda-architecture.net/img/la-overview_small.png)
Arquitectura Lambda (Fuente: http://lambda-architecture.net/img/la-overview_small.png)

En la web http://lambda-architecture.net/ se puede comprobar como son muchos los casos de aplicación de este paradigma que se han producido en los últimos tiempos.

El problema ante el que nos solemos encontrar al tratar con grandes volúmenes de datos es que no existe una técnica predefinida para hacerlo. Ya hemos visto con los paradigmas anteriores que el enfoque a adoptar para el procesamiento puede ser diferente. En esta ocasión, el creador de este paradigma Lambda, propone descomponer el problema en tres capas: Batch, Serving y Speed.

Arquitectura Lambda (Fuente: http://www.databasetube.com/wp-content/uploads/sites/8/2012/09/lambda1.jpg)
Arquitectura Lambda (Fuente: http://www.databasetube.com/wp-content/uploads/sites/8/2012/09/lambda1.jpg)

En este paradigma todo comienza con una ecuación que podríamos formular de la siguiente manera: query = function(all data). Consiste en que en esa capa Batch inicial que veíamos, disponer de vistas indexadas de datos que han sido pre-computadas, de tal manera que cuando tenga una necesidad en tiempo real, no necesite procesar todo el largo conjunto de datos, sino simplemente acceder a la vista de datos que tuviera pre-computada. De esta manera, me adelanto a la necesidad de consultar datos, disponiendo de largos subconjuntos de los mismos ya pre-computados, de tal manera que se trataría de localizar los mismos. Es importante entrever que estas pre-consultas son aleatorias, por lo que para analizar todo el dataset tendríamos que lanzar varias consultas.

Supongamos que tenemos un proyecto de análisis de datos de una web con Google Analytics. Dejamos así «preparada» una función con todas las métricas que quisiéramos consultar (páginas vistas, visitantes únicos, búsquedas orgánicas, etc.) en una función con (URL, día). De esta manera, cuando queramos lanzar una consulta para un día determinado, solo necesitaríamos consultar la vista del rango de día donde hubiera caído el día concreto que nos interesa, y así, ágilmente, conseguir la información que nos interesa. En esta capa intervienen Hadoop o Spark.

Posteriormente, tenemos la capa de servicio. La capa anterior, creaba esas vistas con los datos pre-computados. Pero, siempre necesitaremos una capa que cargue esas vistas en algún lugar que luego permita se puedan consultar. Esto se hace en la capa de servicio. Indexa las vistas creadas en la capa batch, las actualiza cada vez que llegan nuevas versiones de la capa batch. Dado que no recibe escrituras de datos «aleatorias» (que suele ser el factor que hace realmente lenta una Base de Datos tradicional), esta capa es realmnete robusta, predecible, fácil de configurar y operar. Ya ven, un problema habitual de las bases de datos, resuelto no tanto con tecnología (que también), sino con enfoques de tratamiento de datos. En esta capa, destaca ElaphantDB, por ejemplo.

Y, por último, aparece la capa de velocidad. Cuando alguien quiere acceder a una consulta de datos, lo hace a través de una combinación de la capa de servicio y de la capa de velocidad. Esto lo podemos ver en el siguiente gráfico:

Capa de Velocidad y Servicio

La capa de velocidad es similar a la batch en el sentido que produce vistas a partir de los datos que recibe. Ahora bien, hay algunas diferencias clave. La más importante es que para conseguir altas velocidades, esta capa no mira a todos los nuevos datos de golpe. Solo actualiza aquellos nuevos datos que recibe, lo que le permite ofrecer de manera efectiva consultas de datos en tiempo real. Por eso se suele decir que esta capa actúa con actualizaciones incrementales, solo marcando como nuevo aquello que sea estrictamente necesario para ofrecer al usuario una vista en tiempo real.

Y todos esos módulos y funcionalidades es lo que nos permite disponer de una arquitectura Lambda que de manera completa representamos en la siguiente figura. Nada mejor para seguir ampliando conocimientos que leer el libro de Nathan Marz, que lo explica realmente bien y al detalle.

Arquitectura Lambda completa (Fuente: http://www.databasetube.com/wp-content/uploads/sites/8/2012/09/lambda8.jpg)
Arquitectura Lambda completa (Fuente: http://www.databasetube.com/wp-content/uploads/sites/8/2012/09/lambda8.jpg)

Con este artículo, cerramos esta serie en la que hemos hablado de los diferentes paradigmas para afrontar un proyecto de Big Data real. Como veis, muchas novedades, y mucha cabeza puesta en hacer sistemas realmente eficientes y ágiles para las organizaciones.

 

Evento Donostia 27/09: «Oportunidades en la Industria 4.0 desde el sector TEIC: el Big Data»

La Facultad de Ingeniería de la Universidad de Deusto en colaboración con Gaia organiza una jornada dirigida a profesionales en torno a la Industria 4.0 y el  Big Data.

La evolución operativa y técnica de los sectores industriales y de servicios va a requerir de nuevas herramientas, como consecuencia de la  transformación digital de las organizaciones. Este cambio requiere, por parte de los profesionales, de una inmersión en conceptos, conocimiento y tecnología que puede reforzar la trayectoria profesional de los trabajadores y/o generar nuevas oportunidades de empleo para jóvenes y profesionales.

Objetivos generales

  • Compartir las previsiones de evolución operativa y técnica que van a experimentar los sectores industriales, y otras actividades de servicios conexas, como consecuencia del desarrollo de la transformación digital de las organizaciones.
  • Poner al alcance de los asistentes conceptos y casos aplicados de empresas en el desarrollo de actividades 4.0 en sus tres fases: preproducción, producción o postproducción.

Objetivos específicos

  • Reflexionar sobre iniciativas que refuercen las competencias de los profesionales ante este nuevo escenario.
  • Reflexionar sobre las oportunidades de desarrollar nuevos servicios gracias a la implantación de las TEIC en la industria.
  • Ofrecer herramientas y soluciones para el desarrollo profesional en la nueva sociedad digitalizada.
  • Entender las oportunidades que abre este paradigma del Big Data a la industria en el País Vasco como en el desarrollo de la estrategia industria 4.0.

 

Programa

09:45     Inscripción y Registro (Free/ Gratuita)

10:00    Presentación de la jornada y avance de las oportunidades

  • Alex Rayón, Vicedecano de Relaciones Externas y Formación Continua de la Facultad de  Ingeniería y Director Programa Big Data en Donostia – San Sebastián y Business Intelligence
  • Tomás Iriondo, Director General de Gaia. Presentación de Oportunidades en la Industria 4.0 desde el Sector TEIC

10:35    Mesa Redonda y Debate

  • Alex Rayón, Vicedecano de Relaciones Externas y Formación Continua de la Facultad de  Ingeniería y director Programa Big Data en Donostia – San Sebastián y Business Intelligence – Moderador
  • Gorka Esnal, Nem Solutions
  • Pablo García Bringas, Director DeustoTech
  • Fernando Sáenz, Savvy Data Systems
  • Mikel Lorente, Informática 68, S.A.

11:30     Finalización de la Jornada

11.30     Café Networking

Inscripción y Registro

La participación en esta jornada es gratuita, si bien dado el aforo limitado del espacio rogamosconfirmación de asistencia a través del siguiente enlace

Para cualquier consulta o duda sobre la sesión pueden contactar con nosotros en el correo:  formacion.ingenieria@deusto.es o en el teléfono: 94 413 92 08

Universidad de Deusto Donostia (Fuente: http://deustoemprende.deusto.es/lets-discover-innogune/)
Universidad de Deusto Donostia (Fuente: http://deustoemprende.deusto.es/lets-discover-innogune/)

Del Open Data al Linked Open Data: sacando valor de los datos enlazados

El Big Data, como nuevo paradigma de generación, procesamiento y extracción de conocimiento de los datos, facilita muchas oportunidades. Podemos medirlo prácticamente todo. Esto está dando lugar a diferentes movimientos, como el «Quantify Self«, que nos permite a cada uno de nosotros medir todo lo que hacemos (deporte, ingesta alimentos, horas de sueño, etc.).

Pero, el asunto central no es tanto ya medir, sino entender. Por eso, suelo decir que me gusta más hablar del «Understand Self«. Buscando en Google, veo que todavía no es un término que nadie haya acuñado ni capitalizado. Quizás porque no tiene mucho branding para la industria. Pero quizás podamos extrapolarlo a «Understand Things«. Es decir, que tenemos que cambiar el pensamiento desde la obsesión por el medir y el guardar, a una nueva obsesión: entender, procesar y sacar valor a los datos.

Pero esto no es sencillo. Especialmente, porque los datos brutos son poco expresivos. Necesitamos dar contexto a los datos. ¿Para qué sirve los diez kilómetros o las 1.000 calorias que has ingerido hoy? ¿Para que sirve que una empresa capte 1.000 nuevos leads o tenga más de 200 Likes? Medir está bien, pero hay que dar un paso más allá.

Por todo ello, es importante no confundir datos con información y conocimiento. Si nadie es capaz de analizar la cantidad de datos que generamos, es mejor considerarlo como basura digital. Según un estudio de EMC, en 2013 sólo el 22% de los datos del universo digital fueron útiles, y sólo el 5% de los ellos fueron analizados. A esto me refería al inicio de este artículo.

Supongo que ya habrán visto en innumerables ocasiones la representación estructural entre los Datos, la Información, el Conocimiento, y cada vez más, la Sabiduría. Me refiero a esta representación:

Pirámide Datos - Información - Conocimiento - Sabiduría (Fuente: http://legoviews.com/2013/04/06/put-knowledge-into-action-and-enhance-organisational-wisdom-lsp-and-dikw/)
Pirámide Datos – Información – Conocimiento – Sabiduría (Fuente: http://legoviews.com/2013/04/06/put-knowledge-into-action-and-enhance-organisational-wisdom-lsp-and-dikw/)

Representa las relaciones estructurales entre Datos, Información, Conocimiento y Sabiduría. La información son datos con cierto sentido significado, el Conocimiento, es Información y contexto, y la Sabiduría, es Conocimiento aplicado. Hasta aquí, entiendo que no aportamos mucha novedad a lo ya conocido.

Pero, lo que sí creemos que aporta es hacer una reflexión sobre esta pirámide cuando hablemos en entornos del sector público y agentes privados con cada vez mayor conversación e implicación con sus agentes (el fenómeno de la transparencia y la participación).

Son numerosas las iniciativas de Open Data que existen en la actualidad. En España, especialmente impulsadas por la Ley de Transparencia y todas las referencias que dicha normativa hace respecto a la apertura de conocimiento. El problema suele radicar en que nos hemos centrado mucho en hacer un ejercicio de aperturaOpen«), dejando de lado el objetivo último de la utilidad del dato en contextos y aplicaciones (es decir, pasar del dato bruto a conocimiento aplicado). Los beneficios vinculados a este movimiento (transparencia y rendición de cuentas, mejora en la toma de decisiones y promoción de una ciudadanía activa, eficiencia operativa, valor económico, etc.), son claros. Pero, ¿alguien conoce alguna medición objetiva y crítica sobre si realmente estamos alcanzado alguno de esos objetivos?

En todo ello, vemos dos asuntos que debieran pensarse más: 1) Las dificultades para hacer progresos en términos de usabilidad y utilidad de ese bien público que es el dato; y 2) El riesgo de dar más poder a los que ya lo tienen y acrecentar las desigualdades.

En cuanto al punto 1), cabe destacar aquí el fenómeno que en otros países se está viviendo respecto a la migración del «mero» Open Data, al «Open Linked Data». Los datos, cuanto más enlazados y conectados, más valor y utilidad adquieren.  Existen varias disciplinas habilitadoras como la computación y codificación del conocimiento, las redes, la computación ubicua, el almacenamiento de datos, etc.. Todas ellas, creciendo a un ritmo vertiginoso. El origen y el despliegue de datos es muy considerable, y son generados por sistemas de vigilancia y control (smart metering, control de tráfico), por dispositivos digitales (desde smartphones a cámaras), sensores activos y pasivos, escáner y las diferentes versiones de los datos voluntarios (a través de transacciones, interacciones en redes sociales, sousveillance, sistemas de crowdsourcing y ciencia ciudadana), etc.

¿Cómo juntamos todo eso y le damos una utilidad y una usabilidad a la ciudadanía? A través del enlazamiento. Una capa semántica que dé significado a todos esos datos, y que haga que los datos se entiendan entre sí, y que por consiguiente, las máquinas entiendan a los datos. Esto acelera las capacidades y multiplica las posibilidades a los que quieran sacar usabilidad de todos ellos. Big Data no puede no ser Semantic Big Data. Se trata de hacer que las máquinas entiendan nuestro lenguaje para así procesarlo mejor y ofrecer soluciones más afinadas a nuestros problemas. Crear un hub del conocimiento donde todo esté conectado y bien estructurado. Es decir, pasar al Linked Open Data.

Open Linked Data (Fuente: https://en.wikipedia.org/wiki/Linked_open_data)
Open Linked Data (Fuente: https://en.wikipedia.org/wiki/Linked_open_data)

Y la representación sobre estas líneas trabaja en favor de todo ello. Vemos como ya son muchas las organizaciones que publican datos y los enlazan a una gran red de datasets conectados. Tim Berners-Lee, el inventor de la Web e iniciador de los Datos Enlazados (Linked Data), sugirió un esquema de desarrollo de 5 estrellas para Datos Abiertos.

Esquema de cinco estrellas para datos abiertos (Fuente: http://5stardata.info/es/)
Esquema de cinco estrellas para datos abiertos (Fuente: http://5stardata.info/es/)

★ publica tus datos en la Web (con cualquier formato) y bajo una licencia abierta (un PDF colgado en una web, algo muy habitual en nuestro entorno)
★★ publícalos como datos estructurados (un Excel en vez de una imagen de una tabla escaneada, también bastante habitual)
★★★ usa formatos no propietarios (CSV en lugar de Excel, que ya cuesta ver en el entornos)
★★★★ usa URIs para denotar cosas, así la gente puede apuntar a estas
★★★★★ enlaza tus datos a otros datos para proveer contexto

Creo y espero, que en los próximos años, avancemos más hacia esa web de datos enlazados y abiertos.

Respecto a 2), el riesgo de dar más poder a los que ya lo tienen y acrecentar las desigualdades. En relación a todo ello, me he terminado recientemente de leer el libro «The Data Revolution: Big Data, Open Data, Data Infrastructures and Their Consequences» de Rob Kitchin.  Desde el primer capítulo, este formidable autor se centra en el significado epistemológico de la pirámide DIKW (Data-Information-Knowledge-Wisdom), para afrontar con una mirada crítica, los datos en términos económicos, técnicos, éticos, políticos o filosóficos, con un posicionamiento claro desde el inicio:

“[…] how data are ontologically defined and delimited is not a neutral, technical process, but a normative, political, and ethical one that is often contested and has consequences for subsequent analysis, interpretation and action”.

Esta idea deque el Big Data lo tenemos que sacar de un debate puramente técnico, y llevarlo a otras disciplinas, está cada vez más extendido. Se trata de darle sentido multidimensional a un nuevo paradigma que tiene ideología, normativa, valor económico, etc. Por lo tanto, es susceptible de generar desigualdad, por lo que requiere de intervención pública para mantener nuestros estados sociales de derecho. Es algo que Kitchin no para de destacar a lo largo de todo el libro. Y es algo que tiene mucho que ver con el Linked Open Data; una filosofía marcadamente comunitaria y de generación de riqueza conjunta que puede ayudar en todo ello. Nuestro compañero Diego López-de-Ipiña lleva hablando de esto desde hace ya mucho tiempo (pueden ver sus presentaciónes en su canal de SlideShare).

Esto, que en el mundo del análisis del dato en empresas privadas es importante, más  lo es aún cuando la reflexión se extiende al ámbito público, cuyos socios-dueños-accionistas, somos todos, y no siempre ejercemos como tal con una postura crítica y responsable. El Linked Open Data nos permitirá pasar, de manera efectiva y social, del dato en bruto, al conocimiento colectivo.