Partilhar via


Executar uma atualização de pipeline

Este artigo explica as atualizações de pipeline e fornece detalhes sobre como acionar uma atualização.

O que é uma atualização de pipeline?

Depois de criar um pipeline e estiver pronto para executá-lo, inicie uma atualização . Uma atualização de pipeline faz o seguinte:

  • Inicia um cluster com a configuração correta.
  • Descobre todas as tabelas e exibições definidas e verifica se há erros de análise, como nomes de colunas inválidos, dependências ausentes e erros de sintaxe.
  • Cria ou atualiza tabelas e exibições com os dados mais recentes disponíveis.

Usando uma execução seca, você pode verificar se há problemas no código-fonte de um pipeline sem esperar que as tabelas sejam criadas ou atualizadas. Esse recurso é útil ao desenvolver ou testar pipelines porque permite localizar e corrigir rapidamente erros no pipeline, como nomes de tabelas ou colunas incorretos.

Como são acionadas as atualizações do pipeline?

Use uma das seguintes opções para iniciar as atualizações de canalização:

Atualizar gatilho Detalhes
Manual Você pode acionar manualmente as atualizações de pipeline a partir do Editor de Pipelines do Lakeflow ou da lista de pipelines. Consulte Acionar manualmente uma atualização de pipeline.
Scheduled Você pode agendar atualizações para pipelines usando tarefas. Consulte a Tarefa de pipeline para tarefas.
Programático Você pode acionar atualizações programaticamente usando ferramentas, APIs e CLIs de terceiros. Consulte Executar sequências de processamento num fluxo de trabalho e API REST de sequências de processamento.

Acionar manualmente uma atualização de canalização

Use uma das seguintes opções para disparar manualmente uma atualização de pipeline:

  • Execute o pipeline completo, ou um subconjunto do pipeline (um único arquivo de origem ou uma única tabela), a partir do Lakeflow Pipelines Editor. Para obter mais informações, consulte Executar código de pipeline.
  • Executar um pipeline completo a partir da lista Jobs & Pipelines. Clique no ícone Reproduzir. na mesma linha que o pipeline na lista.
  • Na página de monitorização de pipeline, clique no botão LDP Start Icon.

Observação

O comportamento padrão para atualizações de pipeline acionadas manualmente é atualizar todos os conjuntos de dados definidos no pipeline.

Semântica de atualização do fluxo de trabalho

A tabela a seguir descreve o comportamento padrão de atualização, atualização completa e pontos de reset para vistas materializadas e tabelas de streaming.

Tipo de atualização Visão materializada Tabela de transmissão
Atualizar (padrão) Atualiza os resultados para refletir os resultados atuais da consulta definidora. Examinará os custos e executará uma atualização incremental se for mais econômica. Processa novos registros através de lógica definida em tabelas e fluxos de streaming.
Atualização completa Atualiza os resultados para refletir os resultados atuais da consulta definidora. Limpa dados de tabelas de transmissão, limpa informações de estado (pontos de verificação) de fluxos e reprocessa todos os registos da fonte de dados.
Reiniciar pontos de verificação do fluxo de streaming Não aplicável a visualizações materializadas. Limpa informações de estado (pontos de controle) dos fluxos, mas não remove dados das tabelas de streaming, e reprocessa todos os registos da fonte de dados.

Por predefinição, todas as vistas materializadas e tabelas de streaming num pipeline são atualizadas com cada atualização. Opcionalmente, você pode omitir tabelas de atualizações usando os seguintes recursos:

Ambos os recursos suportam semântica de atualização padrão ou atualização completa. Opcionalmente, você pode usar a caixa de diálogo Selecionar tabelas para atualização para excluir tabelas adicionais ao executar uma atualização para tabelas com falha.

Para tabelas de streaming, pode optar por limpar os pontos de verificação de streaming para fluxos selecionados e não os dados das tabelas de streaming associadas. Para limpar os pontos de verificação para fluxos selecionados, use a API REST do Databricks para iniciar uma atualização. Veja Iniciar uma atualização de pipeline para limpar os pontos de verificação de fluxos de streaming seletivos.

Devo usar uma atualização completa?

O Databricks recomenda executar atualizações completas somente quando necessário. Uma atualização completa sempre reprocessa todos os registros das fontes de dados especificadas por meio da lógica que define o conjunto de dados. O tempo e os recursos para concluir uma atualização completa estão correlacionados ao tamanho dos dados de origem.

As exibições materializadas retornam os mesmos resultados, independentemente de a atualização padrão ou completa ser usada. O uso de uma atualização completa com tabelas de streaming redefine todo o processamento de estado e informações de ponto de verificação e pode resultar em registros descartados se os dados de entrada não estiverem mais disponíveis.

O Databricks só recomenda a atualização completa quando as fontes de dados de entrada contêm os dados necessários para recriar o estado desejado da tabela ou exibição. Considere os seguintes cenários em que os dados de origem de entrada não estão mais disponíveis e o resultado da execução de uma atualização completa:

Fonte de dados Razão pela qual os dados de entrada estão ausentes Resultado da atualização completa
Kafka Limiar de retenção curto Os registros que não estão mais presentes na fonte Kafka são retirados da tabela de destino.
Arquivos no armazenamento de objetos Política de ciclo de vida Os arquivos de dados que não estão mais presentes no diretório de origem são descartados da tabela de destino.
Registos numa tabela Eliminado por razões de conformidade Somente os registros presentes na tabela de origem são processados.

Para evitar que atualizações completas sejam executadas em uma tabela ou exibição, defina a propriedade da tabela pipelines.reset.allowed como false. Ver Propriedades da tabela de Pipeline. Você também pode usar um fluxo de acréscimo para acrescentar dados a uma tabela de streaming existente sem exigir uma atualização completa.

Iniciar uma atualização de pipeline para as tabelas selecionadas

Opcionalmente, você pode reprocessar dados apenas para tabelas selecionadas em seu pipeline. Por exemplo, durante o desenvolvimento, alteras apenas uma única tabela e desejas reduzir o tempo de teste, ou uma atualização de pipeline falha e pretendes atualizar apenas as tabelas que falharam .

O Lakeflow Pipelines Editor tem opções para reprocessar um arquivo de origem, tabelas selecionadas ou uma única tabela. Para obter detalhes, consulte Executar código de pipeline.

Iniciar uma atualização de pipeline para tabelas com falhas

Se uma atualização de pipeline falhar devido a erros em uma ou mais tabelas no gráfico de pipeline, poderá iniciar uma atualização apenas das tabelas com falhas e quaisquer dependências subsequentes.

Observação

As tabelas excluídas não são atualizadas, mesmo que dependam de uma tabela com falha.

Para atualizar tabelas com falha, na página de monitoramento de pipeline, clique em Atualizar tabelas com falha.

Para atualizar apenas tabelas com falha selecionadas na página de monitoramento de pipeline:

  1. Clique em Button Down ao lado do botão Atualizar tabelas com falha e clique em Selecionar tabelas para atualizar. A caixa de diálogo Selecionar tabelas para atualização é exibida.

  2. Para selecionar as tabelas a serem atualizadas, clique em cada tabela. As tabelas selecionadas são destacadas e rotuladas. Para remover uma tabela da atualização, clique nela novamente.

  3. Clique Atualizar seleção.

    Observação

    O botão de seleção Atualizar exibe o número de tabelas selecionadas entre parênteses.

Para reprocessar dados já ingeridos para as tabelas selecionadas, clique em Blue Down Caret ao lado do botão de seleção Atualizar e clique em seleção Atualização Completa.

Iniciar uma atualização de pipeline para limpar os pontos de verificação de fluxos de transmissão seletivos

Pode reprocessar opcionalmente os dados para fluxos de streaming selecionados no seu pipeline sem apagar qualquer dado já ingerido.

Observação

Fluxos que não são selecionados são executados utilizando uma atualização REFRESH. Também pode especificar full_refresh_selection ou refresh_selection para atualizar seletivamente outras tabelas.

Para iniciar uma atualização para atualizar os pontos de verificação de streaming selecionados, use a solicitação de atualizações na API REST do Lakeflow Spark Declarative Pipelines. O exemplo seguinte usa o comando curl para chamar a solicitação updates para iniciar uma atualização da pipeline:

curl -X POST \
-H "Authorization: Bearer <your-token>" \
-H "Content-Type: application/json" \
-d '{
"reset_checkpoint_selection": [<streaming flow1>, <streaming flow 2>...]
}' \
https://<your-databricks-instance>/api/2.0/pipelines/<your-pipeline-id>/updates

Verifique se há erros em um pipeline sem esperar pela atualização das tabelas

Importante

O recurso de pipeline Dry run está em Visualização pública.

Para verificar se o código-fonte de um pipeline é válido sem executar uma atualização completa, use uma execução seca. Uma execução seca resolve as definições de conjuntos de dados e fluxos definidos no pipeline, mas não materializa nem publica nenhum conjunto de dados. Os erros encontrados durante a execução a seco, como nomes de tabela ou coluna incorretos, são relatados na interface do usuário.

Para iniciar uma corrida a seco, clique em Blue Down Caret na página de detalhes do pipeline ao lado de Start e clique em Dry run.

Após a conclusão da execução a seco, todos os erros são mostrados na área de eventos no painel inferior. Clicar na bandeja de eventos exibirá todos os problemas encontrados no painel inferior. Além disso, o log de eventos mostra eventos relacionados apenas à execução seca e nenhuma métrica é exibida no DAG. Se forem encontrados erros, os detalhes estarão disponíveis no log de eventos.

Você pode ver os resultados apenas para a corrida seca mais recente. Se a execução seca foi a atualização executada mais recentemente, você pode ver os resultados selecionando-a no histórico de atualizações. Se outra atualização for executada após a execução seca, os resultados não estarão mais disponíveis na interface do usuário.

Modo de desenvolvimento

Os pipelines são executados a partir do Lakeflow Pipelines Editor com o modo de desenvolvimento ativado. Pipelines que são agendados por padrão executam-se com o modo de desenvolvimento desligado. Se quiser testar como o pipeline será executado na produção, você pode escolher interativamente se deseja usar o modo de desenvolvimento escolhendo Executar com configurações diferentes na lista suspensa no editor.

Observação

Pipelines criados com o editor de bloco de anotações legado usam por padrão o modo de desenvolvimento. Você pode verificar ou alterar a configuração escolhendo Configurações na página de monitoramento de pipeline. A página de monitoramento está disponível no botão Jobs & Pipelines no lado esquerdo do seu espaço de trabalho. Você também pode ir diretamente para a página de monitoramento a partir do editor de pipeline, clicando nos resultados da execução no navegador de ativos de pipeline.

Quando você executa seu pipeline no modo de desenvolvimento, o sistema Lakeflow Spark Declarative Pipelines faz o seguinte:

  • Reutiliza um cluster para evitar a carga adicional de reinicializações. Por padrão, os clusters são executados por duas horas quando o modo de desenvolvimento está habilitado. Pode modificar isto na configuração de pipelines.clusterShutdown.delay em Configurar computação tradicional para pipelines.
  • Desativa as repetições da linha de processamento, permitindo que detete e corrija erros imediatamente.

Com o modo de desenvolvimento desativado, o sistema faz o seguinte:

  • Reinicia o cluster para erros recuperáveis específicos, incluindo vazamentos de memória e credenciais obsoletas.
  • Repetição da execução em caso de erros específicos, como uma falha ao iniciar um cluster.

Observação

Ativar e desativar o modo de desenvolvimento controla apenas o comportamento de execução do cluster e do pipeline. Os locais de armazenamento e os esquemas de destino no catálogo para publicação de tabelas devem ser configurados como parte das configurações de pipeline e não são afetados ao alternar entre modos.