Pular para o conteúdo principal

executar uma atualização em LakeFlow Declarative pipeline

Este artigo explica as atualizações do site 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, o senhor começa uma atualização . Uma atualização do pipeline faz o seguinte:

  • Inicia um cluster com a configuração correta.
  • Descobre todas as tabelas e visualizações definidas e verifica se há erros de análise, como nomes de colunas não vá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 opções a seguir para começar pipeline atualizações:

Atualizar gatilho

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

O senhor pode programar atualizações para o pipeline usando o Job. Veja a tarefa de pipeline para Job.

Programático

O senhor pode acionar atualizações de forma programática usando ferramentas de terceiros, APIs e CLIs. Veja execução LakeFlow Declarative pipeline in a fluxo de trabalho e pipeline API.

Acionar manualmente uma atualização do pipeline

Use uma das seguintes opções para acionar manualmente uma atualização do 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 DLT começar Icon botão.
nota

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

Pipeline refresh semantics

A tabela a seguir descreve o comportamento de default refresh, full refresh e Reset checkpoints para tabelas de exibição materializada e transmissão:

Tipo de atualização

Visualização materializada

Tabela de transmissão

refresh (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 da lógica definida em tabelas e fluxos de transmissão.

refresh completo

Atualiza os resultados para refletir os resultados atuais da consulta definidora.

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

Reset pontos de controle de fluxo de transmissão

Não se aplica à exibiçã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 visualização e transmissão materializadas em um pipeline refresh a cada atualização. Opcionalmente, o senhor pode omitir tabelas das atualizações usando o seguinte recurso:

  • Selecionar tabelas para refresh : Use esta interface do usuário para adicionar ou remover a visualização materializada e as tabelas de transmissão antes de executar uma atualização. Consulte começar a pipeline update para tabelas selecionadas.
  • Atualizar tabelas com falha : começar uma atualização para a visualização materializada com falha e tabelas de transmissão, incluindo dependências downstream. Consulte pipeline update for failed tables.

Ambos os recursos suportam a semântica default refresh ou a refresh completa. Opcionalmente, o senhor pode usar a caixa de diálogo Select tables for refresh para excluir tabelas adicionais ao executar um refresh para tabelas com falha.

Nas tabelas de transmissão, o senhor pode optar por limpar os pontos de controle de transmissão dos fluxos selecionados e não os dados das tabelas de transmissão associadas. Para limpar os pontos de verificação dos fluxos selecionados, use o link Databricks REST API para começar a refresh. Consulte começar a pipeline update para limpar os pontos de controle dos fluxos de transmissão seletiva.

Devo usar um refresh completo?

Databricks recomenda executar a atualização completa somente quando necessário. Um refresh completo 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 um refresh completo estão correlacionados ao tamanho dos dados de origem.

A visualização materializada retorna os mesmos resultados, quer seja usada a default ou a refresh completa. Usar um refresh completo com tabelas de transmissão redefine todas as informações de processamento de estado e de ponto de verificação e pode resultar em registros descartados se os dados de entrada não estiverem mais disponíveis.

Databricks recomenda apenas o refresh completo 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 da fonte de entrada não estão mais disponíveis e o resultado da execução de um refresh completo:

Origem de dados

Motivo pelo qual os dados de entrada estão ausentes

Resultado da refresh

Kafka

Limite de retenção curto

Os registros que não estão mais presentes na fonte do Kafka são descartados 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 eliminados da tabela de destino.

Registros em uma tabela

Eliminado para 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 LakeFlow Propriedades da tabela do pipeline declarativo. O senhor também pode usar um fluxo de acréscimo para acrescentar dados a uma tabela de transmissão existente sem precisar de um refresh completo.

começar a pipeline update for selected tables

Opcionalmente, o senhor pode reprocessar dados apenas para tabelas selecionadas em seu pipeline. Por exemplo, durante o desenvolvimento, o senhor altera apenas uma única tabela e deseja reduzir o tempo de teste, ou uma atualização do pipeline falha e o senhor deseja refresh 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 código pipeline de execução.

começar a pipeline update for failed tables

Se uma atualização do pipeline falhar devido a erros em uma ou mais tabelas no pipeline gráfico, o senhor poderá começar uma atualização apenas das tabelas com falha e de quaisquer dependências downstream.

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 em Botão para baixo ao lado do botão refresh failed tables (atualizar tabelas com falha ) e clique em Select tables for refresh . É exibida a caixa de diálogo Select tables for refresh (Selecionar tabelas para atualização ).

  2. Para selecionar as tabelas para refresh, clique em cada tabela. As tabelas selecionadas são destacadas e o rótulo é exibido. Para remover uma tabela da atualização, clique na tabela novamente.

  3. Clique em atualizar a seleção .

nota

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

Para reprocessar os dados já ingeridos para as tabelas selecionadas, clique em Seta azul para baixo ao lado do botão de seleção de atualização e clique em Full refresh selection (Seleção de atualização completa) .

Comece a pipeline update to clear selective transmissions flows' checkpoints

Opcionalmente, o senhor pode reprocessar dados de fluxos de transmissão selecionados no site pipeline sem limpar os dados já ingeridos.

nota

Os fluxos não selecionados são executados por meio de uma atualização do site REFRESH. O senhor também pode especificar full_refresh_selection ou refresh_selection para selecionar refresh outras tabelas.

Para começar uma atualização para refresh os pontos de verificação de transmissão selecionados, use a solicitação de atualizações no pipeline declarativo LakeFlow REST API. O exemplo a seguir usa o comando curl para chamar a solicitação updates para começar a 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

Verificar se há erros em um pipeline sem esperar a atualização das tabelas

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 o senhor executa o site pipeline no modo de desenvolvimento, o sistema de pipeline LakeFlow Declarative faz o seguinte:

  • Reutiliza um clustering para evitar a sobrecarga de reinicializações. Em default, o clustering é executado por duas horas quando o modo de desenvolvimento está ativado. O senhor pode alterar isso com a configuração pipelines.clusterShutdown.delay no pipeline Configure classic compute for LakeFlow Declarative.
  • Desativa as novas tentativas de pipeline para que o senhor possa detectar e corrigir erros imediatamente.

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

  • Reinicia o clustering para erros recuperáveis específicos, incluindo vazamentos de memória e credenciais obsoletas.
  • Tenta novamente a execução no caso de erros específicos, como uma falha ao iniciar um clustering.
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.