Atualizar operações para exibições materializadas
Importante
As exibições materializadas no Databricks SQL estão em versão preliminar pública.
As exibiçõ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 exibições materializadas podem ser atualizadas incrementalmente, propagando automaticamente e incrementalmente as alterações das tabelas base.
Este artigo explica os tipos de operações de atualização que podem ser aplicadas a exibições materializadas e identifica as operações SQL, palavras-chave e cláusulas que dão suporte à atualização incremental.
Observação
Para criar e usar exibições materializadas, o workspace deve atender aos requisitos.
Tipos de atualização
As operações de atualização são um destes tipos:
- Atualização incremental: uma atualização incremental processa alterações nos dados subjacentes após a última atualização e, em seguida, acrescenta esses dados à tabela. Dependendo das tabelas base e das operações incluídas, somente determinados tipos de exibições materializadas podem ser atualizados incrementalmente.
- Atualização completa: uma atualização completa trunca a tabela e reprocessa todos os dados disponíveis na origem com a definição mais recente. Não é recomendável executar atualizações completas em fontes que não mantêm todo o histórico de dados ou têm períodos de retenção curtos, como Kafka, porque a atualização completa trunca os dados existentes. Talvez você não consiga recuperar dados antigos se os dados não estiverem mais disponíveis na origem.
Quando as exibições materializadas são criadas usando um SQL warehouse ou pipeline do Delta Live Tables sem servidor, elas são atualizadas automaticamente incrementalmente se houver suporte para suas consultas. Se uma consulta incluir expressões sem suporte para uma atualização incremental, uma atualização completa será executada, potencialmente resultando em custos adicionais. Para determinar qual tipo de atualização é usado, confira Determinar se uma atualização incremental ou completa é usada.
Suporte para atualização incremental de exibição materializada
A tabela a seguir lista o suporte para atualização incremental por palavra-chave ou cláusula SQL. Palavras-chave e cláusulas marcadas com uma estrela (*) exigem que o acompanhamento de linhas seja habilitado para atualização incremental. Confira Usar o acompanhamento de linhas para tabelas Delta.
Palavra-chave ou cláusula SQL | Suporte para atualização incremental |
---|---|
Expressões SELECT * |
Sim, há suporte para expressões que incluem funções internas determinísticas e funções definidas pelo usuário (UDFs) imutáveis. |
GROUP BY |
Sim |
WITH |
Sim, há suporte para expressões de tabela comuns. |
UNION ALL * |
Sim |
FROM |
As tabelas base com suporte incluem tabelas Delta, exibições materializadas e tabelas de streaming. |
WHERE , HAVING * |
Cláusulas de filtro como WHERE e HAVING têm suporte. |
INNER JOIN * |
Sim |
LEFT OUTER JOIN |
Sim |
FULL OUTER JOIN |
Sim |
RIGHT OUTER JOIN |
Sim |
OVER |
Sim. PARTITION_BY colunas devem ser especificadas para incrementalização em funções de janela. |
QUALIFY |
Sim |
EXPECTATIONS |
Não. As exibições materializadas que usam as expectativas são sempre totalmente atualizadas. |
Observação
Não há suporte para funções não determinísticas, por exemplo CURRENT_TIMESTAMP
.