Le definizioni dei campi LookML possono cambiare nel tempo. Ad esempio, il nome di una colonna di database potrebbe cambiare o potrebbe essere necessario 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 manualmente ciascun riferimento. 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 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
- Parametro LookML
dimension
- Parametro LookML
sql
- Parametro LookML
sql_table_name
Prerequisiti
Esempio: fare riferimento alla colonna del 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. Quindi fai riferimento alla dimensione utilizzando la sintassi ${field_name}
o ${view_name.field_name}
in qualsiasi altro punto del progetto. In questo modo puoi mantenere la definizione LookML della colonna di database in un'unica posizione (la dimensione ${TABLE}.field_name
originale), il che è utile se devi farvi riferimento in più punti del tuo 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}
nella vista order_items
oppure la sintassi ${order_items.sale_price}
per fare riferimento alla dimensione sale_price
in altre viste.
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 il riferimento ${TABLE}.sale_price
solo una volta, 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
.