Introducción al streaming

Apache Spark Structured Streaming es una API de procesamiento de transmisiones rápida, escalable y tolerante a errores. Se puede usar para realizar análisis en los datos de streaming prácticamente en tiempo real.

Con Structured Streaming, puede usar consultas SQL para procesar datos de streaming de la misma manera que procesaría datos estáticos. La API aumenta y actualiza de forma continua los datos finales.

Event Hubs y Spark Structured Streaming

Azure Event Hubs es un servicio de ingesta de datos en tiempo real escalable que procesa millones de datos en cuestión de segundos. Puede recibir grandes cantidades de datos de varios orígenes y transmitir los datos preparados a Azure Data Lake o Azure Blob Storage.

Azure Event Hubs se puede integrar con Spark Structured Streaming para realizar el procesamiento de mensajes casi en tiempo real. Puede consultar y analizar los datos procesados tal y como los obtenga mediante una consulta de Structured Streaming y Spark SQL.

Conceptos de streaming

El procesamiento de flujos es donde se incorporan continuamente datos nuevos al almacenamiento de Data Lake y se calculan los resultados. Los datos de streaming llegan más rápido de lo que se pueden consumir. Un flujo de datos se trata como una tabla a la que se anexan datos continuamente. Como ejemplo de este tipo de datos, se incluyen transacciones de tarjetas bancarias, datos de dispositivos de Internet de las cosas (IoT) y eventos de partidas a videojuegos.

Normalmente, los datos procedentes de un flujo no siguen ningún tipo de orden.

Un sistema de streaming está formado por:

  • Orígenes de entrada, como Kafka, Azure Event Hubs, archivos en un sistema distribuido o sockets TCP-IP.
  • Receptores como Kafka, Azure Event Hubs, varios formatos de archivo, receptores forEach, receptores de consola o receptores de memoria.

Streaming y Databricks Delta

En el streaming, los problemas de las canalizaciones de datos tradicionales se agravan. En concreto, debido a las actualizaciones frecuentes de los metadatos, cada minuto o segundo se acumulan reparaciones de tablas y pequeños archivos. Se crean muchos archivos pequeños porque es posible que los datos se transmitan en pequeños volúmenes con desencadenadores cortos.

La única finalidad de Databricks Delta es satisfacer estas necesidades. En este módulo, se explorarán algunas de estas funciones y se verá cómo Databricks Delta ayuda con el streaming de datos.