Arquitectura de transmisión de datos

Una arquitectura de transmisión de datos es un marco de tecnología de la información que se centra en el procesamiento de datos en movimiento y trata el procesamiento por lotes de extracción-transformación-carga (ETL) como un evento más en un flujo continuo de eventos. Este tipo de arquitectura tiene tres componentes básicos: un agregador que recopila flujos de eventos y archivos por lotes de una variedad de fuentes de datos, un intermediario que hace que los datos estén disponibles para el consumo y un motor de análisis que analiza los datos, correlaciona valores y combina flujos.

El sistema que recibe y envía flujos de datos y ejecuta la aplicación y la lógica de análisis en tiempo real se denomina procesador de flujo. Porque una arquitectura de transmisión de datos admite el concepto de abastecimiento de eventos, reduce la necesidad de que los desarrolladores creen y mantengan bases de datos compartidas. En cambio, todos los cambios en el estado de una aplicación se almacenan como una secuencia de desencadenantes de procesamiento impulsado por eventos (ESP) que se pueden reconstruir o consultar cuando sea necesario. Al recibir un evento, el procesador de flujo reacciona en tiempo real o casi real y desencadena una acción, como recordar el evento para referencia futura.

La creciente popularidad de las arquitecturas de transmisión de datos refleja un cambio en el desarrollo de servicios y productos de una arquitectura monolítica a una descentralizada construida con microservicios. Este tipo de arquitectura suele ser más flexible y escalable que una arquitectura de aplicación clásica centrada en bases de datos porque ubica el procesamiento de datos con el almacenamiento para reducir los tiempos de respuesta de la aplicación (latencia) y mejorar el rendimiento. Otra ventaja de utilizar una arquitectura de transmisión de datos es que tiene en cuenta el momento en que ocurre un evento, lo que facilita la partición y distribución del estado y el procesamiento de una aplicación en muchas instancias.

Las arquitecturas de transmisión de datos permiten a los desarrolladores desarrollar aplicaciones que utilizan datos vinculados y no vinculados de nuevas formas. Por ejemplo, el equipo de infraestructura de búsqueda de Alibaba utiliza una arquitectura de transmisión de datos impulsada por Apache Flink para actualizar los detalles del producto y la información del inventario en tiempo real. Netflix también usa Flink para respaldar sus motores de recomendación e ING, el banco global con sede en los Países Bajos, usa la arquitectura para prevenir el robo de identidad y brindar una mejor protección contra el fraude. Otras plataformas que pueden acomodar tanto el procesamiento por lotes como por secuencias incluyen Apache Spark, Apache Storm, Google Cloud Dataflow y AWS Kinesis.