Introdução às visualizações materializadas

Neste documento, você terá uma visão geral do suporte do BigQuery para visualizações materializadas. Antes de ler este documento, familiarize-se com o BigQuery e as visualizações padrão do BigQuery.

Visão geral

No BigQuery, as visualizações materializadas são visualizações pré-computadas que periodicamente armazenam em cache os resultados de uma consulta para aumentar o desempenho e a eficiência. O BigQuery usa resultados pré-computados de visualizações materializadas e, sempre que possível, lê somente alterações delta da tabela base para computar resultados atualizados. As visualizações materializadas podem ser consultadas diretamente ou usadas pelo otimizador do BigQuery para processar consultas nas tabelas base.

As consultas que usam visualizações materializadas geralmente são mais rápidas e consomem menos recursos do que consultas que recuperam os mesmos dados apenas da tabela base. As visualizações materializadas melhoram significativamente o desempenho de cargas de trabalho que tenha consultas comuns e repetidas.

Por que usar visualizações materializadas?

As visualizações materializadas do BigQuery podem ser benéficas das seguintes maneiras:

  • Redução no tempo de execução e custo para consultas com funções de agregação. O maior benefício é obtido quando o custo de computação de uma consulta é alto e o conjunto de dados resultante é pequeno. Visualizações materializadas são a melhor opção se você tem uma tabela bruta e executa uma agregação de estilo de processamento analítico online (OLAP) que exige processamento significativo e tem consultas previsíveis e repetidas, como extração, transformação e carregamento (ETL) ou pipelines de business intelligence (BI).

  • Otimização automática e transparente de consultas do BigQuery. O otimizador do BigQuery usa uma visualização materializada, se disponível, para melhorar o plano de execução da consulta. A otimização não requer alterações nas consultas.

  • Agregação de dados em tempo real. Caso queira acessar dados para tomar decisões em tempo real, use as visualizações materializadas do BigQuery com streaming do BigQuery para executar agregações em tempo real, fornecendo informações atualizadas.

Recursos da prévia das visualizações materializadas

Além dos recursos de visualizações materializadas em disponibilidade geral, os seguintes recursos de visualizações materializadas estão disponíveis na prévia:

Permissões necessárias

Para mais informações sobre as permissões necessárias para executar operações em visualizações materializadas, consulte permissões necessárias para trabalhar com visualizações materializadas.

Comparação com outras técnicas do BigQuery

A tabela a seguir resume as semelhanças e diferenças entre o armazenamento em cache do BigQuery, as consultas programadas, as visualizações padrão e as visualizações materializadas.

Componente Armazenamento em cache Consultas programadas Visualizações padrão Visualizações materializadas
Desempenho Sim Não Não Sim
Compatibilidade de consulta Tudo Tudo Tudo Agregação: filtragem e agrupamento
Particionamento e agrupamento em cluster Não Sim N/A Sim
Atualização incremental Não Não Não Sim
Armazenamento adicional Não Sim Não Sim
Reescrever consulta Não Não Não Sim
Custos de manutenção Não Sim N/A Sim
Inatividade dos dados Nunca Sim Nunca Nunca
Limitada a uma única tabela Não Não Não Sim

Interação com outros recursos do BigQuery

Os seguintes recursos do BigQuery funcionam de forma transparente com visualizações materializadas:

  • Explicação do plano de consulta: o plano de consulta reflete quais visualizações materializadas serão verificadas (se houver) e mostrará quantos bytes serão lidos pela combinação entre as visualizações materializadas e a tabela base.

  • Cache de consulta: os resultados de uma consulta reescrita pelo BigQuery usando uma visualização materializada podem ser armazenados de acordo com as limitações padrão (uso de funções determinísticas, streaming na tabela base etc).

  • Cálculo de custo: com o faturamento sob demanda, se uma consulta é reescrita usando uma ou mais visualizações materializadas e o resultado verifica menos bytes do que a verificação da tabela base inteira, a consulta fica mais barata.

  • Restrição de custo: se tiver definido um valor para o máximo de bytes cobrados e uma consulta ler um número de bytes além do limite, ela falhará sem gerar uma cobrança, seja usando visualizações materializadas, a tabela base ou ambas.

  • Estimativa de custo usando simulação: uma simulação repete a lógica de se reescrever a consulta usando visualizações materializadas disponíveis e fornece uma estimativa de custo. É possível usar esse recurso como forma de testar se uma consulta específica usa visualizações materializadas.

Limitações

  • Não é possível manipular diretamente ou ler o conteúdo bruto de uma visualização materializada. Isso significa que as seguintes ações não são compatíveis:

    • Copiar uma visualização materializada, como uma fonte de destino de um job de cópia.
    • Exportar uma visualização materializada.
    • Carregar dados em uma visualização materializada
    • Gravar um resultado de consulta em uma visualização materializada
    • Executar instruções DML em uma visualização materializada.
  • Uma visualização materializada precisa residir na mesma organização da tabela base ou no mesmo projeto se o projeto não pertencer a uma organização.

  • Cada tabela base pode ser referenciada por até 20 visualizações materializadas do mesmo conjunto de dados, até 100 visualizações materializadas do mesmo projeto e até 500 visualizações materializadas de toda a organização.

  • Somente visualizações materializadas do mesmo conjunto de dados são consideradas na regravação automática de consulta (ou no ajuste inteligente).

  • As visualizações materializadas são compatíveis com uma sintaxe SQL restrita e um conjunto limitado de funções de agregação. Para mais informações, consulte Visualizações materializadas compatíveis.

  • Uma visualização materializada pode fazer referência apenas a uma única tabela e não pode usar mesclagens.

  • As visualizações materializadas não podem ser aninhadas em outras visualizações materializadas.

  • Só é possível usar o dialeto SQL padrão para visualizações materializadas.

  • Instruções DDL SHOW não são compatíveis com visualizações materializadas.

  • Instruções DDL ALTER não são compatíveis com visualizações materializadas, exceto ALTER com SET OPTIONS.

  • Se excluir a tabela base sem antes excluir a visualização materializada, as consultas na visualização materializada irão falhar, assim como as atualizações. Se decidir recriar a tabela base, também será necessário recriar a visualização materializada.

  • Depois que uma visualização materializada é criada em uma tabela base particionada, a validade da partição da tabela não pode ser alterada. Para alterar o prazo de validade da partição da tabela base, exclua todas as visualizações materializadas criadas nessa tabela particionada.

  • Há algumas limitações no uso de instruções ARRAY_AGG e JOIN em visualizações materializadas. Para mais informações, consulte Considerações sobre ARRAY_AGG e considerações sobre JOIN.

Preços de visualizações materializadas

Os custos são associados aos seguintes aspectos das visualizações materializadas do BigQuery:

  • Como consultar visualizações materializadas
  • Como manter visualizações materializadas, como quando são atualizadas.
  • Como armazenar tabelas de visualização materializadas.
Componente Preços sob demanda Preço fixo
Consulta Bytes processados por visualizações materializadas e quaisquer partes necessárias das tabelas base.1 Slots são consumidos durante o tempo de consulta.
Manutenção Bytes processados durante o tempo de atualização. Slots são consumidos durante o tempo de atualização.
Armazenamento Bytes armazenados em visualizações materializadas. Bytes armazenados em visualizações materializadas.

1Se a tabela base for somente de anexação, apenas o delta desde a última atualização da visualização materializada é processada a partir da tabela base. Veja mais informações em Atualizações incrementais.

Detalhes do custo de armazenamento

Para valores AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT agregados em uma visualização materializada, o valor final não é armazenado diretamente. Em vez disso, o BigQuery armazena internamente uma visualização materializada como um rascunho intermediário, que é usado para produzir o valor final.

Por exemplo, considere uma visualização materializada criada com o seguinte comando:

CREATE MATERIALIZED VIEW project-id.my_dataset.my_mv_table AS
SELECT date, AVG(net_paid) AS avg_paid
FROM project-id.my_dataset.my_base_table
GROUP BY date

Enquanto a coluna avg_paid é renderizada para o usuário como NUMERIC ou FLOAT64, internamente ela é armazenada como BYTES, com seu conteúdo como um rascunho intermediário em formato reservado. Para fins de cálculo do tamanho dos dados, a coluna é tratada como BYTES.

Segurança das visualizações

Para controlar o acesso às visualizações no BigQuery, consulte Como controlar o acesso às visualizações.

Próximas etapas