A diferencia del procesamiento por lotes tradicional, que trabaja con conjuntos de datos estáticos, el procesamiento de flujos gestiona flujos continuos de datos procedentes de diversas fuentes, como sensores, plataformas de redes sociales, transacciones financieras y dispositivos del Internet de las cosas (IoT). Cada cambio, acción o suceso dentro de estos sistemas de origen puede representarse como un “evento”, razón por la cual el procesamiento de flujos también se denomina a veces “procesamiento de flujos de eventos”.
Este enfoque en tiempo real ayuda a las organizaciones a responder de inmediato a la nueva información, lo que hace que el procesamiento de flujos sea ideal para aplicaciones como la detección del fraude, el análisis predictivo y la experiencia del cliente personalizada. Plataformas como Apache Kafka se utilizan habitualmente para dar soporte al procesamiento de flujos, al permitir que los sistemas publiquen, transporten y procesen grandes volúmenes de datos en tiempo real de forma fiable y a escala.
El procesamiento de flujos también es importante para las aplicaciones de inteligencia artificial (IA) y machine learning (ML), que a menudo dependen de datos oportunos y actualizados continuamente para generar predicciones y perspectivas precisas. Sin el procesamiento de flujos, los modelos pueden basarse en datos obsoletos o incompletos, lo que puede reducir la precisión de las predicciones y aumentar el riesgo.
La arquitectura de procesamiento de flujos contiene tecnologías y patrones que consumen, transportan, procesan y analizan flujos de datos en tiempo real.
En una arquitectura típica, los flujos de datos continuos se desplazan a través de una plataforma de datos en transmisión, donde se consumen, se almacenan y se ponen a disposición de los sistemas posteriores. A continuación, los marcos y aplicaciones de procesamiento de flujos procesan los datos en tiempo real y los envían a los destinos posteriores.
Algunas arquitecturas de procesamiento de flujos siguen patrones arquitectónicos como Lambda o Kappa. La arquitectura Lambda utiliza un enfoque de doble canalización que combina el procesamiento por lotes y el procesamiento de flujos, a menudo para dar soporte al análisis de datos históricos y al procesamiento de baja latencia. Kappa utiliza un único canal de transmisión para todos los datos, lo que puede simplificar la arquitectura general y suele elegirse para datos impulsados por eventos.
Las plataformas de datos en transmisión proporcionan la base para las canalizaciones de datos y las aplicaciones en tiempo real. Sirven como vía de comunicación y capa de almacenamiento que permite que los datos fluyan entre los sistemas o aplicaciones que generan eventos y los servicios o aplicaciones que procesan o analizan dichos eventos.
Apache Kafka es una de las plataformas de código abierto más utilizadas para la transmisión de eventos. A través de su registro de eventos distribuido y duradero, Kafka permite a las aplicaciones publicar, suscribirse, almacenar y reproducir flujos de datos. Estas capacidades lo hacen útil para el análisis en tiempo real, la integración de aplicaciones, la detección del fraude, el proceso de datos del IoT y las arquitecturas basadas en eventos.
Confluent es una plataforma de transmisión de datos basada en Apache Kafka. Ofrece servicios gestionados, conectores, gobierno, gestión de esquemas, seguridad y herramientas de procesamiento de flujos para ayudar a las organizaciones a operar Kafka a escala.
Otras plataformas y servicios de transmisión de datos incluyen:
Los marcos de procesamiento de flujos son herramientas que utilizan los desarrolladores para procesar y analizar datos en movimiento. Mientras que las plataformas de transmisión como Kafka se centran en la ingesta, el almacenamiento y el transporte de eventos, los marcos de procesamiento de flujos se centran en el cálculo: filtrar, transformar, unir, agregar y analizar datos a medida que se desplazan a través de una canalización.
Muchos marcos de procesamiento de flujos se integran con Kafka, utilizando los temas de Kafka como fuente de eventos entrantes y como destino de los resultados procesados.
Entre los ejemplos de marcos y herramientas de procesamiento de flujos se incluyen:
Imagínese monitorizar las constantes vitales de un paciente, pero solo comprobar los datos cada pocas horas: los proveedores médicos pasarían por alto cambios críticos que requieren una actuación inmediata.
Las organizaciones de todos los sectores se enfrentan a riesgos similares cuando operan únicamente con un proceso de datos diferido o por lotes. Para actuar con rapidez y precisión, necesitan acceder a la información en el momento en que se produce. Los sistemas de procesamiento de flujos satisfacen esta necesidad al consumir y analizar datos de forma continua y en tiempo real, reduciendo la latencia inherente a las cargas de trabajo programadas de extracción, transformación y carga (ETL) por lotes.
Mediante el proceso en tiempo real de datos procedentes de sistemas distribuidos en entornos híbridos y multinube (como bases de datos relacionales, data lakes, colas de mensajes, dispositivos IoT y aplicaciones empresariales), el procesamiento de flujos ayuda a las organizaciones a crear una visión más unificada y casi en tiempo real de los datos operativos. Esto respalda casos de uso como la detección de anomalías, la prevención del fraude, la tarificación dinámica y la personalización en tiempo real.
El procesamiento de flujos también es cada vez más importante para escalar iniciativas de IA que dependen de datos actualizados continuamente. A medida que crecen los volúmenes de datos y la complejidad de los modelos, la infraestructura de datos empresarial debe ser capaz de gestionar un alto rendimiento y escalar rápidamente en entornos distribuidos.
Una investigación del IBM® Institute for Business Value muestra que aproximadamente la mitad de las organizaciones encuestadas están dando prioridad a la optimización de la red, un proceso de datos más rápido y la computación distribuida para dar soporte a las cargas de trabajo modernas. Sin la capacidad de procesar y entregar datos de gran volumen en tiempo real, las organizaciones corren el riesgo de obtener perspectivas con mayor lentitud, una precisión reducida de los modelos y la pérdida de oportunidades para obtener una ventaja competitiva.
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
El procesamiento de flujos desempeña un papel importante en las aplicaciones de IA que requieren capacidad de respuesta en tiempo real. Por ejemplo, los sistemas de IA para el mantenimiento predictivo, la detección del fraude, los sistemas autónomos y las recomendaciones personalizadas suelen basarse en datos recientes y de alta velocidad para generar predicciones o decisiones oportunas.
Al permitir que las aplicaciones de IA consuman y actúen sobre los datos a medida que se generan (ya sea a partir de lecturas de sensores en equipos industriales o del comportamiento de los usuarios en un sitio web), el procesamiento de flujos ayuda a los sistemas de IA a responder a las condiciones cambiantes en tiempo real. Esta capacidad mejora tanto la precisión como la relevancia de los resultados de la IA. De hecho, según el IBM Institute for Business Value, casi el 55 % de las organizaciones encuestadas citan la mejora de la experiencia del cliente a través de capacidades de IA en tiempo real como el principal motor para invertir en infraestructura de IA.
El procesamiento de flujos también respalda la implementación y la mejora de los modelos de IA. Los flujos de datos en tiempo real envían datos a data lakes, almacenes de datos o almacenes de características, creando una fuente continua de datos para la monitorización, la evaluación y el reentrenamiento de los modelos a lo largo del tiempo.
El procesamiento de flujos ofrece una amplia gama de beneficios que ayudan a las organizaciones a responder al instante a los eventos en tiempo real, optimizar los recursos, integrar diversas fuentes de datos en los ecosistemas de datos y dar soporte a aplicaciones basadas en datos. Entre los beneficios clave se incluyen:
El procesamiento de flujos permite a las organizaciones analizar los datos a medida que se generan, lo que facilita una detección más rápida de tendencias, anomalías u oportunidades. Al reducir la latencia entre la generación de datos y su análisis, las empresas pueden responder a los eventos en milisegundos, lo cual resulta crítico para la ciberseguridad, la detección del fraude, la monitorización y otras cargas de trabajo en las que el tiempo es un factor crucial.
Las tecnologías de procesamiento de flujos pueden gestionar volúmenes masivos de datos en sistemas distribuidos y escalar su capacidad a medida que cambia la demanda. Esta elasticidad ofrece a las empresas la flexibilidad necesaria para adaptarse a cargas de trabajo fluctuantes, integrar diversas fuentes de datos y dar soporte a nuevos casos de uso sin necesidad de renovar su infraestructura.
El procesamiento de flujos puede facilitar la personalización en tiempo real a través de motores de recomendación e interfaces adaptativas. Estas capacidades ayudan a las empresas a ofrecer interacciones con los clientes más atractivas y relevantes.
La monitorización continua y en tiempo real de los sistemas, las cadenas de suministro y la infraestructura puede ayudar a las organizaciones a implementar un mantenimiento proactivo y la optimización de procesos, reduciendo el tiempo de inactividad y los costes.
El procesamiento de flujos puede alimentar continuamente datos en tiempo real a data lakes, almacenes de datos, lakehouses y canalizaciones, dando soporte a los flujos de trabajo de ingeniería de datos, análisis, machine learning e inteligencia empresarial.
Las tecnologías de procesamiento de flujos pueden complementar los sistemas de procesamiento por lotes, ayudando a las organizaciones a analizar tanto datos históricos como en tiempo real. Por ejemplo, Apache Spark admite tanto el análisis por lotes como el análisis de transmisión, mientras que Apache Kafka puede actuar como una base de transmisión de eventos que gestiona los datos de eventos para su procesamiento posterior.
En esencia, el procesamiento de flujos sigue un modelo de tres etapas:
Durante la ingesta, los conectores de flujos o las plataformas de transmisión de eventos capturan datos en tiempo real de fuentes como sensores, dispositivos conectados, aplicaciones móviles o sistemas empresariales. Los datos entrantes suelen ser ilimitados y llegan de forma continua, lo que significa que se generan sin un endpoint fijo y pueden crecer indefinidamente a medida que se producen nuevos eventos. Herramientas como Kafka Connect y Apache Pulsar son fundamentales para gestionar la ingesta de datos a alta velocidad.
En la etapa de procesamiento, los datos se transforman, filtran, enriquecen o analizan a medida que llegan. Esta fase puede incluir operaciones como la agregación de métricas, la detección de anomalías, la unión de múltiples flujos o la aplicación de modelos de machine learning para la inferencia en tiempo real.
Los procesadores de flujos resultan especialmente valiosos en entornos de big data, donde las organizaciones deben gestionar y analizar grandes volúmenes de datos que se mueven rápidamente y proceden de diversas fuentes. Estas operaciones se orquestan a través de canalizaciones de procesamiento, que definen la secuencia de transformaciones y la lógica aplicada a medida que los datos fluyen por el sistema.
El flujo de salida es la etapa final, en la que los datos procesados se envían a sistemas posteriores, como paneles de control en tiempo real para la monitorización, bases de datos para el almacenamiento o sistemas automatizados que inician flujos de trabajo y alertas. En muchos casos, los datos procesados también se envían a un data lakes para su exploración flexible o a un almacén de datos para la realización de consultas estructuradas y la elaboración de informes.
Si bien el procesamiento de flujos ofrece muchos beneficios, también puede plantear retos en varios aspectos de la gestión de datos, la arquitectura, la integración y las operaciones:
Las entradas procedentes de diversos sistemas y dispositivos generan enormes volúmenes de datos que se mueven rápidamente y que requieren un procesamiento de baja latencia. Para gestionar esto de forma eficaz, las organizaciones necesitan motores de procesamiento de flujos y sistemas de diseño capaces de escalar horizontalmente, distribuir las cargas de trabajo entre los nodos y mantener el rendimiento a medida que fluctúan los volúmenes de datos.
Las organizaciones también deben considerar cómo encaja el procesamiento de flujos en un ecosistema de datos más amplio. Esta integración puede resultar compleja, ya que los equipos de datos deberán determinar qué datos deben procesarse en tiempo real, cuáles deben almacenarse para su análisis posterior y cómo deben interactuar los sistemas de flujos con las aplicaciones y las canalizaciones de trabajo existentes.
Las aplicaciones de transmisión interactúan con frecuencia con otros servicios a través de interfaces de programación de aplicaciones (API), interfaces basadas en eventos y microservicios, diseñados para una comunicación de baja latencia y tolerancia a fallos. Además, los desarrolladores deben tener en cuenta la complejidad de los algoritmos utilizados para analizar datos en movimiento, ya sea para la detección de anomalías, el modelado predictivo o la toma de decisiones en tiempo real.
El procesamiento de flujos requiere que los equipos elijan herramientas y lenguajes que se adapten a sus necesidades de rendimiento, escalabilidad y desarrollo. Los desarrolladores suelen recurrir a Java y Python, cada uno de los cuales cumple fines distintos dentro del ecosistema de procesamiento de flujos. Java se utiliza normalmente para crear canalizaciones escalables y aptas para producción en marcos como Apache Kafka y Apache Flink, mientras que Python se utiliza para la creación rápida de prototipos y la integración de modelos de machine learning en flujos de trabajo de transmisión.
Para mantener la coherencia y la interpretabilidad de los datos a medida que fluyen por el sistema, las plataformas de procesamiento de flujos se basan en esquemas, que definen el formato, los tipos y la estructura de los datos. Estos esquemas ayudan a validar los datos en los nodos distribuidos y permiten realizar consultas en tiempo real. Sin un sólido gobierno de esquemas, los cambios en los formatos de los eventos pueden afectar negativamente a las aplicaciones, los paneles de control o las canalizaciones de machine learning posteriores.
Muchas plataformas de procesamiento de flujos ofrecen interfaces similares a SQL que permiten a los usuarios filtrar, agregar y unir datos en transmisión sin necesidad de escribir código complejo. Sin embargo, la consulta de datos en movimiento puede resultar complicada. Las organizaciones también necesitan integrar los sistemas de transmisión con entornos de análisis por lotes e históricos para combinar las perspectivas en tiempo real con el contexto histórico, lo que puede añadir complejidad.
Organizaciones de todos los sectores están adoptando aplicaciones de procesamiento de flujos para actuar sobre los datos en el momento en que se generan. A continuación se muestran ejemplos de cómo diferentes sectores aprovechan el procesamiento de flujos para mejorar la eficiencia, los resultados de los pacientes, el compromiso con el cliente y mucho más.
Los bancos utilizan el procesamiento de flujos para analizar las transacciones a medida que se producen, detectando rápidamente patrones inusuales o anomalías. Al correlacionar múltiples puntos de datos, como la ubicación, el dispositivo y el historial de transacciones, los sistemas pueden señalar actividades sospechosas antes de que se agraven. Las perspectivas en tiempo real también permiten a los operadores y gestores de riesgos responder al instante a la volatilidad. Al integrar flujos de datos en directo procedentes de las bolsas y de los sistemas internos, las organizaciones pueden tomar decisiones fundamentadas con mayor rapidez y mitigar el riesgo.
El procesamiento de flujos acelera la validación de reclamaciones al ingerir datos de los detalles de las pólizas, fotografías, sensores de IoT y otras fuentes de datos en tiempo real. Los flujos de trabajo automatizados pueden aprobar reclamaciones sencillas al instante, mientras que los casos complejos se derivan para su revisión. Esto reduce el tiempo de procesamiento, mejora la satisfacción del cliente y reduce los costes operativos.
Los hospitales y los proveedores de asistencia sanitaria aprovechan el procesamiento de flujos para identificar patrones que podrían indicar complicaciones como la sepsis, la insuficiencia cardíaca o la neumonía, con el fin de permitir de forma proactiva intervenciones oportunas y mejorar los resultados de los pacientes. Por ejemplo, el Emory University Hospital utilizó la plataforma de análisis de transmisión de IBM para procesar más de 100 000 puntos de datos por paciente y por segundo en su UCI y detectar cambios potencialmente mortales al instante, lo que permitió intervenciones más rápidas1.
Los proveedores de telecomunicaciones utilizan el procesamiento de flujos para monitorizar el rendimiento de la red y las interacciones con los clientes en tiempo real. Los operadores pueden aprovechar el análisis de transmisión para procesar miles de millones de registros detallados de llamadas a diario, detectando al instante anomalías en el servicio y actividades fraudulentas. Al analizar los flujos de voz y de eventos a medida que se producen las llamadas, el sistema también predice el riesgo de pérdida de clientes y deriva a estos de forma proactiva a especialistas en retención.
Los minoristas están recurriendo al procesamiento de flujos para obtener perspectivas con mayor rapidez y mejorar la toma de decisiones basada en datos. Una cadena de supermercados pasó de procesar los datos por lotes una vez al día a la ingesta de mensajes casi en tiempo real. Al gestionar 50 millones de mensajes al día procedentes de más de 2400 tiendas, una arquitectura de mensajería basada en eventos permitió la detección rápida de problemas como los robos y una toma de decisiones más informada.
La elección entre el procesamiento de flujos y el procesamiento por lotes depende de la naturaleza de los datos, la urgencia de las perspectivas y la complejidad del análisis.
El procesamiento de flujos es ideal para cargas de trabajo que requieren una capacidad de respuesta en tiempo real o casi en tiempo real. Por ejemplo, el procesamiento de flujos permite el análisis de datos en tiempo real, la monitorización en directo, las recomendaciones personalizadas y la gestión dinámica del inventario, ya que puede procesar cantidades masivas de datos de forma continua a medida que fluyen a través de las canalizaciones de datos.
Por otro lado, el procesamiento por lotes resulta más adecuado cuando se trabaja con grandes volúmenes de datos históricos o cuando la latencia es menos crítica. Se utiliza habitualmente para tareas como la elaboración de informes, el almacenamiento de datos y el análisis de tendencias a largo plazo, en las que se recopilan, almacenan y procesan datos de múltiples fuentes a intervalos programados.
El procesamiento por lotes puede ser más sencillo de implementar y más rentable para cargas de trabajo que no requieren resultados instantáneos. En muchas arquitecturas modernas, las organizaciones combinan ambos enfoques: utilizan el procesamiento de flujos para obtener perspectivas inmediatas y el procesamiento por lotes para un análisis retrospectivo más profundo. Este modelo híbrido maximiza el valor tanto de los datos en tiempo real como de los históricos.
Organice sus datos con las soluciones de plataforma IBM DataOps para garantizar su fiabilidad y prepararlos para la IA a nivel empresarial.
Cree y gestione canalizaciones de datos de streaming inteligentes a través de una interfaz gráfica intuitiva, y facilite una integración de datos fluida en entornos híbridos y multinube.
Desbloquee el valor de los datos empresariales con IBM Consulting y cree una organización impulsada por conocimientos que ofrezca ventajas empresariales.
1 Emory University Hospital explores “intensive care unit of the future”. Emory University News Center. 5 de noviembre de 2013.