O que é o BI Engine?

O BigQuery BI Engine é um serviço rápido de análise na memória que acelera várias consultas SQL no BigQuery armazenando em cache os dados usados com mais frequência de maneira inteligente. O BI Engine pode acelerar consultas SQL de qualquer fonte, incluindo aquelas escritas por ferramentas de visualização de dados, e pode gerenciar tabelas em cache para otimização contínua. Isso permite melhorar o desempenho da consulta sem ajuste manual ou nível de dados. É possível usar clustering e particionamento para otimizar ainda mais o desempenho de tabelas grandes com o BI Engine.

Por exemplo, se o painel mostrar apenas os dados do último trimestre, considere dividir as tabelas por tempo para que apenas as partições mais recentes sejam carregadas na memória. Também é possível combinar os benefícios das visualizações materializadas e do BI Engine. Isso funciona muito bem quando as visualizações materializadas são usadas para mesclar e nivelar dados para otimizar a estrutura para o BI Engine.

O BI Engine oferece as seguintes vantagens:

  1. API BigQuery: o BI Engine se integra diretamente com a API BigQuery. Qualquer solução de BI ou aplicativo personalizado que funciona com a API BigQuery por mecanismos padrão, como REST ou drivers JDBC e ODBC, pode usar o BI Engine sem nenhuma alteração.
  2. Ambiente de execução vetorizado: com a interface BI Engine do SQL, o BI Engine apresenta uma técnica mais moderna chamada processamento vetorizado. O uso do processamento vetorial em um mecanismo de execução faz uso mais eficiente da arquitetura moderna da CPU, operando em lotes de dados por vez. O BI Engine também usa codificações avançadas de dados, especificamente a codificação de tamanho de execução do dicionário, para compactar ainda mais os dados armazenados na camada na memória.
  3. Integração perfeita: o BI Engine trabalha com recursos e metadados do BigQuery, incluindo visualizações autorizadas, segurança de nível de coluna e mascaramento de dados.
  4. Reservas: as reservas do BI Engine gerenciam a alocação de memória no nível do local do projeto. O BI Engine armazena em cache colunas ou partições específicas que são consultadas, priorizando-as em tabelas marcadas como preferidas.

Sobre a interface SQL do BI Engine

A interface BI Engine SQL expande o BI Engine para se integrar a outras ferramentas de business intelligence (BI), como Looker, Tableau, Power BI e aplicativos personalizados, para acelerar a exploração e a análise de dados. Esta página fornece uma visão geral da interface do BI Engine SQL e os recursos expandidos que ele oferece ao BI Engine.

Arquitetura do BI Engine

Casos de uso do BI Engine

O BI Engine pode acelerar significativamente muitas consultas SQL, incluindo as usadas para painéis de BI. A aceleração é mais eficaz se você identifica as tabelas essenciais para suas consultas e marcá-las como tabelas preferenciais. Para usá-las, crie uma reserva que defina a capacidade de armazenamento dedicada ao BI Engine. Você pode permitir que o BigQuery determine quais tabelas serão armazenadas em cache com base nos padrões de uso do projeto ou marcar tabelas específicas para evitar que outro tráfego interfira na aceleração.

O BI Engine é útil nos seguintes casos de uso:

  • Você usa ferramentas de BI para analisar os dados: a interface SQL do BI Engine pode acelerar as consultas do BigQuery, independentemente de serem executadas no console do BigQuery, na biblioteca de cliente, em uma API ou um conector ODBC ou JDBC. Isso pode melhorar significativamente o desempenho dos painéis conectados ao BigQuery por uma conexão (API) integrada ou conectores.
  • Há algumas tabelas que são consultadas com mais frequência: o BI Engine permite designar tabelas preferenciais específicas para acelerar. Isso é útil se você tiver um subconjunto de tabelas consultadas com mais frequência ou usadas para painéis de alta visibilidade.

O BI Engine pode não atender às suas necessidades nos seguintes casos:

  • Use caracteres curingas nas suas consultas: as consultas que fazem referência a tabelas curinga não são compatíveis com o BI Engine e não se beneficiam da aceleração.

  • Você depende muito de recursos do BigQuery que não são compatíveis com o BI Engine: Embora o BI Engine seja compatível com a maioria das Funções e operadores SQL ao conectar ferramentas de Business Intelligence (BI) ao BigQuery, existem recursos incompatíveis, incluindo tabelas externas e funções não definidas pelo usuário do SQL.

Considerações sobre o BI Engine

Considere o seguinte ao decidir como configurar o BI Engine:

Garantir a aceleração de consultas específicas

Para garantir que um conjunto específico de consultas seja sempre acelerado, crie um projeto separado com uma reserva do BI Engine. Para fazer isso, verifique se a reserva do BI Engine nesse projeto é grande o suficiente para corresponder ao tamanho de todas as tabelas usadas nessas consultas e determine essas tabelas como tabelas preferenciais do BI Engine. Somente as consultas que precisam ser aceleradas precisam ser executadas nesse projeto.

Minimizar as mesclagens

O BI Engine funciona melhor com pré-mesclados ou dados pré-agregados e com dados em um pequeno número de mesclagens. Isso ocorre especialmente quando um lado da junção é grande e os outros são muito menores, como ao consultar uma grande tabela de fatos combinada com uma pequena tabela de dimensão. É possível combinar o BI Engine com visualizações materializadas que executam mesclagens para produzir uma única tabela grande e plana. Dessa forma, as mesmas junções não precisam ser realizadas em todas as consultas.

Entender o impacto do BI Engine

Para entender sua utilização do BI Engine, consulte Monitorar o BI Engine com o Cloud Monitoring ou consulte as visualizações INFORMATION_SCHEMA.BI_CAPACITIES e INFORMATION_SCHEMA.BI_CAPACITY_CHANGES. Desative a opção Usar resultados em cache no BigQuery para uma comparação mais precisa. Para mais informações, consulte Usar resultados de consulta em cache.

Tabelas preferidas

Com as tabelas preferenciais do BI Engine, você limita a aceleração do BI Engine para um conjunto especificado de tabelas. As consultas em todas as outras tabelas usam slots normais do BigQuery. Por exemplo, com as tabelas preferenciais, é possível acelerar apenas as tabelas e os painéis identificados como importantes para sua empresa.

Se não houver RAM suficiente no projeto para manter todas as tabelas preferenciais, o BI Engine descarregará partições e colunas que não foram acessadas recentemente. Esse processo libera memória para novas consultas que precisam de aceleração.

Limitações das tabelas preferidas

As tabelas preferenciais do BI Engine têm as seguintes limitações:

  • Não é possível adicionar visualizações à lista de reservas de tabelas preferenciais. As tabelas preferenciais do BI Engine são compatíveis apenas com tabelas.
  • As consultas para visualizações materializadas só serão aceleradas se as visualizações materializadas e as tabelas base estiverem na lista de tabelas preferenciais.
  • Não é possível especificar partições ou colunas para aceleração.
  • As colunas do tipo JSON não são compatíveis e não são aceleradas pelo BI Engine.
  • As consultas que acessam várias tabelas só serão aceleradas se todas as tabelas forem tabelas preferidas. Por exemplo, todas as tabelas em uma consulta com JOIN precisam estar na lista de tabelas preferenciais para que sejam aceleradas. Mesmo que uma tabela não esteja na lista de preferenciais, a consulta não poderá usar o BI Engine.
  • Os conjuntos de dados públicos não são compatíveis com o console do Google Cloud. Para adicionar uma tabela pública como preferencial, use a API ou a DDL.

Cotas e limites

Consulte Cotas e limites do BigQuery para mais informações sobre cotas e limites que se aplicam ao BI Engine.

Preços

Para ver informações sobre preços do BI Engine, consulte a página Preços do BigQuery.

A seguir