Qu'est-ce que BI Engine ?

BigQuery BI Engine est un service rapide d'analyse en mémoire qui accélère de nombreuses requêtes SQL dans BigQuery, en assurant une mise en cache intelligente des données que vous utilisez le plus fréquemment. BI Engine peut accélérer les requêtes SQL depuis n'importe quelle source, y compris celles écrites par des outils de visualisation de données, et peut gérer les tables mises en cache pour une optimisation continue. Vous pouvez ainsi améliorer les performances des requêtes sans réglage manuel ni hiérarchisation des données. Vous pouvez utiliser le clustering et le partitionnement pour optimiser davantage les performances des grandes tables avec BI Engine.

Par exemple, si votre tableau de bord n'affiche que les données du dernier trimestre, envisagez de partitionner vos tables par heure pour que seules les dernières partitions soient chargées en mémoire. Vous pouvez également combiner les avantages des vues matérialisées et de BI Engine. Cette approche est particulièrement adaptée lorsque les vues matérialisées sont utilisées pour joindre et aplatir les données afin d'optimiser leur structure pour BI Engine.

BI Engine offre les avantages suivants :

  1. API BigQuery : BI Engine s'intègre directement à l'API BigQuery. Toute solution d'informatique décisionnelle ou application personnalisée qui fonctionne avec l'API BigQuery via des mécanismes standards tels que REST ou les pilotes JDBC et ODBC peut utiliser BI Engine sans aucune modification.
  2. Environnement vectorisé : avec l'interface SQL de BI Engine, BI Engine introduit une technique plus moderne appelée traitement vectorisé. Le traitement vectorisé dans un moteur d'exécution permet d'utiliser plus efficacement les architectures de processeur modernes, en effectuant des opérations sur des lots de données à la fois. BI Engine utilise également des encodages de données avancés, en particulier le codage par dictionnaire et l'encodage par plages, pour compresser davantage les données stockées dans la couche en mémoire.
  3. Intégration parfaite : BI Engine fonctionne avec les fonctionnalités et les métadonnées BigQuery, y compris les vues autorisées, la sécurité au niveau des colonnes et des lignes, ainsi que le masquage des données.
  4. Réservations : les réservations BI Engine gèrent l'allocation de mémoire au niveau de l'emplacement du projet. BI Engine met en cache des colonnes ou des partitions spécifiques interrogées, en donnant la priorité à celles dans les tables marquées comme préférées.

À propos de l'interface SQL de BI Engine

L'interface SQL de BI Engine étend les capacités de BI Engine et permet l'intégration à d'autres outils d'informatique décisionnelle (BI) tels que Looker, Tableau, Power BI et des applications personnalisées afin d'accélérer l'exploration et l'analyse des données. Cette page présente l'interface SQL de BI Engine et les fonctionnalités étendues qu'elle apporte à BI Engine.

Architecture BI Engine

Cas d'utilisation de BI Engine

BI Engine peut considérablement accélérer de nombreuses requêtes SQL, y compris celles utilisées pour les tableaux de bord BI. L'accélération est plus efficace si vous identifiez les tables essentielles à vos requêtes, puis que vous les marquez comme tables préférées. Pour utiliser BI Engine, créez une réservation qui définit la capacité de stockage dédiée à BI Engine. Vous pouvez laisser BigQuery déterminer les tables à mettre en cache en fonction des modèles d'utilisation du projet ou marquer des tables spécifiques pour éviter qu'un autre trafic n'interfère avec l'accélération.

BI Engine est utile dans les cas d'utilisation suivants :

  • Utiliser des outils d'informatique décisionnelle pour analyser vos données : l'interface SQL avec BI Engine peut accélérer les requêtes BigQuery, qu'elles soient exécutées dans la console BigQuery, dans la bibliothèque cliente, ou via une API ou un connecteur ODBC ou JDBC. Cela peut considérablement améliorer les performances des tableaux de bord connectés à BigQuery via une connexion intégrée (API) ou des connecteurs.
  • Certaines tables sont interrogées le plus fréquemment : BI Engine vous permet de désigner des tables préférées spécifiques à accélérer. Ces options sont utiles si un sous-ensemble de tables est interrogé plus fréquemment ou est utilisé pour des tableaux de bord à visibilité élevée.

Dans les cas suivants, BI Engine peut ne pas répondre à vos besoins :

  • Vous utilisez des caractères génériques dans vos requêtes : les requêtes faisant référence à des tables génériques ne sont pas compatibles avec BI Engine et ne bénéficient pas de l'accélération.

  • Vous utilisez beaucoup les fonctionnalités BigQuery non compatibles : bien que BI Engine soit compatible avec la plupart des fonctions et opérateurs SQL lors de la connexion d'outils d'informatique décisionnelle à BigQuery, il existe des fonctionnalités non compatibles, y compris les tables externes et les fonctions non définies par l'utilisateur.

Remarques sur BI Engine

Tenez compte des points suivants lorsque vous décidez de la configuration de BI Engine :

Garantir l'accélération pour des requêtes spécifiques

Vous pouvez vous assurer qu'un ensemble particulier de requêtes est toujours accéléré en créant un projet distinct avec une réservation BI Engine. Pour ce faire, vous devez vous assurer que la réservation BI Engine de ce projet est suffisamment grande pour correspondre à la taille de toutes les tables utilisées dans ces requêtes et désigner ces tables comme des tables préférées pour BI Engine. Seules les requêtes à accélérer doivent être exécutées dans ce projet.

Réduire les jointures

BI Engine fonctionne mieux avec des tables préjointes ou pré-agrégées, et avec des données dans un petit nombre de jointures. Cela est particulièrement vrai lorsque l'un des côtés de la jointure est volumineux et que les autres sont beaucoup plus petits, par exemple lorsque vous interrogez une grande table de faits jointe à une table aux petites dimensions. Vous pouvez combiner BI Engine avec des vues matérialisées qui effectuent des jointures pour produire une seule grande table plate. De cette manière, il n'est pas nécessaire d'effectuer les mêmes jointures sur chaque requête.

Comprendre l'impact de BI Engine

Pour mieux comprendre comment vos charges de travail bénéficient de BI Engine, examinez les statistiques d'utilisation dans Cloud Monitoring ou interrogez INFORMATION_SCHEMA dans BigQuery. Veillez à désactiver l'option Utiliser les résultats mis en cache dans BigQuery pour obtenir la comparaison la plus précise. Pour en savoir plus, consultez l'article Utiliser les résultats de requête mis en cache.

Quotas et limites

Consultez la page Quotas et limites de BigQuery pour connaître les limites et les quotas qui s'appliquent à BI Engine.

Tarifs

Pour plus d'informations sur la tarification de BI Engine, consultez la page Tarifs de BigQuery.

Optimisation et accélération des requêtes

BigQuery, et par extension BI Engine, décompose le plan de requête produit pour une requête SQL en sous-requêtes. Une sous-requête contient un certain nombre d'opérations, telles que l'analyse, le filtrage ou l'agrégation de données, et est souvent l'unité d'exécution sur un segment.

Bien que toutes les requêtes SQL compatibles avec BigQuery soient correctement exécutées par l'interface SQL de BI Engine, seules certaines sous-requêtes sont optimisées. En particulier, l'interface SQL de BI Engine est la plus optimisée pour les sous-requêtes au niveau des feuilles qui analysent les données de stockage et effectuent des opérations telles que le filtrage, le calcul, l'agrégation, l'ordre et certains types de jointures. Les autres sous-requêtes qui ne sont pas encore entièrement accélérées par BI Engine reviennent dans BigQuery pour leur exécution.

En raison de cette optimisation sélective, les requêtes d'informatique décisionnelle ou de type tableau de bord simplifiées sont celles qui bénéficient le plus de BI Engine (ce qui réduit le nombre de sous-requêtes), car la majorité du temps d'exécution est consacré à des sous-requêtes au niveau de la feuille qui traitent les données brutes.

Étapes suivantes