REFRESH MATERIALIZED VIEW
Atualiza uma visualização materializada.
Quando você cria uma visualização materializada, seu conteúdo reflete o estado da tabela ou das tabelas do banco de dados subjacente na ocasião. Os dados na visualização materializada permanecem inalterados, mesmo quando aplicações fazem alterações nos dados nas tabelas subjacentes. Para atualizar os dados na visualização materializada, você pode usar a instrução REFRESH MATERIALIZED VIEW
a qualquer momento. Ao usar essa instrução, o Amazon Redshift identifica as alterações que ocorreram na tabela ou tabelas base e aplica essas alterações à visualização materializada.
Para obter mais informações sobre visões materializadas, consulte Visões materializadas no Amazon Redshift.
Sintaxe
REFRESH MATERIALIZED VIEW mv_name
Parâmetros
- mv_name
-
O nome da visualização materializada a ser atualizada.
Observações de uso
Somente o proprietário de uma visualização materializada pode executar uma operação REFRESH MATERIALIZED
VIEW
nela. Além disso, o proprietário deve ter o privilégio SELECT nas tabelas base subjacentes para executar REFRESH
MATERIALIZED VIEW
com êxito.
O comando REFRESH MATERIALIZED VIEW
é executado como uma transação própria. A semântica de transação do Amazon Redshift é seguida para determinar quais dados das tabelas base são visíveis para o comando REFRESH
, ou quando as alterações feitas pelo comando REFRESH
são tornadas visíveis para outras transações em execução no Amazon Redshift.
-
Para visões materializadas incrementais, o
REFRESH MATERIALIZED VIEW
usa apenas as linhas da tabela base que já estão confirmadas. Portanto, se a operação de atualização for executada após uma instrução DML (Data Manipulation Language) na mesma transação, as alterações dessa instrução DML não serão visíveis para serem atualizadas. -
Para uma atualização completa de uma visualização materializada, o
REFRESH MATERIALIZED VIEW
vê todas as linhas da tabela base visíveis para a transação de atualização, de acordo com a semântica de transação usual do Amazon Redshift. -
Dependendo do tipo de argumento de entrada, o Amazon Redshift ainda oferece suporte à atualização incremental de visões materializadas para as seguintes funções com tipos específicos de argumentos de entrada: DATE (timestamp), DATE_PART (date, time, interval, time-tz), DATE_TRUNC (timestamp, interval).
-
A atualização incremental é compatível em uma visão materializada na qual a tabela base está e uma unidade de compartilhamento de dados.
Algumas operações no Amazon Redshift interagem com visões materializadas. Algumas dessas operações podem forçar uma operação REFRESH MATERIALIZED VIEW
a recalcular totalmente a visualização materializada, mesmo que a consulta que define a visualização materializada use apenas os recursos SQL qualificados para atualização incremental. Por exemplo:
-
Se as visões materializadas não forem atualizadas, as operações de limpeza em segundo plano podem ser bloqueadas. Depois de um período limite definido internamente, será permitido executar uma operação de vácuo. Quando essa operação de vácuo acontece, todas as visões materializadas dependentes são marcadas para recomputação na próxima atualização (mesmo que elas sejam incrementais). Para obter informações sobre VACUUM, consulte VACUUM. Para obter mais informações sobre eventos e alterações de estado, consulte STL_MV_STATE.
-
Algumas operações iniciadas pelo usuário nas tabelas base forçam a recomputação total das visões materializadas na próxima vez que uma operação de REFRESH seja executada. Exemplos de tais operações são um VACUUM chamado manualmente, um redimensionamento clássico, uma operação ALTER DISTKEY, uma operação ALTER SORTKEY e uma operação truncada. Em alguns casos, as operações automáticas também podem resultar em uma visão materializada sendo totalmente recalculada na próxima vez que uma operação REFRESH for executada. Por exemplo, uma operação de exclusão automática por autovacuum pode causar uma recalculação completa. Para obter mais informações sobre eventos e alterações de estado, consulte STL_MV_STATE.
Atualização incremental para visões materializadas em uma unidade de compartilhamento de dados
O Amazon Redshift oferece suporte à atualização automática e incremental de visões materializadas em uma unidade de compartilhamento de dados do consumidor quando as tabelas base são compartilhadas. A atualização incremental é uma operação em que o Amazon Redshift identifica alterações em uma ou mais tabelas base que ocorreram após a atualização anterior e atualiza somente os registros correspondentes na visão materializada. Para obter mais informações sobre este comportamento, consulte CREATE MATERIALIZED VIEW.
Limitações para atualização incremental
Atualmente, o Amazon Redshift não oferece suporte à atualização incremental para visões materializadas definidas com uma consulta usando qualquer um dos seguintes elementos SQL:
-
OUTER JOIN (RIGHT, LEFT ou FULL).
-
Operações de conjuntos: (UNION, INTERSECT, EXCEPT, MINUS)
-
UNION ALL quando ocorre em uma subconsulta e uma função agregada ou uma cláusula GROUP BY está presente na consulta.
-
Funções agregadas MEDIAN, PERCENTILE_CONT, LISTAGG, STDDEV_SAMP, STDDEV_POP, APPROXIMATE COUNT, APPROXIMATE PERCENTILE e funções agregadas bit a bit.
nota
A funções agregadas COUNT, SUM, MIN, MAX e AVG não são comportadas.
-
Funções agregadas DISTINCT, como DISTINCT COUNT, DISTINCT SUM e assim por diante.
-
Funções de janela.
-
Uma consulta que usa tabelas temporárias para otimização de consultas, como para otimizar subexpressões comuns.
-
Subconsultas
-
Tabelas externas referenciando os formatos a seguir na consulta que define a visão materializada.
-
Delta Lake
-
Hudi
A atualização incremental é compatível para visões materializadas definidas usando tabelas externas que referenciam outros formatos na faixa de visualização. Para obter mais informações sobre como configurar clusters de visualização, consulte Creating a preview cluster no Guia de gerenciamento do Amazon Redshift. Para obter mais informações sobre como configurar grupos de trabalho de visualização, consulte Creating a preview workgroup no Guia de gerenciamento do Amazon Redshift.
-
Funções mutáveis, como funções de data-hora, funções aleatórias e não-estáveis definidas pelo usuário.
Com relação a limitações relacionadas à atualização incremental para integrações ETL zero, consulte Considerações ao usar integrações ETL zero com o Amazon Redshift.
Para obter mais informações sobre as limitações das visões materializadas, incluindo o efeito de operações em segundo plano, como VACUUM, nas operações de atualização de visões materializadas, consulte Observações de uso.
Exemplos
O exemplo a seguir atualiza a visualização materializada tickets_mv
.
REFRESH MATERIALIZED VIEW tickets_mv;