¿Qué son los datos de streaming?

Los datos de streaming son aquellos que se emiten en grandes volúmenes de forma continua e incremental con el objetivo de procesarlos con baja latencia. Las organizaciones poseen cientos de orígenes de datos que suelen emitir simultáneamente mensajes, registros o datos, con un tamaño que va desde unos pocos bytes a varios megabytes (MB). Los datos de streaming incluyen datos de sensor, eventos y ubicación que las empresas usan para lograr un análisis en tiempo real y la visibilidad de muchos aspectos de su negocio. Por ejemplo, las empresas pueden rastrear cambios en la opinión pública sobre sus marcas y productos al analizar de manera continua las secuencias de clics y publicaciones de clientes en flujos de redes sociales y responder rápidamente según sea necesario.

¿Cuáles son las características de los datos de streaming?

Un flujo de datos posee las siguientes características específicas que lo definen.

Importante a nivel cronológico

Los elementos individuales en una secuencia de datos contienen marcas de tiempo. La secuencia de datos en sí misma puede ser urgente, con una importancia disminuida después de un intervalo de tiempo específico. Por ejemplo, su aplicación realiza recomendaciones de restaurantes de acuerdo con la ubicación actual del usuario. Tiene que responder a los datos de geolocalización del usuario en tiempo real o los datos perderán importancia.

De flujo continuo

Una secuencia de datos no tiene principio ni final. Recopila datos de manera continua y constante mientras sea necesario. Por ejemplo, los registros de actividad del servidor se acumulan mientras el servidor esté en ejecución.

Única

Repetir la transmisión de una secuencia de datos es todo un desafío debido a la urgencia. Por lo tanto, el procesamiento de datos preciso y en tiempo real es fundamental. Lamentablemente, las provisiones para la retransmisión son limitadas en la mayoría de los orígenes de datos de streaming.

No homogénea

Algunos orígenes pueden transmitir datos en varios formatos estructurados como JSON, Avro y valores separados por comas (CSV) con tipos de datos que incluyen cadenas, números, fechas y tipos binarios. Sus sistemas de procesamiento de secuencias deben tener las capacidades para manejar tales variaciones en los datos.

Imperfecta

Los errores temporales en el origen pueden resultar en elementos dañados o faltantes en los datos transmitidos. Puede ser difícil garantizar la coherencia de datos debido a la naturaleza continua de la transmisión. Los sistemas de análisis y procesamiento de secuencias suelen incluir lógica para la validación de datos a fin de mitigar o minimizar esos errores.

¿Por qué son importantes los datos de streaming?

Los sistemas tradicionales de procesamiento de datos capturan datos en un almacenamiento de datos central y los procesan en grupos o lotes. Estos sistemas fueron creados para capturar y estructurar datos antes del análisis. Sin embargo, en los últimos años, la naturaleza de los datos empresariales y los sistemas de procesamiento de datos subyacentes han cambiado de manera significativa.

Volumen de datos infinito

Los volúmenes de datos generados de orígenes de secuencias pueden ser muy grandes, lo cual se traduce en un desafío para el análisis en tiempo real: la regulación de la integridad (validación), la estructura (evolución) o la velocidad (rendimiento y latencia) de los datos de streaming.

Sistemas de procesamiento de datos avanzados

Al mismo tiempo, la infraestructura en la nube ha introducido la flexibilidad en la escala y el uso de recursos informáticos. Usa exactamente lo que necesita y paga solo por lo que utiliza. Tiene las opciones de agregación o filtros en tiempo real tanto antes como después de almacenar datos de streaming. La arquitectura de datos de streaming utiliza tecnologías en la nube para consumir, enriquecer, analizar y almacenar de forma permanente datos de streaming según sea necesario.

¿Cuáles son los casos de uso para el streaming de datos?

El sistema de procesamiento de secuencias resulta beneficioso en la mayoría de las situaciones en las que se generan datos nuevos y dinámicos de forma continua. Aplica a la mayoría de los sectores y casos de uso de macrodatos.

Por lo general, las empresas comienzan con aplicaciones sencillas, como la recopilación de registros del sistema y el procesamiento rudimentario, como la implementación de cálculos mín.-máx. Más adelante, estas aplicaciones evolucionan y se pasa al procesamiento más sofisticado casi en tiempo real.

Aquí hay más ejemplos de datos de streaming.

Análisis de datos

Las aplicaciones procesan secuencias de datos para producir informes y realizar acciones como respuesta, por ejemplo, emitir alertas cuando las medidas clave superen ciertos umbrales. Las aplicaciones de procesamiento de secuencias más sofisticadas extraen información más profunda mediante la aplicación de algoritmos de machine learning a los datos de actividad de los clientes y la empresa.

Aplicaciones de IoT

Los dispositivos de internet de las cosas (IoT) son otro caso de uso para los datos de streaming. Los sensores en vehículos, equipo industrial y maquinaria agrícola envían datos a una aplicación de streaming. La aplicación supervisa el rendimiento, detecta posibles defectos de forma anticipada y envía el pedido de un recambio automáticamente, lo que evita el tiempo de inactividad del equipo.

Análisis financiero

Las instituciones financieras usan datos de secuencias para controlar los cambios en la bolsa en tiempo real, procesar el valor en riesgo y modificar las carteras automáticamente en función de los cambios en los precios de las acciones. Otro caso de uso financiero es la detección de fraudes en transacciones con tarjetas de crédito mediante la inferencia en tiempo real frente a datos de transacción de streaming.

Recomendaciones en tiempo real

Las aplicaciones de bienes raíces rastrean datos de geolocalización de los dispositivos móviles de los consumidores y realizan recomendaciones en tiempo real de propiedades para visitar. De manera similar, las aplicaciones de consumidores, ventas, alimentos y publicidades pueden integrar recomendaciones en tiempo real para brindar más valor a los clientes.

Garantías de servicio

Puede implementar el procesamiento de secuencias de datos para rastrear y mantener niveles de servicios en las aplicaciones y el equipo. Por ejemplo, una compañía de energía solar debe mantener constante el suministro de electricidad a sus clientes, ya que si no lo hace se la sanciona. Implementa una aplicación de datos de streaming que supervise todos los paneles en el campo y programe el servicio en tiempo real. Por lo tanto, puede minimizar los periodos de bajo rendimiento de cada panel y los pagos de penalidades asociados.

Multimedia y videojuegos

Los editores de medios transmiten miles de millones de registros de secuencias de clics de sus propiedades en línea, agregan y enriquecen los datos con información demográfica del usuario y optimizan la colocación de contenido. Esto ayuda a los editores a ofrecer al público una experiencia mejor y más relevante. De manera similar, las empresas de videojuegos en línea utilizan el procesamiento de secuencias de eventos para analizar las interacciones entre el jugador y el juego y ofrecer experiencias dinámicas para involucrar a los jugadores.

Control de riesgos

Las transmisiones en directo y las plataformas de redes sociales capturan datos del comportamiento del usuario en tiempo real para controlar riesgos en la actividad financiera de los usuarios, como las recargas, los reintegros y las recompensas. Visualizan paneles en tiempo real para ajustar las estrategias de riesgos de manera flexible.

¿Cuál es la diferencia entre los datos de lotes y los datos de streaming?

El procesamiento por lotes es el método que utilizan las computadoras para completar periódicamente trabajos de datos repetitivos y de gran volumen. Puede utilizarlo para calcular consultas arbitrarias en diferentes conjuntos de datos. Por lo general, deriva los resultados informáticos de todos los datos que abarca y permite un análisis profundo de conjuntos de macrodatos. Los sistemas basados en MapReduce, como Amazon EMR, son ejemplos de plataformas compatibles con los trabajos por lotes.

Por el contrario, el procesamiento de secuencias requiere capturar una secuencia de datos y actualizar de forma gradual las métricas, los informes y las estadísticas de resumen en respuesta a cada registro de datos que llega. Es más adecuado para las funciones de respuesta y análisis en tiempo real.

  Procesamiento por lotes

Procesamiento de transmisiones

Alcance de los datos

Consultas o procesamientos de todos o la mayoría de los datos del conjunto de datos.

Consultas o procesamientos de datos dentro de un período de tiempo continuo, o solo en el registro de datos más reciente.

Tamaño de los datos


Lotes grandes de datos.

Registros individuales o microlotes formados por pocos registros.

Rendimiento

  Latencias de minutos a horas.

Requiere una latencia de segundos o milisegundos.

Análisis

Análisis complejo. Funciones de respuesta sencilla, agregaciones y métricas graduales.

Muchas organizaciones combinan los dos métodos para desarrollar un modelo híbrido y mantener una capa por lotes y una capa en tiempo real. Por ejemplo, primero puede procesar los datos en una plataforma de datos de streaming como Amazon Kinesis para extraer información en tiempo real. Luego pueden persistir en un almacén como Amazon Simple Storage Service (Amazon S3). Allí pueden transformarse y cargarse para varios casos de uso de procesamiento en lotes.

Amazon Redshift Streaming Ingestion permite a los usuarios capturar datos directamente desde Amazon Kinesis Data Streams sin tener que gestionarlos en Amazon S3. El servicio también puede capturar datos de Amazon Managed Streaming para Apache Kafka (Amazon MSK) en Amazon Redshift.

¿Cómo puede procesar datos de streaming?

La arquitectura de datos de streaming contiene dos tipos de componentes principales.

Productores de secuencias

Los productores de secuencias son componentes de software en aplicaciones y sistemas de IoT que recopilan datos. Transmiten registros al procesador de secuencias que contienen un nombre de secuencia, valor de datos y número de secuencia. El procesador regula o agrupa de manera temporal los registros de datos por nombre de secuencia. Usa el número de secuencia para rastrear la posición única de cada registro y procesa los datos cronológicamente.

Consumidores de secuencias

Los consumidores de secuencias son componentes de software que procesan y analizan las secuencias de datos reguladas en el procesador. Cada consumidor posee capacidades de análisis como correlaciones, agregaciones, filtros, muestras o machine learning. Cada secuencia puede tener varios consumidores y cada consumidor puede producir varias secuencias. Los consumidores también pueden enviar los datos cambiados de regreso al procesador para crear nuevos flujos para otros consumidores.

Implementación de arquitectura

Para implementar una arquitectura de datos de streaming, necesita capas de procesamiento y almacenamiento. La capa de almacenamiento debe ser compatible con la ordenación de registros y la alta coherencia para facilitar lecturas y escrituras de secuencias de datos de gran tamaño de forma rápida, económica y que permita reproducciones adicionales. La capa de procesamiento es responsable del consumo de los datos de la capa de almacenamiento. Realiza tareas informáticas a partir de los datos y notifica a la capa de almacenamiento para que elimine los datos que ya no son necesarios.

¿Cuáles son los desafíos de trabajar con datos de streaming?

La arquitectura de datos de streaming requiere consideraciones especiales debido a la naturaleza y el volumen de los datos.

Disponibilidad

Las aplicaciones de datos de streaming requieren coherencia, baja latencia y alta disponibilidad. Los consumidores extraen constantemente datos nuevos del flujo para procesarlos. Demoras por parte del productor pueden ralentizar el sistema y causar errores.

Escalabilidad

Las secuencias de datos sin procesar pueden dispararse de manera rápida e inesperada. Por ejemplo, las publicaciones en redes sociales se disparan durante un evento deportivo de gran magnitud. Por lo tanto, el sistema debería priorizar la coherencia, disponibilidad y secuencia de datos apropiadas, incluso en momentos de carga máxima.

Durabilidad

Debido a la urgencia de los datos, el sistema de procesamiento de secuencias debe ser tolerante a errores. De lo contrario, los datos se perderán para siempre en una interrupción o un error.

¿Cuáles son los desafíos de trabajar con datos de streaming?

AWS proporciona varias opciones para trabajar con datos de streaming. 

Amazon Kinesis

Kinesis es una plataforma para datos de streaming en AWS. Ofrece servicios potentes que facilitan la carga y el análisis de datos de streaming. Además, brinda la capacidad de crear aplicaciones de datos de streaming personalizadas para necesidades especiales.

Kinesis ofrece tres servicios: Amazon Kinesis Data Firehose, Amazon Kinesis Data Streams y Amazon Managed Streaming para Apache Kafka (Amazon MSK).

Kinesis Data Firehose

Kinesis Data Firehose puede capturar y cargar de forma automática datos de streaming en Amazon Simple Storage Service (Amazon S3) y Amazon Redshift. Esto permite realizar el análisis casi en tiempo real con las herramientas y los paneles de inteligencia empresarial existentes que ya está utilizando en la actualidad.

Kinesis Data Streams

Kinesis Data Streams puede capturar y almacenar continuamente terabytes (TB) de datos por hora procedentes de cientos de miles de orígenes. Es compatible con el marco de procesamiento de secuencias que elija, incluidos la biblioteca de clientes de Amazon Kinesis (KCL), Apache Storm y Apache Spark Streaming.

Amazon MSK

Amazon MSK es un servicio completamente administrado que facilita la creación y la ejecución de aplicaciones que utilizan Apache Kafka para procesar datos de streaming. Apache Kafka es una plataforma de código abierto para la creación de canalizaciones y aplicaciones de datos de streaming en tiempo real. 

Amazon Redshift

Amazon Redshift Streaming Ingestion permite a los usuarios capturar datos de streaming en su almacenamiento de datos para un análisis en tiempo real a partir de varias secuencias de datos de Kinesis. Puede realizar análisis valiosos con un SQL familiar y crear y administrar fácilmente canalizaciones de ELT. También puede procesar grandes volúmenes de datos de streaming con baja latencia y alto rendimiento para obtener información en segundos.

Otras soluciones de streaming en Amazon EC2

Puede instalar las plataformas de datos de streaming que elija en Amazon Elastic Compute Cloud (Amazon EC2) y Amazon EMR, así como crear sus propias capas de almacenamiento y procesamiento de secuencias. Como resultado, puede evitar la fricción del aprovisionamiento de la infraestructura y obtener acceso a varios marcos de procesamiento y almacenamiento de secuencias. Las opciones para la capa de almacenamiento de datos incluyen Amazon MSK y Apache Flume. Las opciones para la capa de procesamiento de secuencias incluyen Apache Spark Streaming y Apache Storm.

Cree una cuenta gratuita de AWS ¡y comience con los datos de streaming en AWS hoy mismo!

Pasos siguientes

Descubra otros recursos relacionados con el producto
Ver ofertas gratuitas de servicios de análisis en la nube 
Regístrese para obtener una cuenta gratuita

Obtenga acceso inmediato al nivel Gratuito de AWS. 

Regístrese 
Comience a crear en la consola

Comience a crear en la consola de administración de AWS.

Iniciar sesión