Introdução às visualizações materializadas

As visualizações materializadas são visualizações pré-computadas que armazenam periodicamente os resultados de uma consulta SQL. Em alguns casos de uso, as visualizações materializadas reduzem o tempo total de processamento e os encargos relacionados, diminuindo a quantidade de dados a serem verificados para cada consulta. É possível consultar visualizações materializadas como outros recursos de dados.

Benefícios das visualizações materializadas

Os casos de uso a seguir destacam o valor das visualizações materializadas:

  • Pré-processar dados. Melhore a performance da consulta preparando agregações, filtros, mesclagens e clusters.
  • Aceleração do painel. Capacite ferramentas de BI, como o Looker, que consultam com frequência as mesmas métricas agregadas, por exemplo, usuários ativos diários.
  • Análise em tempo real de grandes streams. Pode fornecer respostas mais rápidas em tabelas que recebem dados de streaming de alta velocidade.
  • Gerenciamento de custos. Reduza o custo de consultas repetitivas e caras em grandes conjuntos de dados.

Principais características

As principais características das visualizações materializadas incluem o seguinte:

  • Manutenção zero. O BigQuery pré-computa visualizações materializadas em segundo plano quando as tabelas base são alteradas. O BigQuery adiciona automaticamente alterações de dados incrementais das tabelas base às visualizações materializadas, sem a necessidade de uma ação do usuário.
  • Dados atuais. Visualizações materializadas retornam dados recentes. Se as alterações nas tabelas base puderem invalidar a visualização materializada, o BigQuery vai ler os dados diretamente das tabelas base. Se as alterações nas tabelas base não invalidarem a visualização materializada, o BigQuery vai ler o restante dos dados da visualização materializada e ler apenas as alterações das tabelas base.
  • Ajuste inteligente. Se alguma parte de uma consulta em uma tabela base puder ser resolvida consultando a visualização materializada, o BigQuery vai redirecionar a consulta para usar a visualização materializada, melhorando a performance e a eficiência. Para informações sobre como e quando o ajuste inteligente pode melhorar consultas, consulte Usar visualizações materializadas.

Tipos de visualizações materializadas

Há dois tipos básicos de visualizações materializadas:

  • As visualizações materializadas incrementais oferecem suporte a um conjunto limitado de recursos. Para saber mais sobre a sintaxe SQL compatível com visualizações materializadas, consulte Criar visualizações materializadas. Somente as visualizações materializadas incrementais podem aproveitar o ajuste inteligente.
  • As visualizações materializadas não incrementais oferecem suporte à maioria das sintaxes que as visualizações materializadas incrementais não oferecem.

Ao criar visualizações materializadas, por padrão, o BigQuery só permite criar visualizações com base em consultas incrementais. Para criar uma visualização não incremental, especifique allow_non_incremental_definition = true na definição da visualização materializada.

O melhor tipo de visualização materializada a ser usado depende da sua situação. A tabela a seguir compara os recursos de visualizações materializadas incrementais e não incrementais:

Categoria Incremental Não incremental
Compatibilidade de consulta Limitado A maioria das consultas
Custo de manutenção Pode reduzir o custo de consultas usadas com frequência. Para saber como as visualizações materializadas são atualizadas, consulte Atualizações incrementais. Cada atualização executa a consulta completa.
Suporte a ajuste inteligente Oferecido para a maioria das consultas de visualizações. Não
Resultados sempre atualizados Oferecido. As visualizações incrementais retornam resultados de consultas recentes, mesmo quando as tabelas base foram alteradas desde a última atualização. Não

Visualizações materializadas autorizadas

É possível criar uma visualização materializada autorizada para compartilhar um subconjunto de dados de um conjunto de dados de origem com uma visualização em um conjunto de dados secundário. Em seguida, você pode compartilhar essa visualização com usuários e grupos específicos (principais). Os principais podem consultar os dados fornecidos em uma visualização, mas não podem acessar o conjunto de dados de origem diretamente.

As visualizações autorizadas e as visualizações materializadas autorizadas são autorizadas da mesma maneira. Para mais detalhes, consulte Visualizações autorizadas.

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 mostra quais visualizações materializadas são verificadas (se houver) e quantos bytes são lidos nas visualizações materializadas e nas tabelas base combinadas.

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

  • Restrição de custo. Se você especificar o máximo de bytes cobrados e uma consulta ler dados além desse limite, a consulta vai falhar sem incorrer em cobrança, seja por uso de visualizações materializadas, das tabelas base ou de ambas.

  • Estimativa de custo usando simulação. Uma simulação repete a lógica de 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.

  • Replicação de dados entre regiões. As visualizações materializadas podem ser criadas em tabelas do BigQuery que têm a replicação entre regiões ativada, mas apenas na região principal. Se você usar a região secundária, poderá encontrar a seguinte mensagem de erro: The dataset replica of the cross region dataset {PROJECT}:{DATASET} in region {REGION} is read-only because it's not the primary replica.

Além desses recursos, é possível criar visualizações materializadas em tabelas com recursos específicos, conforme descrito nas seções a seguir.

Tabelas com captura de dados alterados ativa

É possível criar visualizações materializadas em tabelas com captura de dados alterados (CDC) ativa. Essas visualizações materializadas funcionam como visualizações materializadas em tabelas do BigQuery, incluindo os benefícios da atualização automática. As visualizações materializadas não podem executar consultas de mesclagem de tempo de execução, portanto, é necessário configurar visualizações materializadas com um max_staleness suficiente para evitar jobs de mesclagem de tempo de execução. Para mais informações, consulte Limitações de visualizações materializadas em tabelas com captura de dados alterados ativa.

Preços de visualizações materializadas

As visualizações materializadas incorrem em custos das seguintes maneiras:

  • Como consultar visualizações materializadas
  • Como manter visualizações materializadas, como quando são atualizadas. O custo da atualização automática é cobrado no projeto em que a visualização reside. O custo da atualização manual é cobrado no projeto em que o job de atualização manual é executado. Para mais informações sobre como controlar o custo de manutenção, consulte Manutenção do job de atualização.
  • Como armazenar tabelas de visualização materializadas.

A tabela a seguir descreve os componentes de preços para visualizações materializadas:

Componente Preços sob demanda Preços baseados em capacidade
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.

1 Sempre que possível, o BigQuery lê apenas as alterações desde a última vez em que a visualização foi atualizada. Veja mais informações em Atualizações incrementais.

Detalhes do custo de armazenamento

A maneira como o BigQuery armazena determinados valores agregados afeta o cálculo do tamanho do armazenamento. Para valores agregados AVG, ARRAY_AGG e APPROX_COUNT_DISTINCT 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 aparece como NUMERIC ou FLOAT64, internamente ela é armazenada como BYTES, com seu conteúdo como um rascunho intermediário em um formato reservado. Para o cálculo do tamanho dos dados, a coluna é tratada como BYTES.

A seguir