¿Qué es la transmisión de datos?
La transmisión de datos es el proceso de transmisión de un flujo continuo de datos (también conocidos como flujos) que generalmente se introducen en el software de procesamiento de flujos para obtener información valiosa. Un flujo de datos consta de una serie de elementos de datos ordenados en el tiempo. Los datos representan un "evento" o un cambio de estado que ha ocurrido en la empresa, y es útil para que la empresa los conozca y los analice, a menudo en tiempo real. Algunos ejemplos de flujos de datos incluyen datos de sensores, registros de actividad de navegadores web y registros de transacciones financieras. Un flujo de datos se puede visualizar como una cinta transportadora sin fin, que transporta elementos de datos y los alimenta continuamente a un procesador de datos.
Con el crecimiento del Internet de las cosas (IoT) y las expectativas de los clientes, ha aumentado la importancia de la transmisión de datos y el procesamiento de transmisiones. Los monitores de salud personales y los sistemas de seguridad del hogar son dos ejemplos de fuentes de transmisión de datos. Un sistema de seguridad para el hogar incluye múltiples sensores de movimiento para monitorear diferentes áreas de la casa. Estos sensores generan un flujo de datos transmitidos continuamente a una infraestructura de procesamiento que monitorea cualquier actividad inesperada en tiempo real o guarda los datos para analizarlos en busca de patrones más difíciles de detectar más adelante. Los monitores de salud son otro ejemplo de fuentes de transmisión de datos que incluyen monitores de frecuencia cardíaca, presión arterial u oxígeno. Estos dispositivos generan datos continuamente. El análisis oportuno de estos datos es fundamental, ya que de ello puede depender la seguridad de la persona.
¿Cuáles son las características generales de los flujos de datos?
La transmisión de datos de sensores, navegadores web y otros sistemas de monitoreo tiene ciertas características que los distinguen de los datos históricos tradicionales. Las siguientes son algunas características clave de los datos de transmisión:
Plazos acotados
Cada elemento en un flujo de datos lleva una marca de tiempo. Los flujos de datos son sensibles al tiempo y pierden importancia después de cierto tiempo. Por ejemplo, los datos de un sistema de seguridad para el hogar que indican un movimiento sospechoso deben analizarse y abordarse en un período breve para que sigan siendo relevantes.
Continuidad
No hay principio ni final para la transmisión de datos. Los flujos de datos son continuos y ocurren en tiempo real, pero no siempre se actúa sobre ellos en el momento, según los requisitos del sistema.
Heterogeneidad
Los datos de flujo a menudo se originan en miles de fuentes diferentes que pueden estar lejos la una de la otra. Debido a la disparidad en las fuentes, los datos de transmisión pueden ser una combinación de diferentes formatos.
Imperfección
Debido a la variedad de sus fuentes y diferentes mecanismos de transmisión de datos, un flujo de datos puede tener elementos de datos faltantes o dañados. Además, los elementos de datos de una secuencia pueden llegar desordenados.
Es volátil e irrepetible
Como la transmisión de datos ocurre en tiempo real, la transmisión repetida de una transmisión es bastante difícil. Si bien existen disposiciones para la retransmisión, es posible que los nuevos datos no sean los mismos que los anteriores. Esto hace que los flujos de datos sean altamente volátiles. Sin embargo, muchos sistemas modernos mantienen un registro de sus flujos de datos, por lo que incluso si no puede acceder a ellos en ese momento, aún puede analizarlos más tarde.

¿Cuál es la importancia de la transmisión de datos para las empresas?
Los datos en formato de secuencias son muy importantes en el mundo actual. Numerosos dispositivos IoT y usuarios de Internet generan enormes volúmenes de datos continuos en tiempo real cada segundo. Procesar estos datos en tiempo real es tanto un desafío como una oportunidad para las organizaciones.
La naturaleza cambiante de los datos
Tradicionalmente, las organizaciones recopilan datos a lo largo del tiempo, los almacenan en almacenes de datos y los procesan por lotes. Esto ahorra energía informática escasa. En los últimos años, la estructura de datos y las tecnologías de procesamiento han cambiado mucho. IoT ha introducido una amplia gama de sensores que generan flujo de datos. Las tarjetas de crédito y las transacciones financieras en línea también generan datos en tiempo real que deben analizarse y verificarse. Los navegadores web generan transacciones en línea y registros de actividad. La transmisión de datos y el procesamiento de transmisiones son esenciales para manejar este tipo de datos.
Grandes volúmenes de datos
La cantidad de datos que se genera cada segundo es demasiado grande para almacenarla en cualquier almacén de datos. Por lo tanto, los datos de flujo a menudo se evalúan en el momento para determinar si son una pieza clave de datos en tiempo real o no son necesarios. Como resultado, los sistemas pueden transmitir datos y analizarlos de inmediato para decidir qué se almacena y qué no, lo que ayuda a las organizaciones a reducir la pérdida de datos, el almacenamiento de datos y ahorrar en costos de infraestructura.
Ejemplos de transmisión de datos
Internet de las cosas: IoT incluye una gran cantidad de dispositivos que recopilan datos mediante sensores y los transmiten en tiempo real a un procesador de datos. Los datos de IoT generan datos de flujo. Los monitores de salud portátiles como relojes, sistemas de seguridad para el hogar, sistemas de monitoreo de tráfico, escáneres biométricos, electrodomésticos conectados, ciberseguridad y sistemas de privacidad generan y transmiten datos en tiempo real.
Monitores del mercado de valores en tiempo real: los datos financieros en tiempo real a menudo se transmiten en un formato de flujo. Procesar y analizar datos financieros (como precios de acciones y tendencias del mercado) ayuda a las organizaciones a tomar decisiones cruciales rápidamente.
Registros de actividad y transacciones: Internet también es una fuente importante de datos de transmisión en tiempo real. Cuando las personas visitan sitios web o hacen clic en enlaces, los navegadores web generan registros de actividad. Las transacciones financieras en línea, como las compras con tarjeta de crédito, también generan datos de tiempo crítico que se pueden transmitir y procesar para acciones en tiempo real.
Monitores de procesos: cada empresa genera miles de millones de puntos de datos de sus sistemas internos. Al transmitir estos datos y procesarlos en tiempo real, las empresas pueden monitorear el estado del sistema y actuar antes de que las cosas se agraven. Por ejemplo, las empresas de producción suelen tener dispositivos para controlar el estado de la línea de montaje y detectar fallas para evaluar el riesgo en la producción. Estos dispositivos también pueden transmitir datos de tiempo crítico para monitorear interrupciones e incluso prevenirlas.
¿Qué es el procesamiento de flujo? ¿Como funciona?
Para procesar transmisión o datos en vivo, necesita un proceso que es bastante diferente del procesamiento por lotes tradicional. Un procesador de flujo recopila, analiza y visualiza un flujo continuo de datos. Y, por supuesto, para procesar, debe comenzar con la transmisión de datos. La transmisión de datos se encuentra al comienzo del procesamiento de transmisión. El procesamiento de flujo se utiliza para tomar los flujos de datos y obtener información de ellos, a menudo en tiempo real. Debido a la naturaleza única de los datos de transmisión, un procesador de transmisión debe cumplir con los siguientes requisitos:
Baja latencia
Un procesador de flujo debería funcionar rápidamente en flujos continuos de datos. La velocidad de procesamiento es una preocupación principal debido a dos razones. Uno, los datos entran como un flujo continuo, y si el procesador es lento y pierde datos, no puede regresar. En segundo lugar, la transmisión de datos pierde su relevancia en poco tiempo. Cualquier retraso en el procesamiento provoca el deterioro del valor de los datos.
Escalabilidad
La transmisión de datos no siempre tiene el mismo volumen. Por ejemplo, los sensores a menudo pueden generar volúmenes bajos de datos, pero ocasionalmente, puede haber un pico en los datos. Dado que el volumen de datos es impredecible, el procesador debe ampliarse para manejar grandes volúmenes de datos si es necesario.
Disponibilidad
Un procesador de flujo no puede permitirse tiempos de inactividad prolongados. La transmisión de datos es continua y llega en tiempo real. Un procesador debe ser tolerante a fallas, lo que significa que debe poder continuar funcionando incluso si fallan algunos de sus componentes. Un procesador de flujo también debería poder recopilar, procesar y pasar inmediatamente los conocimientos a una capa superior para su presentación.
¿Cuáles son los componentes principales de un procesador de flujo?
En general, hay dos casos de uso en el procesamiento de flujo:
Gestión de flujo de datos
En la gestión de flujo de datos, el objetivo del procesamiento de flujo es crear un resumen de los datos entrantes o construir modelos. Por ejemplo, a partir de un flujo continuo de datos faciales, un procesador de flujo podría crear una lista de rasgos faciales. Otro ejemplo de este caso de uso son los registros de actividad de Internet. A partir del flujo constante de datos de clics del usuario, el procesador de flujo intenta calcular las preferencias y los gustos del usuario.
Procesamiento de eventos complejos
El procesamiento de eventos complejos es el caso de uso que se aplica a la mayoría de los flujos de datos de IoT. En este caso de uso, el flujo de datos consta de flujos de eventos. El trabajo del procesador de flujo es extraer eventos significativos, obtener información significativa y pasar rápidamente la información a una capa superior para que se puedan tomar medidas inmediatas en tiempo real.
Algunos de los procesadores de flujo manejan solo uno de los casos de uso anteriores, mientras que algunos procesadores avanzados manejan ambos. Independientemente del caso de uso, una arquitectura de extremo a extremo del procesador de flujo debe tener las siguientes funcionalidades:
Generación de datos
El sistema de generación de datos denota las diversas fuentes de datos sin procesar, como sensores, monitores de transacciones y navegadores web. Continuamente producen datos para que los consuma el sistema de procesamiento de flujo.
Recopilación y agregación de datos
Cada una de las fuentes de generación de datos anteriores está asociada con un cliente, que recibe datos de la fuente. Estos se conocen como clientes de origen. Un agregador recopila los datos de varios clientes de origen y envía los datos en movimiento a un búfer de datos centralizado.
Almacenamiento temporal de mensajería
Los almacenamientos temporales de mensajes toman los datos de flujo de un agente de agregación y los almacenan temporalmente antes de pasar a un procesador lógico. Hay dos tipos principales de almacenamientos temporales de mensajes: basados en temas y basados en colas. En los almacenamientos basados en temas, los datos entrantes se almacenan en forma de registros llamados temas. Uno o más productores de datos pueden contribuir a un tema. El almacenamiento de mensajes basado en cola es más un sistema de almacenamiento en búfer de punto a punto, que lee de un solo productor y entrega a un solo consumidor de datos.
Bróker de mensajería
Los sistemas de recopilación de datos, agregación y almacenamiento intermedio de mensajes juntos forman un sistema de intermediación de mensajes. La funcionalidad del bróker de mensajería es agregar la secuencia de datos de varias fuentes, formatearla y pasarla a un sistema de procesamiento lógico continuo.
Procesamiento lógico continuo
Este es el núcleo de la arquitectura de procesamiento de flujo. El subsistema de procesamiento de lógica continua ejecuta varias consultas predefinidas en los flujos de datos entrantes para obtener información útil. Las consultas pueden ser tan simples como las almacenadas en un archivo XML. Estas consultas se ejecutan continuamente en los datos entrantes. Este subsistema puede definir un lenguaje de comandos declarativo para que los usuarios creen fácilmente estas consultas. El sistema de procesamiento de lógica continua a menudo se ejecuta en máquinas distribuidas para escalabilidad y tolerancia a fallas. A lo largo de los años, el sistema de procesamiento lógico ha evolucionado para admitir la modificación dinámica de las consultas y las API de programación para consultas más sencillas.
Almacenamiento y presentación
Estos son dos sistemas de apoyo en el procesamiento de flujo. El sistema de almacenamiento mantiene un resumen del flujo de datos de entrada y se puede utilizar para futuras referencias. También almacena los resultados de las consultas que se ejecutan en el flujo de datos continuo. El sistema de presentación se utiliza para visualizar los datos a los consumidores. El sistema de presentación puede incluir un nivel superior de sistema analítico o alertas a los usuarios finales.
Procesamiento de flujo vs. Procesamiento por lotes
Tradicionalmente, las organizaciones recopilan datos de varias fuentes, como registros de ventas, interacciones con clientes y reseñas, y los almacenan en un almacén de datos. Estos datos luego se procesan en lotes en un sistema de analítica de datos. El procesamiento por lotes a menudo funciona con datos históricos, que no son críticos en cuanto al tiempo. Si bien los datos históricos son importantes, no brindan los conocimientos en tiempo real que muchas organizaciones buscan en la actualidad. El procesamiento de secuencias pone a disposición información sobre datos en tiempo real y debe procesarse rápidamente.
Con el procesamiento por lotes, existe la flexibilidad de almacenar y procesar los datos a su conveniencia, mientras que el procesamiento continuo requiere una acción en tiempo real o casi en tiempo real. El procesamiento por lotes maneja datos que no son críticos en cuanto al tiempo y no necesita ser tan rápido como el procesamiento de secuencias. En comparación con el procesamiento continuo, el procesamiento por lotes a menudo requiere una infraestructura más grande para almacenar datos mientras esperan ser analizados. Sin embargo, la mayoría de las organizaciones necesitan una combinación de procesamiento continuo y por lotes para tener éxito en el mercado actual.

Beneficios de la transmisión y el procesamiento de datos
Procesamiento de flujos y altos rendimientos
Las organizaciones pueden obtener un valor inmenso de los datos en general. Las técnicas de procesamiento de flujo en tiempo real ayudan a las organizaciones a obtener una ventaja mediante el análisis de datos sensibles al tiempo para que puedan reaccionar y responder rápidamente a posibles problemas. Por ejemplo, el análisis de flujo ayuda a las organizaciones financieras a monitorear los precios de las acciones en tiempo real y tomar decisiones críticas en el tiempo. Les ayuda a estar informados sobre las tendencias del mercado en tiempo real. Los sistemas robustos de visualización, junto con una infraestructura de procesamiento de flujo en tiempo real, permiten a las organizaciones mejorar su tiempo de respuesta a eventos cruciales.
Reducir el costo de infraestructura
En el procesamiento de datos tradicional, los datos a menudo se almacenan en grandes volúmenes en almacenes de datos. El costo de estos sistemas de almacenamiento y hardware suele ser una carga para las organizaciones. Con el procesamiento de flujo, los datos no se almacenan en grandes volúmenes, por lo que los sistemas de procesamiento tienen menores costos de hardware.
Reducir las pérdidas prevenibles
Los flujos de datos en tiempo real permiten a las organizaciones monitorear su ecosistema empresarial continuamente. Mantienen a las organizaciones informadas sobre posibles brechas de seguridad, problemas de fabricación, insatisfacción de los clientes, colapsos financieros o una alteración inminente de la imagen social. Con la transmisión y el procesamiento continuos de datos, las organizaciones pueden evitar estos problemas prevenibles.
Aumentar la competitividad y la satisfacción del cliente
Con el procesamiento de datos en tiempo real, las organizaciones pueden resolver de manera proactiva posibles problemas antes de que se materialicen. Esto les da tiempo y ventaja sobre los competidores. La transmisión y el procesamiento de datos también aumentan la satisfacción del cliente, ya que los problemas de los clientes se pueden abordar en tiempo real. Con el procesamiento continuo de datos en tiempo real, no hay demoras causadas por los datos que se encuentran en los almacenes esperando ser procesados.
Desafíos para la transmisión y el procesamiento de datos
Los sistemas de transmisión y procesamiento de datos manejan datos continuos, en tiempo real y altamente volátiles. Los datos de flujo son a menudo heterogéneos e incompletos. La naturaleza misma de la transmisión de datos plantea muchos desafíos para la transmisión y el procesamiento de datos.
Volumen de datos y diversidad
La transmisión de datos se ocupa de grandes volúmenes de datos continuos en tiempo real. La pérdida de datos y los paquetes de datos dañados son desafíos comunes en la transmisión de datos. Los datos de flujo a menudo son heterogéneos y se originan en diversas ubicaciones geográficas y aplicaciones. Es un desafío para las aplicaciones de transmisión y procesamiento de datos manejar estos datos debido a su propia naturaleza.
Puntualidad
La relevancia de los datos de transmisión disminuye con el tiempo. El sistema de transmisión y procesamiento de datos debe ser lo suficientemente rápido para analizar los datos mientras aún son relevantes. Esta naturaleza de tiempo crítico de la transmisión de datos exige un sistema tolerante a fallas y de alto rendimiento.
Elasticidad
El volumen de datos de transmisión aumenta cada día. Para mantener un cierto nivel de calidad de servicio, los sistemas de procesamiento de flujo deben adaptarse dinámicamente a la carga. Es posible que las fuentes de datos de transmisión no siempre transmitan grandes volúmenes de datos. En tales casos, los sistemas de procesamiento solo deben utilizar recursos mínimos. Cuando la demanda aumenta, el sistema debe asignar dinámicamente más recursos. Esta necesidad de elasticidad es otro desafío de los sistemas de procesamiento de flujo.
Tolerancia a fallas
El procesamiento de flujo ocurre continuamente en tiempo real. Los datos transmitidos no se pueden repetir o retransmitir perfectamente. Como resultado, los sistemas de procesamiento de flujo no pueden permitirse el tiempo de inactividad. A diferencia de los sistemas de procesamiento por lotes tradicionales, no hay mucho tiempo entre la recopilación y el procesamiento de datos. Los sistemas deben estar disponibles todo el tiempo y deben funcionar todo el tiempo. Si alguna parte del sistema falla, no debería afectar al resto del sistema de procesamiento.