Configurar o tamanho do lote do Streaming Estruturado no Azure Databricks
Limitar a taxa de entrada para consultas de Streaming Estruturado ajuda a manter um tamanho de lote consistente e evita que lotes grandes levem a atrasos de processamento de microlotes em cascata.
O Azure Databricks fornece as mesmas opções para controlar os tamanhos de lote do Streaming Estruturado para Delta Lake e Auto Loader.
Limite a taxa de entrada com maxFilesPerTrigger
A configuração maxFilesPerTrigger
(ou cloudFiles.maxFilesPerTrigger
para Auto Loader) especifica um limite superior para o número de arquivos processados em cada microlote. Para Delta Lake e Auto Loader, o padrão é 1000. (Observe que essa opção também está presente no Apache Spark para outras fontes de arquivos, onde não há um máximo por padrão.)
Limite a taxa de entrada com maxBytesPerTrigger
A configuração maxBytesPerTrigger
(ou cloudFiles.maxBytesPerTrigger
para Auto Loader) define um "soft max" para a quantidade de dados processados em cada microlote. Isso significa que um lote processa aproximadamente essa quantidade de dados e pode processar mais do que o limite para fazer a consulta de streaming avançar nos casos em que a menor unidade de entrada é maior do que esse limite. Não há nenhum padrão para essa configuração.
Por exemplo, se você especificar uma cadeia de caracteres de bytes, como 10g
para limitar cada microlote a 10 GB de dados, e tiver arquivos de 3 GB cada, o Azure Databricks processará 12 GB em um microlote.
Definindo várias taxas de entrada juntas
Se você usar maxBytesPerTrigger
em conjunto com maxFilesPerTrigger
o , o microlote processa dados até atingir o limite inferior de um maxFilesPerTrigger
ou maxBytesPerTrigger
.
Limitando as taxas de entrada para outras fontes de Streaming Estruturado
Fontes de streaming, como o Apache Kafka, têm limites de entrada personalizados, como maxOffsetsPerTrigger
. Para obter mais detalhes, consulte Configurar fontes de dados de streaming.