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 lógicas 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 os resultados pré-computados das visualizações materializadas e, sempre que possível, lê somente as alterações das tabelas 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 em comparação às consultas que recuperam os mesmos dados só da tabela base. As visualizações materializadas melhoram significativamente o desempenho de cargas de trabalho que tenha consultas comuns e repetidas.

Veja a seguir as principais características das visualizações materializadas:

  • Manutenção zero. As visualizações materializadas são pré-computadas em segundo plano quando as tabelas base são alteradas. Todas as alterações de dados incrementais das tabelas base são automaticamente adicionadas à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, os dados serão lidos diretamente das tabelas base. Se as alterações nas tabelas base não invalidarem a visualização materializada, o restante dos dados será lido a partir da visualização materializada e apenas as alterações serão lidas das tabelas base.
  • Ajuste inteligente. Se alguma parte de uma consulta na tabela de base puder ser resolvida consultando a visualização materializada, o BigQuery redirecionará a consulta para usar a visualização materializada, melhorando o desempenho e a eficiência.

Casos de uso

As visualizações materializadas do BigQuery podem otimizar consultas com alto custo computacional e pequenos resultados de conjunto de dados. Os processos que se beneficiam das visualizações materializadas incluem operações de processamento analítico on-line (OLAP, na sigla em inglês) que exigem processamento significativo com consultas previsíveis e repetidas, como aquelas de processos de extração, transformação, carregamento (ETL) ou de pipelines de business intelligence (BI).

Os casos de uso a seguir destacam o valor das visualizações materializadas. As visualizações materializadas podem melhorar o desempenho das consultas se você exigir com frequência o seguinte:

  • Pré-agregar dados. Agregação de dados de streaming.
  • Pré-filtrar dados. Execute consultas que leiam apenas um determinado subconjunto da tabela.
  • Pré-mesclar dados. As mesclagens de consulta, especialmente entre tabelas grandes e pequenas.
  • Reclustering de dados. Execute consultas que se beneficiariam de um esquema de clustering diferente das tabelas base.

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 lógicas e as visualizações materializadas.

Componente Armazenamento em cache Consultas programadas Visualizações lógicas Visualizações materializadas
Otimizar a computação Sim Não Não Sim
Suporte a consultas Tudo Tudo Tudo Limitado1
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 Opcional 2

1 A opção --allow_non_incremental_definition oferece suporte a um intervalo maior de consultas SQL para criar visualizações materializadas.

2 A opção --max_staleness oferece alto desempenho consistente com custos controlados ao processar grandes conjuntos de dados que mudam com frequência.

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 são verificadas (se houver) e mostra 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 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 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.

Tabelas de metadados ativadas por cache do BigLake

Visualizações materializadas em tabelas de metadados ativadas por cache do BigLake podem referenciar dados estruturados armazenados no Cloud Storage e no Amazon Simple Storage Service (Amazon S3). Essas visualizações materializadas funcionam como as visualizações materializadas em tabelas de armazenamento gerenciadas pelo BigQuery, incluindo os benefícios da atualização automática e do ajuste inteligente. Outros benefícios incluem pré-agregar, pré-filtrar e pré-mesclar dados armazenados fora do BigQuery. As visualizações materializadas nas tabelas do BigLake são armazenadas e têm todas as características do armazenamento gerenciado do BigQuery.

Quando você cria uma visualização materializada em uma tabela do BigLake no Amazon S3, os dados nessa visualização não ficam disponíveis para mesclagens com dados do BigQuery. Para disponibilizar os dados do Amazon S3 em uma visualização materializada para mesclagens, crie uma réplica da visualização materializada. Só é possível criar réplicas de visualizações materializadas em visualizações materializadas autorizadas.

Réplicas de visualizações materializadas

O BigQuery permite criar visualizações materializadas em tabelas de metadados ativadas por cache do BigLake com base em dados do Amazon Simple Storage Service (Amazon S3).

Uma réplica de visualização materializada permite de uso dos dados da visualização materializada do Amazon S3 em consultas, o que evita custos de saída de dados e melhora o desempenho da consulta. Para isso, uma réplica de visualização materializada replica os dados do Amazon S3 em um conjunto de dados em uma região do BigQuery com suporte, a fim de que eles fiquem disponíveis localmente no BigQuery.

Saiba como criar réplicas de visualizações materializadas.

Atualização de dados

Depois que você cria a réplica da visualização materializada, o processo de replicação pesquisa a visualização materializada de origem em busca de mudanças e replica os dados na réplica. Os dados são replicados no intervalo especificado na opção replication_interval_seconds da instrução CREATE MATERIALIZED VIEW AS REPLICA OF.

Além do intervalo de replicação, a atualização dos dados da réplica da visualização materializada também é afetada pela frequência de atualização da visualização materializada de origem e do cache de metadados da tabela do Amazon S3 usado pela visualização materializada.

É possível verificar a atualização de dados da réplica da visualização materializada e os recursos em que ela se baseia usando o console do Google Cloud:

  • Para conferir a atualização da réplica da visualização materializada, consulte o campo Última modificação no painel Detalhes da réplica da visualização materializada.
  • Para conferir a atualização da visualização materializada de origem, consulte o campo Última modificação no painel Detalhes da visualização materializada.
  • Para conferir a atualização do cache de metadados da tabela do Amazon S3 de origem, consulte o campo Inatividade máxima no painel Detalhes da visualização materializada.

Regiões com suporte

Use os mapeamentos de local na seguinte tabela ao criar réplicas de visualizações materializadas:

Local da visualização materializada de origem Local da réplica da visualização materializada
aws-us-east-1 A multirregião US ou qualquer uma destas regiões:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-us-west-2 A multirregião US ou qualquer uma destas regiões:
  • northamerica-northeast1
  • northamerica-northeast2
  • us-central1
  • us-east1
  • us-east4
  • us-east5
  • us-south1
  • us-west1
  • us-west2
  • us-west3
  • us-west4
aws-eu-west-1 A multirregião EU ou qualquer uma destas regiões:
  • europe-central2
  • europe-north1
  • europe-southwest1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • europe-west6
  • europe-west8
  • europe-west9
  • europe-west10
aws-ap-northeast-2 Qualquer uma destas regiões:
  • asia-east1
  • asia-east2
  • asia-northeast1
  • asia-northeast2
  • asia-northeast3
  • asia-south1
  • asia-south2
  • asia-southeast1

Limitações

  • Podem ser aplicados limites nas referências da tabela base e outras restrições. Para mais informações sobre limites de visualização materializada, consulte Cotas e limites.
  • Os dados de uma visualização materializada não podem ser atualizados ou manipulados diretamente usando operações como COPY, EXPORT, LOAD, WRITE ou instruções de linguagem de manipulação de dados (DML).
  • Não é possível substituir uma visualização materializada por uma visualização materializada com o mesmo nome.
  • O SQL da visualização não pode ser atualizado depois que a visualização materializada é criada.
  • 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.
  • Somente as visualizações materializadas do mesmo conjunto de dados são consideradas para o 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.
  • As visualizações materializadas não podem ser aninhadas em outras visualizações materializadas.
  • As visualizações materializadas não podem consultar tabelas externas ou curingas, visualizações lógicas1, snapshots ou alterar tabelas ativadas para captura de dados.
  • Somente o dialeto GoogleSQL é compatível com visualizações materializadas.
  • É possível definir as descrições de visualizações materializadas, mas não para colunas individuais.
  • Se você excluir uma tabela base sem excluir primeiro a visualização materializada, as consultas e atualizações da visualização materializada falharão. Se você recriar a tabela base, também precisará recriar a visualização materializada.

1O suporte à referência de visualização lógica está em pré-lançamento. Para mais informações, consulte Referência a visualizações lógicas.

Limitações de visualizações materializadas em tabelas do BigLake

  • O particionamento da visualização materializada não é compatível. As tabelas base podem usar o particionamento do Hive, mas o armazenamento de visualização materializada não pode ser particionado em tabelas do BigLake. Isso significa que qualquer exclusão em uma tabela base causa uma atualização completa da visualização materializada. Para mais detalhes, consulte Atualizações incrementais.
  • O valor de opção -max_staleness da visualização materializada precisa ser maior que o valor da tabela base do BigLake.
  • As mesclagens entre as tabelas gerenciadas do BigQuery e as tabelas do BigLake não são aceitas em uma única definição de visualização materializada.

Limitações das réplicas de visualizações materializadas

Preços de visualizações materializadas

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

  • 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.
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

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 o cálculo do tamanho dos dados, a coluna é tratada como BYTES.

Custos das réplicas de visualizações materializadas

O uso de réplicas de visualizações materializadas gera custos de computação, transferência de dados de saída e armazenamento.

A seguir