Extracción de información en tiempo real de flujos de datos

La necesidad de obtener valor de los datos en tiempo real en ámbitos como la Detección del fraude, el Análisis Social, el Internet de las cosas (IoT), etc. y poder actuar en consecuencia es un hecho.

Dentro del ecosistema de Big Data existen varias soluciones que permiten realizar este tipo de procesamiento de datos (Spark, Apache Storm y DataTorrent RTS). A continuación vamos a presentar un ejemplo sencillo de arquitectura en tiempo real, que toma como flujo de datos a analizar los tweets que proporciona  el API de Twitter.

El procesamiento y análisis de los tweets nos permite plasmar la información de forma visual en un dashboard utilizando ciertos widgets que se irán actualizando en tiempo real (cada 30 segundos).

Las métricas a visualizar por cada intervalo de procesamiento, serán las siguientes:

  • Número total de tweets procesados.
  • Top tweets por lenguaje.
  • Top usuarios distintos por lenguaje.
  • Máximo Tweets procesados en un intervalo y fecha en el que se produjo dicho máximo.
  • Número total de lenguajes procesados en el intervalo.
  • Número total de lenguajes procesados en el intervalo.

Arquitectura utilizada

El origen de datos a analizar son los tweets publicados en Twitter. Para poder trabajar con ellos utilizamos la librería Java Twitter4J, que maneja el API de Streaming de Twitter.

Apache Storm será el sistema que nos permitirá  conectar con Twitter y analizar los streams de datos en tiempo real de manera distribuida, tolerante a fallos y en alta disponibilidad, y publicar los resultados.

La publicación se realizará  en Redis,  base de datos NoSQL  de tipo clave-valor, cuyas características principales son: velocidad (ya que mantiene la información en memoria), sencillez de uso y flexibilidad.

Las métricas serán consumidas a través de Redis  desde Node.js (entorno Javascript del lado del servidor, basado en eventos) para su posterior visualización en D3.js (librería JavaScript que nos permite visualizar datos con los estándares Web existente - HTML, CSS y SVG).

El resultado de la ejecución  de la tipología se ve a través del siguiente dashboard cuyos widgets  se actualizan cada 30 segundos con la información publicada en Redis.

Dashboard

Siguiendo la evolución del dashboard se puede observar que:

  • El número medio de tweets procesados en cada intervalo es de 1.600.
  • El top tres de lenguajes es: inglés, japonés y español, de un total de 23 procesados.
  • El número medio de usuarios distintos procesados en cada intervalo es de  1.600, es decir, que en el intervalo de análisis solo se escribe un tweet por usuario.

Este es un ejemplo real de lo que el procesamiento y análisis de datos en tiempo real ofrece a una  organización. La información permite a una empresa tener la capacidad de tomar una decisión inmediata en aquellos  momentos en los que actuar en cuestión de segundos o minutos es significativo.

Con la información adecuada en el momento preciso gracias a las alertas o notificaciones  en los análisis en tiempo real, se puede  prever  una acción  inmediata. Solo así es posible dar conocimiento de una situación anormal, pudiendo reaccionar adecuadamente a lo que está sucediendo y lo que pueda suceder, desencadenando, por ejemplo, otros procesos o acciones que resuelvan la situación.

Sonia García Fernández - Mánager Área Big Data

Añadir nuevo comentario