Le definizioni dei campi LookML possono cambiare nel tempo. Ad esempio, il nome di una colonna del database potrebbe cambiare o 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. Tutti i campi che fanno riferimento a questa dimensione possono non funzionare se dimentichi di aggiornarli e Looker mostrerà un errore:
Per rendere i progetti LookML più efficienti e facili da gestire, puoi definire i campi in una posizione e utilizzare l'operatore di sostituzione ($
) per fare riferimento a questi campi altrove.
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 del database sottostante una sola volta per una dimensione
Definisci una colonna della tabella di un 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}
in un altro punto del 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à poi 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
.