As definições de campos LookML podem mudar ao longo do tempo. Por exemplo, o nome de uma coluna da base de dados pode mudar ou pode ter de alterar a definição de um campo LookML por outros motivos.
Se usar a sintaxe {TABLE}.field_name para fazer referência a uma coluna da base de dados diretamente em vários locais, tem de atualizar cada referência manualmente. Todos os campos que façam referência a essa dimensão podem falhar se se esquecer de os atualizar, e o Looker apresenta um erro:

Para tornar os seus projetos LookML mais eficientes e fáceis de manter, pode definir campos num único local e usar o operador de substituição ($) para fazer referência a esses campos em qualquer outro lugar.
Esta página fornece um exemplo de utilização do operador de substituição (com a sintaxe ${field_name}) para referenciar uma única dimensão nas definições de vários campos do LookML.
Ingredientes
- Operadores de substituição
- O parâmetro
dimensiondo LookML - O parâmetro
sqldo LookML - O parâmetro
sql_table_namedo LookML
Pré-requisitos
Exemplo: fazer referência à coluna da base de dados subjacente apenas uma vez para uma dimensão
Defina uma coluna de tabela da base de dados num projeto LookML uma vez usando a sintaxe ${TABLE}.field_name no parâmetro sql da dimensão. Em seguida, faça referência à dimensão através da sintaxe ${field_name} ou ${view_name.field_name} noutras partes do projeto. Isto permite-lhe manter a definição do LookML da coluna da base de dados num único local (a dimensão ${TABLE}.field_name original), o que é útil se precisar de fazer referência a ela em vários locais no seu projeto.
Por exemplo, pode usar a sintaxe ${TABLE}.sale_price para definir uma dimensão base denominada sale_price numa visualização denominada 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."
}
Quando define outros campos que fazem referência à dimensão sale_price, pode usar a sintaxe ${sale_price} na vista order_items (ou usar a sintaxe ${order_items.sale_price} para fazer referência à dimensão sale_price noutras vistas).
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} ;;
}
Neste exemplo, se o nome da coluna da dimensão sale_price mudar, só tem de atualizar a referência ${TABLE}.sale_price uma vez, na definição da dimensão base sale_price. Esta alteração é, em seguida, propagada automaticamente para os campos profit, item_gross_margin e total_sale_price, bem como para todos os outros campos que referenciam a dimensão sale_price.