Real Time Analytics

Real Time Analytics es una disciplina que aplica la lógica y las matemáticas para proporcionar información a las empresas, de manera que puedan actuar sobre los datos inmediatamente o poco después de que los datos ingresen en el sistema. De esta manera, el análisis de aplicaciones en tiempo real puede responder a consultas en segundos.

Se trata de manejar grandes cantidades de datos con alta velocidad y tiempos de respuesta bajos. Un ejemplo típico lo encontramos en el área financiera, donde el análisis de big data en tiempo real utiliza datos en bases de datos para informar las decisiones comerciales.

Analítica en tiempo real permite hacer análisis de datos inmediatamente (real-time) o lo más cercano en el tiempo posible (near real-time), a cuando sucedió algún hecho concreto o se generó un escenario particular en el que se necesite reaccionar. 

Tradicionalmente se aplicaban estos análisis sobre datos que se generaban únicamente en la organización y las herramientas que habilitaban a hacer estos análisis tenían costos que no todas las organizaciones podían afrontar.

Hoy en día, los datos pueden ser internos o también externos a la organización, por ejemplo podrían ser obtenidos de las redes sociales.

Normalmente cuando se habla de análisis en tiempo real, tiene sentido que los datos se generen en streaming, es decir se generan contínuamente (como por ejemplo: logs, click streams, sensores, etc) y también se procesan en streaming, es decir se procesan ni bien llegan sin necesidad de persistirlos previamente.

Estos dos aspectos traen asociados sus complejidades y por consiguiente hay que tener ciertos mecanismos para tratar los posibles problemas que puedan surgir en el momento en que se procesan. Por ejemplo, los datos podrían llegar en desorden, podrían llegar desde diversas fuentes y cada una puede tener diversos problemas, pueden tener sus problemas de calidad de datos, etc.

Hoy en día la diversidad de herramientas disponibles es muy interesante: propietarias, open-source, con/sin costo de licencia, con/sin costo de soporte, etc. En otras palabras, actualmente las herramientas están, falta que las organizaciones hagan uso de las mismas para beneficiarse de los resultados que se podrían obtener de ellas. 

Casos de uso

No es cuestión solamente de ser rápidos en detectar un evento, sino de tener la oportunidad de ser proactivos y poder sacar una ventaja competitiva por haber detectado el evento tempranamente. A veces es cuestión de ser mejor que la competencia, otras es cuestión de poder mitigar un problema cuanto antes, antes de que se dilate o agrave por el paso del tiempo.

Hay diversos intereses por los que una organización puede querer aplicar analítica en tiempo real, algunos ejemplos: 

  • una organización de e-commerce va a querer disponibilidad absoluta de su sitio, para no perder ventas.
  • una organización que ya tenga conocimiento de ciertos comportamientos fraudulentos, va a querer detectar cuanto antes un nuevo hecho y anticiparse al mismo.
  • un área de soporte de TI, va a querer tener monitoreados todos los recursos que tienen a su cargo y poder reaccionar cuanto antes de una falla,
  • en cualquier escenario de mantenimiento de máquinas, al ganar madurez en análisis predictivo, poder predecir una falla.

Requerimientos

Qué necesitan las organizaciones para estar listas para poder aplicarlas exitosamente, algunos ejemplos:

  • para toda fuente que sea necesario que estén los datos para el análisis en tiempo real, que esté la capacidad de una vez generado un dato, sea enviado lo antes posible al sistema que hace el procesamiento en tiempo real. Es deseable que se envíe de a registros, evitando el clásico buffer de datos en x tiempo.
  • que los encargados de implementar el análisis en tiempo real, cuenten con las tecnologías adecuadas para recibir y procesar los datos cuanto antes.
  • tener claro qué tipos de análisis se quieren hacer. Veremos más adelante algunas opciones.
  • contar con la red necesaria en la organización, para que los datos puedan transferirse adecuadamente con la menor latencia posible.
  • contar con hardware y software necesarios. Es posible que se necesite llevar adelante una estrategia de alta disponibilidad y minimizar los impactos de todos los puntos posibles de fallas.
  • poner en marcha el primer pipeline en tiempo real, analizar problemas que surjan, solucionarlos e iterar. 

Por lo mencionado anteriormente, hay muchos puntos posibles de falla o que pueden impactar en la performance de la solución. Por lo que hay que analizar el pipeline completo y también una vez puesto en marcha el pipeline, analizar el comportamiento en cada punto.

Tipos de análisis en tiempo real

Hay muchos tipos de análisis que pueden llevarse adelante, pueden darse híbridos o también surgir nuevos tipos en base a las necesidades de la organización.

  • Monitorización: ver los datos que se van generando en tiempo real. Un caso podría ser analizar la flota de vehículos de una empresa en tiempo real.
  • Transformar y enriquecer  datos: modificar los datos que van llegando para que tengan más sentido en los análisis, por ejemplo filtrarlos, aplicar reglas simples a los diferentes campos.
  • Agregaciones: hacer agregaciones en ventanas de tiempo, ejemplo cantidad de ventas cada 30 minutos. También podría ser usar herramientas que ingesten los datos ni bien llegan en un modelo de tiempo, dimensiones y medidas; al estilo cubos de BI pero agregando al modelo cada registro que va llegando y pudiendo consultarlos ni bien llegan con un mínimo delay.
  • Análisis cruzando con históricos: se podría querer cruzar datos que van llegando con datos históricos, persistidos en bases de datos/big data/herramientas de indexado/etc. Hoy en día las herramientas soportan Streaming SQL, por lo que se usaría una herramienta muy utilizada en los análisis tradicionales y bajando los requerimientos de aprendizaje de nuevas herramientas.
  • Detectar hechos particulares con patrones: en datos en reposo se puede buscar patrones que ayuden a detectar escenarios deseados y ejecutar un proceso en la herramienta de streaming con esos patrones para detectar esos escenarios deseados cuanto antes.
  • Inferirnuevos patrones: por ejemplo utilizando series de tiempo se podrían identificar comportamientos que están sucediendo.

Hay muchísimos ejemplos de cosas que se podrían hacer, y hay casos que son más simples de llevar adelante y se puede comenzar con ellos para empezar a generar cultura de tiempo real en la organización.

Hoy en día hay herramientas que dan muchas posibilidades y flexibilidad, para hacer análisis en tiempo real adaptados a lo que necesita la organización.

Beneficios de Real Time Analytics

Desde detecciones de fraude, recomendaciones de compra o datos financieros. La combinación de Real Time Data y áreas como el Machine Learning puede proporcionar soluciones nunca vistas hasta ahora.

Monitorización en tiempo real para negocios

Los datos son uno de los activos más importantes de las empresas. Desde el comportamiento del consumidor, el seguimiento del inventario y stockaje, hasta su uso en fábricas. Los datos pueden ayudar a las empresas a detectar tendencias o medir rendimientos, incluso en tiempo real.

  • Mantenimiento predictivo de equipos
  • Sistemas de detección de fraude
  • Sistemas de recomendación