Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta página se explica cómo usar controles de admisión para mantener un tamaño de lote coherente para las consultas de streaming.
Los controles de admisión limitan la velocidad de entrada para las consultas de Structured Streaming, lo que puede ayudar a mantener un tamaño de lote coherente y evitar que los lotes grandes provoquen desbordamientos y retrasos en el procesamiento en cascada de micro-lotes.
Azure Databricks proporciona las mismas opciones para controlar los tamaños de lote de Structured Streaming para Delta Lake y Auto Loader.
Nota:
Puede modificar la configuración del control de admisión sin restablecer el punto de control de una consulta de streaming. Consulte Recuperación después de los cambios en una consulta de Structured Streaming.
Cambiar la configuración del control de admisión para aumentar o disminuir el tamaño del lote tiene implicaciones de rendimiento. Para optimizar la carga de trabajo, es posible que tenga que ajustar las configuraciones de proceso.
Advertencia
Si se planea un microbatch mientras se detiene una transmisión, cualquier cambio en los controles de admisión no tendrá efecto hasta después de que se complete el microbatch planificado. Por ejemplo, cuando una secuencia se detiene después de una transacción con error, es posible que tenga que eliminar el punto de control para forzar que la secuencia vuelva a procesar la transacción con los nuevos controles de admisión. Este comportamiento se produce porque Structured Streaming es idempotente y los micro-lotes deben contener los mismos datos en ejecuciones repetidas. Consulte Semántica de Structured Streaming.
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 más información, consulte Conectores estándar en Lakeflow Connect.