Créer des expressions Looker

Les expressions Looker sont des formules que vous utilisez pour effectuer des calculs personnalisés et appliquer une logique avancée dans Looker. Utilisez des expressions Looker pour créer des calculs de table dynamiques, des champs personnalisés, des filtres personnalisés et des tests de données. Cette fonctionnalité vous aide à extraire des insights spécifiques et à personnaliser votre analyse de données. Ce guide explique comment créer et utiliser efficacement des expressions Looker.

Raccourcis pour les fonctions courantes

Avant de créer des expressions Looker, vérifiez si vous pouvez effectuer votre tâche à l'aide de raccourcis intégrés :

  • Calculs de tableau : si votre administrateur vous a accordé les autorisations nécessaires pour créer des calculs de tableau, vous pouvez utiliser les calculs rapides pour effectuer rapidement des calculs courants sur les champs numériques d'un tableau de données Explore.
  • Champs personnalisés : si votre administrateur vous a accordé les autorisations nécessaires pour créer des champs personnalisés, vous pouvez utiliser les éléments suivants :
    • Les groupes personnalisés permettent de regrouper des valeurs sous des étiquettes personnalisées sans avoir à développer de logique CASE WHEN dans les paramètres sql ni dans les champs type: case.
    • Les bins personnalisés permettent de regrouper les dimensions de type numérique dans des niveaux personnalisés sans avoir à développer des champs LookML type: tier.

Expressions Looker

Les expressions Looker servent à effectuer des calculs dans les contextes suivants :

Une expression Looker est créée à partir d'une combinaison des éléments suivants :

  • NULL : la valeur NULL indique qu'il n'y a pas de données. Elle peut être utile lorsque vous souhaitez vérifier qu'un élément est vide ou n'existe pas.

  • Une constante : il s'agit d'une valeur immuable que vous fournissez. Un nombre tel que 7 ou une chaîne telle que Completed sont des constantes.

  • Champ Looker : référence à un champ Looker, qui inclut des dimensions, des mesures et des calculs de table.

  • Un opérateur Looker : pour obtenir la liste des opérateurs disponibles, consultez Fonctions et opérateurs Looker. Les opérateurs compatibles incluent les catégories suivantes :

    • Opérateurs mathématiques (tels que +, -, * et /)
    • Opérateurs de comparaison (tels que =, > et <=)
    • Opérateurs logiques (tels que AND, OR et NOT)
  • Fonction Looker : comme les fonctions de feuille de calcul, les fonctions vous permettent de transformer vos données ou de les référencer de manière complexe. Pour obtenir la liste des fonctions disponibles, consultez Fonctions et opérateurs Looker.

Créer des expressions Looker

Les calculs de table, les champs personnalisés et les filtres personnalisés utilisent l'éditeur d'expressions Looker. Lorsque vous saisissez votre expression, Looker vous propose des fonctions, des opérateurs et des noms de champs que vous pouvez utiliser.

Afficher toutes les suggestions

Accédez à l'éditeur d'expressions Looker dans une exploration en créant un calcul de table, un champ personnalisé ou un filtre personnalisé.

Saisissez un espace pour afficher la liste de tous les champs, fonctions et opérateurs que vous pouvez choisir. Si un champ est actuellement sélectionné dans l'exploration, Looker affiche un point noir à gauche du champ et le place en haut de la liste.

Commencez à saisir du texte dans l'éditeur d'expressions Looker pour réduire la liste aux éléments qui vous intéressent.

L'éditeur de champs personnalisés affiche les champs Explorer actuellement utilisés, s'ils sont compatibles avec la fonction du champ personnalisé.

Ajouter un champ

Pour inclure un champ Looker dans votre expression, commencez à saisir son nom. À mesure que vous saisissez du texte, l'éditeur réduit la liste des champs et des fonctions contenant ce texte. Vous pouvez saisir le nom du champ tel qu'il apparaît sur la page "Explorer", ou utiliser son nom LookML si vous le connaissez.

Lorsque vous sélectionnez un champ dans la liste, Looker l'ajoute à votre expression en utilisant le nom LookML au format ${view_name.field_name}. Cela garantit que tous vos champs ont des noms uniques dans votre expression.

Ajouter des totaux

Si vous créez une expression basée sur une exploration dans laquelle vous avez affiché des totaux, vous pouvez également inclure des totaux de colonnes et de lignes dans votre expression. Les totaux des colonnes s'affichent dans l'éditeur avec le mot Total devant l'itération LookML du nom du champ. Par exemple, pour un champ nommé Count (Nombre), Looker attribue le nom Count - Total au total de la colonne pour ce champ.

Le nom LookML des totaux se présente sous la forme ${view_name.field_name:total}, où :total est ajouté à la fin du nom du champ.

Pour les totaux des lignes, les mots Totaux des lignes apparaissent devant le nom du champ dans l'éditeur. Dans le nom LookML du champ, :row_total est ajouté à la fin du nom du champ, par exemple ${view_name.field_name:row_total}.

Ajouter des opérateurs

Si nécessaire, vous pouvez ajouter des opérateurs logiques tels que AND, OR et NOT à votre expression. En règle générale, les opérateurs AND sont évalués avant les opérateurs OR, mais vous pouvez ignorer ce comportement en utilisant des parenthèses. Vous pouvez également utiliser des opérateurs de comparaison (tels que >, = et <=) et des opérateurs mathématiques (tels que + et *).

Lorsque vous pointez sur un opérateur, des notes sur son utilisation s'affichent dans le volet d'informations.

Ajouter des fonctions

Pour inclure une fonction Looker dans votre expression, commencez à saisir son nom. À mesure que vous saisissez du texte, l'éditeur réduit votre recherche à une liste de champs et de fonctions contenant ce que vous avez saisi.

Les fonctions peuvent être constituées d'arguments (ou de variables) qui nécessitent un certain type, comme un champ, un nombre ou une valeur "oui/non". Lorsque vous pointez sur une fonction, consultez les notes du volet d'informations pour comprendre les arguments que vous devez fournir et leur type.

Pour obtenir la liste complète des fonctions, consultez Fonctions et opérateurs Looker.

Utiliser les indications d'erreur et le volet d'informations

Looker affiche un volet d'informations à côté de l'éditeur d'expressions Looker. Ce volet fournit de la documentation et des suggestions, en particulier si votre expression contient une erreur.

Le volet d'informations fournit les informations suivantes :

  • Mise en évidence des erreurs : Looker souligne en rouge les parties de l'expression qui ne sont pas encore correctes.

  • Suggestions et détails des erreurs : Looker vous suggère ce que vous pouvez ajouter ensuite à votre expression. En cas d'erreur, le message explique pourquoi elle s'est produite.

  • Documentation : Looker affiche la documentation sur la fonction ou l'opérateur que vous utilisez. Par exemple, lorsque vous saisissez le premier argument d'une fonction if, Looker indique que le premier argument doit être évalué comme yes ou no. Cliquez sur le nom de la fonction pour afficher sa documentation.

Inclure les commentaires

Vous pouvez inclure des commentaires dans les expressions Looker en commençant la ligne de commentaire par # dans l'éditeur d'expressions.

Utiliser des champs

Il peut arriver que vous souhaitiez utiliser la valeur d'un champ (dimension, mesure ou calcul de tableau) dans une expression. Vous pouvez ajouter la valeur du champ à un autre élément, vérifier qu'elle a une certaine valeur ou l'inclure dans une fonction.

Comme décrit dans Ajouter un champ, vous pouvez saisir le nom du champ dans l'éditeur d'expressions. Looker vous aidera à trouver le format de référence approprié. Lorsque vous ajoutez un champ à une expression, Looker utilise l'identifiant LookML du champ, tel que ${view_name.field_name}. Saisissez le nom du champ tel qu'il apparaît dans le sélecteur de champs. L'éditeur d'expressions affiche le nom du sélecteur de champs à côté de l'identifiant LookML.

Il existe plusieurs façons de récupérer une valeur :

  • Obtenir une valeur à partir de la même ligne : la façon la plus simple d'utiliser un champ est de le référencer directement, comme ${product.category}. Cela fait référence à la valeur de ce champ dans la ligne actuelle.

  • Obtenir la valeur d'une autre ligne : vous pouvez également récupérer la valeur d'un champ à partir d'une autre ligne. Par exemple, pour obtenir la catégorie de produit de la ligne précédente, utilisez une fonction de décalage telle que offset(${product.category}, -1). Pour obtenir la liste des fonctions de position, consultez Fonctions de position.

  • Obtenir une valeur à partir d'une colonne croisée : pour obtenir des valeurs à partir de colonnes croisées, utilisez des fonctions de tableau croisé dynamique telles que pivot_index(${order.total_sales}, 1). Pour obtenir la liste des fonctions de tableau croisé dynamique, consultez Fonctions de tableau croisé dynamique.

  • Obtenir un total à partir d'une ligne ou d'une colonne : si vous avez affiché des totaux dans Explorer, vous pouvez obtenir des valeurs totales en ajoutant :total (pour les totaux de colonnes) ou :row_total (pour les totaux de lignes) au nom du champ, en utilisant le format ${field_name:total}. Exemple : ${orders.count} / ${orders.count:total}.

Utiliser des opérateurs

Les expressions Looker peuvent inclure des opérateurs logiques, de comparaison et mathématiques pour créer différentes conditions :

  • Opérateurs logiques (tels que AND, OR et NOT)
  • Opérateurs de comparaison (tels que > et <)
  • Opérateurs mathématiques (tels que + et -)

Sauf indication contraire à l'aide de parenthèses, la logique AND est évaluée avant la logique OR. L'expression suivante sans parenthèses supplémentaires :

if (
  ${order_items.days_to_process}>=4 OR
  ${order_items.shipping_time}>5 AND
  ${order_facts.is_first_purchase},
"review", "okay")

est donc évaluée comme suit :

if (
  ${order_items.days_to_process}>=4 OR
  (${order_items.shipping_time}>5 AND ${order_facts.is_first_purchase}),
"review", "okay")

Dans Looker, utilisez yes et no au lieu de true et false. Ces constantes logiques ne sont pas identiques aux chaînes littérales "yes" et "no". Pour en savoir plus, consultez Constantes logiques.

Utiliser des fonctions

Les expressions Looker incluent souvent une ou plusieurs fonctions permettant de récupérer ou de calculer des données. Elles sont semblables aux fonctions de feuille de calcul.

Les fonctions se présentent sous la forme d'un nom suivi de parenthèses, comme my_function(). Les valeurs transmises entre parenthèses sont des arguments, comme my_function(argument_1, argument_2).

Par exemple, la fonction now ne prend aucun argument et renvoie la date et l'heure actuelles : now().

La fonction round accepte un argument numérique : round(3.2). Le résultat est 3.

Pour savoir quels arguments fournir :

Prenons l'exemple de la fonction contains :

Fonction Syntaxe Objectif
contains {:#function-contains} contains(string, search_string) Renvoie Yes si string contient search_string, ou No si ce n'est pas le cas.

La fonction contains nécessite deux arguments : string et search_string. L'argument string représente le champ ou le texte dans lequel effectuer la recherche, et search_string représente le terme à rechercher :

contains(${customer.feedback_text}, "great")

Si le mot "super" apparaît dans les commentaires du client, la fonction renvoie Yes. Sinon, elle renvoie No.

Vous pouvez imbriquer des fonctions dans d'autres fonctions :

contains(
  if(
    is_null(${customer.feedback_text}),
    ${customer.comment_text},
    ${customer.feedback_text}
  ),
"great")

Cette expression est évaluée en trois étapes :

  1. La fonction is_null vérifie si le texte des commentaires des clients est vide.
  2. La fonction if renvoie le texte du commentaire s'il est présent, sinon elle renvoie le texte du commentaire.
  3. La fonction contains recherche "great" dans le texte renvoyé.

Logiquement, cette expression signifie : "S'il y a des commentaires de clients, effectue une recherche dans ce texte. Sinon, recherchez-le dans les commentaires des clients. Dans les deux cas, recherchez le mot "super"."