Configurar intervalos de acionamento da transmissão estruturada
Apache Spark A transmissão estruturada processa os dados de forma incremental; o controle do intervalo de disparo para o processamento de lotes permite que o senhor use a transmissão estruturada para cargas de trabalho que incluem processamento real quase instantâneo, atualização de bancos de dados a cada 5 minutos ou uma vez por hora, ou processamento de lotes de todos os dados novos durante um dia ou uma semana.
Como o site Databricks Auto Loader usa a transmissão estruturada para carregar dados, entender como os acionadores funcionam proporciona ao senhor a maior flexibilidade para controlar os custos e, ao mesmo tempo, ingerir dados com a frequência desejada.
Especificação de intervalos de gatilho com base no tempo
A transmissão estruturada refere-se aos intervalos de acionamento baseados no tempo como "microlotes de intervalo fixo". Usando a palavra-chave processingTime
, especifique uma duração de tempo como uma cadeia de caracteres, como .trigger(processingTime='10 seconds')
.
Quando você especifica um intervalo trigger
muito pequeno (menos de dezenas de segundos), o sistema pode realizar verificações desnecessárias para ver se novos dados chegam. Configure seu tempo de processamento para equilibrar os requisitos de latência e a taxa em que os dados chegam à fonte.
Configuração do processamento incremental de lotes
No Databricks Runtime 11.3 LTSe acima, a configuração Trigger.Once
foi preterida. Databricks recomenda que você use Trigger.AvailableNow
para todas as cargas de trabalho de processamento de lotes incrementais.
A opção de acionamento disponível agora consome todos os registros disponíveis como lotes incrementais com a capacidade de configurar o tamanho dos lotes com opções como maxBytesPerTrigger
(as opções de dimensionamento variam de acordo com a fonte de dados).
Databricks suporta o uso de Trigger.AvailableNow
para processamento incremental de lotes de muitas fontes de transmissão estruturada. A tabela a seguir inclui a versão mínima compatível do site Databricks Runtime necessária para cada fonte de dados:
Origem | Versão mínima do Databricks Runtime |
---|---|
Fontes de arquivos (JSON, Parquet, etc.) | 9.1 LOTES |
Delta Lake | 10.4 LTS |
Carregador automático | 10.4 LTS |
Apache Kafka | 10.4 LTS |
Kinesis | 13.1 |
Qual é o intervalo de acionamento do site default?
transmissão estruturada padrão para micro-lotes de intervalo fixo de 500ms. A Databricks recomenda que o senhor sempre especifique um trigger
personalizado para minimizar os custos associados à verificação da chegada de novos dados e ao processamento de lotes subdimensionados.
Alterar os intervalos de acionamento entre as execuções
O senhor pode alterar o intervalo de disparo entre as execuções enquanto usa o mesmo ponto de verificação.
Se um trabalho de transmissão estruturada for interrompido enquanto uma microlote estiver sendo processada, essa microlote deverá ser concluída antes que o novo intervalo de acionamento seja aplicado. Dessa forma, o senhor poderá observar um processamento de microlotes com as configurações especificadas anteriormente após alterar o intervalo de disparo.
Ao passar do intervalo baseado em tempo para o uso do site AvailableNow
, isso pode resultar em um processamento de microlotes antes do processamento de todos os registros disponíveis como lotes incrementais.
Ao mudar de AvailableNow
para um intervalo baseado em tempo, isso pode resultar na continuação do processamento de todos os registros que estavam disponíveis quando o último Job AvailableNow
foi acionado. Esse é o comportamento esperado.
Se o senhor estiver tentando se recuperar de uma falha de consulta associada a lotes incrementais, a alteração do intervalo de acionamento não resolverá o problema, pois os lotes ainda precisam ser concluídos. Databricks recomenda aumentar a capacidade do site compute usada para processar os lotes para tentar resolver o problema. Em casos raros, talvez seja necessário reiniciar a transmissão com um novo ponto de verificação.
O que é o modo de processamento contínuo?
O Apache Spark oferece suporte a um intervalo de acionamento adicional conhecido como Processamento Contínuo. Esse modo foi classificado como experimental desde Spark 2.3; consulte a equipe de Databricks account para certificar-se de que o senhor compreende as vantagens e desvantagens desse modelo de processamento.
Observe que esse modo de processamento contínuo não está relacionado de forma alguma ao processamento contínuo aplicado no DLT.