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

Les suggestions de filtre 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 le fonctionnement des suggestions de filtres, pourquoi elles peuvent être incorrectes et pourquoi elles ne s'affichent pas.

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 un champ 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 État de l'exploration Commandes, une liste déroulante s'affiche avec les valeurs "annulée", "terminée" et "en attente".

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 le champ de filtre, Looker remplace 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 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 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, qui ne peut pas être effacé manuellement depuis une page "Découvrir". Si vous devez vider le cache des suggestions, voici quelques options:

  • Si l'exploration est mise en cache à l'aide d'un datagroup avec un sql_trigger, vous pouvez réinitialiser le cache pour l'ensemble du groupe de données manuellement 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 secondes" 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 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 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 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 une access_filter ou une sql_always_where limite les suggestions.
  3. Vérifiez si un suggest_dimension parameter existe.
  4. Vérifiez si une tentative de chargement de 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 des preuves de la requête de suggestions 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éreront 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 type number ne renseignent pas les suggestions.
  • S'agit-il d'un filtre Correspondances (avancées) ? 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 n'ont pas accès. 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 filtre ne s'affichent que si la dimension suggérée est référencée dans une exploration dont la vue est définie comme la 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 référençant l'exploration pour laquelle 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 s'affiche pour 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 renseigner les 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 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

La console réseau Chrome peut mettre en évidence une erreur liée à la requête elle-même ou indiquer 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 en haut du navigateur.
  2. Sélectionnez dans la zone de filtre de votre présentation, 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 listé après /models/ existe. Dans cet exemple, le modèle est appelé the_look.
  6. Bien que l'URL indique /views/, elle fait référence à l'exploration à partir de laquelle le champ provient. Vérifiez que l'exploration répertoriée après /views/ existe. Dans cet exemple, l'exploration est appelée 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:

Pour en savoir plus, sélectionnez la réponse à cette requête.

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."}

Si aucune erreur ne s'affiche, mais qu'aucune suggestion ne s'affiche comme prévu, vérifiez si la requête de suggestion est extraite du cache (cache: true dans la console réseau). Cela peut suggérer que le cache doit être supprimé à l'aide d'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 Détails de la requête, puis l'option Ouvrir dans l'exécuteur SQL. Vérifiez que la syntaxe de l'instruction SQL est correcte. Si vous remarquez des anomalies telles que des noms de champs manquants ou des caractères spéciaux incorrects, 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 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, il est possible qu'aucune suggestion de filtre ne soit générée ou que des suggestions de filtrage soient incorrectes. Envisagez plutôt d'utiliser des filtres associés dans un tableau de bord.