Pular para o conteúdo principal

Como os pipelines refresh?

Quando uma atualização de pipeline é executada, ela atualiza as visualizações materializadas e tabelas de transmissão definidas no pipeline, para que seus resultados reflitam o estado atual dos dados de origem. Como um dataset é atualizado depende do tipo de dataset e do tipo de refresh. Esta página explica os conceitos de refresh compartilhados em Lakeflow Spark Declarative Pipelines. Para saber como acionar e gerenciar atualizações, consulte Executar uma atualização de pipeline.

Tipos de refresh

Por default, cada materialized view e tabela de transmissão em um pipeline é atualizada a cada atualização. A tabela a seguir resume como cada tipo de refresh se comporta:

Tipo de atualização

Visualização materializada

Tabela de transmissão

Refresh (default)

Atualiza os resultados para refletir os resultados atuais da query definidora. O Databricks examina o custo e executa um refresh incremental quando é mais eficiente.

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

refresh completo

Recalcula os resultados para refletir os resultados atuais da query definidora.

Limpa os dados das tabelas de transmissão, limpa os pontos de verificação dos fluxos e reprocessa todos os registros da fonte de dados.

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

Não aplicável a visualizações materializadas.

Limpar pontos de verificação de fluxos, mas não os dados de tabelas de transmissão, e, em seguida, reprocessar todos os registros da fonte de dados.

Refresh (default)

Um default refresh atualiza um dataset para refletir os resultados atuais da consulta que o definiu.

Tabelas de transmissão são inerentemente incrementais. O refresh da tabela de transmissão avalia apenas os registros que chegaram desde a última atualização e os anexa, utilizando a definição atual da tabela. Registros mais antigos não são reprocessados; portanto, alterações que afetariam dados já gravados não são aplicadas. Em outras palavras, um refresh default de uma tabela de transmissão troca a correção dos dados por custos de tempo e recursos reduzidos. Para reprocessar dados mais antigos, execute um refresh completo ou redefina os pontos de verificação do fluxo.

Views materializadas tentam um refresh incremental, mas reprocessam todos os registros quando necessário para manter a tabela totalmente precisa. Uma visualização materializada é atualizada usando um dos dois métodos:

  • Atualização incremental identifica as alterações desde a última atualização e mescla apenas os dados novos ou modificados.
  • Atualização completa executa a consulta completa e substitui os dados existentes quando uma atualização incremental não é possível ou não é econômica.

Por default, o Databricks usa um modelo de custo para escolher o método mais econômico. Essa escolha pode ser substituída com uma política de refresh. Para a semântica, requisitos e SQL compatível para refresh incremental, consulte Refresh incremental para views materializadas.

Atualização completa

Refresh completo reprocessa todos os registros dos dados de origem através da lógica que define o dataset:

  • Para uma visualização materializada, uma atualização completa recalcula o resultado completo. Como as views materializadas sempre retornam o mesmo resultado que uma query em lotes, um refresh default e um refresh completo produzem dados idênticos.
  • Para uma tabela de transmissão, um refresh completo trunca a tabela, limpa os pontos de verificação de transmissão para seus fluxos, e reprocessa cada registro da fonte.

Como um refresh completo reprocessa todos os dados de origem, o tempo e o custo escalam com o tamanho desses dados. A Databricks recomenda executar um refresh completo apenas quando necessário, como quando uma alteração de definição ou de esquema não é compatível com os dados existentes. Um full refresh de uma tabela de transmissão pode descartar registros se a fonte não retiver mais os dados originais, por exemplo, um tópico Kafka após sua janela de retenção.

Para quando e como executar um refresh completo de uma tabela de transmissão, consulte Refresh completo para tabelas de transmissão.

Reset nos pontos de verificação

A redefinição de pontos de verificação se aplica somente a tabelas de transmissão. Apaga os pontos de verificação de transmissão para os fluxos selecionados sem apagar os dados já gravados na tabela de transmissão, depois reprocessa todos os registros da origem por meio desses fluxos. Ao contrário de um refresh completo, os dados existentes da tabela são mantidos.

Utilize esta funcionalidade quando desejar reprocessar uma fonte de transmissão para fluxos selecionados, por exemplo, depois de alterar a lógica de um fluxo, sem truncar a tabela.

A redefinição dos pontos de verificação é acionada por meio da API REST do Lakeflow Spark Declarative Pipelines. Para os passos, consulte Começar uma atualização de pipeline para limpar os pontos de verificação dos fluxos de transmissão seletivos.

Recursos adicionais