Visão geral das visualizações lógicas e materializadas

O BigQuery é compatível com dois tipos de visualizações: lógicas (padrão) e visualizações materializadas, que compartilham uma interface de consulta comum, mas diferem em mecanismos, desempenho e custo. Neste documento, comparamos as características, os benefícios e as limitações de cada tipo para ajudar você a escolher a visualização certa para sua carga de trabalho.

Visualizações lógicas

Uma visualização lógica (padrão) é uma tabela virtual definida por uma consulta SQL. Ele não armazena dados físicos. Em vez disso, ela armazena a lógica de consulta necessária para recuperar dados das tabelas base subjacentes. Quando você consulta uma visualização lógica, o mecanismo de consulta do BigQuery expande a visualização para a consulta subjacente. Esse processo significa que o BigQuery executa novamente a visualização sempre que ela é chamada.

Os benefícios das visualizações lógicas incluem:

  • Sem sobrecarga de armazenamento. Como nenhum dado adicional é armazenado, você paga apenas pelo armazenamento das tabelas base.
  • Precisão em tempo real. Como a consulta é executada no momento da execução, os resultados sempre refletem o estado mais atual das tabelas base.
  • Abstração lógica. Simplifica mesclagens complexas ou aplica segurança no nível da linha sem duplicar dados.
  • Flexibilidade do SQL. Oferece suporte a toda a gama de SQL do BigQuery, incluindo funções de janela complexas, funções definidas pelo usuário (UDFs) e todos os tipos de mesclagem.

Visualizações materializadas.

As visualizações materializadas são visualizações pré-computadas que armazenam periodicamente os resultados de uma consulta SQL. Ao contrário das visualizações lógicas, elas armazenam fisicamente os dados computados, o que permite que o BigQuery forneça resultados mais rapidamente sem processar repetidamente os dados de base brutos. Isso pode reduzir a latência de consulta para grandes conjuntos de dados ao pré-processar consultas e pode reduzir os custos de computação para consultas usadas com frequência.

As visualizações materializadas do BigQuery combinam a velocidade dos dados pré-computados com a precisão de uma visualização em tempo real. Para isso, é feito o seguinte:

  • Atualização automática. Um processo em segundo plano atualiza as visualizações materializadas quando as tabelas base são alteradas.
  • Atualização de dados. Se uma consulta ocorrer enquanto uma atualização em segundo plano estiver pendente, o BigQuery compensará automaticamente as alterações não processadas na tabela base para fornecer resultados atualizados.
  • Ajuste inteligente. O otimizador de consultas pode redirecionar automaticamente as consultas das tabelas base para a visualização materializada se determinar que ela pode fornecer a resposta de maneira mais eficiente.

Comparação de visualizações lógicas e materializadas

Embora as visualizações lógicas sejam o tipo padrão, se você consulta com frequência uma visualização grande ou computacionalmente cara, considere criar uma visualização materializada. As visualizações lógicas são virtuais e fornecem uma referência reutilizável a um conjunto de dados, mas não armazenam dados fisicamente. As visualizações materializadas são definidas usando SQL, como uma visualização lógica, mas armazenam fisicamente os dados que o BigQuery usa para melhorar o desempenho.

A tabela a seguir resume as semelhanças e diferenças entre as visualizações lógicas e materializadas do BigQuery:

Dimensão Visualização lógica Visualização materializada
Persistência de dados Nenhum (virtual) Físico (armazenado no disco)
Execução Sempre que a visualização é chamada Pré-computado; atualização em segundo plano
Desatualização de dados Nunca Opcional 1 (via atualização)
Desempenho Variável (depende da tabela base) Consistente e rápido
Complexidade do SQL Ilimitado Limitado
Otimizado para Segurança e abstração Redução de velocidade e custo
Custos de manutenção e armazenamento Não Sim

1 A opção --max_staleness melhora o desempenho das consultas com custos controlados ao processar conjuntos de dados grandes que mudam com frequência.

Quando usar visualizações lógicas

  • Camadas semânticas. Renomeie nomes de colunas complexos em termos fáceis de entender para usuários não técnicos.
  • Desenvolvimento rápido. Use quando a lógica estiver em fluxo e você não quiser gerenciar a sobrecarga do armazenamento físico.
  • Fontes de dados consolidadas. Fornecer uma fonte de dados para ferramentas de visualização, como o Data Studio ou o BigQuery Sharing (antigo Analytics Hub).

Quando usar visualizações materializadas

  • Pré-processar dados. Melhore o desempenho das consultas 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 por dia.
  • Análise em tempo real em streams grandes. Pode fornecer respostas mais rápidas em tabelas que recebem dados de streaming de alta velocidade.
  • Gerenciamento de custos. Reduzir o custo de consultas repetitivas e caras em grandes conjuntos de dados.

Visualizações autorizadas

Também é possível criar uma visualização 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, é possível compartilhar essa visualização com usuários e grupos específicos (principais) que podem visualizar os dados compartilhados e executar consultas neles, mas que não podem acessar o conjunto de dados de origem diretamente.

É possível criar uma visualização autorizada para uma visualização lógica ou materializada. Uma visualização autorizada para uma visualização materializada é chamada de visualização materializada autorizada.

Práticas recomendadas

Para um ambiente do BigQuery bem arquitetado, as visualizações lógicas são uma ferramenta útil para consolidar os dados necessários. Reserve visualizações materializadas para uso como uma ferramenta de otimização de desempenho para padrões de consulta específicos e de alto tráfego que envolvem agregação pesada.

Para saber como monitorar o uso e o desempenho de visualizações materializadas, consulte Visualização MATERIALIZED_VIEWS.

A seguir