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 à cocher d'un filtre sur le champ État dans l'onglet Commandes d'Explorer affiche une liste déroulante avec les valeurs "annulée", "terminée" 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 à la requête SQL suivante :
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 le champ de filtre, Looker substitue 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 du cache des suggestions de filtres. Le paramètre suggest_persist_for
a une valeur par défaut de "6 heures". Les suggestions ont leur propre cache, qui ne peut pas être effacé manuellement depuis une page Explorer. Si vous devez vider le cache pour les 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 réinitialiser manuellement le cache pour l'ensemble du groupe de données sur la page Groupes de données du panneau Admin de Looker. Toutefois, cela actualisera le cache pour toutes les requêtes persistantes utilisant ce groupe de données. - Vous pouvez utiliser le paramètre
suggest_persist_for
au niveau du champ et le définir sur "0 seconde" pour vider le cache des suggestions de filtres pour ce champ.Le cache est global pour tous les utilisateurs. Si un utilisateur actualise le cache des suggestions, cela affecte les résultats que voient les autres utilisateurs.
Pourquoi les suggestions de filtres sont-elles incorrectes ?
Maintenant que vous savez comment les suggestions de filtres sont générées, vous pouvez déterminer pourquoi elles peuvent être incorrectes. L'explication la plus courante est que les données ont changé ou ont été 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é remarqué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. L'utilisateur B consulte ensuite la même exploration que l'utilisateur A. L'utilisateur B se demande pourquoi les suggestions de filtres sont incorrectes. Cette différence s'explique par le fait que la requête de suggestion mise en cache n'a pas été mise à jour avec le processus ETL récemment terminé de la base de données. Elle a donc affiché des résultats inattendus.
Si tel est le cas, vous pouvez actualiser le cache de 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 ?
Plusieurs raisons peuvent expliquer pourquoi 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 si une
access_filter
ou unesql_always_where
limitent les suggestions. - Vérifiez si un
suggest_dimension parameter
est disponible. - Vérifiez si une tentative de chargement de suggestions a lieu lorsqu'un utilisateur sélectionne ou saisit du texte dans le filtre.
- Consultez la console réseau Chrome.
- Trouvez des preuves de la requête de suggestions que Looker tente d'exécuter.
Vérifiez 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
type: string
dans sa définition LookML. Les filtres sur les champs de typenumber
ne génèrent pas de suggestions. - S'agit-il d'un filtre Correspondances (avancé) ? Les filtres "Correspondances (avancées)" nécessitent des expressions Looker. Par conséquent, aucune suggestion ne s'affichera.
Vérifiez si un access_filter
ou un sql_always_where
limitent 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 n'ont pas accès. 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érifiez si un suggest_dimension parameter
est disponible.
Lorsque le paramètre suggest_dimension
est utilisé, les suggestions de filtres ne s'affichent pas, sauf 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 dont la vue de la dimension suggérée n'est pas la vue de base, ajoutez le paramètre suggest_explore
en faisant référence à l'exploration dont cette vue est la vue de base.
Vérifiez si des suggestions sont chargées lorsque vous sélectionnez ou saisissez du texte dans le filtre.
Vérifiez si Looker semble essayer de charger des suggestions lorsque vous sélectionnez ou saisissez du texte dans la zone de filtre. Looker devrait afficher un cercle de chargement rotatif sur la droite 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 ajouteront suggestions: no
à tous les fichiers de vue par défaut.
Si vous tentez de charger des suggestions, suivez les instructions pour vérifier la console réseau Chrome.
Consulter 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 depuis le cache.
- Ouvrez l'onglet "Réseau" de votre navigateur à l'aide du raccourci Ctrl+Maj+J (sur Windows) ou Cmd+Option+J (sur Mac), ou en sélectionnant Afficher > Développer > Outils pour les développeurs dans la barre d'options Chrome en haut du navigateur.
- Sélectionnez dans la zone de filtre de votre Look, de votre exploration ou de votre tableau de bord.
- Le panneau "Outils pour les développeurs" doit afficher une demande pour les suggestions de filtres. Vous pouvez la 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 envoie 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 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 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 demande pour en savoir plus.

Dans ce cas, vous pouvez constater 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 pas de suggestions non plus quand vous vous y attendez, 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 vidé à l'aide d'un paramètre suggest_persist_for
sur la dimension qui fournit les suggestions.
Trouver des preuves de la requête de suggestions 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 le code SQL est syntaxiquement correct. 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 un modèle.
- Si la requête nécessite une entrée de filtre basé 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 sera insérée dans la requête de suggestion de filtre. Dans ce cas, la requête de suggestion de filtre ne se met pas à jour de manière dynamique en fonction de la saisie de l'utilisateur. Selon la valeur par défaut, cela peut entraîner l'absence de suggestions de filtres ou des suggestions de filtres incorrectes. Pensez plutôt à utiliser des filtres associés dans un tableau de bord.