Configuración del tamaño del 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 vertidos y retrasos en el procesamiento de micro-lotes en cascada.
Azure Databricks proporciona las mismas opciones para controlar los tamaños de lote de Structured Streaming para Delta Lake y Auto Loader.
Limitar la velocidad de entrada con maxFilesPerTrigger
Establecer maxFilesPerTrigger
(o cloudFiles.maxFilesPerTrigger
para Auto Loader) especifica un límite superior para el número de archivos procesados en cada microproceso. 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).
Limitar la velocidad de entrada con maxBytesPerTrigger
Al configurar maxBytesPerTrigger
(o cloudFiles.maxBytesPerTrigger
para el Cargador Automático), se establece un "máximo flexible" para la cantidad de datos procesados en cada micro-lote. Esto 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 los que la unidad de entrada más pequeña sea mayor que este límite. No hay ningún valor predeterminado para esta configuración.
Por ejemplo, si especifica una cadena de bytes como 10g
para limitar cada microbatch a 10 GB de datos y tiene archivos de 3 GB cada uno, Azure Databricks procesará 12 GB en un microbatch.
Establecimiento de varias velocidades de entrada juntas
Si usa maxBytesPerTrigger
junto con maxFilesPerTrigger
, el microproceso procesa los datos hasta alcanzar el límite inferior 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 límites de entrada personalizados, como maxOffsetsPerTrigger
. Para obtener más información, consulte Configuración de orígenes de datos de streaming.