Utilizzo
constant: constant_name { value: "string" export: none | override_required | override_optional }
|
Gerarchia
constant |
Valore predefinito
Nessuno
Accetta
|
Definizione
Il parametro constant definisce una costante LookML, consentendoti di specificare un valore che può essere riutilizzato in un progetto. È possibile fare riferimento alle costanti in qualsiasi punto del modello in cui sono accettate le stringhe e con i parametri model e explore di un elemento della dashboard LookML, contribuendo così a ridurre la ripetizione nel codice LookML.
Le costanti devono essere definite nel file manifest del progetto. Le costanti possono quindi essere utilizzate in un progetto utilizzando la sintassi @{constant_name}.
Puoi utilizzare il parametro secondario export di constant per specificare se gli sviluppatori devono sostituire il valore di una costante quando i file che vi fanno riferimento vengono importati in un altro progetto.
export
Puoi utilizzare il parametro secondario export di constant per determinare come può essere utilizzata una costante quando i file che fanno riferimento a questa costante vengono importati in altri progetti.
Per impostazione predefinita, i file importati che fanno riferimento a una costante utilizzano il valore specificato nel file manifest del progetto importato nel progetto di importazione. Il parametro export specifica se gli sviluppatori devono eseguire l'override del valore di una costante fornendo un nuovo valore da utilizzare nell'importazione dei progetti. Il parametro export ha i seguenti valori possibili:
none: il valore predefinito perexport. Il valore della costante non può essere sostituito nel progetto di importazione. Il progetto di importazione utilizza il valore costante specificato nel file manifest del progetto importato.override_optional: il valore della costante può essere sostituito facoltativamente nel progetto di importazione. Se non viene fornito un valore nel file manifest del progetto di importazione, viene utilizzato il valore originale del progetto importato.override_required: il progetto di importazione deve sostituire il valore costante originariamente specificato nel file manifest del progetto importato. Se nel progetto di importazione non viene fornito un nuovo valore costante, Looker mostrerà un errore.
Le costanti sono disponibili solo per i file del progetto in cui sono state definite originariamente. Pertanto, le costanti definite in un progetto di cui hai importato i file possono essere utilizzate solo dai file importati e non dai file definiti nel progetto di importazione.
Se vuoi utilizzare una costante nei file del progetto di importazione, devi definirne una nuova nel file manifest del progetto di importazione. Una costante definita in questo modo sarà disponibile solo per i file definiti nel progetto di importazione.
Quando importi file che fanno riferimento a una costante in un altro progetto, puoi utilizzare il parametro secondario override_constant di local_dependency o remote_dependency nel file manifest del progetto di importazione per fornire un nuovo valore per una costante con export impostato su override_optional o override_required.
Per saperne di più e per un esempio di override delle costanti nell'importazione di progetti, consulta la pagina della documentazione Importazione di file da altri progetti.
Esempi
Ecco alcuni esempi di come utilizzare il parametro constant per definire valori che possono essere utilizzati in un progetto.
Etichettare le esplorazioni con il parametro constant
Supponiamo di voler creare due esplorazioni, etichettate Utenti di San Francisco e Ordini di San Francisco nell'interfaccia utente. A questo scopo, puoi definire una costante city con il valore "San Francisco" nel file manifest.lkml per il tuo progetto:
constant: city {
value: "San Francisco"
}
Questa costante può essere quindi utilizzata in qualsiasi parte del progetto in cui è accettata una stringa, utilizzando la sintassi @{city}. In questo esempio, puoi definire le esplorazioni users e orders, specificando "@{city} Users" e "@{city} Orders" come valori per il parametro label, come nell'esempio seguente:
explore: users {
label: "@{city} Users"
}
explore: orders {
label: "@{city} Orders"
}
In questo esempio, Looker mostra Utenti di San Francisco e Ordini di San Francisco nel menu Esplora e nei titoli delle esplorazioni, anziché le etichette predefinite Utenti e Ordini.

Utilizzo del parametro sql_table_name con costanti
Supponiamo di voler creare diverse visualizzazioni basate sulle tabelle dello schema 02349_sfo. Per evitare di specificare più volte il valore 02349_sfo, crea una costante denominata schema nel file manifest.lkml per il tuo progetto, come segue:
constant: schema {
value: "02349_sfo"
}
Puoi quindi creare viste basate sullo schema 02349_sfo specificando @{schema}.view_name come valore per il parametro sql_table_name:
view: users {
sql_table_name: @{schema}.users ;;
}
In questo modo viene creata una vista denominata Users basata sulla tabella users dello schema 02349_sfo.
Utilizzo di variabili Liquid e HTML con costanti
Immagina di voler visualizzare i valori negativi dei dati tra parentesi e con un carattere rosso. Se imposti questa formattazione come valore per una costante LookML, puoi specificarla una sola volta utilizzando le variabili Liquid e l'HTML. Poi, puoi fare riferimento alla costante ogni volta che vuoi applicare la formattazione a un campo.
Ad esempio, puoi creare una costante negative_format con cui applicare questa formattazione a un campo:
constant: negative_format {
value: "{% if value < 0 %}<p style='color:red;'>({{rendered_value}})</p>{% else %} {{rendered_value}} {% endif %}"
}
In questo modo viene creata una costante negative_format che specifica che i valori dei dati negativi devono avere un carattere rosso ed essere racchiusi tra parentesi. Puoi quindi applicare questa formattazione a dimensioni e misure nel set di dati utilizzando il parametro html.
Ad esempio, puoi creare una misura Importo totale di type: sum e specificare @{negative_format} come valore per il parametro html:
measure: total_amount {
type: sum
value_format_name: usd
sql: ${amount} ;;
html: @{negative_format} ;;
}
Nella tabella, i valori negativi della misura Importo totale verranno formattati come specificato nella definizione della costante negative_format, con un carattere rosso e tra parentesi.

Utilizzo di costanti nelle dashboard LookML
Quando definisci un elemento del dashboard per un dashboard LookML, puoi utilizzare le costanti LookML per definire il modello e l'esplorazione su cui si basa un elemento.
Ad esempio, supponiamo di aver definito le costanti model_name e explore_name nel file manifest.lkml per il tuo progetto:
constant: model_name {
value: "thelook"
}
constant: explore_name {
value: "orders"
}
Nel file del dashboard, puoi impostare il valore di model su "@{model_name}" e il valore di explore su "@{explore_name}" per tutti gli elementi del dashboard che vuoi basare sul modello thelook e sull'esplorazione orders.
Ad esempio, supponiamo che tu stia modificando il codice LookML per un elemento grafico a colonne. Nel file della dashboard, puoi specificare i valori per i parametri model e explore nel seguente modo:
- dashboard: dashboard_name
title: "dashboard title"
layout: newspaper
elements:
- title: Element Title
name: element_name
model: "@{model_name}"
explore: "@{explore_name}"
type: looker_column
Cose da sapere
Fare riferimento a costanti all'interno di una definizione di costante
Quando definisci una costante, puoi fare riferimento ad altre costanti definite nel file manifest del tuo progetto. Supponiamo di aver già dichiarato una costante city:
constant: city {
value: "San Francisco"
}
Puoi quindi dichiarare una costante state che fa riferimento alla costante city:
constant: city_state {
value: "@{city}, California"
}
La costante state verrà risolta nella stringa "San Francisco, California".
Escape della sintassi delle costanti
Quando vuoi scrivere una stringa simile alla sintassi costante, ma non vuoi che venga valutata come costante, puoi eseguire l'escape della sintassi costante utilizzando il carattere di escape barra rovesciata \ dopo il carattere @. Ad esempio:
dimension: id {
type: string
label: "@\{id}"
sql: ${TABLE}.id
}
In questo esempio, il parametro label mostra la stringa @{id} come etichetta per la dimensione id, anziché valutare la costante id e restituirne il valore.
I riferimenti alle costanti non verranno valutati se le parentesi non sono chiuse, nel qual caso non è necessario eseguire l'escape della sintassi delle costanti. Pertanto, @{id nell'esempio seguente non verrà valutato come costante.
dimension: id {
type: string
label: "@{id"
sql: ${TABLE}.id
}