¿Qué es el procesamiento de flujos?

Definición de procesamiento de flujos

El procesamiento de flujos es un método para recopilar y analizar datos a medida que se generan en tiempo real.


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.

Arquitectura del procesamiento de flujos

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.

Plataformas de datos de transmisión

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:

  • Servicios gestionados de Kafka: servicios alojados en la nube que gestionan la infraestructura de Kafka para los usuarios.

  • Amazon Kinesis: un servicio nativo de la nube para la transmisión de datos y la ingesta en tiempo real.

  • Google Cloud Pub/Sub: un servicio de mensajería e ingesta de eventos sin servidor para analytics de streaming e integración de aplicaciones.

  • Microsoft Azure Event Hubs: un servicio de ingesta de eventos de alto rendimiento para cargas de trabajo de datos de transmisión.

Marcos de procesamiento de flujos

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:

  • Kafka Streams: una biblioteca de Java para crear aplicaciones de procesamiento de flujos directamente en Apache Kafka.

  • ksqlDB: un motor de procesamiento de flujos basado en SQL construido sobre Kafka Streams que permite a los desarrolladores procesar y consultar datos de transmisión usando la sintaxis de SQL.

  • Apache Flink: un marco de procesamiento de flujos con gestión en memoria diseñado para cálculos con estado y procesamiento de eventos complejos. Se utiliza comúnmente para casos de uso, como la detección de fraude y el monitoreo.
  • Apache Spark Structured Streaming: basado en la solución heredada Apache Spark Streaming, es un motor de procesamiento de transmisiones que admite análisis en tiempo real junto con el procesamiento por lotes. A menudo se utiliza para combinar transmisión y análisis de datos históricos.

  • Apache Storm: un sistema de computación distribuido en tiempo real para procesar flujos de datos ilimitados con latencia muy baja.

¿Por qué utilizar el procesamiento de flujos? 

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.

¿De qué manera el procesamiento de flujos hace posible la IA?

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.

¿Cuáles son los beneficios del procesamiento de flujos?

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:

  • Insights en tiempo real para una toma de decisiones más rápida
  • Escalabilidad y flexibilidad
  • Experiencias del cliente mejoradas
  • Eficiencia operativa
  • Integración con ecosistemas de datos
  • Compatibilidad con arquitecturas híbridas

Insights en tiempo real para una toma de decisiones más rápida

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.

Escalabilidad y flexibilidad

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.

Mejores experiencias del cliente

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.

Eficiencia operativa

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.

Integración con ecosistemas de datos

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.

Compatibilidad con arquitecturas híbridas

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.

Academia de IA

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso exitoso de la IA generativa.

¿Cómo funciona el procesamiento de flujos?

En esencia, el procesamiento de flujos sigue un modelo de tres etapas:

  • Ingesta
  • Procesamiento
  • Resultado

Ingesta

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.

Procesamiento

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.

Salida

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.

Desafíos del procesamiento de flujos

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:

  • Gestión de grandes volúmenes de datos de alta velocidad procedentes de diversas fuentes
  • Integración del procesamiento de flujos en una estrategia de datos más amplia
  • Diseño de API confiables y lógica de aplicaciones en tiempo real
  • Elección de los lenguajes de programación adecuados
  • Mantenimiento de la coherencia de los datos y la gestión de esquemas
  • Soporte para consultas en tiempo real y analytics híbridos

Gestión de grandes volúmenes de datos de alta velocidad procedentes de diversas fuentes

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.

Integración del procesamiento de flujos en una estrategia de datos más amplia

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.

Diseño de API confiables y lógica de aplicaciones en tiempo real

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.

Elección de los lenguajes de programación adecuados

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.

Mantenimiento de la coherencia de datos y la gobernanza de esquemas

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.

Soporte para consultas en tiempo real y analytics híbridos

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.

Casos de uso reales de procesamiento de flujos

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.

Banca y mercados financieros

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.

Seguros

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.

Atención médica

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

Telecomunicaciones

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.

Venta minorista

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.

Procesamiento de flujos y. procesamiento por lotes

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.

Autores

Judith Aquino

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluciones relacionadas
Soluciones de plataforma DataOps

Organice sus datos con las soluciones de plataforma IBM DataOps para garantizar su fiabilidad y prepararlos para la IA a nivel empresarial.

Explorar las soluciones DataOps
IBM StreamSets

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.

Explorar StreamSets
Servicios de consultoría en datos y analytics

Desbloquee el valor de los datos empresariales con IBM Consulting y cree una organización impulsada por insights que ofrezca ventajas empresariales.

Descubra los servicios de analytics
Dé el siguiente paso

Integre datos estructurados y no estructurados mediante una combinación de estilos, que incluyen procesamiento por lotes, transmisión en tiempo real y replicación, para no perder tiempo ni dinero cambiando constantemente de herramientas.

  1. Explore IBM watsonx.data integration
  2. Explore las soluciones de integración de datos
Notas de pie de página

1 Emory University Hospital explores ‘intensive care unit of the future, Emory University News Center. 5 de noviembre de 2013