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:
|
aws-us-west-2 |
A
multirregião US
ou qualquer uma destas
regiões:
|
aws-eu-west-1 |
A
multirregião EU
ou qualquer uma destas
regiões:
|
aws-ap-northeast-2 |
Qualquer uma destas
regiões:
|
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
- Não é possível criar réplicas de visualizações materializadas baseadas em tabelas que adotam segurança no nível da linha ou segurança no nível da coluna.
- Não é possível usar chaves de criptografia gerenciadas pelo cliente (CMEKs) com a visualização materializada de origem ou a réplica dela.
- Só é possível criar réplicas de visualizações materializadas baseadas em tabelas que usam o armazenamento em cache de metadados.
- Só é possível criar uma réplica de visualização materializada para uma determinada visualização materializada de origem.
- Só é possível criar réplicas de visualizações materializadas autorizadas.
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
- Criar visualizações materializadas
- Usar visualizações materializadas
- Gerenciar visualizações materializadas