refresh operações para materialized view

As visualizações materializadas são objetos de banco de dados que contêm os resultados de uma consulta SQL em uma ou mais tabelas de base. Algumas visualizações materializadas podem ser atualizadas de forma incremental, propagando automaticamente e de forma incremental as alterações das tabelas de base. Este artigo explica as refresh operações que podem ser aplicadas à visualização materializada.

Tipos de atualização

refresh As operações são um desses tipos:

  • Incremental refresh: Um refresh incremental processa as alterações nos dados subjacentes após o último refresh e, em seguida, anexa esses dados à tabela. Dependendo das tabelas de base e das operações incluídas, somente determinados tipos de visualização materializada podem ser atualizados de forma incremental.

  • Full refresh: Um refresh completo trunca a tabela e reprocessa todos os dados disponíveis na fonte com a definição mais recente. Não é recomendável executar a atualização completa em fontes que não mantêm todo o histórico de dados ou que têm períodos de retenção curtos, como Kafka, porque a atualização completa refresh trunca os dados existentes. Talvez o senhor não consiga recuperar dados antigos se eles não estiverem mais disponíveis na fonte.

Como a visualização materializada é atualizada

A visualização materializada cria e usa automaticamente o pipeline Delta Live Tables para processar refresh operações. Delta Live Tables O pipeline usa um modo de execução contínuo ou acionado. A visualização materializada pode ser atualizada em qualquer modo de execução. Para evitar processamento desnecessário ao operar no modo de execução contínua, o pipeline monitora automaticamente as tabelas dependentes do Delta e executa uma atualização somente quando o conteúdo dessas tabelas dependentes é alterado. Consulte O que é um pipeline Delta Live Tables?

Observação

O tempo de execução do Delta Live Tables não consegue detectar alterações em fontes de dados que não sejamDelta. A tabela ainda é atualizada regularmente, mas com um intervalo de acionamento default mais alto para evitar que a recomputação excessiva diminua a velocidade de qualquer processamento incremental que esteja ocorrendo em compute.

Em default, refresh operações são realizadas de forma síncrona. O senhor também pode definir uma refresh operação para ocorrer de forma assíncrona. O comportamento associado a cada abordagem é o seguinte:

  • Síncrono: Um refresh síncrono bloqueia outras operações até que a refresh operação seja concluída. Isso permite que o senhor sequencie refresh operações em uma ferramenta de orquestração, como o fluxo de trabalho. Para orquestrar a visualização materializada com fluxo de trabalho, use o tipo SQL tipo tarefa. Consulte Introdução ao site Databricks Workflows.

  • Assíncrono: Um refresh assíncrono começa um Job em segundo plano no Delta Live Tables compute quando um view refresh materializado começa, e o comando retorna antes que a carga de dados seja concluída. Como o Delta Live Tables pipeline gerencia o refresh, o depósito Databricks SQL usado para criar o view materializado não é usado. Não é necessário que ele esteja em execução durante as refresh operações.

Suporte para atualização incremental da visualização materializada

A tabela a seguir lista o suporte ao incremental refresh por palavra-chave ou cláusula SQL:

Palavra-chave ou cláusula SQL

Suporte para incrementos refresh

SELECT expressões

Há suporte para expressões que incluem funções integradas determinísticas e funções definidas pelo usuário (UDFs) imutáveis.

WITH

Sim, há suporte para expressões de tabela comuns.

FROM

As tabelas de base compatíveis incluem tabelas Delta, exibição materializada e tabelas de transmissão

EXPECTATIONS

Não. As visualizações materializadas que usam expectativas são sempre totalmente atualizadas.

UNION ALL

Não

INNER JOIN

Não

LEFT JOIN

Não

GROUP BY

Sim

WHERE, HAVING

Há suporte para cláusulas de filtro, como WHERE e HAVING.

OVER

Não

QUALIFY

Não

Observação

Funções não determinísticas, por exemplo, CURRENT_TIMESTAMP, não são suportadas.