Créer des expressions Looker

Si votre administrateur vous a accordé des autorisations pour créer des calculs de table, 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 des champs numériques qui se trouvent dans le tableau de données d'Explore

Si votre administrateur vous a accordé les autorisations permettant de 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 les 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

  • Binaux personnalisés pour regrouper les 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) sont utilisées pour effectuer des calculs pour:

Une expression Looker est constituée 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 inexistant.

  • 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.

  • Un champ Looker:référence à un champ Looker, qui inclut les dimensions, les mesures et les calculs de tableau.

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

    • Opérateurs mathématiques (par exemple, +, -, * et /)
    • Opérateurs de comparaison (=, > et <=, par exemple)
    • Opérateurs logiques (tels que AND, OR et NOT)
  • Une fonction Looker:par nature, 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 répertoriées sur la page de documentation Fonctions et opérateurs de 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, opérateurs et noms de champs que vous pourriez utiliser.

Conseil pratique: Si vous êtes un développeur Looker et que vous créez 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 copier l'expression 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 tableau, 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 Explorer, Looker affiche un cercle noir à gauche du champ et s'affiche en haut de la liste.

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

L'éditeur de champs personnalisés affiche les champs Explorer en cours d'utilisation, s'ils sont compatibles avec la fonction de ces champs.

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 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 "Explorer", ou vous pouvez utiliser son nom LookML si vous le connaissez.

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

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

Ajout des totaux...

Si vous créez une expression basée sur une exploration pour laquelle vous avez affiché les 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 de champ. Par exemple, pour un champ nommé Count, Looker attribuera le nom Count - Total au total de la colonne pour ce champ.

Le nom LookML pour les 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, le mot Totaux de ligne apparaît devant le nom du champ dans l'éditeur. 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 règle générale, les opérateurs AND sont évalués avant les opérateurs OR, mais vous pouvez remplacer ce comportement à l'aide de parenthèses. Vous pouvez également utiliser des opérateurs de comparaison (tels que >, = et <=) et des opérateurs mathématiques (par exemple, + et *).

Lorsque le curseur est placé sur un opérateur, les notes pour une utilisation correcte s'affichent à droite de votre expression dans le volet d'informations.

Vous trouverez des instructions plus détaillées sur l'utilisation des opérateurs dans 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 réduit la 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 une valeur de type oui/non. Lorsque le curseur est sur une fonction, vous pouvez vérifier les notes qui s'affichent à droite de votre expression dans le volet d'informations pour comprendre quels arguments vous devez fournir et quels types ils doivent contenir.

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

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

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

Lorsque 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 votre expression comporte une erreur.

L'éditeur fournit:

  • Mise en surbrillance des erreurs:Looker souligne en rouge toutes les parties de l'expression incorrectes.

  • Suggestions et détails des erreurs:la partie supérieure du volet d'informations fournit des suggestions sur les éléments à ajouter ensuite dans l'expression. Si une erreur se produit, cela explique pourquoi. Si plusieurs erreurs se produisent, celle que vous voyez s'affiche en fonction de l'emplacement du curseur.

  • Documentation:dans la partie inférieure du volet d'informations, Looker affiche la documentation concernant la fonction ou l'opérateur sur lequel vous travaillez, en fonction de la position du curseur. Par exemple, lorsque vous saisissez le premier argument d'une fonction if(), Looker fournit les informations que le premier argument doit évaluer comme "true" ou "false". Vous pouvez cliquer sur le nom de la fonction dans cette section pour accéder à sa documentation.

Inclure des commentaires

Vous pouvez inclure les commentaires dans les expressions Looker en commençant par #.

Utiliser des champs

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

Comme décrit ci-dessus, saisissez le nom du champ dans l'éditeur d'expression. Looker vous aidera à trouver la bonne façon de le référencer. 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 l'outil de sélection des champs, mais vous pouvez choisir ce que vous ne connaissez pas. Saisissez le nom du champ tel qu'il apparaît dans l'outil de sélection des champs. L'éditeur d'expressions affichera à la fois le nom du sélecteur de champ et l'identifiant LookML.

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

  • Obtenir une valeur de la même ligne:la manière la plus simple d'utiliser un champ consiste à le référencer directement. Par exemple, votre expression peut utiliser ${product.category}. Dans ce cas, vous devez indiquer "pour une ligne donnée, récupérer la catégorie de produit sur cette ligne".

  • Obtenir une valeur à partir d'une autre ligne:vous pouvez également obtenir la valeur d'un champ à partir d'une autre ligne. Par exemple, vous pouvez choisir la logique "pour n'importe quelle ligne, récupérer la catégorie de produits à partir de la ligne précédente". Pour ce faire, vous pouvez utiliser une fonction de décalage (consultez cette liste de fonctions de position). Elle peut se présenter comme suit: offset(${product.category}, -1).

  • Obtenir une valeur à partir d'une colonne pivotée:vous pouvez également obtenir les valeurs de colonnes croisées dynamiquement. Par exemple, vous pouvez choisir la logique "pour n'importe quelle ligne, récupérer le total des ventes à partir de la première colonne croisée dynamiquement". Pour utiliser les colonnes pivotées, vous devez utiliser des fonctions de tableau croisé dynamique (consultez cette liste de fonctions de tableau croisé dynamique). Elle peut se présenter comme suit: pivot_index(${order.total_sales}, 1).

  • Obtenir un total d'une ligne ou d'une colonne:si vous avez ajouté des totaux à l'exploration, vous pouvez obtenir des valeurs totales à partir de la colonne ou de la ligne en ajoutant :total (pour les totaux des colonnes) ou :row_total (pour les totaux des lignes) au nom du champ, au format ${field_name:total}. Par exemple, si vous souhaitez connaître le pourcentage du nombre total d'commandes, vous pouvez créer un calcul de table comme celui-ci: ${orders.count} / ${orders.count:total}.

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

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

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

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 (> et <, par exemple)
  • Opérateurs mathématiques (par exemple, + et -)

Sauf indication contraire avec les 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é comme:

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 certains éléments. Leur nature est semblable à celle des fonctions d'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 parenthèses, en les séparant par une virgule. 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 n'accepte aucun argument et vous indique la date et l'heure actuelles. Vous l'utilisez comme suit: now().

La fonction round accepte un argument, qui est un nombre. Vous l'utilisez comme suit: round(3.2). Résultat : 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'expression 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 de Looker et rechercher la fonction que vous souhaitez utiliser.

Prenons l'exemple de la fonction contains, qui contient une documentation semblable à celle-ci:

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

Vous constatez 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 "string" et "search_string" dans la fonction. Il s'agit simplement de 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 que nous souhaitons rechercher dans, tandis que search_string est l'élément que nous souhaitons rechercher dans. Par exemple:

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

Si le mot "Excellent" apparaît dans les commentaires du client, 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, elle 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 située dans une fonction contains. Voici comment cela fonctionne:

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

Logiquement, cette expression signifie: "S'il y a des commentaires de clients, recherchez-les. Si ce n'est pas le cas, recherchez plutôt les commentaires des clients. Dans les deux cas, recherchez le terme "Excellent".

Les filtres personnalisés et les champs personnalisés peuvent utiliser la plupart des fonctions, mais ne peuvent pas utiliser de fonctions mathématiques ni de fonctions qui se rapportent à d'autres lignes ou colonnes croisées. La page de 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 une valeur oui (booléen).