Sergio-Nabil Khayyat, Arquitecto Big Data en el Instituto de Ingeniería del Conocimiento – IIC, ha participado en Open Expo 2017, donde expuso «El tiempo es fácil… si sabes cómo». En la ponencia habló de las peculiaridades del procesamiento de flujos de información en tiempo real para obtener valor de los datos.
Sergio mostró cómo una arquitectura escalable basada en software Open Source (Docker, Storm, Kafka y Elastic Search) puede servir de base para el análisis de opinión en tiempo real de los contenidos de las redes sociales.
También explicó cómo usarlo para la detección de crisis de reputación utilizando una herramienta de monitorización y análisis de redes sociales, Lynguo. Para el éxito de cualquier proyecto desarrollado con técnicas Big Data es básico comprender cómo fluyen esos datos y cómo se canalizan en tiempo real.
Un río de datos
El río de datos fluye de forma continua. En todos los procesos contamos con una gran cantidad de datos que llegan de manera constante, creciente y en tiempo real. Estos datos pueden inundar las decisiones si no estamos preparados para la riada.
El cliente intuye que puede obtener valor de los datos para responder a las necesidades de su negocio, pero ¿cómo puede conseguirlo? El quid de la cuestión está en utilizar esos datos en tiempo real para saber qué decisiones tomar en ese mismo momento en el que los estamos analizando.
Un ejemplo claro de este fluir de datos constante y creciente son las redes sociales. Tu marca puede estar sufriendo una crisis de reputación y para detectarla en tiempo real y dar una solución inmediata es necesario conocer la opinión de los usuarios. Para ello es fundamental analizar los comentarios que llegan, por ejemplo, a través de una gran cantidad de tweets.
Limpiar los datos: el agua está sucia
El río de datos no es cristalino. Es de gran importancia conocer el estado de los datos. En ocasiones, los datos están «sucios». Es necesario limpiar los datos de toda información que no está realmente relacionada con mi objetivo.
A veces, cuando el agua corre sucia no solo hay que hacer limpieza de esos datos que están llegando, sino que hay que completarlos además con información adicional relacionada. El objetivo es enriquecer los datos que nos llegan en tiempo real para poder trabajar con ellos.
Para poder efectuar esta limpieza y el posterior enriquecimiento de los datos, hay que filtrar los datos según llegan. Para ello, utilizamos Apache Storm, una herramienta framework de procesamiento en tiempo real. Este mismo proceso puede hacerse también a través de otras herramientas escalables como Spark o Flink. El framework se utiliza para limpiar, filtrar y canalizar nuestro río de datos.
Organizar los datos: hazme un lago para nadar
El río fluye limpio ahora, pero cae en cascada. Necesitamos construir un lago donde nadar, un lugar donde poder analizar y trabajar con los datos de valor que llegan para sacar conclusiones y tomar decisiones en base a ellos: un panel con gráficas, unas estadísticas…
Para crear una interfaz con la que poder empezar a trabajar en Business Intelligence podemos usar Elasticsearch. Elasticsearch es una base de datos NO-SQL con una gran capacidad estadística para ofrecer datos accionables. Es open source y permite hacer todo tipo de agregaciones de datos para poder hacer estadísticas.
No es fácil encontrar expertos en bases de datos no-sql, pero el beneficio es enorme. Elasticsearch es una base de datos documental, admite coordenadas y, más importante aún, escala muy bien horizontalmente.
Además podemos juntar Elasticsearch con Kibana para obtener gráficos y realizar todo tipo de análisis aprovechando por completo las capacidades estadísticas de Elasticsearch, ya que se integran perfectamente.
Gestionar los datos: desborde del agua
Llegados a este punto, ya podemos ofrecer información de valor al cliente. Pero cuando el flujo de datos crece de improviso, ¿qué hacemos si el río viene muy crecido? Cuando el sistema se queda pequeño de forma impredecible, necesitamos una presa. Con ella podremos contener los datos y gestionar la información de una forma más ordenada.
En programación podemos gestionar los datos utilizando «colas de mensajes». Gracias a Kafka, un proyecto de Apache, podemos distribuir mejor la información. Es un lugar de confianza que distribuye logs de información y que, además, permite hacer réplicas.
Kafka admite bien la ingesta de datos y, en caso de necesitarlo, cuenta también con soporte técnico. Podemos usarlo para amortiguar la presión del agua y que no se nos desborde de improviso.
Organizar los datos: fugas de agua
Cuando surgen inconvenientes en la arquitectura del sistema o las necesidades del negocio cambian, el agua puede empezar a salirse por otra parte. Lo ideal es utilizar la tecnología planteada por Docker para adaptar o trasladar nuestro sistema a la nueva fuente u origen de los datos, corregirlo o modificarlo de forma sencilla.
Cada vez más gente utiliza ya en producción este tipo de contenedores para hacer y entregar software. Docker permite levantar, distribuir y escalar software fácilmente. Si dentro del contendor todo está conectado y funciona correctamente, el entorno es indiferente, ya sea Ubuntu, RedHat o cualquier otro.
Con un solo comando podemos levantar todo un sistema con un montón de componentes de forma relativamente sencilla. Usar Docker nos permite arrancar de nuevo el sistema a partir de datos nuevos.
Visualización del sistema
Todo este flujo puede originarse en cualquier cima, partiendo de cualquier proveedor o capturador de datos. Ver el proyecto en perspectiva, haciendo una buena foto satélite de la información, nos permite seguir su curso y redirigirlo según las necesidades del cliente.
Lo bueno que sea nuestro sistema dependerá del proceso de limpieza, canalización y análisis de la información y de cómo se lo mostremos a los usuarios.
Para un entorno como el de las redes sociales, sin un proveedor específico de datos, con volúmenes de información enormes, donde las crecidas son habituales y el agua hay que dirigirla a un fuego diferente cada vez.
En este entorno, en el IIC integramos toda esta solución en Lynguo, una herramienta de monitorización y escucha de redes sociales desarrollada enteramente por el IIC apoyándose en el software open source antes mencionado, y en la que volcamos toda la información para mostrarla según los intereses del usuario en una interfaz a medida.
El IIC lleva años trabajando en el desarrollo de Lynguo con técnicas de procesamiento de lenguaje natural, basándose en todas estas herramientas open source. Hemos perfeccionado la capa de análisis de sentimiento del texto, tanto de opinión como de emoción.
Simplificamos la visualización de datos para que el cliente pueda verlos según sus intereses de una forma sencilla y con una interfaz adaptada a sus necesidades. Además Lynguo cuenta con un motor de alertas propio, que permite que personas que no sean técnicos puedan configurar reglas para detectar crisis o incidencias de forma automática en el momento en que se producen. Hacerlo en tiempo real es fácil… si sabes cómo.
Puedes ver el vídeo de la ponencia de Sergio-Nabil:
El tiempo es fácil… si sabes cómo
Pocas veces es posible leer un artículo en que el experto en IT de expresa de una manera en que todos entienden de que trata el tema y de como solucionar sus expectativas presente y futura.
Es de esperar que muchos expongan de esta manera.