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.