Modo de pipeline disparado vs. contínuo
Este artigo descreve a semântica operacional dos modos pipeline acionados e contínuos para o pipeline declarativo LakeFlow .
O modo pipeline é independente do tipo de tabela que está sendo computada. Tanto a visualização materializada quanto as tabelas de transmissão podem ser atualizadas em qualquer modo pipeline .
Para alternar entre acionado e contínuo, use a opção de modo de pipeline nas configurações pipeline ao criar ou editar um pipeline. Consulte Configurar pipeline declarativo LakeFlow.
operações de atualização para visualização materializada e tabelas de transmissão definidas no Databricks SQL sempre executadas usando modo pipeline acionado.
O que é o modo de pipeline acionado?
Se o pipeline usar o modo acionado , o sistema interromperá o processamento após atualizar com sucesso todas as tabelas ou tabelas selecionadas, garantindo que cada tabela na atualização seja atualizada com base nos dados disponíveis quando a atualização começar.
O que é o modo de pipeline contínuo?
Se o pipeline usar execução contínua , o pipeline declarativo LakeFlow processará novos dados conforme eles chegam na fonte de dados para manter as tabelas em todo o pipeline atualizadas.
Para evitar processamento desnecessário no modo de execução contínua, o pipeline monitora automaticamente as tabelas Delta dependentes e executa uma atualização somente quando o conteúdo dessas tabelas dependentes for alterado.
Escolha um modo de pipeline de dados
A tabela a seguir destaca as diferenças entre os modos de pipeline acionado e contínuo:
perguntas-chave | Acionado | Contínuo |
---|---|---|
Quando a atualização para? | Automaticamente após a conclusão. | execução continuamente até ser interrompida manualmente. |
Quais dados são processados? | Dados disponíveis quando a atualização começar. | Todos os dados conforme chegam às fontes configuradas. |
Para quais requisitos de atualização de dados isso é mais adequado? | As atualizações de dados são executadas a cada 10 minutos, a cada hora ou diariamente. | As atualizações de dados são desejadas entre 10 segundos e alguns minutos. |
O pipeline acionado pode reduzir o consumo de recursos e as despesas porque o cluster executa apenas o tempo suficiente para atualizar o pipeline. No entanto, novos dados não serão processados até que o pipeline seja acionado. O pipeline contínuo requer umclustersempre em execução, o que é mais caro, mas reduz a latência de processamento.
Definir intervalo de disparo para pipeline contínuo
Ao configurar o pipeline para o modo contínuo, você pode definir intervalos de disparo para controlar a frequência com que o pipeline inicia uma atualização para cada fluxo.
Você pode usar pipelines.trigger.interval
para controlar o intervalo de disparo de um fluxo que atualiza uma tabela ou um pipeline inteiro. Como um pipeline acionado processa cada tabela uma vez, o pipelines.trigger.interval
é usado somente com pipeline contínuo.
Databricks recomenda definir pipelines.trigger.interval
em tabelas individuais porque as consultas de transmissão e lotes têm padrões diferentes. Defina o valor em um pipeline somente quando o processamento exigir o controle de atualizações para todo o gráfico do pipeline.
Você define pipelines.trigger.interval
em uma tabela usando spark_conf
em Python ou SET
em SQL:
@dp.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
Para definir pipelines.trigger.interval
em um pipeline, adicione-o ao objeto configuration
nas configurações do pipeline:
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}