Créer des expressions Looker

Expressions Looker

Les expressions Looker (parfois appelées Lexp) sont utilisées pour effectuer des calculs pour:

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. Cela peut être utile lorsque vous souhaitez vérifier qu'un élément est vide ou n'existe pas.

  • Une constante:une constante est 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.

  • Opérateur Looker:il existe plusieurs types d'opérateurs (répertoriés sur la page de documentation Fonctions et opérateurs Looker):

    • Opérateurs mathématiques (+, -, * et /, par exemple)
    • Opérateurs de comparaison (tels que =, > et <=)
    • Opérateurs logiques (par exemple, AND, OR et NOT)
  • Fonction Looker : ces fonctions sont semblables aux fonctions Excel. Les fonctions vous permettent de transformer vos données ou de référencer des données de manière complexe. Toutes les fonctions disponibles sont listées sur la page de documentation 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. À mesure que vous saisissez votre expression, Looker vous propose des fonctions, des opérateurs et des noms de champs que vous pouvez utiliser.

Affichage de 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 disponibles. 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 d'exploration en cours d'utilisation, 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 affine votre recherche à une liste de champs et de fonctions contenant ce que vous avez saisi. Vous pouvez saisir le nom du champ tel qu'il apparaît sur la page Exploration 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 sous la forme ${view_name.field_name}. Cela garantit que tous les 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é les totaux, vous pouvez également inclure les totaux des colonnes et des lignes dans votre expression. Les totaux des colonnes apparaissent dans l'éditeur avec la mention Total devant l'itération LookML du nom du champ. Par exemple, pour un champ nommé Nombre, Looker nomme le total de la colonne Count - Total.

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 de lignes, la mention Total des lignes apparaît devant le nom du champ dans l'éditeur. et, 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 à l'aide de parenthèses. Vous pouvez également utiliser des opérateurs de comparaison (par exemple, >, = et <=) et des opérateurs mathématiques (par exemple, + et *).

Lorsque vous pointez sur un opérateur, des notes sur son utilisation correcte s'affichent dans le panneau 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 qui contiennent votre saisie.

Les fonctions peuvent être constituées d'arguments (ou de variables) qui nécessitent un certain type, comme un champ, un nombre ou un oui/non. Lorsque vous pointez sur une fonction, vous pouvez consulter les notes qui s'affichent à côté de votre expression dans le volet d'informations pour savoir quels arguments vous devez fournir et de quel type ils doivent être.

Vous pouvez consulter la liste complète des fonctions proposées par Looker sur la page de documentation Fonctions et opérateurs Looker.

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

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

Le volet d'informations situé à côté de l'éditeur d'expressions fournit les informations suivantes:

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

  • Suggestions et détails de l'erreur : Looker vous suggère ce que vous pouvez ajouter ensuite dans votre expression. Si une erreur se produit, cela explique pourquoi elle se produit. En cas d'erreurs multiples, celle qui s'affiche dépend de l'emplacement du curseur.

  • Documentation : Looker affiche la documentation sur la fonction ou l'opérateur avec lesquels vous travaillez, en fonction de la position de votre curseur. Par exemple, lorsque vous saisissez le premier argument d'une fonction if(), Looker fournit les informations que le premier argument doit évaluer comme vrai ou faux. Vous pouvez cliquer sur le nom de la fonction pour accéder à la documentation correspondante.

y compris les commentaires

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

Utiliser des champs

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

Comme indiqué précédemment sur cette page, vous pouvez saisir le nom du champ dans l'éditeur d'expressions. Looker vous aidera à trouver la bonne méthode pour référencer le champ. Lorsque vous ajoutez un champ à une expression, Looker utilise l'identifiant LookML du champ, qui ressemble à ${view_name.field_name}. Saisissez le nom du champ tel qu'il apparaît dans le sélecteur de champs. L'éditeur d'expressions affichera le nom du sélecteur de champs et l'identifiant LookML ensemble.

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

  • Récupérez une valeur de la même ligne:la manière la plus simple d'utiliser un champ consiste à y faire référence directement. Par exemple, votre expression peut utiliser ${product.category}. Vous indiquez ainsi que pour chaque ligne, vous devez récupérer la catégorie de produits.

  • 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, vous pouvez utiliser la logique suivante : "Pour chaque ligne donnée, récupérez la catégorie de produits de la ligne précédente." Pour ce faire, vous pouvez utiliser une fonction de décalage (consultez cette liste des fonctions positionnelles). La fonction de décalage peut se présenter comme suit : offset(${product.category}, -1).

  • Obtenir la valeur d'une colonne pivotée:vous pouvez également obtenir les valeurs de colonnes croisées dynamiques. Par exemple, vous pouvez utiliser la logique "pour toute ligne donnée, extraire le total des ventes de la première colonne pivotée". Pour travailler avec des colonnes pivotées, vous devez utiliser des fonctions pivot (consultez cette liste de fonctions pivot). La fonction de tableau croisé dynamique peut se présenter comme suit: pivot_index(${order.total_sales}, 1).

  • Obtenir un total à partir d'une ligne ou d'une colonne : si vous avez ajouté des totaux à votre exploration, vous pouvez obtenir les valeurs totales de la colonne ou de la ligne en ajoutant :total (pour les totaux de colonne) ou :row_total (pour les totaux de ligne) au nom du champ, au format ${field_name:total}. Par exemple, si vous souhaitez obtenir un pourcentage du total d'un nombre de commandes, vous pouvez créer un calcul de table comme ceci: ${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 (par exemple, AND, OR et NOT)
  • Opérateurs de comparaison (par exemple, > et <)
  • Opérateurs mathématiques (tels que + et -)

Sauf indication contraire entre parenthèses, la logique AND est prise en compte 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 é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, vous devez utiliser yes et no au lieu de true et false. Ces constantes logiques sont différentes des mots "yes" et "no", qui sont placés entre guillemets. Pour en savoir plus, consultez la description des constantes logiques.

Utiliser des fonctions

Les expressions Looker incluent souvent une ou plusieurs fonctions, qui vous aident à récupérer certaines données ou à calculer certaines choses. Elles sont de nature similaire aux fonctions Excel.

Les fonctions prennent la forme d'un nom suivi de deux parenthèses, comme suit : my_function(). Vous devrez peut-être saisir des informations entre parenthèses, séparées par des virgules. Ces bits d’informations sont appelés « arguments » et ressemblera à ceci: my_function(argument_1, argument_2).

Par exemple, la fonction now n'accepte aucun argument, et vous indique la date et l'heure actuelles. Vous l'utilisez comme ceci: now().

La fonction round accepte un argument, qui est un nombre. Vous l'utilisez comme suit : round(3.2). Le résultat est 3.

Il existe deux façons de savoir quels arguments vous devrez fournir, le cas échéant:

  • Le volet d'informations qui s'affiche à côté de l'éditeur d'expressions fournit des informations sur la fonction que vous écrivez. Vous pouvez cliquer sur le nom de la fonction pour accéder à sa documentation.
  • Vous pouvez également accéder directement à la page de documentation sur les fonctions et opérateurs Looker et rechercher la fonction que vous souhaitez utiliser.

Prenons l'exemple de la fonction contains, dont la documentation se présente comme suit :

Fonction Syntaxe Objectif
contient contains(string, search_string) Renvoie Yes si string contient search_string, et No dans le cas contraire.

Vous pouvez constater que deux arguments sont obligatoires. Elles portent les noms string et search_string, mais cela ne signifie pas que vous devez saisir les mots exacts "chaîne" et "chaîne_de_recherche" dans la fonction. Ce ne sont que les noms des arguments que vous remplacerez par quelque chose. En lisant l'objectif, nous voyons que string doit être un champ ou une autre valeur dans laquelle nous souhaitons effectuer une recherche, tandis que search_string est l'élément que nous souhaitons rechercher. Par exemple :

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

Si le mot "excellent" apparaît dans les commentaires des clients, cette fonction renvoie Yes. Sinon, le résultat est No.

Vous pouvez placer des fonctions dans d'autres fonctions pour gérer une logique complexe. Tant que le résultat de la fonction interne est approprié pour les arguments de la fonction externe, cela fonctionnera. Exemple :

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

La fonction is_null est imbriquée dans une fonction if, elle-même dans une fonction contains. Son fonctionnement est le suivant:

  1. La fonction is_null() vérifie le texte des commentaires des clients.
  2. Ensuite, la fonction if() utilise ce résultat et renvoie le texte des commentaires du client, le cas échéant, ou le texte du commentaire du client.
  3. Enfin, la fonction contains() utilise le texte renvoyé par la fonction if() et recherche le mot "great" (excellent).

Logiquement, cette expression signifie : "Si des commentaires des clients sont disponibles, effectuez une recherche dans ces commentaires. Si ce n'est pas le cas, recherchez plutôt dans les commentaires des clients. Dans les deux cas, recherchez le mot "great".