Configuración de tamaños de lote de Structured Streaming en Azure Databricks

Limitar la velocidad de entrada para las consultas de Structured Streaming ayuda a mantener un tamaño de lote coherente y evita que los lotes grandes den lugar a volcados y a cascadas de retrasos del procesamiento de microlotes.

Azure Databricks proporciona las mismas opciones para controlar los tamaños de lote de Structured Streaming para Delta Lake y Auto Loader.

Limitación de la velocidad de entrada con maxFilesPerTrigger

El valor maxFilesPerTrigger (o cloudFiles.maxFilesPerTrigger para Auto Loader) especifica un límite superior para el número de archivos procesados en cada microlote. Para Delta Lake y Auto Loader, el valor predeterminado es 1000. (Tenga en cuenta que esta opción también está presente en Apache Spark para otros orígenes de archivos, donde no hay ningún máximo de forma predeterminada).

Limitación de la velocidad de entrada con maxBytesPerTrigger

Si se establece maxBytesPerTrigger (o cloudFiles.maxBytesPerTrigger para Auto Loader) se establece un "máximo flexible" para la cantidad de datos procesados en cada microlote. Lo que significa que un lote procesa aproximadamente esta cantidad de datos y puede procesar más que el límite para que la consulta de streaming avance en los casos en que la unidad de entrada más pequeña sea mayor que este límite. No hay valor predeterminado para esta opción.

Por ejemplo, si especifica una cadena de bytes como 10g para limitar cada microlote a 10 GB de datos y tiene archivos de 3 GB cada uno, Azure Databricks procesa 12 GB en un microlote.

Establecimiento de varias velocidades de entrada juntas

Si usa maxBytesPerTrigger junto con maxFilesPerTrigger, el microlote procesa los datos hasta que se alcanza el límite mínimo de maxFilesPerTrigger o maxBytesPerTrigger.

Limitación de las velocidades de entrada para otros orígenes de Structured Streaming

Los orígenes de streaming, como Apache Kafka, tienen cada uno límites de entrada personalizados, como maxOffsetsPerTrigger. Para más información, consulte Configuración de orígenes de datos de streaming.