A diferencia del procesamiento por lotes tradicional, que funciona con conjuntos de datos estáticos, el procesamiento de flujos maneja flujos continuos de datos de diversas fuentes como sensores, plataformas de redes sociales, transacciones financieras y dispositivos de Internet de las cosas (IoT). Cada cambio, acción u ocurrencia dentro de estos sistemas de origen se puede representar como un “evento”, razón por la cual el procesamiento de flujo a veces también se conoce como “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 detección de fraude, análisis predictivos y experiencias personalizadas de los clientes. Las plataformas como Apache Kafka se utilizan habitualmente para facilitar el procesamiento de flujos de datos, ya que permiten a los sistemas publicar, transportar y procesar grandes volúmenes de datos en tiempo real de forma confiable y a escala.
El procesamiento de flujos de datos también es importante para las aplicaciones de inteligencia artificial (IA) y machine learning (ML), que a menudo dependen de datos actualizados de forma continua y oportuna para generar predicciones e insights precisos. Sin el procesamiento de flujos, los modelos pueden depender de datos obsoletos o incompletos, lo que puede reducir la precisión de la predicción y aumentar el riesgo.
La arquitectura del procesamiento de flujos incluye tecnologías y patrones que permiten la ingesta, el transporte, el procesamiento y el análisis de flujos de datos en tiempo real.
En una arquitectura típica, los flujos continuos de datos se mueven a través de una plataforma de transmisión de datos, donde se ingieren, almacenan y ponen a disposición de los sistemas posteriores. Los marcos y aplicaciones de procesamiento de flujos procesan los datos en tiempo real y los entregan a destinos posteriores.
Algunas arquitecturas de procesamiento de flujos siguen patrones arquitectónicos como Lambda o Kappa. La arquitectura Lambda utiliza un enfoque de doble pipeline que combina el procesamiento por lotes y de flujos, a menudo con el fin de facilitar el análisis de datos históricos y el procesamiento de baja latencia. Kappa utiliza un único pipeline de transmisión para todos los datos, lo que puede simplificar la arquitectura general y, a menudo, se elige para datos basados en eventos.
Las plataformas de transmisión de datos proporcionan la base para lo pipelines y aplicaciones de datos en tiempo real. Actúan como la vía de comunicación y la 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 que las aplicaciones publiquen, se suscriban, almacenen y reproduzcan flujos de datos. Estas capacidades lo hacen útil para análisis en tiempo real, integración de aplicaciones, detección de fraude, procesamiento de datos de IoT y arquitecturas orientadas a eventos.
Confluent es una plataforma de transmisión de datos creada en torno a Apache Kafka. Ofrece servicios gestionados, conectores, gobernanza, gestión de esquemas, seguridad y herramientas de procesamiento de flujos para ayudar a las organizaciones a implementar Kafka a escala.
Otras plataformas y servicios de transmisión de datos incluyen:
Los marcos de procesamiento de transmisiones son herramientas que los desarrolladores utilizan para procesar y analizar datos en movimiento. Mientras que las plataformas de transmisión como Kafka se centran en ingerir, almacenar y transportar eventos, los marcos de procesamiento de transmisiones se centran en la computación: filtrar, transformar, unir, agregar y analizar datos a medida que se mueven a través de un pipeline.
Muchos marcos de procesamiento de flujos se integran con Kafka, utilizando temas de Kafka como fuente de eventos entrantes y destino de los resultados procesados.
Algunos ejemplos de marcos y herramientas de procesamiento de flujos incluyen:
Imagine monitorear los signos vitales de un paciente, pero solo verificar los datos cada pocas horas: los proveedores médicos pasarían por alto cambios críticos que requieren una acción inmediata.
Las organizaciones de todas las industrias enfrentan riesgos similares cuando funcionan solo con procesamiento de datos retrasado o basado en lotes. Para actuar con rapidez y precisión, necesitan tener acceso a la información en tiempo real. Los sistemas de procesamiento de flujos abordan esta necesidad mediante la ingesta y el análisis continuos de datos en tiempo real, lo que reduce la latencia inherente a las cargas de trabajo programadas de extracción, transformación y carga (ETL) por lotes.
Mediante el procesamiento 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 permite aplicaciones como la detección de anomalías, la prevención del fraude, la fijación dinámica de precios y la personalización en tiempo real.
El procesamiento de flujos también es cada vez más importante para escalar las iniciativas de IA que dependen de datos actualizados continuamente. A medida que aumentan 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.
Las investigaciones del IBM Institute for Business Value muestran que aproximadamente la mitad de las organizaciones encuestadas están priorizando la optimización de redes, un procesamiento de datos más rápido y la computación distribuida para admitir 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 insights más lentos, reducir la precisión del modelo y perder oportunidades de ventaja competitiva.
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y 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 una respuesta en tiempo real. Por ejemplo, los sistemas de IA para el mantenimiento predictivo, la detección de fraudes, los sistemas autónomos y las recomendaciones personalizadas suelen basarse en datos recientes y de alta velocidad para generar predicciones o tomar decisiones oportunas.
Al permitir que las aplicaciones de IA actúen sobre los datos a medida que se crean, ya sea a partir de lecturas de sensores en el equipamiento industrial o del comportamiento del usuario 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 pertinencia de los resultados de la IA. De hecho, casi el 55 % de las organizaciones encuestadas cita la mejora de la experiencia del cliente a través de capacidades de IA en tiempo real como un impulsor principal para invertir en infraestructura de IA, según el IBM Institute for Business Value.
El procesamiento en flujo también admite el despliegue y la mejora de modelos de IA. Los pipelines de transmisión entregan datos en tiempo real a data lakes, depósitos de datos o almacenes de características, creando una fuente continua de datos para el monitoreo, la evaluación y el reentrenamiento de modelos a lo largo del tiempo.
El procesamiento de flujos ofrece una amplia gama de beneficios que ayudan a las organizaciones a responder instantáneamente a eventos en tiempo real, optimizar recursos, integrar diversas fuentes de datos en los ecosistemas de datos y admitir aplicaciones basadas en datos. Los beneficios clave 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 y el análisis de datos, las empresas pueden responder a los eventos en milisegundos, lo que es crítico para la ciberseguridad, la detección de fraudes, el monitoreo y otras cargas de trabajo urgentes.
Las tecnologías de procesamiento de flujos pueden gestionar grandes volúmenes de datos en sistemas distribuidos y adaptar su capacidad a los cambios en la demanda. Esta elasticidad brinda a las empresas la flexibilidad de adaptarse a cargas de trabajo fluctuantes, integrar varias fuentes de datos y admitir nuevos casos de uso sin revisar su infraestructura.
El procesamiento de flujos permite la personalización en tiempo real mediante motores de recomendación e interfaces adaptativas. Estas capacidades ayudan a las empresas a ofrecer interacciones con los clientes más atractivas y relevantes.
El monitoreo continuo y en tiempo real de los sistemas, las cadenas de suministro y la infraestructura puede ayudar a las organizaciones a habilitar el mantenimiento proactivo y la optimización de procesos, reduciendo el tiempo de inactividad y los costos.
El procesamiento de flujos puede alimentar continuamente datos en tiempo real a data lakes, depósitos de datos, lakehouses y pipelines, admitiendo flujos de trabajo de ingeniería de datos, analytics, machine learning y business intelligence.
Las tecnologías de procesamiento de flujos pueden complementar los sistemas de procesamiento por lotes, ayudando a las organizaciones a analizar datos históricos y en tiempo real. Por ejemplo, Apache Spark admite analytics por lotes y de transmisión, mientras que Apache Kafka puede actuar como una base de transmisión de eventos que maneja los datos de eventos para el procesamiento posterior.
En esencia, el procesamiento de flujos sigue un modelo de tres etapas:
Durante la ingesta, los conectores de transmisión 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 a menudo no tienen límites y llegan continuamente, lo que significa que se generan sin un punto final fijo y pueden crecer indefinidamente a medida que ocurren nuevos eventos. Herramientas como Kafka Connect y Apache Pulsar son clave para manejar 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 agregar métricas, detectar anomalías, unir múltiples flujos o aplicar 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 cambian rápidamente y proceden de diversas fuentes. Estas operaciones se orquestan mediante pipelines de procesamiento, que definen la secuencia de transformaciones y la lógica aplicada a medida que los datos fluyen a través del sistema.
El flujo de salida es la etapa final, donde los datos procesados se entregan a sistemas posteriores, como paneles en tiempo real para monitoreo, bases de datos para almacenamiento o sistemas automatizados que inician flujos de trabajo y alertas. En muchos casos, los datos procesados también se enrutan a data lakes para una exploración flexible o a un depósito de datos para consultas estructuradas e informes.
Si bien el procesamiento de flujos ofrece muchos beneficios, también puede plantear retos en diversas dimensiones de la gestión de datos, la arquitectura, la integración y las operaciones:
Las entradas de diversos sistemas y dispositivos producen enormes volúmenes de datos que cambian rápido y que requieren un procesamiento de baja latencia. Para gestionar esto de manera eficaz, las organizaciones necesitan motores de procesamiento de flujos y sistemas de diseño que puedan escalar horizontalmente, distribuir las cargas de trabajo entre los nodos y mantener el rendimiento a medida que varían los volúmenes de datos.
Las organizaciones también deben considerar cómo el procesamiento de flujo encaja en un ecosistema de datos más amplio. Esta integración puede ser un desafío porque los equipos de datos deberán determinar qué datos deben procesarse en tiempo real, cuáles deben almacenarse para su posterior análisis y cómo los sistemas de transmisión deben interactuar con las aplicaciones y pipelines existentes.
Las aplicaciones de transmisión interactúan frecuentemente con otros servicios a través de interfaces de programación de aplicaciones (API), interfaces orientadas a eventos y microservicios, diseñados para comunicación de baja latencia y tolerancia a fallos. Adicionalmente, los desarrolladores deben considerar la complejidad de los algoritmos utilizados para analizar datos en movimiento, ya sea para detección de anomalías, modelado predictivo o toma de decisiones en tiempo real.
El procesamiento de flujos exige que los equipos elijan herramientas y lenguajes que se adapten a sus necesidades de rendimiento, escalabilidad y desarrollo. Los desarrolladores a menudo recurren a Java y Python, cada uno de los cuales sirve para propósitos distintos dentro del ecosistema de procesamiento de flujos. Java se utiliza normalmente para crear pipelines escalables y de nivel de 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 a través del 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 distintos nodos distribuidos y permiten realizar consultas en tiempo real. Sin una gobernanza de esquema sólida, los cambios en los formatos de eventos pueden interrumpir las aplicaciones posteriores, los paneles o los pipelines de machine learning.
Muchas plataformas de procesamiento de flujos ofrecen interfaces similares a SQL que permiten a los usuarios filtrar, agregar y unir datos en tiempo real sin necesidad de escribir código complejo. Sin embargo, consultar datos en movimiento puede ser complicado. Las organizaciones también necesitan integrar sistemas de transmisión con entornos de analytics por lotes e históricos para combinar insights en tiempo real con contexto histórico, lo que puede agregar complejidad.
Las organizaciones de todas las industrias 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 industrias aprovechan el procesamiento de flujos para mejorar la eficiencia, los resultados de los pacientes, la interacción del cliente y otros aspectos.
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 marcar actividades sospechosas antes de que se intensifiquen. Los insights en tiempo real también permiten a los operadores y gerentes de riesgos responder instantáneamente a la volatilidad. Al integrar transmisiones en vivo de intercambios y sistemas internos, las organizaciones pueden tomar decisiones informadas más rápido y mitigar el riesgo.
El procesamiento de flujos acelera la validación de reclamaciones al absorber datos de los detalles de las pólizas, fotos, sensores IoT y otras fuentes de datos en tiempo real. Los flujos de trabajo automatizados pueden aprobar reclamaciones simples al instante mientras enrutan casos complejos para su revisión. Esto reduce el tiempo de procesamiento, mejora la satisfacción del cliente y reduce los costos operativos.
Los hospitales y los proveedores de atención médica aprovechan el procesamiento de flujos para identificar patrones que podrían indicar complicaciones como sepsis, insuficiencia cardíaca o neumonía para permitir de manera proactiva intervenciones oportunas y mejorar los resultados de los pacientes. Por ejemplo, el Emory University Hospital utilizó la plataforma de analytics de flujos de IBM para procesar más de 100 000 puntos de datos por paciente por segundo en su UCI y detectar al instante cambios que pusieran en peligro la vida, lo que permitió intervenir con mayor rapidez.1
Los proveedores de telecomunicaciones utilizan el procesamiento de flujos para supervisar el rendimiento de la red y las interacciones con los clientes en tiempo real. Las operadoras pueden aprovechar los analytics de transmisión para procesar miles de millones de registros de detalles de llamadas diariamente, detectando anomalías de servicio y actividad fraudulenta al instante. Al analizar los flujos de voz y de eventos a medida que se producen las llamadas, el sistema también predice el riesgo de abandono y dirige a los clientes a los especialistas en retención de forma proactiva.
Los minoristas están recurriendo al procesamiento de flujos para obtener insights más rápido y mejorar la toma de decisiones basada en datos. Una cadena de supermercados pasó de procesar los datos una vez al día a ingerir mensajes casi en tiempo real. Al manejar 50 millones de mensajes por día desde más de 2400 tiendas, una arquitectura de mensajería basada en eventos permitió la detección rápida de problemas como el robo 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 los insights y la complejidad del análisis.
El procesamiento de flujos es ideal para cargas de trabajo que requieren 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, el monitoreo en vivo, 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 los pipelines de datos.
Por otro lado, el procesamiento por lotes es más apropiado cuando se trabaja con volúmenes a gran escala de datos históricos o cuando la latencia es menos crítica. Se utiliza comúnmente para tareas como informes, almacenamiento de datos y análisis de tendencias a largo plazo, donde los datos de múltiples fuentes de datos se recopilan, almacenan y procesan 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: el uso del procesamiento de flujos para obtener insights inmediatos y el procesamiento por lotes para un análisis retrospectivo más profundo. Este modelo híbrido aprovecha al máximo tanto los datos en tiempo real como 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 insights que ofrezca ventajas empresariales.
1 Emory University Hospital explores ‘intensive care unit of the future’, Emory University News Center. 5 de noviembre de 2013