Créer des expressions Looker

Si votre administrateur vous a accordé des autorisations pour créer des calculs de tables, vous pouvez utiliser les fonctionnalités suivantes pour exécuter rapidement des fonctions courantes sans créer d'expressions Looker:

  • Calculs de raccourcis pour effectuer rapidement des calculs courants sur les champs numériques contenus dans la table de données d'une exploration

Si votre administrateur vous a accordé les autorisations nécessaires pour créer des champs personnalisés, vous pouvez utiliser les fonctionnalités suivantes pour exécuter rapidement des fonctions courantes sans avoir à créer d'expressions Looker:

  • Groupes personnalisés pour regrouper rapidement des valeurs sous des étiquettes personnalisées sans avoir à développer de logique CASE WHEN dans les paramètres sql ou les champs type: case

  • Classes personnalisées pour regrouper des dimensions de type numérique dans des niveaux personnalisés sans avoir à développer de champs LookML type: tier

Expressions Looker

Les expressions Looker (parfois appelées Lexp) permettent d'effectuer des calculs pour:

Une expression Looker est construite à partir d'une combinaison de ces éléments:

  • NULL:la valeur NULL indique qu'il n'y a pas de données, et elle peut être utile lorsque vous souhaitez vérifier que quelque chose 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 comme 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:il existe plusieurs types d'opérateurs (répertoriés sur la page de documentation Fonctions et opérateurs Looker):

    • 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:de nature semblable 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 invite à indiquer les fonctions, les opérateurs et les noms de champs que vous souhaiterez peut-être utiliser.

Conseil pratique: Si vous êtes un développeur Looker qui crée un test de données pour vérifier la logique de votre modèle, vous pouvez utiliser l'éditeur d'expression Looker pour créer une expression Looker, puis la copier dans le paramètre expression de votre test de données.

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 cercle noir à gauche du champ et le champ en haut de la liste.

Commencez à saisir du texte pour raccourcir la liste en fonction des éléments qui vous intéressent.

L'éditeur de champs personnalisés affiche les champs d'exploration 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 limite 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 au format ${view_name.field_name}. Ainsi, tous les champs ont des noms uniques dans votre expression.

Vous trouverez des instructions plus détaillées sur l'utilisation des champs dans la section Utilisation des champs de cette page.

Ajout 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 de colonnes et de lignes dans votre expression. Les totaux des colonnes apparaissent dans l'éditeur avec le mot Total devant l'itération LookML du nom du champ. Par exemple, pour un champ nommé Nombre, Looker attribuera le nom Count - Total au total de la colonne correspondant à 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 Total des lignes apparaissent 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.

Ajouter des opérateurs

Si nécessaire, vous pouvez ajouter des opérateurs logiques tels que AND, OR et NOT à votre expression. En général, 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 votre curseur se trouve sur un opérateur, les remarques appropriées s'affichent à droite de votre expression dans le volet d'informations.

Pour obtenir des instructions plus détaillées sur l'utilisation des opérateurs, consultez la section Utiliser des opérateurs de cette page.

Ajouter des fonctions

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

Les fonctions peuvent être construites à partir d'arguments (ou variables) nécessitant un certain type, comme un champ, un nombre ou oui/non. Lorsque le curseur est placé sur une fonction, vous pouvez consulter les notes qui s'affichent à droite de votre expression dans le volet d'informations pour identifier les arguments que vous devez fournir et leur type.

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

Pour obtenir des instructions plus détaillées sur l'utilisation des fonctions, consultez la section Utiliser des fonctions sur cette page.

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

À mesure que vous saisissez une expression, Looker affiche un volet d'informations sur la droite. Ce volet fournit de la documentation et des suggestions, en particulier si vous avez une erreur dans votre expression.

L'éditeur fournit les éléments suivants:

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

  • Suggestions et détails de l'erreur:la partie supérieure du volet d'informations propose des suggestions sur les éléments à ajouter ensuite à votre expression. S'il y a une erreur, explique pourquoi elle s'est produite. S'il existe plusieurs erreurs, l'erreur qui s'affiche dépend de la position de votre curseur.

  • Documentation:dans la partie inférieure du volet d'informations, Looker affiche la documentation concernant la fonction ou l'opérateur que vous utilisez, 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 dans cette section pour accéder à la documentation la concernant.

Commentaires inclus

Vous pouvez inclure des commentaires dans des expressions Looker en commençant la ligne de commentaire par #.

Utiliser des champs

Vous aurez parfois besoin d'utiliser la valeur d'un champ (une dimension, une mesure ou un calcul de tables) dans une expression. Vous pouvez ajouter la valeur du champ à autre chose, vérifier qu'elle a une certaine valeur, l'inclure dans une fonction, ou bien d'autres possibilités.

Comme décrit ci-dessus, saisissez le nom du champ dans l'éditeur d'expressions, et Looker vous aidera à trouver la bonne méthode de référence. Lorsque vous ajoutez un champ à une expression, Looker utilise l'identifiant LookML du champ, qui ressemble à ${view_name.field_name}. Cet identifiant ne correspond pas toujours au nom du champ dans le sélecteur de champs, mais vous pouvez le faire si vous ne le connaissez pas. Saisissez le nom du champ tel qu'il apparaît dans le sélecteur de champs. L'éditeur d'expressions affichera à la fois le nom du sélecteur de champs et l'identifiant LookML.

Pour récupérer une valeur, plusieurs possibilités s'offrent à vous:

  • Obtenir une valeur à partir de la même ligne:le moyen le plus simple d'utiliser un champ consiste à le référencer directement. Par exemple, votre expression peut utiliser ${product.category}. Vous dites alors : "pour une ligne donnée, récupérez la catégorie de produit de cette ligne".

  • Obtenir une valeur d'une ligne différente:vous pouvez également obtenir la valeur d'un champ à partir d'une autre ligne. Par exemple, vous pouvez appliquer la logique suivante : "pour une ligne donnée, récupérez la catégorie de produit de la ligne précédente". Pour ce faire, vous pouvez utiliser une fonction de décalage (consultez cette liste des fonctions de position). La fonction de décalage peut se présenter comme suit: offset(${product.category}, -1).

  • Obtenir une valeur à partir d'une colonne croisée:vous pouvez également obtenir des valeurs à partir de colonnes croisées dynamiques. Par exemple, vous pouvez appliquer la logique suivante : "pour une ligne donnée, récupérez le total des ventes dans la première colonne du tableau croisé dynamique". Pour utiliser des colonnes de tableaux croisés dynamiques, vous devez utiliser des fonctions de tableau croisé dynamique (consultez cette liste des fonctions de tableau croisé dynamique). 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, en utilisant le format ${field_name:total}. Par exemple, si vous souhaitez obtenir un pourcentage du total du nombre de commandes, vous pouvez créer un calcul de table de ce type: ${orders.count} / ${orders.count:total}.

Lorsque vous faites référence à des champs d'un filtre personnalisé, vous ne pouvez utiliser que des dimensions, et non des mesures, des totaux ou des calculs de table. En outre, vous ne pouvez pas faire référence aux valeurs d'autres lignes ou colonnes croisées dynamiques. En effet, Looker doit être en mesure de transformer votre filtre en SQL afin de récupérer vos données.

Certaines options d'heure et de date ne sont pas disponibles dans les filtres personnalisés ou les champs personnalisés. Pour en savoir plus, consultez la description du paramètre de groupe de dimensions.

Lorsque vous faites référence à des champs dans un calcul de tables, vous pouvez référencer n'importe quelle valeur de n'importe quelle dimension, mesure ou autre calcul de table.

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 avec des 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 ceci: my_function(). Vous devrez peut-être fournir des informations entre ces parenthèses, séparées par des virgules. Ces éléments d'information sont appelés "arguments" et se présentent comme suit: my_function(argument_1, argument_2).

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

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

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

  • Le volet d'informations qui s'affiche à droite de l'éditeur d'expressions fournit de la documentation 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 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.

Comme vous pouvez le voir, deux arguments sont requis. Ils portent les noms string et search_string, mais cela ne signifie pas que vous devez saisir exactement les mots "chaîne" et "chaîne_recherche" dans la fonction. Ce ne sont que des noms pour les arguments que vous remplacerez par quelque chose. En lisant l'objectif, nous constatons que string doit être un champ ou une autre valeur dans laquelle nous voulons effectuer la recherche , tandis que search_string est l'élément que nous souhaitons rechercher. Voici un exemple:

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

Si le mot "Excellent" apparaît dans les commentaires des clients, cette fonction donne le résultat 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, il fonctionne. Exemple :

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

Ici, nous avons imbriqué la fonction is_null dans une fonction if, qui est elle-même dans une fonction contains. Son fonctionnement est le suivant:

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

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

Les filtres personnalisés et les champs personnalisés peuvent utiliser la plupart des fonctions, mais pas certaines fonctions mathématiques ni celles faisant référence à d'autres lignes ou colonnes de tableaux croisés dynamiques. La page de documentation Fonctions et opérateurs de Looker vous indique les fonctions que vous pouvez utiliser.

Vous pouvez utiliser n'importe quelle fonction dans un calcul de table. Vous pouvez également utiliser n'importe quelle fonction dans le paramètre expression d'un test de données, car le paramètre expression est essentiellement un calcul de table qui génère un "yesno" (booléen).