Configurar o tamanho de lote do 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 de controle dos tamanhos de lote do Streaming Estruturado para o Delta Lake e para o Carregador Automático.
Limitar a taxa de entrada com maxFilesPerTrigger
A configuração de maxFilesPerTrigger
(ou de cloudFiles.maxFilesPerTrigger
para o Carregador Automático) especifica um limite superior para o número de arquivos processados em cada microlote. O padrão é 1000 para o Delta Lake e o Carregador Automático. (Observe que essa opção também está presente no Apache Spark para outras fontes de arquivo, em que não há um máximo por padrão.)
Limitar a taxa de entrada com maxBytesPerTrigger
A configuração de maxBytesPerTrigger
(ou de cloudFiles.maxBytesPerTrigger
para o Carregador Automático) define um "máximo flexível" 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 com que a consulta de streaming avance em casos em que a menor unidade de entrada é maior que esse limite. Não há valor 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.
Definir várias taxas de entrada juntas
Se você usar maxBytesPerTrigger
com maxFilesPerTrigger
, o microlote processará os dados até que o limite inferior de maxFilesPerTrigger
ou maxBytesPerTrigger
seja atingido.
Limitação das taxas de entrada de outras fontes do Streaming Estruturado
Fontes de streaming como o Apache Kafka têm limites de entrada personalizados, como maxOffsetsPerTrigger
. Para obter mais detalhes, confira Configurar fontes de dados de streaming.