Les suggestions de filtres sont un outil puissant dans Looker. Il est essentiel de comprendre d'où elles proviennent et comment elles fonctionnent pour pouvoir résoudre efficacement les problèmes lorsque les suggestions de filtres ne se comportent pas comme prévu. Cette page explique comment fonctionnent les suggestions de filtres, pourquoi elles peuvent être incorrectes et pourquoi elles peuvent ne pas s'afficher.
Comment fonctionnent les suggestions de filtres ?
Les suggestions de filtres permettent aux utilisateurs de gagner du temps lorsqu'ils saisissent des valeurs dans les filtres et de s'assurer qu'ils choisissent des options qui existent dans les données. Lorsque les utilisateurs sélectionnent une zone de filtre, une liste de suggestions s'affiche sous le champ. Dans cet exemple, la sélection de la case d'un filtre sur le champ État de l'exploration Commandes révèle une liste déroulante avec les valeurs "annulé", "terminé" et "en attente" comme options.
D'où provient cette liste de suggestions ?
Looker exécute une requête SELECT distinct <field> sur la base de données pour récupérer toutes les options possibles pour ce champ. La requête ressemble au code SQL suivant :
SELECT DISTINCT <field_name> FROM <table> WHERE (<field_name> LIKE '%' OR <field_name> LIKE '% %') GROUP BY 1 ORDER BY 1 LIMIT 1000
Lorsque les utilisateurs saisissent des caractères dans la zone de filtre, Looker remplace les conditions appropriées dans la clause WHERE pour filtrer les résultats. Looker affiche ensuite les 1 000 premiers résultats dans les suggestions de filtres.
Puis-je modifier les suggestions qui s'affichent ?
Les développeurs peuvent utiliser différents paramètres LookML pour modifier et personnaliser les suggestions qui s'affichent. Pour en savoir plus, consultez la page de documentation Modifier les suggestions de filtres.
Les suggestions sont-elles mises en cache ?
Par défaut, Looker met en cache les résultats de requête pendant une heure. Vous pouvez utiliser le paramètre LookML suggest_persist_for pour personnaliser la durée de mise en cache des suggestions de filtres. La valeur par défaut du paramètre suggest_persist_for est "6 hours". Les suggestions ont leur propre cache, qui ne peut pas être effacé manuellement à partir d'une page d'exploration. Si vous devez effacer le cache des suggestions, voici quelques options :
- Si l'exploration est mise en cache à l'aide d'un groupe de données avec un
sql_trigger, vous pouvez manuellement réinitialiser le cache pour l'ensemble du groupe de données sur la page Groupes de données du panneau Admin de Looker, mais cela actualisera le cache pour toutes les requêtes conservées à l'aide de ce groupe de données. - Vous pouvez utiliser le paramètre
suggest_persist_forau niveau du champ et le définir sur "0 seconds" pour effacer le cache des suggestions de filtres pour ce champ.Le cache est global pour tous les utilisateurs. L'actualisation du cache des suggestions par un utilisateur affecte les résultats affichés par les autres utilisateurs.
Pourquoi les suggestions de filtres sont-elles incorrectes ?
Maintenant que vous savez comment les suggestions de filtres sont renseignées, vous pouvez déterminer pourquoi elles peuvent être incorrectes. L'explication la plus courante est que les données ont été modifiées ou mises à jour entre le moment où les suggestions de filtres ont été mises en cache et le moment où les résultats incorrects ont été constatés.
Par exemple, supposons que l'utilisateur A exécute une exploration dès le matin. L'utilisateur A sélectionne des valeurs de filtre dans la liste déroulante de suggestions. Le processus ETL de la base de données se termine environ une demi-heure plus tard. Ensuite, l'utilisateur B affiche la même exploration que celle exécutée précédemment par l'utilisateur A. L'utilisateur B se demande pourquoi les suggestions de filtres sont incorrectes. La raison de cette disparité est que la requête de suggestion mise en cache n'a pas été mise à jour avec le processus ETL nouvellement terminé de la base de données et a donc affiché des résultats inattendus.
Dans ce cas, vous pouvez actualiser le cache des suggestions à l'aide des méthodes décrites dans la section Les suggestions sont-elles mises en cache ? plus haut sur cette page.
Pourquoi les suggestions de filtres ne s'affichent-elles pas ?
Il peut y avoir plusieurs raisons pour lesquelles les suggestions de filtres ne s'affichent pas. Les étapes de dépannage suivantes mettent en évidence les causes potentielles :
- Vérifiez le type de filtre.
- Vérifiez s'il existe un
access_filterou unsql_always_wherequi limite les suggestions. - Vérifiez s'il existe un
suggest_dimension parameter. - Vérifiez si une tentative de chargement des suggestions est effectuée lorsqu'un utilisateur sélectionne ou saisit du texte dans le filtre.
- Vérifiez la console réseau Chrome.
- Recherchez des preuves de la requête de suggestion que Looker tente d'exécuter.
Vérifier le type de filtre
S'il s'agit d'un filtre de tableau de bord LookML, assurez-vous que le type de filtre est Champ. Les autres types de filtres ne génèrent pas de suggestions.
-
Assurez-vous que le champ de filtre est de
type: stringdans sa définition LookML. Les filtres sur les champs de typenumberne génèrent pas de suggestions. - S'agit-il d'un filtre de type "Correspondances (avancé)" ? Les filtres de type "Correspondances (avancé)" nécessitent des expressions Looker. Par conséquent, aucune suggestion ne s'affiche.
Vérifier s'il existe un access_filter ou un sql_always_where qui limite les suggestions
En règle générale, lorsque sql_always_where ou access_filter est utilisé, les suggestions de filtres sont limitées pour cette exploration. Cela empêche les utilisateurs de voir une suggestion de filtre à laquelle ils ne peuvent pas accéder. Si vous êtes certain qu'aucune valeur possible dans un champ de dimension ou de filtre particulier ne révèle d'informations sensibles, vous pouvez utiliser bypass_suggest_restrictions pour réactiver les suggestions de filtres.
Vérifier s'il existe un suggest_dimension parameter
Lorsque le suggest_dimension paramètre est utilisé, les suggestions de filtres ne s'affichent que si la dimension suggérée est référencée dans une exploration dont la vue de cette dimension est définie comme vue de base de l'exploration.
Pour les explorations où la vue de la dimension suggérée n'est pas la vue de base, ajoutez le suggest_explore paramètre, en référençant l'exploration où cette vue est la vue de base.
Vérifier si une tentative de chargement des suggestions est effectuée lorsque vous sélectionnez ou saisissez du texte dans le filtre
Vérifiez si Looker semble tenter de charger des suggestions lorsque vous sélectionnez ou saisissez du texte dans la zone de filtre. Looker doit afficher un cercle de chargement rotatif sur le côté droit de la zone de filtre.
Si ce n'est pas le cas, Looker n'essaie pas de générer des suggestions. Vérifiez que les conditions décrites à la première étape sont remplies et que les suggestions ne sont pas désactivées au niveau field, view ou Explore (avec sql_always_where ou access_filter) dans LookML. Notez que les dialectes Hadoop ajoutent suggestions: no à tous les fichiers de vue par défaut.
Si une tentative de chargement des suggestions est effectuée, passez aux instructions pour vérifier la console réseau Chrome.
Vérifier la console réseau Chrome
La console réseau Chrome peut mettre en évidence une erreur dans la requête elle-même ou indiquer si des résultats sont renvoyés à partir du cache.
- Ouvrez l'onglet "Réseau" de votre navigateur à l'aide du raccourci Ctrl + Maj + J (sous Windows) ou Cmd + Option + J (sur Mac), ou en sélectionnant Afficher > Développer > Outils de développement dans la barre d'options Chrome en haut du navigateur.
- Sélectionnez dans la zone de filtre de votre présentation, exploration ou tableau de bord.
- Le panneau "Outils de développement" doit afficher une requête pour les suggestions de filtres, que vous pouvez sélectionner pour en savoir plus.
- Les en-têtes afficheront la requête d'API interne que Looker effectue pour récupérer les valeurs de suggestion. Dans cet exemple, supposons que Looker effectue la requête d'API suivante, où
<yourinstance>représente l'URL de votre instance :
<yourinstance>/api/internal/models/the_look/views/order_items/fields/users.state/suggestions?term=
- Dans la requête d'API, vérifiez que le modèle listé après
/models/existe. Dans cet exemple, le modèle est appeléthe_look. - Bien que l'URL indique
/views/, cela fait référence à l'exploration d'où provient le champ. Vérifiez que l'exploration listée après/views/existe. Dans cet exemple, l'exploration est appeléeorder_items. - Vérifiez que le champ listé après
/fields/existe. Dans cet exemple, le champ estusers.state.
La réponse à cette requête d'API affichera le message d'erreur exact. Par exemple, le code d'état des suggestions est 404 Not Found :
Sélectionnez la réponse à cette requête pour en savoir plus.
Dans ce cas, vous pouvez voir que les suggestions échouent, car le champ est introuvable en fonction de la réponse à la requête :
{"class":"FieldNotFound","text":"Field not found."}
S'il n'y a pas d'erreurs, mais aucune suggestion lorsque prévu, vérifiez si la requête de suggestion extrait des données du cache (cache: true dans la console réseau). Cela peut indiquer que le cache doit être effacé à l'aide d'un suggest_persist_for paramètre sur la dimension qui fournit les suggestions.
Rechercher des preuves de la requête de suggestion que Looker tente d'exécuter
Vous pouvez consulter la page Requêtes du panneau Admin de Looker pour vous assurer que la requête qui génère le filtre (le champ Source de la page Requêtes indique Suggestion de filtre) ne génère pas d'erreur. Sélectionnez le bouton Détails de la requête, puis l'option Ouvrir dans l'Exécuteur SQL. Vérifiez que la syntaxe SQL est correcte. Si vous remarquez des anomalies telles que des noms de champs manquants ou des caractères spéciaux erronés, vérifiez que vous n'utilisez pas de paramètres Liquid ni de filtres basés sur des modèles.
- Si la requête nécessite une entrée de filtre basée sur un modèle pour s'exécuter, aucune suggestion de filtre ne s'affiche.
- Si la requête utilise un paramètre avec une
default_value, cette valeur est insérée dans la requête de suggestion de filtre. Dans ce scénario, la requête de suggestion de filtre ne sera pas mise à jour de manière dynamique en fonction de l'entrée utilisateur. Selon la valeur par défaut, cela peut entraîner l'absence de suggestions de filtres ou des suggestions de filtres incorrectes. Envisagez plutôt d'utiliser des filtres associés dans un tableau de bord.