Compartilhar via


Configurar o tamanho do lote de Streaming Estruturado no Azure Databricks

Limitar a taxa de entrada de consultas do Streaming Estruturado ajuda a manter um tamanho de lote consistente e impede que lotes grandes gerem despejos e atrasos de processamento de microlotes em cascata.

O Azure Databricks fornece as mesmas opções para controlar os tamanhos de lote de Streaming Estruturado para Delta Lake e Carregador Automático.

Limitar a taxa de entrada com maxFilesPerTrigger

Definir maxFilesPerTrigger (ou cloudFiles.maxFilesPerTrigger para Carregador Automático) especifica um limite superior para o número de arquivos processados em cada microlote. Para Delta Lake e Carregador Automático, o padrão é 1000. (Observe que essa opção também está presente no Apache Spark para outras fontes de arquivo, em que não há nenhum máximo por padrão.)

Limitar a taxa de entrada com maxBytesPerTrigger

Definir maxBytesPerTrigger (ou cloudFiles.maxBytesPerTrigger para Carregador Automático) define um "máximo suave" 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 em casos em que a menor unidade de entrada for maior 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 microbatch a 10 GB de dados e tiver arquivos com 3 GB cada, o Azure Databricks processará 12 GB em uma microbatch.

Definindo várias taxas de entrada juntas

Se você usar maxBytesPerTrigger em conjunto com maxFilesPerTrigger, o microlote processará dados até atingir o limite inferior de maxFilesPerTrigger ou maxBytesPerTrigger.

Limitando as taxas de entrada para outras fontes de streaming estruturadas

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.