Pular para o conteúdo principal

execução de uma atualização no pipeline declarativo LakeFlow

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

O que é uma atualização de pipeline?

Depois de criar um pipeline e estar pronto para executá-lo, você inicia uma atualização . Uma atualização de pipeline faz o seguinte:

  • Inicia um cluster com a configuração correta.
  • Descobre todas as tabelas definidas e visualiza 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 visualizações com os dados mais recentes disponíveis.

Usando uma execução de teste, você pode verificar problemas no código-fonte de um pipeline sem esperar que as tabelas sejam criadas ou atualizadas. Este recurso é útil ao desenvolver ou testar pipelines porque permite que você encontre e corrija rapidamente erros em seu pipeline, como nomes incorretos de tabelas ou colunas.

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

Use uma das seguintes opções para iniciar atualizações pipeline :

Gatilho de atualização

Detalhes

Manual

Você pode acionar manualmente atualizações pipeline no Editor LakeFlow Pipelines ou na lista de pipelines. Consulte Acionar manualmente uma atualização de pipeline.

Agendado

Você pode programar atualizações para pipeline usando Job. Veja tarefa de pipeline para Job.

Programático

Você pode acionar atualizações programaticamente usando ferramentas de terceiros, APIs e CLIs. Veja execução do pipeline declarativo LakeFlow em um fluxo de trabalho e APIde pipeline.

Acionar manualmente uma atualização de pipeline

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

  • executar o pipeline completo, ou um subconjunto do pipeline (um único arquivo de origem, ou uma única tabela), do LakeFlow Pipelines Editor. Para mais informações, consulte código pipeline de execução.
  • execute o pipeline completo da lista Jobs & pipeline . Clique Ícone de reprodução. na mesma linha do pipeline na lista.
  • Na página de monitoramento do pipeline, clique em Ícone do LDP começar botão.
nota

O comportamento default para atualizações pipeline acionadas manualmente é refresh todos os conjuntos de dados definidos no pipeline.

semântica refresh de pipeline

A tabela a seguir descreve o comportamento dos pontos de verificação de refresh default , refresh completa e redefinição para tabelas de exibição materializada e transmissão:

Tipo de atualização

Visualização materializada

Tabela de transmissão

atualizar (default)

Atualiza os resultados para refletir os resultados atuais da consulta de definição. Examinará os custos e realizará uma refresh incremental se for mais econômico.

Processa novos registros por meio de lógica definida em tabelas e fluxos de transmissão.

refresh completo

Atualiza os resultados para refletir os resultados atuais da consulta de definição.

Limpa dados de tabelas de transmissão, limpa informações de estado (checkpoints) de fluxos e reprocessa todos os registros da fonte de dados.

Reset pontos de verificação de fluxo de transmissão

Não aplicável à visualização materializada.

Limpa as informações de estado (pontos de verificação) dos fluxos, mas não limpa os dados das tabelas de transmissão e reprocessa todos os registros da fonte de dados.

Por default, todas as tabelas de exibição materializada e transmissão em um pipeline refresh a cada atualização. Você pode opcionalmente omitir tabelas de atualizações usando o seguinte recurso:

Ambos os recursos oferecem suporte à semântica refresh default ou refresh completa. Opcionalmente, você pode usar a caixa de diálogo Selecionar tabelas para refresh para excluir tabelas adicionais ao executar uma refresh de tabelas com falha.

Para tabelas de transmissão, você pode optar por limpar os pontos de verificação de transmissão para fluxos selecionados e não os dados das tabelas de transmissão associadas. Para limpar os pontos de verificação dos fluxos selecionados, use a API REST Databricks para iniciar uma refresh. Veja começar uma atualização pipeline para liberar pontos de controle de fluxos seletivos.

Devo usar uma refresh completa?

Databricks recomenda executar a atualização completa somente quando necessário. Uma refresh completa sempre reprocessa todos os registros da fonte de dados especificada por meio da lógica que define o dataset. O tempo e o recurso para concluir uma refresh completa estão correlacionados ao tamanho dos dados de origem.

A visualização materializada retorna os mesmos resultados, independentemente de ser usada refresh default ou completa. Usar uma refresh completa com tabelas de transmissão 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.

Databricks só recomenda refresh completa quando a fonte de dados de entrada contém os dados necessários para recriar o estado desejado da tabela ou view. 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 refresh completa:

Origem de dados

Motivo pelo qual os dados de entrada estão ausentes

Resultado da refreshcompleta

Kafka

Limite de retenção curto

Os registros que não estão mais presentes na origem do Kafka são descartados da tabela de destino.

Arquivos no armazenamento de objetos

Política de Ciclo de Vida

Arquivos de dados que não estão mais presentes no diretório de origem são removidos da tabela de destino.

Registros em uma tabela

Excluído por compliance

Somente os registros presentes na tabela de origem são processados.

Para evitar que a atualização completa seja executada em uma tabela ou view, defina a propriedade da tabela pipelines.reset.allowed como false. Consulte Propriedades da tabela de pipeline declarativaLakeFlow. Você também pode usar um fluxo de acréscimo para anexar dados a uma tabela de transmissão existente sem exigir uma refresh completa.

iniciar uma atualização pipeline para tabelas selecionadas

Opcionalmente, você pode reprocessar dados somente para tabelas selecionadas no seu pipeline. Por exemplo, durante o desenvolvimento, você altera apenas uma tabela e deseja reduzir o tempo de teste, ou uma atualização pipeline falha e você deseja refresh apenas as tabelas com falha.

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

iniciar uma atualização pipeline para tabelas com falha

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

nota

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 pipeline , clique em atualizar tabelas com falha .

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

  1. Clique Botão para baixo ao lado do botão de atualização de tabelas com falha e clique em Selecionar tabelas para refresh . A caixa de diálogo Selecionar tabelas para refresh é exibida.

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

  3. Clique em atualizar seleção .

nota

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

Para reprocessar dados já ingeridos para as tabelas selecionadas, clique em Seta azul para baixo ao lado do botão atualizar seleção e clique em Atualização completa da seleção .

começar uma atualização pipeline para liberar pontos de controle de fluxos de transmissão seletiva

Opcionalmente, você pode reprocessar dados para fluxos de transmissão selecionados em seu pipeline sem limpar nenhum dado já ingerido.

nota

Os fluxos que não são selecionados são executados usando uma atualização REFRESH . Você também pode especificar full_refresh_selection ou refresh_selection para refresh seletivamente outras tabelas.

Para iniciar uma atualização para refresh os pontos de verificação de transmissão selecionados, use a solicitação de atualizações na API REST do pipeline declarativo LakeFlow . O exemplo a seguir usa o comando curl para chamar a solicitação updates para iniciar uma atualização pipeline :

Bash
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 que as tabelas sejam atualizadas

info

Visualização

O recurso do pipeline declarativo LakeFlow 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 de teste . Uma execução seca resolve as definições de conjunto de dados e fluxos definidos no pipeline , mas não materializa nem publica nenhum conjunto de dados. Erros encontrados durante a execução de teste, como nomes incorretos de tabelas ou colunas, são relatados na interface do usuário.

Para iniciar uma execução seca, clique Seta azul para baixo na página de detalhes pipeline ao lado de começar e clique em Secar execução .

Após a execução seca ser concluída, quaisquer erros serão exibidos na bandeja 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 somente da execução de teste mais recente. Se a execução seca foi a atualização de execução mais recente, 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

execução do pipeline a partir da execução do LakeFlow Pipelines Editor com o modo de desenvolvimento ativado. pipelines que são agendados para execução default com o modo de desenvolvimento desativado. Se quiser testar como o pipeline será executado na produção, você pode escolher interativamente se deseja usar o modo de desenvolvimento escolhendo execução com configurações diferentes no menu suspenso do editor.

nota

pipeline criado com o editor legado do Notebook usando o modo de desenvolvimento default . Você pode verificar ou alterar a configuração escolhendo Configurações na página de monitoramento do pipeline. A página de monitoramento está disponível no botão Jobs & pipeline no lado esquerdo do seu workspace. Você também pode pular diretamente para a página de monitoramento a partir do editor pipeline clicando nos resultados de execução no navegadorpipeline ativo .

Quando você executa seu pipeline no modo de desenvolvimento, o sistema de pipeline declarativo LakeFlow faz o seguinte:

  • Reutiliza um cluster para evitar a sobrecarga de reinicializações. Por default, clusters são executados por duas horas quando o modo de desenvolvimento está habilitado. Você pode alterar isso com a configuração pipelines.clusterShutdown.delay no pipeline Configurar compute clássica para LakeFlow Declarative.
  • Desativa novas tentativas de pipeline para que você possa detectar e corrigir erros imediatamente.

Com o modo de desenvolvimento desativado, o sistema de pipeline declarativo LakeFlow faz o seguinte:

  • Reinicia o cluster para erros recuperáveis específicos, incluindo vazamentos de memória e credenciais obsoletas.
  • Tenta executar novamente em caso de erros específicos, como uma falha ao iniciar um cluster.
nota

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