Résoudre les problèmes courants liés aux suggestions de filtres

Les suggestions de filtres sont un outil puissant dans Looker. Il est essentiel de comprendre d'où ils viennent et comment ils fonctionnent afin de pouvoir résoudre efficacement les problèmes lorsque les suggestions de filtres ne fonctionnent pas comme prévu. Cette page explique comment fonctionnent les suggestions de filtres, pourquoi elles peuvent être erronées et pourquoi elles peuvent ne pas s'afficher.

Comment fonctionnent les suggestions de filtres ?

Les suggestions de filtres permettent de gagner du temps lorsque les utilisateurs saisissent des valeurs dans les filtres et de s'assurer qu'ils choisissent les options présentes 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, si vous cochez la case d'un filtre dans le champ Status (État) de l'exploration Orders (Commandes), une liste déroulante contenant les valeurs "cancelled", "complete" et "pending" apparaît.

D'où vient 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 à ceci:

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 utilise les conditions appropriées dans la clause WHERE pour filtrer les résultats. Looker affiche ensuite les 100 premiers résultats dans des suggestions de filtres.

Puis-je modifier les suggestions qui s'affichent ?

Les développeurs peuvent utiliser divers 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 longueur du cache pour les suggestions de filtres. La valeur par défaut du paramètre suggest_persist_for est "6 heures". Les suggestions disposent de leur propre cache, que vous ne pouvez pas effacer manuellement à partir d'une page Explorer. Si vous devez vider 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 réinitialiser le cache manuellement pour l'ensemble du groupe de données sur la page Groupes de données du panneau Administration Looker. Toutefois, 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_for au niveau du champ et le définir sur "0 seconde" pour vider le cache des suggestions de filtre pour ce champ.
    Le cache est global pour tous les utilisateurs. Un utilisateur qui actualisera le cache pour obtenir des suggestions aura une incidence sur les résultats visibles par les autres utilisateurs.

Pourquoi les suggestions de filtres sont-elles incorrectes ?

Maintenant que vous savez comment les suggestions de filtres sont inséré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ù des résultats incorrects ont été détecté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 des suggestions. Le processus ETL de la base de données se termine environ une demi-heure plus tard. L'utilisateur B voit alors la même exploration que l'utilisateur A précédemment exécutée. L'utilisateur B se demande pourquoi les suggestions de filtres sont incorrectes. Cette disparité s'explique par le fait 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 donné 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 tôt 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 permettent d'identifier les causes possibles:

  1. Vérifiez le type de filtre.
  2. Vérifiez si des suggestions limitant access_filter ou sql_always_where s'affichent.
  3. Vérifiez si une suggest_dimension parameter s'affiche.
  4. Vérifiez si une tentative de chargement des suggestions est effectuée lorsqu'un utilisateur sélectionne ou saisit du texte dans le filtre.
  5. Consultez la console réseau Chrome.
  6. Trouvez les 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 permettent pas d'afficher des suggestions.

  • Assurez-vous que le champ de filtre indique type: string dans sa définition LookML. Les filtres appliqués aux champs de type number ne rempliront pas les suggestions.
  • S'agit-il d'un filtre correspond à (avancé) ? Les filtres de correspondance (avancés) nécessitent des expressions Looker. Par conséquent, les suggestions ne seront pas renseignées.

Vérifiez si des suggestions limitant access_filter ou sql_always_where s'affichent

En général, lorsque vous utilisez sql_always_where ou access_filter, 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 n'est susceptible d'afficher des informations sensibles dans un champ de dimension ou de filtre spécifique, vous pouvez utiliser bypass_suggest_restrictions pour réactiver les suggestions de filtrage.

Vérifier s'il y a un suggest_dimension parameter

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 où la vue de cette dimension est définie comme vue de base de l'exploration.

Pour les explorations dans lesquelles la vue de la dimension suggérée n'est pas la vue de base, ajoutez le paramètre suggest_explore en référençant l'exploration où cette vue est la vue de base.

Vérifiez si une tentative de chargement des suggestions est possible lorsque vous sélectionnez ou saisissez du texte dans le filtre

Vérifiez si Looker semble tenter de charger les suggestions lorsque vous sélectionnez ou saisissez du texte dans la zone de filtre. Looker doit afficher un cercle de chargement en rotation sur le côté droit de la zone de filtre.

Si ce n'est pas le cas, Looker n'essaie pas de remplir les suggestions. Vérifiez que les conditions décrites dans la première étape sont remplies et que les suggestions ne sont pas désactivées au niveau de field, view ou de l'exploration (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 vous tentez de charger les suggestions, suivez les instructions pour vérifier la console réseau Chrome.

Vérifier la console réseau Chrome

Il est possible que la console réseau Chrome indique une erreur liée à la requête elle-même ou indique si des résultats sont renvoyés à partir du cache.

  1. Ouvrez l'onglet "Réseau" de votre navigateur à l'aide du raccourci Ctrl+Maj+J (sous Windows) ou Commande+Option+J (sur Mac), ou en sélectionnant Affichage > Développer > Outils pour les développeurs dans la barre d'options Chrome située en haut du navigateur.
  2. Effectuez votre sélection dans la zone de filtre de votre Look, de votre exploration ou de votre tableau de bord.
  3. Le panneau "Outils pour les développeurs" affiche une demande de suggestions de filtres que vous pouvez sélectionner pour en savoir plus.
  4. Les en-têtes afficheront la requête API interne envoyée par Looker pour récupérer les valeurs suggérées. Dans cet exemple, supposons que Looker envoie la requête 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=
  5. Dans la requête API, vérifiez que le modèle répertorié après /models/ existe. Dans cet exemple, le modèle s'appelle the_look.
  6. Bien que l'URL indique /views/, il s'agit de l'exploration dont provient le champ. Vérifiez que l'exploration répertoriée après /views/ existe. Dans cet exemple, l'exploration s'appelle order_items.
  7. Vérifiez que le champ répertorié après /fields/ existe. Dans cet exemple, le champ est users.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 sur la base de la réponse à la requête:

{"class":"FieldNotFound","text":"Field not found."}

S'il n'y a pas d'erreur, mais qu'aucune suggestion ne s'affiche au moment attendu, vérifiez si la requête de suggestion est extraite du cache (cache: true dans la console réseau). Cela peut indiquer que le cache doit être interrompu, en utilisant un paramètre suggest_persist_for sur la dimension qui diffuse les suggestions.

Trouver des preuves de la requête de suggestions que Looker tente d'exécuter

Vous pouvez consulter la page Requêtes dans le panneau Administration 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 Details (Détails) de la requête, puis l'option Open in SQL Runner (Ouvrir dans SQL Runner). Vérifiez que la syntaxe du code SQL est correcte. Si vous remarquez des anomalies telles que des noms de champs manquants ou des caractères spéciaux errants, assurez-vous 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 modélisé pour l'exécution, aucune suggestion de filtre ne s'affiche.
  • Si la requête utilise un paramètre avec un default_value, cette valeur sera 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. En fonction de 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.