Como é que os pipelines se atualizam?

Quando uma atualização do pipeline é executada, atualiza as vistas materializadas e as tabelas de streaming definidas no pipeline para que os seus resultados reflitam o estado atual dos dados de origem. A forma como um conjunto de dados atualiza depende do seu tipo e do tipo de atualização. Para saber como desencadear e gerir atualizações, veja Executar uma atualização de pipeline.

Tipos de atualização

Por defeito, todas as visualizações materializadas e tabelas de streaming num pipeline atualizam-se a cada atualização. A tabela seguinte resume como cada tipo de atualização se comporta:

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. O Azure Databricks analisa o custo e realiza uma atualização incremental quando é mais eficiente. Processa novos registos através da lógica definida em tabelas e fluxos de streaming.
Atualização completa Recalcula os resultados para refletir os resultados atuais da consulta definidora. Limpa dados das tabelas de transmissão em fluxo, elimina os pontos de verificação dos 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. Remove os pontos de verificação dos fluxos, mas não remove os dados das tabelas de fluxo, e depois reprocessa todos os registos da fonte de dados.

Atualizar (padrão)

Uma atualização padrão atualiza um conjunto de dados para refletir os resultados atuais da sua consulta definidora.

As tabelas de streaming são inerentemente incrementais. Uma atualização de tabela em streaming avalia apenas os registos que chegaram desde a última atualização e adiciona-os, usando a definição atual da tabela. Registos mais antigos não são reprocessados, pelo que alterações que afetariam dados já escritos não são aplicadas. Por outras palavras, uma atualização padrão de uma tabela de streaming troca a correção dos dados por menores custos de tempo e recursos. Para reprocessar dados mais antigos, execute uma atualização completa ou reinicie os pontos de verificação do fluxo.

As visualizações materializadas tentam uma atualização incremental, mas reprocessam todos os registos quando necessário para manter a tabela totalmente precisa. Uma visão materializada é atualizada usando um de dois métodos:

  • A atualização incremental identifica as alterações desde a última atualização e funde apenas os dados novos ou modificados.
  • A atualização completa executa toda a consulta e substitui os dados existentes quando uma atualização incremental não é possível ou não é rentável.

Por defeito, o Azure Databricks utiliza um modelo de custos para escolher o método mais rentável. Pode ultrapassar esta escolha com uma política de atualização. Para a semântica, requisitos e SQL suportado para atualização incremental, veja Atualização incremental para vistas materializadas.

Atualização completa

Uma atualização completa reprocessa todos os registos dos dados de origem através da lógica que define o conjunto de dados:

  • Para uma visualização materializada, uma atualização completa recalcula todo o resultado. Como as visualizações materializadas retornam sempre o mesmo resultado que uma consulta em lote, uma atualização por defeito e uma atualização completa produzem dados idênticos.
  • Para uma tabela de streaming, uma atualização completa esvazia a tabela, limpa os pontos de verificação do streaming dos respetivos fluxos e reprocessa todos os registos na origem.

Como uma atualização completa reprocessa todos os dados de origem, o tempo e o custo ajustam-se ao tamanho desses dados. O Databricks recomenda executar uma atualização completa apenas quando necessário, como quando uma definição ou alteração de esquema não é compatível com os dados existentes. Uma atualização completa de uma tabela de streaming pode levar à perda de registos se a fonte já não retiver os dados originais, como, por exemplo, um tópico do Kafka para além do seu período de retenção.

Para saber quando e como executar uma atualização completa de uma tabela de streaming, veja Atualização completa para tabelas de streaming.

Reiniciar pontos de controlo

A reposição dos checkpoints aplica-se apenas a tabelas de streaming. Limpa os pontos de controlo de streaming dos fluxos selecionados sem limpar os dados já escritos na tabela de streaming e, em seguida, reprocessa todos os registos da origem nesses fluxos. Ao contrário de uma atualização completa, os dados da tabela existentes são mantidos.

Use isto quando quiser reprocessar uma fonte de streaming para fluxos selecionados, por exemplo, depois de alterar a lógica de um fluxo, sem truncar a tabela.

A redefinição dos checkpoints é acionada através da API REST do Lakeflow Spark Declarative Pipelines. Para saber como o fazer, consulte Iniciar uma atualização do pipeline para limpar os checkpoints dos fluxos de streaming seletivo.

Recursos adicionais