Les définitions des champs LookML peuvent changer au fil du temps. Par exemple, le nom d'une colonne de base de données peut changer, ou vous devrez peut-être modifier la définition d'un champ LookML pour d'autres raisons.
Si vous utilisez la syntaxe {TABLE}.field_name
pour faire référence à une colonne de base de données directement à plusieurs endroits, vous devez mettre à jour chaque référence manuellement. Si vous oubliez de les mettre à jour, tous les champs qui font référence à cette dimension peuvent se briser, et Looker affichera une erreur:
Pour rendre vos projets LookML plus efficaces et plus faciles à gérer, vous pouvez définir des champs au même endroit et utiliser l'opérateur de substitution ($
) pour les référencer partout ailleurs.
Cette page fournit un exemple d'utilisation de l'opérateur de substitution (avec la syntaxe ${field_name}
) pour faire référence à une seule dimension dans les définitions de plusieurs champs LookML.
Ingrédients
- Opérateurs de substitution
- Paramètre LookML
dimension
- Paramètre LookML
sql
- Paramètre LookML
sql_table_name
Prérequis
Exemple: Référencer la colonne de base de données sous-jacente une seule fois pour une dimension
Définissez une colonne de table de base de données dans un projet LookML une seule fois à l'aide de la syntaxe ${TABLE}.field_name
dans le paramètre sql
de la dimension. Ensuite, référencez la dimension à l'aide de la syntaxe ${field_name}
ou ${view_name.field_name}
ailleurs dans votre projet. Vous pouvez ainsi gérer la définition LookML de la colonne de base de données au même endroit (la dimension ${TABLE}.field_name
d'origine), ce qui est utile si vous devez la référencer à plusieurs endroits dans votre projet.
Par exemple, vous pouvez utiliser la syntaxe ${TABLE}.sale_price
pour définir une dimension de base appelée sale_price
dans une vue appelée order_items
:
dimension: sale_price {
type: number
value_format_name: usd
sql: ${TABLE}.sale_price ;;
description: "The price at which an item is set to sell."
}
Lorsque vous définissez d'autres champs qui font référence à la dimension sale_price
, vous pouvez utiliser la syntaxe ${sale_price}
dans la vue order_items
(ou la syntaxe ${order_items.sale_price}
pour faire référence à la dimension sale_price
dans d'autres vues).
dimension: profit {
type: number
value_format_name: usd
sql: ${sale_price} - ${inventory_items.cost} ;;
description: "The difference between an item's sale price and an item's cost."
}
dimension: item_gross_margin {
type: number
value_format_name: percent_2
sql: 1.0 * ${profit}/NULLIF(${sale_price},0) ;;
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
}
Dans cet exemple, si le nom de la colonne de la dimension sale_price
change, vous n'avez besoin de mettre à jour la référence ${TABLE}.sale_price
qu'une seule fois, dans la définition de la dimension de base sale_price
. Cette modification sera ensuite automatiquement appliquée aux champs profit
, item_gross_margin
et total_sale_price
, ainsi qu'à tous les autres champs qui font référence à la dimension sale_price
.