Capítulo 1. Introducción a la Analítica en Tiempo Real
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Ver en tiempo real lo que ocurre con tus datos es una enorme ventaja competitiva.
Hilary Mason, Fundadora y Directora General de Fast Forward Labs
Muchos datos en un entorno empresarial se consideran ilimitados porque llegan gradualmente a lo largo del tiempo. Los clientes, los empresarios y las máquinas produjeron datos ayer y hoy y seguirán produciendo más datos mañana. Este proceso nunca termina a menos que cierres el negocio, por lo que el conjunto de datos nunca está completo de forma significativa.
Nota
De las empresas que participaron en el Informe Confluent's Business Impact of Data Streaming: Informe sobre el Estado de los Datos en Movimiento 2022, el 97% tiene acceso a flujos de datos en tiempo real, y el 66% tiene un acceso generalizado.
Hoy en día, muchas empresas están adoptando la transmisión de datos y el análisis en tiempo real para tomar decisiones más rápidas, fiables y precisas, lo que les permite obtener una ventaja competitiva en su segmento de mercado.
Este capítulo ofrece una introducción al streaming y a la analítica en tiempo real. Comenzaremos con un repaso de los datos de streaming antes de explicar por qué las organizaciones quieren aplicar analítica sobre esos datos. Tras repasar algunos casos de uso, concluiremos con una visión general de los tipos de aplicaciones de analítica en tiempo real que podemos construir.
¿Qué es un flujo de eventos?
El término streaming describe un flujo continuo e incesante de datos. Los datos están disponibles de forma incremental a lo largo del tiempo, lo que significa que puedes actuar sobre ellos sin necesidad de esperar a que esté disponible todo el conjunto de datos para poder descargarlo.
Un flujo de datos consiste en una serie de puntos de datos ordenados en el tiempo, es decir, en orden cronológico, como se muestra en la Figura 1-1.
Cada punto de datos representa un acontecimiento, o un cambio en el estado de la empresa. Por ejemplo, puede tratarse de acontecimientos en tiempo real, como un flujo de transacciones procedentes de una organización o sensores del Internet de las Cosas (IoT) emitiendo sus lecturas.
Una cosa que tienen en común incluso los flujos de eventos es que siguen produciendo datos mientras exista la empresa. Los flujos de eventos son generados por distintas fuentes de datos de una empresa, en diversos formatos y volúmenes.
También podemos considerar un flujo de datos como un flujo de eventos inmutable y ordenado en el tiempo, que transporta hechos sobre cambios de estado ocurridos en la empresa. Estas fuentes incluyen, entre otras, las compras en el comercio electrónico, la actividad de los jugadores en el juego, la información de las redes sociales, los datos del flujo de clics, los registros de actividad de los servidores web, los datos de los sensores y la telemetría de los dispositivos conectados o la instrumentación de los centros de datos.
Un ejemplo de acontecimiento es el siguiente:
Un usuario con ID 1234 compró el artículo 567 por 3,99 $ el 2022/06/12 a las 12:23:212
Los acontecimientos son una representación inmutable de hechos ocurridos en el pasado. Los hechos de este acontecimiento se muestran en la Tabla 1-1.
Dato | Valor |
---|---|
ID de usuario |
1234 |
Artículo comprado |
567 |
Precio pagado |
$3.99 |
Al agregar y analizar los flujos de eventos, las empresas pueden descubrir información sobre sus clientes y utilizarla para mejorar sus ofertas. En la siguiente sección, hablaremos de distintos medios para dar sentido a los eventos.
Dar sentido a los datos en flujo
Los eventos tienen una vida útil. El valor empresarial de los eventos disminuye rápidamente con el tiempo, como se muestra en la Figura 1-2.
Cuanto antes comprendas el comportamiento de los eventos, antes podrás reaccionar y maximizar el resultado de tu negocio. Por ejemplo, si se da el caso de que un usuario ha abandonado su cesta de la compra, podemos ponernos en contacto con él por SMS o correo electrónico para averiguar por qué ha ocurrido eso. Tal vez podamos ofrecerle un vale por uno de los artículos de su cesta para atraerle a que vuelva y complete la transacción.
Pero eso sólo funciona si somos capaces de reaccionar al abandono del carrito en tiempo real. Si lo detectamos mañana, probablemente el usuario haya olvidado lo que estaba haciendo y probablemente ignore nuestro correo electrónico.
¿Qué es la analítica en tiempo real?
El análisis en tiempo real (ACR) describe un enfoque del procesamiento de datos que nos permite extraer valor de los acontecimientos en cuanto están disponibles.
Consejo
Cuando utilizamos el término tiempo real en este libro, nos referimos al tiempo real blando. Los retrasos causados por las latencias de la red y las pausas en la recogida de basura, por ejemplo, pueden retrasar la entrega y el procesamiento de eventos cientos de milisegundos o más.
El análisis en tiempo real difiere sustancialmente del procesamiento por lotes, en el que recogemos los datos por lotes y luego los procesamos, a menudo con un retraso bastante largo entre el momento del evento y el momento del procesamiento.La Figura 1-3 ofrece una representación visual del procesamiento por lotes.
En cambio, con el análisis en tiempo real reaccionamos justo después de que se produzca el suceso, como se muestra en la Figura 1-4.
Tradicionalmente, el procesamiento por lotes era el único medio de analizar los datos, pero nos obligaba a trazar límites temporales artificiales para que fuera más fácil dividir los datos en trozos de duración fija y procesarlos por lotes. Por ejemplo, podíamos procesar los datos de un día al final de cada día o los de una hora al final de cada hora. Eso era demasiado lento para muchos usuarios, porque producía resultados obsoletos y no les permitía reaccionar a las cosas según iban sucediendo.
Con el tiempo, el impacto de estos problemas se redujo disminuyendo el tamaño de los lotes de procesamiento hasta el minuto o incluso el segundo, lo que finalmente condujo a que los eventos se procesaran a medida que llegaban y se abandonaran los tramos de tiempo fijos. Y esa es toda la idea que subyace a la analítica en tiempo real!
Los sistemas de análisis en tiempo real capturan, analizan y actúan sobre los eventos en cuanto están disponibles. Son la contrapartida sin límites y de procesamiento incremental a los sistemas de procesamiento por lotes que han dominado el espacio del análisis de datos durante años.
Ventajas de la analítica en tiempo real
La velocidad es un factor decisivo en la toma de decisiones , donde las organizaciones que son lo bastante rápidas para comprender y responder a los acontecimientos se convierten más a menudo en líderes del mercado, mientras que otras siguen siendo seguidoras. Por tanto, un sistema de análisis en tiempo real puede ser beneficioso para las empresas de muchas formas, como se muestra en la Figura 1-5.
En esta sección, exploraremos varias ventajas de los sistemas de análisis en tiempo real.
Nuevas fuentes de ingresos
La analítica en tiempo real puede generar nuevas fuentes de ingresos para las organizaciones en de dos formas distintas. Permitiendo que los usuarios finales tengan acceso a las capacidades de consulta analítica, las organizaciones pueden desarrollar productos totalmente nuevos centrados en los datos que sean lo suficientemente atractivos como para que los usuarios paguen por tener acceso a ellos.
Además, los análisis en tiempo real pueden hacer que las aplicaciones existentes sean más atractivas, lo que conduce a un mayor compromiso y retención de los usuarios, así como a impulsar un mayor uso de la aplicación, creando en última instancia más ingresos para la organización.
Acceso oportuno a la información
La analítica en tiempo real permite tomar decisiones mejores, más rápidas y mejoradas al proporcionar acceso oportuno a información procesable. Las empresas pueden maximizar sus beneficios y reducir las pérdidas comprendiendo los acontecimientos y reaccionando ante ellos en tiempo real. Por ejemplo, el análisis del comportamiento de los clientes en tiempo real permite lanzar campañas de marketing dinámicas y más centradas, que a menudo generan grandes beneficios. Además, un sistema de monitoreo de la temperatura en tiempo real puede reducir los costes apagando el aire acondicionado en función de las fluctuaciones de temperatura.
Reducción del coste de infraestructura
En el procesamiento por lotes tradicional, los datos almacenamiento y el cálculo suelen estar acoplados, lo que da lugar a un crecimiento exponencial del coste de la infraestructura a medida que el volumen de datos crece con el tiempo. En el análisis en tiempo real, los datos se procesan a medida que llegan, eliminando la necesidad de costosos sistemas de almacenamiento y procesamiento de datos.
Mejora de la experiencia global del cliente
En el pasado, la resolución de los problemas de los clientes requería un enfoque reactivo bastante , ya que los problemas se notificaban, diagnosticaban y resolvían en plazos prolongados. Con los análisis en tiempo real, las empresas pueden atender a los clientes de forma proactiva, monitorizando constantemente los posibles problemas y solucionándolos automáticamente, lo que mejora la satisfacción general del cliente.
Casos prácticos de análisis en tiempo real
La analítica en tiempo real no es algo nuevo. Existe en muchos sectores desde hace bastante tiempo . En esta sección, veremos varios casos de uso en el mundo real en los que la analítica en tiempo real es aplicable y ya ha estado aportando valor a las empresas.
Hay una gran variedad de casos de uso para la analítica en tiempo real, y cada caso de uso tiene diferentes requisitos con respecto al rendimiento de las consultas, la latencia de las consultas, la complejidad de las consultas y la precisión de los datos. Un caso de uso de métricas en tiempo real requiere una mayor precisión de los datos, pero no pasa nada si las consultas tardan un poco más en volver. En cambio, una aplicación analítica orientada al usuario debe estar optimizada para la velocidad de consulta.
La Tabla 1-2 describe algunos casos de uso y sus propiedades de consulta.
Caso práctico | Rendimiento de las consultas (consultas/segundo) | Latencia de la consulta (p95ª) | Coherencia y precisión | Complejidad de la consulta |
---|---|---|---|---|
Análisis de cara al usuario |
Muy alta |
Muy bajo |
Mejor esfuerzo |
Baja |
Personalización |
Muy alta |
Muy bajo |
Mejor esfuerzo |
Baja |
Métricas |
Alta |
Muy bajo |
Preciso |
Baja |
Detección de anomalías |
Moderado |
Muy bajo |
Mejor esfuerzo |
Baja |
Análisis de la causa raíz |
Alta |
Muy bajo |
Mejor esfuerzo |
Baja |
Visualizaciones y cuadros de mando |
Moderado |
Baja |
Mejor esfuerzo |
Medio |
Análisis ad hoc |
Baja |
Alta |
Mejor esfuerzo |
Alta |
Análisis de registros y búsqueda de texto |
Moderado |
Moderado |
Mejor esfuerzo |
Medio |
Análisis de cara al usuario
Las organizaciones llevan mucho tiempo generando y recopilando cantidades ingentes de datos. La analítica de esos datos ha venido desempeñando un papel crucial en el análisis del comportamiento de los usuarios, el potencial de crecimiento y el gasto en ingresos, permitiendo a empleados y ejecutivos tomar decisiones empresariales clave.
Esta analítica se ha hecho sobre todo dentro de las organizaciones, pero cada vez hay más deseo de proporcionar esta capacidad analítica directamente a los usuarios finales. Hacerlo así democratizará la toma de decisiones y proporcionará una experiencia aún más personalizada. Se ha acuñado el término "análisis de cara al usuario" para describir este proceso.
Los requisitos clave son un alto rendimiento y una baja latencia de consulta, ya que esto repercute directamente en la experiencia del usuario.
Personalización
La personalización es un tipo especial de análisis de cara al usuario que se utiliza para personalizar la experiencia del producto para un usuario determinado. Esto puede significar mostrarles contenidos que les interesen especialmente o presentarles cupones específicos para sus intereses.
Esto se hace recorriendo la actividad y la interacción con el producto de un usuario y extrayendo características en tiempo real, que luego se utilizan para generar recomendaciones o acciones personalizadas.
Métricas
El seguimiento de las métricas empresariales en tiempo real permite a obtener una visión actualizada de los indicadores clave de rendimiento (KPI). Esto permite a las organizaciones identificar problemas y tomar medidas proactivas para resolverlos a tiempo.
Poder hacerlo es especialmente crítico para la inteligencia operativa, la detección de anomalías/fraude y la planificación financiera.
Este caso de uso requiere un elevado número de consultas por segundo, junto con una baja latencia. También debemos conseguir un alto grado de precisión de los datos.
Detección de anomalías y análisis de la causa raíz
Detección de anomalías y causa raíz El análisis dees un caso de uso popular cuando se trabaja con datos de series temporales. Los datos de series temporales son una secuencia de puntos de datos recogidos durante un periodo de tiempo.
En el contexto del comercio electrónico, esto podría incluir datos como el número de transacciones diarias, el valor medio de las transacciones o el número de devoluciones.
La detección de anomalías consiste en identificar patrones inusuales en los datos que puedan indicar un problema que debamos abordar. Ese problema podría ser un aumento repentino de pedidos de un producto concreto o incluso que se está cometiendo una actividad fraudulenta.
En cualquier caso, tenemos que averiguar qué ha fallado rápidamente. No sirve de nada enterarse de que tuvimos un problema hace 24 horas: ¡tenemos que saberlo ahora!
Y una vez que hemos detectado que ha ocurrido algo inusual, también necesitamos comprender qué dimensiones fueron las responsables de las anomalías. En otras palabras, tenemos que encontrar la causa raíz del problema.
Este caso de uso realiza exploraciones temporales y consultas Agrupar por a un elevado número de consultas por segundo.
Visualización
Se ha hablado mucho de la muerte del cuadro de mando, pero los cuadros de mando siguen teniendo un papel que desempeñar en el espacio de la analítica en tiempo real.
Puede ser tan sencillo como un cuadro de mandos que represente las métricas en diferentes gráficos o tan complejo como la visualización geoespacial, la agrupación, el análisis de tendencias y mucho más. La principal diferencia con un cuadro de mando típico es que las tablas y los gráficos se actualizarán constantemente a medida que se reciban nuevos datos.
La capa de servicio debe integrarse con las soluciones de visualización existentes, como Apache Superset y Grafana.
Análisis ad hoc
Los analistas a menudo quieren hacer una exploración de los datos en tiempo real para depurar problemas y detectar patrones a medida que se ingieren los eventos. Esto significa que necesitamos poder ejecutar consultas SQL contra la capa de servicio.
Los analistas también querrán hacer algún análisis que combine datos en tiempo real con datos históricos. Por ejemplo, puede que quieran ver cómo está funcionando la empresa este mes en comparación con el mismo mes de años anteriores. Esto significa que, o bien tenemos que introducir los datos históricos en la capa de servicio, o bien utilizar un motor de consultas SQL distribuido que pueda combinar múltiples fuentes de datos. El número de consultas por segundo será lento, pero la complejidad de las consultas probablemente será alta.
Análisis de registros/Búsqueda de texto
Ejecutar consultas de búsqueda de texto en tiempo real en los datos de registro de la aplicación es un caso de uso menos común, pero importante. Como los registros suelen estar desestructurados, debemos poder ejecutar búsquedas de texto de tipo regex en estos datos para clasificar los problemas de producción.
Las consultas por segundo serán bajas para la mayoría de las aplicaciones de , pero serán más altas si estamos depurando una aplicación de cara al usuario.
Clasificación de las aplicaciones analíticas en tiempo real
Ahora que ya conoces datos de flujo y análisis en tiempo real, junto con sus ventajas y varios casos de uso en la industria, los capítulos restantes del libro te guiarán a través del proceso de creación de aplicaciones de análisis en tiempo real para aprovechar el valor de los datos de flujo.
Antes de empezar a construir, clasifiquemos las aplicaciones analíticas en tiempo real en función de la audiencia y los casos de uso a los que sirven. Eso nos ayudará a elegir el tipo de aplicación adecuado para resolver nuestras necesidades analíticas.
El diagrama de cuadrantes de la Figura 1-6 divide las aplicaciones analíticas en tiempo real en cuatro categorías a lo largo de dos ejes.
Orientación interna frente a orientación externa
Hay dos tipos de aplicaciones analíticas en tiempo real: las internas y las externas.
Orientación interna significa que los conocimientos producidos por las aplicaciones se utilizan dentro de los límites de la organización, posiblemente para casos de uso interno. Un ejemplo sería una empresa de transporte que monitorea el rendimiento de los vehículos para optimizar la eficiencia del combustible y detectar problemas de mantenimiento, o un proveedor de telecomunicaciones que monitorea el rendimiento y la capacidad de la red.
Laorientación externa significa que los conocimientos son consumidos por un público ajeno a la organización, posiblemente por usuarios finales. Por ejemplo, un usuario de unaaplicación de viajes compartidos que rastrea la ubicación del viaje en tiempo real o una aplicación sanitaria que rastrea las constantes vitales del paciente en tiempo real y alerta a los profesionales sanitarios de cualquier cambio que requiera atención.
Tradicionalmente, se han creado muchas más aplicaciones para usuarios internos porque es más fácil hacerlo. El número de usuarios que acceden simultáneamente a una aplicación interna suele ser relativamente pequeño, y también tienen una mayor tolerancia a la latencia de las consultas: si una consulta tarda 10 segundos en ejecutarse, que así sea.
Los usuarios externos, en cambio, no son tan indulgentes. Esperan que las consultas devuelvan los resultados al instante, y hay muchos más de estos usuarios accediendo a una aplicación determinada, todos los cuales probablemente estarán utilizando el sistema al mismo tiempo. Por otro lado, servir análisis en tiempo real a usuarios externos nos brinda una gran oportunidad, como se muestra en la Figura 1-7.
Los análisis en tiempo real mejoran los productos que ofrecemos a los usuarios externos, lo que a su vez significa que más de ellos los utilizarán y se comprometerán con ellos, generando más datos que podemos utilizar para crear nuevos productos.
La máquina frente al ser humano
Los análisis producidos por las aplicaciones orientadas al ser humano se ofrecen mediante una interfaz de usuario, como un panel de control, y son consumidos por seres humanos, como responsables de la toma de decisiones, analistas, operadores, ingenieros y usuarios finales. La exploración interactiva ad hoc de los conocimientos es el objetivo principal de estas aplicaciones.
Las aplicaciones analíticasorientadas a la máquina son consumidas por máquinas, como los microservicios, los motores de recomendación y los algoritmos de aprendizaje automático. En ellos, la lógica para derivar los análisis se programa en la aplicación antes de la ejecución, eliminando cualquier intervención humana. La velocidad y la precisión son objetivos primordiales de las aplicaciones orientadas a la máquina, en las que los humanos a menudo no consiguen ofrecer resultados a escala.
Resumen
En este capítulo, hemos aprendido cómo los flujos de eventos forman la base de la analítica en tiempo real, una práctica que consiste en analizar los eventos en cuanto están disponibles. También hemos hablado de las ventajas de la analítica en tiempo real, junto con algunos casos de uso en el sector. Por último, hemos clasificado las aplicaciones de la analítica en tiempo real en función del público al que sirven.
En el próximo capítulo, profundizaremos en el panorama del análisis en tiempo real para identificar los componentes críticos que existen en una infraestructura típica de análisis en tiempo real.
Get Creación de sistemas de análisis en tiempo real now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.