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 pouvez avoir besoin de modifier la définition d'un champ LookML pour d'autres raisons.
Si vous utilisez la syntaxe {TABLE}.field_name
pour référencer une colonne de base de données directement à plusieurs endroits, vous devez mettre à jour chaque référence manuellement. Tous les champs qui font référence à cette dimension peuvent ne plus fonctionner si vous oubliez de les mettre à jour, et Looker affiche 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.
Composants
- Opérateurs de substitution
- Le paramètre LookML
dimension
- Paramètre LookML
sql
- Paramètre LookML
sql_table_name
Prérequis
Exemple: référence unique de la colonne de base de données sous-jacente 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 référencer 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
.