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:
- 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.
- 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.
- 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 linha e mascaramento de dados.
- 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.
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 marque 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 incompatíveis do BigQuery: o BI Engine é compatível com a maioria das funções e operadores SQL ao conectar ferramentas de Business Intelligence (BI) ao BigQuery. , há recursos não compatí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 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 melhor como as cargas de trabalho se beneficiam do BI Engine, analise as estatísticas de uso no Cloud Monitoring ou consulte o INFORMATION_SCHEMA no BigQuery 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.
Cotas e limitações
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.
Otimização e aceleração de consultas
No BigQuery, e por extensão do BI Engine, o plano de consulta produzido para uma consulta SQL é dividido em subconsultas. Uma subconsulta contém várias operações, como verificação, filtragem ou agregação de dados, e costuma ser a unidade de execução em um fragmento.
Embora todas as consultas SQL compatíveis com o BigQuery sejam executadas corretamente pela interface do BI Engine SQL, somente algumas subconsultas são otimizadas. Mais especificamente, a interface do BI Engine SQL é mais otimizada para subconsultas na folha que verificam os dados do armazenamento e realizam operações como filtro, computação, agregação, ordenação e certos tipos de Mesclagens Outras subconsultas que ainda não são totalmente aceleradas pelo BI Engine revertem para o BigQuery para execução.
Devido a essa otimização seletiva, business intelligence ou consultas no tipo de painel mais simples se beneficiam mais do BI Engine (resultando em menos subconsultas), já que a maior parte do tempo de execução é gasto em subconsultas nas folhas que processam dados brutos.
A seguir
- Saiba mais sobre as funções otimizadas do BI Engine.
- Para saber como criar sua reserva do BI Engine, consulte Reservar capacidade do BI Engine.
- Para informações sobre como designar tabelas preferenciais, consulte Tabelas preferenciais do BI Engine.
- Para entender a utilização do BI Engine, consulte Monitorar o BI Engine com o Cloud Monitoring.