Le definizioni dei campi LookML possono cambiare nel tempo. Ad esempio, il nome di una colonna di database potrebbe cambiare oppure potresti dover modificare la definizione di un campo LookML per altri motivi.
Se utilizzi la sintassi {TABLE}.field_name
per fare riferimento a una colonna di database direttamente in più punti, devi aggiornare ogni riferimento manualmente. Se dimentichi di aggiornarli, tutti i campi che fanno riferimento a questa dimensione possono non funzionare e Looker mostrerà un errore:
Per rendere i progetti LookML più efficienti e facili da gestire, puoi definire i campi in un unico posto e utilizzare l'operatore di sostituzione ($
) per fare riferimento a questi campi ovunque.
Questa pagina fornisce un esempio di utilizzo dell'operatore di sostituzione (con la sintassi ${field_name}
) per fare riferimento a una singola dimensione nelle definizioni di più campi LookML.
Ingredienti
- Operatori di sostituzione
- Il parametro
dimension
di LookML - Il parametro LookML
sql
- Il parametro
sql_table_name
di LookML
Prerequisiti
Esempio: fare riferimento alla colonna di database sottostante solo una volta per una dimensione
Definisci una colonna della tabella di database in un progetto LookML una volta utilizzando la sintassi ${TABLE}.field_name
nel parametro sql
della dimensione. Poi, fai riferimento alla dimensione utilizzando la sintassi ${field_name}
o ${view_name.field_name}
altrove nel progetto. In questo modo puoi conservare la definizione LookML della colonna del database in un'unica posizione (la dimensione originale ${TABLE}.field_name
), il che è utile se devi farvi riferimento in più punti del progetto.
Ad esempio, puoi utilizzare la sintassi ${TABLE}.sale_price
per definire una dimensione di base denominata sale_price
in una vista denominata 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 definisci altri campi che fanno riferimento alla dimensione sale_price
, puoi utilizzare la sintassi ${sale_price}
all'interno della visualizzazione order_items
(o la sintassi ${order_items.sale_price}
per fare riferimento alla dimensione sale_price
in altre visualizzazioni).
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} ;;
}
In questo esempio, se il nome della colonna per la dimensione sale_price
cambia, dovrai aggiornare una sola volta il riferimento ${TABLE}.sale_price
nella definizione della dimensione di base sale_price
. Questa modifica verrà quindi propagata automaticamente ai campi profit
, item_gross_margin
e total_sale_price
, nonché a tutti gli altri campi che fanno riferimento alla dimensione sale_price
.