constante

Utilisation

constant: constant_name {
  value: "string"
  export: none | override_required | override_optional
}
Hiérarchie
constant
Valeur par défaut
Aucun

Acceptation
  • Un sous-paramètre value, qui accepte une chaîne spécifiant la valeur de la constante
  • Un sous-paramètre export, qui spécifie si la constante doit être remplacée lorsqu'elle est utilisée dans des projets d'importation

Définition

Le paramètre constant définit une constante LookML, ce qui vous permet de spécifier une valeur qui peut être réutilisée dans un projet. Les constantes peuvent être référencées n'importe où dans le modèle où les chaînes sont acceptées et avec les paramètres model et explore d'un élément de tableau de bord LookML, ce qui permet de réduire les répétitions dans votre code LookML.

Les constantes doivent être définies dans le fichier manifeste du projet. Elles peuvent ensuite être utilisées dans un projet à l'aide de la syntaxe @{constant_name}.

Vous pouvez utiliser le export sous-paramètre de constant pour spécifier si les développeurs doivent remplacer la valeur d'une constante lorsque les fichiers qui la référencent sont importés dans un autre projet.

export

Vous pouvez utiliser le export sous-paramètre de constant pour déterminer comment une constante peut être utilisée lorsque les fichiers qui la référencent sont importés dans d'autres projets.

Par défaut, les fichiers importés qui référencent une constante utilisent la valeur spécifiée dans le fichier manifeste du projet importé dans le projet d'importation. Le paramètre export spécifie si les développeurs doivent remplacer la valeur d'une constante en fournissant une nouvelle valeur à utiliser dans les projets d'importation. Le paramètre export peut prendre les valeurs suivantes :

  • none : valeur par défaut de export. La valeur de la constante ne peut pas être remplacée dans le projet d'importation. Le projet d'importation utilise la valeur de la constante spécifiée dans le fichier manifeste du projet importé.
  • override_optional : la valeur de la constante peut être remplacée dans votre projet d'importation. Si aucune valeur n'est fournie dans le fichier manifeste du projet d'importation, la valeur d'origine du projet importé est utilisée.
  • override_required : le projet d'importation doit remplacer la valeur de la constante spécifiée à l'origine dans le fichier manifeste du projet importé. Si aucune nouvelle valeur de constante n'est fournie dans le projet d'importation, Looker affiche une erreur.

Les constantes ne sont disponibles que pour les fichiers du projet dans lequel elles sont définies à l'origine. Par conséquent, les constantes définies dans un projet dont vous avez importé les fichiers ne peuvent être utilisées que par les fichiers importés, et non par les fichiers définis dans le projet d'importation.

Si vous souhaitez utiliser une constante dans les fichiers du projet d'importation, vous devez définir une nouvelle constante dans le fichier manifeste du projet d'importation. Une constante définie de cette manière ne sera disponible que pour les fichiers définis dans le projet d'importation.

Lorsque vous importez des fichiers qui référencent une constante dans un autre projet, vous pouvez utiliser le sous-paramètre override_constant de local_dependency ou remote_dependency dans le fichier manifeste du projet d'importation pour fournir une nouvelle valeur à une constante dont le paramètre export est défini sur override_optional ou override_required.

Pour en savoir plus et obtenir un exemple de remplacement de constantes dans des projets d'importation, consultez la page de documentation Importer des fichiers d'autres projets.

Exemples

Voici quelques exemples d'utilisation du paramètre constant pour définir des valeurs qui peuvent être utilisées dans un projet.

Libeller des explorations avec le paramètre constant

Supposons que vous souhaitiez créer deux explorations, libellées Utilisateurs de San Francisco et Commandes de San Francisco dans l'interface utilisateur. Pour ce faire, vous pouvez définir une constante city avec la valeur "San Francisco" dans le fichier manifest.lkml de votre projet :

constant: city {
  value: "San Francisco"
}

Cette constante peut ensuite être référencée dans n'importe quelle partie de votre projet où une chaîne est acceptée, à l'aide de la syntaxe @{city}. Dans cet exemple, vous pouvez définir les explorations users et orders, en spécifiant "@{city} Users" et "@{city} Orders" comme valeurs du paramètre label, comme dans l'exemple suivant :


explore: users {
  label: "@{city} Users"
}

explore: orders {
  label: "@{city} Orders"
}

Dans cet exemple, Looker affiche Utilisateurs de San Francisco et Commandes de San Francisco dans le menu "Explorer" et dans les titres des explorations, plutôt que les libellés par défaut Utilisateurs et Commandes.

Utiliser le paramètre sql_table_name avec des constantes

Supposons que vous souhaitiez créer plusieurs vues basées sur des tables du schéma 02349_sfo. Pour éviter d'avoir à spécifier la valeur 02349_sfo plusieurs fois, créez une constante nommée schema dans le fichier manifest.lkml de votre projet, comme suit :


constant: schema {
  value: "02349_sfo"
}

Vous pouvez ensuite créer des vues basées sur le schéma 02349_sfo en spécifiant @{schema}.view_name comme valeur du paramètre sql_table_name :


view: users {
  sql_table_name: @{schema}.users ;;
}

Cela crée une vue appelée Utilisateurs basée sur la table users du schéma 02349_sfo.

Utiliser des variables Liquid et du code HTML avec des constantes

Imaginez que vous souhaitez que les valeurs de données négatives s'affichent entre parenthèses et en rouge. En définissant ce format comme valeur d'une constante LookML, vous pouvez spécifier le format une seule fois à l'aide de variables Liquid et de code HTML. Vous pouvez ensuite référencer la constante chaque fois que vous souhaitez appliquer ce format à un champ.

Par exemple, vous pouvez créer une constante negative_format pour appliquer ce format à un champ :


constant: negative_format {
  value: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}

Cela crée une constante negative_format qui spécifie que les valeurs de données négatives doivent être en rouge et entre parenthèses. Vous pouvez ensuite appliquer ce format aux dimensions et aux mesures de votre ensemble de données à l'aide du html paramètre.

Par exemple, vous pouvez créer Montant total mesure de type: sum et spécifier @{negative_format} comme valeur du paramètre html :


measure: total_amount {
  type: sum
  value_format_name: usd
  sql: ${amount} ;;
  html: @{negative_format} ;;
}

Dans votre tableau, les valeurs négatives de la mesure Montant total seront mises en forme comme spécifié dans la définition de la constante negative_format, avec une police rouge et entre parenthèses.

Utiliser des constantes dans des tableaux de bord LookML

Lorsque vous définissez un élément de tableau de bord pour un tableau de bord LookML, vous pouvez utiliser des constantes LookML pour définir le modèle et l'exploration sur lesquels un élément est basé.

Par exemple, supposons que vous ayez défini les constantes model_name et explore_name dans le fichier manifest.lkml de votre projet :


constant: model_name {
  value: "thelook"
}

constant: explore_name {
  value: "orders"
}

Dans votre fichier de tableau de bord, vous pouvez définir la valeur de model sur "@{model_name}" et définir la valeur de explore sur "@{explore_name}" pour tous les éléments de tableau de bord que vous souhaitez baser sur le modèle thelook et l'exploration orders.

Supposons, par exemple, que vous modifiez le code LookML d'un élément de graphique à colonnes column chart element. Dans le fichier de tableau de bord, vous pouvez spécifier les valeurs des paramètres model et explore comme suit :


- dashboard: dashboard_name
  title: "dashboard title"
  layout: newspaper
  elements:
  - title: Element Title
    name: element_name
    model: "@{model_name}"
    explore: "@{explore_name}"
    type: looker_column

Utiliser des constantes dans les instructions de l'agent de tableau de bord [Aperçu]

Vous pouvez également utiliser des constantes LookML dans le paramètre instructions d'un agent de tableau de bord LookML pour partager des règles ou des consignes standards pour l'entreprise entre plusieurs agents de tableau de bord.

Par exemple, définissez une constante dans votre fichier manifest.lkml :

constant: FISCAL_YEAR_RULE {
  value: "Always filter all requests by the current fiscal year unless specified otherwise."
}

Vous pouvez ensuite référencer la constante dans le instructions paramètre d'une agent définition :

agent: sales_dashboard_agent {
  instructions: "Focus on revenue metrics. @{FISCAL_YEAR_RULE}"
  is_dashboard_agent: yes
}

Bon à savoir

Faire référence à des constantes dans une définition de constante

Lorsque vous définissez une constante, vous pouvez faire référence à d'autres constantes définies dans le fichier manifeste de votre projet. Supposons que vous ayez déjà déclaré une constante city :


constant: city {
  value: "San Francisco"
}

Vous pouvez ensuite déclarer une constante state qui référence la constante city :


constant: city_state {
  value: "@{city}, California"
}

La constante state sera résolue en chaîne "San Francisco, California".

Échapper la syntaxe constante

Lorsque vous souhaitez écrire une chaîne qui ressemble à une syntaxe constante, mais que vous ne voulez pas que cette chaîne soit évaluée comme une constante, vous pouvez échapper la syntaxe constante à l'aide du caractère d'échappement barre oblique inverse \ après le caractère @. Exemple :

```none

dimension: id { type: string label: "@{id}" sql: ${TABLE}.id }




In this example, the [`label` parameter](/looker/docs/2614/reference/param-explore-label) displays the string **@{id}** as the label for the `id` dimension, rather than evaluating the `id` constant and outputting its value.

Constant references won't be evaluated if the brackets are not closed, in which case it is not necessary to escape constant syntax. Thus, `@{id` in the following example wouldn't be evaluated as a constant.


```none

dimension: id {
  type: string
  label: "@{id"
  sql: ${TABLE}.id
}