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 :
- 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.
- 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 l'encodage par plages de dictionnaire, pour compresser davantage les données stockées dans la couche en mémoire.
- 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.
- 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.
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 vous appuyez fortement sur les fonctionnalités BigQuery qui ne sont pas compatibles avec BI Engine : bien que BI Engine soit compatible avec la plupartFonctions et opérateurs SQL pour la connexion d'outils d'informatique décisionnelle à BigQuery,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 comprendre votre utilisation de BI Engine, consultez la page Surveiller BI Engine avec Cloud Monitoring ou interrogez les vues INFORMATION_SCHEMA.BI_CAPACITIES
et INFORMATION_SCHEMA.BI_CAPACITY_CHANGES
. 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.
Tables préférées
Les tables préférées de BI Engine vous permettent de limiter l'accélération de BI Engine à un ensemble spécifié de tables. Les requêtes adressées à toutes les autres tables utilisent des emplacements BigQuery standards. Par exemple, avec les tables préférées, vous pouvez accélérer uniquement les tables et les tableaux de bord que vous identifiez comme importants pour votre entreprise.
Si le projet ne dispose pas de suffisamment de RAM pour stocker toutes les tables préférées, BI Engine décharge les partitions et colonnes qui n'ont pas été consultées récemment. Ce processus libère de la mémoire pour les nouvelles requêtes nécessitant une accélération.
Limites des tables préférées
Les tables préférées de BI Engine présentent les limites suivantes :
- Vous ne pouvez pas ajouter de vues dans la liste des réservations de tables préférées. Les tables préférées de BI Engine ne sont compatibles qu'avec les tables.
- Les requêtes sur les vues matérialisées ne sont accélérées que si les vues matérialisées et leurs tables de base figurent dans la liste des tables préférées.
- La spécification de partitions ou de colonnes pour l'accélération n'est pas acceptée.
- Les colonnes de type
JSON
ne sont pas prises en charge et ne sont pas accélérées par BI Engine. - Les requêtes qui accèdent à plusieurs tables ne sont accélérées que si toutes les tables sont des tables préférées. Par exemple, toutes les tables d'une requête avec une jointure
JOIN
doivent figurer dans la liste des tables préférées pour être accélérées. Si une seule table ne figure pas dans la liste préférée, la requête ne peut pas utiliser BI Engine. - Les ensembles de données publics ne sont pas compatibles avec la console Google Cloud. Pour ajouter une table publique en tant que table préférée, utilisez l'API ou le LDD.
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.
Étapes suivantes
- Pour savoir comment créer votre réservation BI Engine, consultez la section Réserver de la capacité BI Engine.
- Pour en savoir plus sur la désignation des tables préférées, consultez la section Tables préférées de BI Engine.
- Pour comprendre votre utilisation de BI Engine, consultez la page Surveiller BI Engine avec Cloud Monitoring.
- Découvrez les fonctions optimisées de BI Engine.
- Découvrez comment utiliser BI Engine avec les composants suivants :