Conceptos de Structured Streaming

Apache Spark Structured Streaming te permite construir aplicaciones y pipelines de streaming con las mismas APIs de Spark que usas para el procesamiento por lotes. En Azure Databricks, se admiten dos modos de procesamiento:

  • Modo en tiempo real (RTM): Diseñado para cargas de trabajo operativas con latencia inferior a un segundo, como la detección de fraudes y la personalización en tiempo real. RTM procesa los registros a medida que llegan, con una latencia de extremo a extremo tan baja como cinco milisegundos. Véase conceptos de modo en tiempo real.
  • Modo microlote: Diseñado para tuberías analíticas y cargas de trabajo de extracción, transformación y carga (ETL). El modo microlote procesa flujos en pequeños lotes, equilibrando el coste de cálculo con los requisitos de latencia medidos en segundos o minutos. El microprocesamiento por lotes es el modo predeterminado.

Ambos modos utilizan las mismas APIs de Streaming Estructurado. Para consultas admitidas por ambos modos, puedes cambiar de modo mediante la configuración del desencadenador y del cómputo. Consulte Configuración del modo en tiempo real.

Structured Streaming también impulsa el streaming en Lakeflow pipelines, basados en Apache Spark™ Declarative Pipelines. Las canalizaciones gestionan la orquestación, los puntos de control y la recuperación, y tú defines las transformaciones en SQL o Python.

Para ver un tutorial paso a paso, consulte Ejecución de la primera carga de trabajo de Structured Streaming.

Leer desde un flujo de datos

Utiliza Structured Streaming para ingerir datos de manera incremental desde fuentes de datos compatibles.

Feature Descripción
Cargador automático Procesar de forma incremental y eficaz nuevos archivos de datos a medida que llegan al almacenamiento en la nube.
Lecturas y escrituras de streaming de tablas de Delta Lake Use tablas de Delta Lake como orígenes de streaming y receptores con garantías de procesamiento exactamente una vez.
API de SQL y Spark Conéctate a buses de mensajes, colas y aplicaciones empresariales usando API SQL y Spark.
Tamaño de microlote Limite las tasas de entrada para mantener tamaños de lote coherentes y evitar retrasos en el procesamiento.

Escribir en un receptor de datos

Configure cómo Structured Streaming entrega datos a los sistemas de destino.

Feature Descripción
Puntos de comprobación Almacene el estado de procesamiento para habilitar la tolerancia a errores y la semántica de entrega exactamente una vez.
Modo de salida Elija entre anexar, actualizar y completar modos para las consultas de streaming con estado.
Intervalos de desencadenador Establezca intervalos de desencadenador para equilibrar la latencia y el costo de los requisitos de procesamiento.
Modo en tiempo real en Structured Streaming Procese datos para cargas de trabajo en tiempo real con una latencia de extremo a extremo tan baja como cinco milisegundos.

Procesamiento con estado y sin estado

Las consultas sin estado procesan filas sin conservar el estado. Las consultas con estado mantienen el estado intermedio para agregaciones, combinaciones y desduplicación.

Feature Descripción
Consultas de streaming sin estado Optimice las consultas que procesan datos sin mantener el estado intermedio.
Marcas de agua Controlar cuánto tiempo espera Structured Streaming para los datos de llegada tardía en operaciones con estado.
Streaming con estado Administre agregaciones, combinaciones de secuencias y desduplicación mediante operadores con estado.

Supervisión y administración

Realice un seguimiento del rendimiento de las consultas, aplique optimizaciones y controle el acceso a los datos para cargas de trabajo de Structured Streaming de producción.

Feature Descripción
Supervisión con StreamingQueryListener Realice un seguimiento de las métricas de progreso y rendimiento de las consultas mediante la INTERFAZ de usuario de Spark y la API del agente de escucha.
Gestionar con Unity Catalog Configure Unity Catalog para las cargas de trabajo de streaming con gobernanza y control de acceso.