Criar visualizações materializadas no Amazon Redshift
Em um ambiente de data warehouse, as aplicações, com frequência, precisam executar consultas complexas em tabelas grandes. Um exemplo são as instruções SELECT que executam junções de várias tabelas e agregações em tabelas que contêm bilhões de linhas. O processamento dessas consultas pode ser dispendioso em termos de recursos do sistema e do tempo necessário para calcular os resultados.
A visualizações materializadas no Amazon Redshift fornecem uma maneira de resolver esses problemas. Uma visualização materializada contém um conjunto de resultados pré-computados, com base em uma consulta SQL a uma ou mais tabelas base. É possível emitir instruções SELECT para consultar uma visualização materializada, da mesma maneira como você pode consultar outras tabelas ou visualizações no banco de dados. O Amazon Redshift retorna os resultados pré-computados da visualização materializada, sem necessidade de acessar as tabelas base. Do ponto de vista do usuário, os resultados da consulta são retornados muito mais rapidamente em comparação a quando os mesmos dados são recuperados das tabelas base.
As visualizações materializadas são especialmente úteis para acelerar consultas que são previsíveis e repetidas. Em vez de realizar consultas com uso intensivo de recursos em grandes tabelas (como agregados ou junções múltiplas), as aplicações podem consultar uma visão materializada e recuperar um conjunto de resultados pré-computado. Por exemplo, considere o cenário em que um conjunto de consultas é usado para preencher painéis, como o Amazon QuickSight. Esse caso de uso é ideal para uma visualização materializada, porque as consultas são previsíveis e repetidas várias vezes.
Você pode definir uma visão materializada em termos de outras visões materializadas. Use visões materializadas em visões materializadas para expandir a capacidade de visões materializadas. Nessa abordagem, uma visualização materializada existente desempenha a mesma função que uma tabela base para a consulta recuperar dados.
Essa abordagem é especialmente útil para reutilizar junções pré-calculadas para diferentes opções agregadas ou GROUP BY. Por exemplo, tome uma visualização materializada que une informações do cliente (contendo milhões de linhas) com informações detalhadas da ordem do item (contendo bilhões de linhas). Esta é uma consulta cara para calcular repetidamente sob demanda. Você pode usar diferentes opções GROUP BY para as views materializadas criadas na parte superior desta visualização materializada e juntar-se a outras tabelas. Fazer isso economiza tempo de computação, caso contrário, usado para executar a junção subjacente cara a cada vez. O STV_MV_DEPS mostra as dependências de uma visualização materializada em outras visualização materializadas.
Quando você cria uma visualização materializada, o Amazon Redshift executa a instrução SQL especificada pelo usuário para reunir os dados da tabela ou tabelas base e armazena o conjunto de resultados. A ilustração a seguir fornece uma visão geral da visualização materializada tickets_mv
que uma consulta SQL define usando duas tabelas base, events
e sales
.
![Materialized view diagram showing data flow from events and sales tables to tickets_mv view.](images/materialized-view.png)
Em seguida, você pode usar essas visualizações materializadas em consultas para acelerá-las. Além disso, o Amazon Redshift pode regravar automaticamente essas consultas para usar visualizações materializadas, mesmo quando a consulta não faz referência explícita a uma visualizações materializada. A regravação automática de consultas é especialmente poderosa para melhorar a performance quando você não pode alterar suas consultas para usar visualizações materializadas.
Para atualizar os dados na visualização materializada, você pode usar a instrução REFRESH MATERIALIZED VIEW a qualquer momento para atualizar manualmente as visualizações materializadas. Quando você faz isso, o Amazon Redshift identifica as alterações que ocorreram na tabela ou tabelas base e aplica essas alterações à visualização materializada. Como a regravação automática de consultas requer visualizações materializadas para serem atualizadas, como um proprietário de visualização materializada, certifique-se de atualizar visualizações materializadas sempre que uma tabela base for alterada.
O Amazon Redshift fornece alguns métodos para manter as visualizações materializadas atualizadas para regravação automática. Você pode configurar visualizações materializadas com a opção de atualização automática para atualizar visualizações materializadas quando as tabelas base de visualizações materializadas forem atualizadas. Essa operação de atualização automática é executada em um momento em que os recursos do cluster estão disponíveis para minimizar interrupções em outros workloads. Como a programação da atualização automática depende do workload, você pode ter mais controle sobre quando o Amazon Redshift atualiza suas visualizações materializadas. Você pode programar um trabalho de atualização de visualização materializada usando a API do programador do Amazon Redshift e a integração do console. Para obter mais informações sobre programação de consultas, consulte Programação de consulta no console do Amazon Redshift.
Fazer isso é especialmente útil quando há um requisito de Acordo de Nível de Serviço (SLA) para dados atualizados de uma visualização materializada. Você também pode atualizar manualmente quaisquer visualizações materializadas que podem ser atualizadas automaticamente. Para obter informações sobre como criar visualizações materializadas, consulte CREATE MATERIALIZED VIEW.
Você pode emitir instruções SELECT para consultar uma visualização materializada. Para obter informações sobre como consultar visualizações materializadas, consulte Consultar uma visão materializada. Eventualmente o conjunto de resultados se torna obsoleto quando os dados são inseridos, atualizados e excluídos nas tabelas base. Você pode recarregar a visualização materializada a qualquer momento para atualizá-la com as alterações mais recentes das tabelas base. Para obter informações sobre como atualizar visualizações materializadas, consulte REFRESH MATERIALIZED VIEW.
Para obter detalhes sobre os comandos SQL usados para criar e gerenciar visualizações materializadas, consulte os seguintes tópicos de comandos:
Para obter informações sobre tabelas e visualizações do sistema para monitorar visualizações materializadas, consulte os seguintes tópicos:
Tópicos
- Consultar uma visão materializada
- Regravação automática de consulta para usar visualizações materializadas
- Atualizar uma visualização materializada
- Visualizações materializadas automatizadas
- Como usar uma função definida pelo usuário (UDF) em uma visão materializada
- Ingestão de streaming para uma visão materializada