Surveiller les performances des requêtes à l'aide du suivi des requêtes d'exploration et du panneau "Performances"

Le suivi des requêtes Explorer et le panneau Performances d'Explorer fournissent des données de performances détaillées pour une requête Explorer. Ces données peuvent vous aider à identifier les points d'entrée clés pour résoudre les problèmes de performances liés aux requêtes et vous fournir des recommandations d'amélioration.

Outil de suivi des requêtes d'exploration

Le traceur de requêtes Exploration affiche la progression d'une requête Exploration au cours des trois phases de la requête pendant son exécution.

Si l'exécution d'une requête prend beaucoup de temps, le traceur de requêtes peut indiquer la phase de la requête à l'origine du problème de performances. Cela permet d'identifier les endroits où des problèmes de performances peuvent survenir et où les efforts d'optimisation peuvent être les plus efficaces.

Le traceur de requêtes s'affiche lorsqu'une exploration est en cours, à condition que le panneau Visualisation de l'exploration ou le panneau Données de l'exploration soit ouvert.

Explorer le panneau Performances

Pour afficher le panneau Performances de l'exploration, cliquez sur le lien Afficher les détails des performances, qui est disponible pour toute requête d'exploration exécutée.

Le panneau Performances indique le temps passé par la requête dans chacune des trois phases de la requête. Il inclut des liens vers la documentation sur les performances et le tableau de bord d'activité système de l'historique des requêtes, qui affiche les données de performances actuelles et historiques de la requête et de l'exploration utilisée pour la créer.

Phases de requête

Lorsqu'une exploration Looker exécute une requête de base de données, celle-ci est exécutée en trois phases, comme suit:

Phase d'initialisation de la requête

Pendant la phase d'initialisation de la requête, Looker effectue toutes les tâches requises avant l'envoi de la requête à votre base de données. La phase d'initialisation de la requête comprend les tâches suivantes:

La page de documentation Comprendre les métriques de performances des requêtes explique comment utiliser l'exploration Métriques de performances des requêtes dans Activité du système pour afficher les répartitions détaillées d'une requête. La phase d'initialisation de la requête du traceur de requêtes inclut les événements décrits dans les phases Worker asynchrone, Initialisation et Gestion des connexions de l'exploration Métriques de performances des requêtes.

Phase d'exécution de la requête

La phase Exécution de la requête correspond au moment où Looker contacte et interroge votre base de données, puis renvoie les résultats de la requête. Des problèmes de performances au cours de cette phase peuvent indiquer un problème avec la base de données externe, par exemple des tables PDT qui prennent beaucoup de temps à être recréées et qui doivent peut-être être optimisées, ou des tables de base de données externes qui doivent peut-être être optimisées. La phase Exécution de la requête comprend les tâches suivantes:

  • Créer les PDT nécessaires à la requête d'exploration dans la base de données
  • Exécuter la requête demandée sur la base de données

La page de documentation Comprendre les métriques de performances des requêtes explique comment utiliser l'exploration Métriques de performances des requêtes dans Activité du système pour afficher les répartitions détaillées d'une requête. La phase Exécution de la requête du traceur de requêtes inclut les événements décrits dans la phase Phase des requêtes principales de l'exploration Métriques de performances des requêtes.

Voici les mesures que vous pouvez prendre si vous rencontrez des problèmes de performances au cours de cette phase:

  • Dans la mesure du possible, créez des explorations à l'aide de jointures many_to_one. Associer des vues du niveau le plus détaillé au niveau le plus détaillé (many_to_one) offre généralement les meilleures performances de requête.
  • Maximisez la mise en cache pour vous synchroniser avec vos règles ETL dans la mesure du possible afin de réduire le trafic de requêtes de base de données. Par défaut, Looker met en cache les requêtes pendant une heure. Vous pouvez contrôler la stratégie de mise en cache et synchroniser les actualisations de données Looker avec votre processus ETL en appliquant des groupes de données dans les explorations à l'aide du paramètre persist_with. Maximiser le cache permet à Looker de s'intégrer plus étroitement au pipeline de données backend. Vous pouvez ainsi maximiser l'utilisation du cache sans risquer d'analyser des données obsolètes. Les règles de mise en cache nommées peuvent être appliquées à un modèle entier ou à des explorations et des tables dérivées persistantes (PDT) individuelles.
  • Utilisez la fonctionnalité de connaissance des agrégations de Looker pour créer des agrégations ou des tableaux récapitulatifs que Looker peut utiliser pour les requêtes dans la mesure du possible, en particulier pour les requêtes courantes de grandes bases de données. Vous pouvez également utiliser la reconnaissance d'agrégats pour améliorer considérablement les performances de l'ensemble d'un tableau de bord. Pour en savoir plus, consultez le tutoriel sur la sensibilisation globale.
  • Utilisez des PDT pour accélérer les requêtes. Convertissez les explorations contenant de nombreuses jointures complexes ou peu performantes, ou des dimensions avec des sous-requêtes ou des sous-sélections, en fichiers PDT afin que les vues soient pré-jointes et prêtes avant l'exécution.
  • Si votre dialecte de base de données est compatible avec les augmentations de tables PDT, configurez les augmentations de tables PDT pour réduire le temps que Looker passe à regénérer les tables PDT.
  • Évitez d'associer des vues à des explorations sur des clés primaires concatenantes définies dans Looker. À la place, effectuez une jointure sur les champs de base qui constituent la clé primaire concaténée à partir de la vue. Vous pouvez également recréer la vue en tant que PDT avec la clé primaire concaténée prédéfinie dans la définition SQL de la table, plutôt que dans le code LookML d'une vue.
  • Utilisez l'outil Explain in SQL Runner pour effectuer des analyses comparatives. EXPLAIN fournit un aperçu du plan d'exécution de requêtes de votre base de données pour une requête SQL donnée, ce qui vous permet de détecter les composants de requête pouvant être optimisés. Pour en savoir plus, consultez le post destiné à la communauté Comment optimiser SQL avec EXPLAIN.
  • Déclarer des index. Vous pouvez consulter les index de chaque table directement dans Looker depuis SQL Runner en cliquant sur l'icône en forme de roue dentée d'un tableau, puis en sélectionnant Afficher les index.

    Les colonnes les plus courantes qui peuvent bénéficier d'index sont les dates importantes et les clés étrangères. L'ajout d'index à ces colonnes améliore les performances de presque toutes les requêtes. Cela s'applique également aux tables PDT. Les paramètres LookML, tels que indexes, sort keys et distribution, peuvent être appliqués de manière appropriée.

Phase de traitement des résultats

Pendant la phase de traitement des résultats, Looker traite et affiche les résultats de la requête. La phase Traitement des résultats comprend les tâches suivantes:

La page de documentation Comprendre les métriques de performances des requêtes explique comment utiliser l'exploration Métriques de performances des requêtes dans Activité du système pour afficher les répartitions détaillées d'une requête. La phase Traitement des résultats du traceur de requêtes inclut les événements décrits dans la phase Post-requête de l'exploration Métriques de performances des requêtes.

Voici quelques mesures que vous pouvez prendre si vous rencontrez des problèmes de performances au cours de cette phase:

  • Utilisez les fonctionnalités telles que les résultats de fusion, les champs personnalisés et les calculs de table avec parcimonie. Ces fonctionnalités sont destinées à servir de preuve de concept pour vous aider à concevoir votre modèle. Il est recommandé de coder en dur tous les calculs et fonctions fréquemment utilisés dans LookML, ce qui génère du code SQL à traiter dans votre base de données. Des calculs excessifs peuvent entrer en concurrence pour la mémoire Java de l'instance Looker, ce qui ralentit sa réponse.
  • Limitez le nombre de vues que vous incluez dans un modèle lorsque de nombreux fichiers de vue sont présents. Inclure toutes les vues dans un même modèle peut ralentir les performances. Lorsqu'un grand nombre de vues sont présentes dans un projet, envisagez de n'inclure que les fichiers de vue nécessaires dans chaque modèle. Envisagez d'utiliser des conventions de nommage stratégiques pour les noms de fichiers de vue afin d'inclure des groupes de vues dans un modèle. Un exemple est présenté dans la documentation du paramètre includes.
  • Évitez de renvoyer un grand nombre de points de données par défaut dans les cartes de tableau de bord et les looks. Les requêtes qui renvoient des milliers de points de données consomment plus de mémoire. Assurez-vous que les données sont limitées dans la mesure du possible en appliquant des filtres côté client aux tableaux de bord, aux Looks et aux explorations, et au niveau LookML avec les paramètres required filters, conditionally_filter et sql_always_where.
  • Téléchargez ou envoyez des requêtes à l'aide de l'option Tous les résultats avec parcimonie, car certaines requêtes peuvent être très volumineuses et submerger le serveur Looker lors de leur traitement.