O que é o BI Engine?

O BigQuery BI Engine é um serviço de análise na memória rápido que acelera muitas consultas SQL no BigQuery ao colocar em cache de forma inteligente os dados que usa com maior frequência. O BI Engine pode acelerar as consultas SQL de qualquer origem, incluindo as escritas por ferramentas de visualização de dados, e pode gerir tabelas em cache para otimização contínua. Isto permite-lhe melhorar o desempenho das consultas sem ajuste manual nem hierarquização de dados. Pode usar a agrupamento e a divisão em partições para otimizar ainda mais o desempenho de tabelas grandes com o BI Engine.

Por exemplo, se o seu painel de controlo apenas apresentar os dados do último trimestre, considere particionar as tabelas por tempo para que apenas as partições mais recentes sejam carregadas na memória. Também pode combinar as vantagens das vistas materializadas e do BI Engine. Isto funciona particularmente bem quando as vistas materializadas são usadas para juntar e simplificar dados para otimizar a respetiva estrutura para o BI Engine.

O BI Engine oferece as seguintes vantagens:

  1. API BigQuery: o BI Engine integra-se diretamente com a API BigQuery. Qualquer solução de BI ou aplicação personalizada que funcione com a API BigQuery através de mecanismos padrão, como REST ou controladores JDBC e ODBC, pode usar o BI Engine sem modificações.
  2. Tempo de execução vetorizado: com o BI Engine, o BigQuery usa uma técnica moderna denominada processamento vetorizado. A utilização do processamento vetorizado num motor de execução permite uma utilização mais eficiente da arquitetura moderna da CPU, operando em lotes de dados de cada vez. O BI Engine também usa codificações de dados avançadas, especificamente, codificação de dicionário e de comprimento de execução, para comprimir ainda mais os dados armazenados na camada na memória.
  3. Integração perfeita: o BI Engine funciona com as funcionalidades e os metadados do BigQuery, incluindo vistas autorizadas, segurança ao nível da coluna e da linha, e ocultação de dados.
  4. Reservas: as reservas do BI Engine gerem a atribuição de memória ao nível da localização do projeto. O BI Engine armazena em cache colunas ou partições específicas consultadas, dando prioridade às tabelas marcadas como preferenciais.

Arquitetura do BI Engine

O BI Engine integra-se com qualquer ferramenta de Business Intelligence (BI), incluindo o Looker, o Tableau, o Power BI e aplicações personalizadas para acelerar a exploração e a análise de dados.

Arquitetura do BI Engine

Exemplos de utilização do BI Engine

O BI Engine pode acelerar significativamente muitas consultas SQL, incluindo as usadas para painéis de controlo de BI. A aceleração é mais eficaz se identificar as tabelas essenciais para as suas consultas e, em seguida, marcá-las como tabelas preferenciais. Para usar o BI Engine, crie uma reserva que defina a capacidade de armazenamento dedicada ao BI Engine. Pode permitir que o BigQuery determine que tabelas colocar em cache com base nos padrões de utilização do projeto ou pode marcar tabelas específicas para impedir que outro tráfego interfira na aceleração.

O BI Engine é útil nos seguintes exemplos de utilização:

  • Usa ferramentas de BI para analisar os seus dados: o BI Engine pode acelerar as consultas do BigQuery, independentemente de serem executadas na consola do BigQuery, na biblioteca de cliente ou através de uma API ou de um conetor ODBC ou JDBC. Isto pode melhorar significativamente o desempenho dos painéis de controlo associados ao BigQuery através de uma associação integrada (API) ou de conetores.
  • Tem determinadas tabelas que são consultadas com maior frequência: o BI Engine permite-lhe designar tabelas preferenciais específicas para acelerar. Isto é útil se tiver um subconjunto de tabelas consultadas com maior frequência ou usadas para painéis de controlo de alta visibilidade.

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

  • Usa carateres universais nas suas consultas: as consultas que fazem referência a tabelas de carateres universais não são suportadas pelo BI Engine e não beneficiam da aceleração.

  • Depende muito de funcionalidades do BigQuery não suportadas: embora o BI Engine suporte a maioria das funções e dos operadores SQL quando associa ferramentas de inteligência empresarial (BI) ao BigQuery, existem funcionalidades não suportadas, incluindo tabelas externas e funções definidas pelo utilizador não SQL.

Considerações para o BI Engine

Considere o seguinte ao decidir como configurar o BI Engine:

Garantir a aceleração de consultas específicas

Pode garantir que um conjunto específico de consultas é sempre acelerado criando um projeto separado com uma reserva do BI Engine. Para tal, deve garantir que a reserva do BI Engine nesse projeto é suficientemente grande para corresponder ao tamanho de todas as tabelas usadas nessas consultas e designar essas tabelas como tabelas preferenciais para o BI Engine. Apenas as consultas que precisam de ser aceleradas devem ser executadas nesse projeto.

Minimize as suas associações

O BI Engine funciona melhor com dados pré-associados ou pré-agregados, e com dados num pequeno número de associações. Isto é particularmente verdade quando um dos lados da junção é grande e os outros são muito menores, como quando consulta uma tabela de factos grande unida a uma tabela de dimensões pequena. Pode combinar o BI Engine com vistas materializadas que executam junções para produzir uma única tabela grande e simples. Desta forma, não é necessário fazer as mesmas junções em todas as consultas.

Compreenda o impacto do BI Engine

Pode compreender melhor as vantagens do BI Engine para as suas cargas de trabalho revendo as estatísticas de utilização no Cloud Monitoring ou consultando o INFORMATION_SCHEMA no BigQuery. Certifique-se de que desativa a opção Usar resultados em cache no BigQuery para obter a comparação mais precisa. Para mais informações, consulte o artigo Use resultados de consultas em cache.

Limitações

As consultas que contêm a função VECTOR_SEARCH não são aceleradas pelo BigQuery BI Engine.

Quotas e limites

Consulte as quotas e os limites do BigQuery para ver as quotas e os limites aplicáveis ao BI Engine.

Preços

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

Otimização e aceleração de consultas

O BigQuery, e, por extensão, o BI Engine, dividem o plano de consulta produzido para uma consulta SQL em subconsultas. Uma subconsulta contém várias operações, como analisar, filtrar ou agregar dados, e é frequentemente a unidade de execução num fragmento.

Embora todas as consultas SQL suportadas pelo BigQuery sejam executadas corretamente pelo BI Engine, apenas determinadas subconsultas são otimizadas. Em particular, o BI Engine está mais otimizado para subconsultas ao nível da folha que analisam os dados do armazenamento e realizam operações como filtrar, calcular, agregação, ordenar por e determinados tipos de junções. Outras subconsultas que ainda não estão totalmente aceleradas pelo BI Engine revertem para o BigQuery para execução.

Devido a esta otimização seletiva, a inteligência empresarial mais simples ou as consultas do tipo painel de controlo beneficiam mais do BI Engine (resultando em menos subconsultas), uma vez que a maioria do tempo de execução é gasto em subconsultas ao nível da folha que processam dados não processados.

O que se segue?