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.