Questa pagina si riferisce al parametro
fieldsche fa parte di un'esplorazione.
fieldspuò essere utilizzato anche nell'ambito di un'unione, come descritto nella pagina della documentazione relativa al parametrofields(per le unioni).
fieldspuò essere utilizzato anche nell'ambito di un insieme, come descritto nella pagina della documentazione dedicata al parametroset.
Utilizzo
explore: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
|
Gerarchia
fields |
Valore predefinito
ALL_FIELDS*
Accetta
Parentesi quadre contenenti un elenco separato da virgole di campi o insiemi
Regole speciali
|
Definizione
fields consente di specificare quali campi di un'esplorazione vengono visualizzati nell'interfaccia utente di Esplora. Questi campi possono trovarsi nella visualizzazione di base dell'esplorazione o nei campi disponibili dai join dell'esplorazione. Se non utilizzi fields, Looker espone per impostazione predefinita tutti i campi.
Un elenco di campi può essere utilizzato in questo modo: [view_name.field_a, view_name.field_b].
Puoi anche fare riferimento a un insieme di campi (definito nel parametro set di una vista), ad esempio [view_name.set_a*]. L'asterisco indica a Looker che stai facendo riferimento a un nome di insieme, anziché a un nome di campo.
In entrambi i casi, tieni presente che il campo o il set deve essere completamente definito. In altre parole, devi includere sia il nome della visualizzazione sia il nome del campo.
Looker crea automaticamente un insieme denominato ALL_FIELDS*, che contiene tutti i campi nella visualizzazione di base e nei join dell'esplorazione. Ciò è particolarmente utile per escludere una manciata di campi indesiderati, ad esempio:
explore: view_name {
fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}
Looker crea automaticamente anche set che contengono tutti i campi di una determinata vista, a cui è possibile fare riferimento con il formato view_name*. Ad esempio, la seguente esplorazione include solo i campi nella visualizzazione customers:
explore: all_people {
fields: [customers*]
}
Esempi
Mostra solo il campo denominato name dalla visualizzazione customer in Esplora customer:
explore: customer {
fields: [customer.name]
}
Mostra solo i campi denominati name, address e age dalla visualizzazione customer nell'esplorazione customer:
explore: customer {
fields: [customer.name, customer.address, customer.age]
}
Mostra solo l'insieme di campi nel set export_fields, dalla visualizzazione customer, in Esplora customer:
explore: customer {
fields: [customer.export_fields*]
}
Escludi il campo denominato status nella visualizzazione customer dall'esplorazione order:
explore: order {
fields: [ALL_FIELDS*, -customer.status]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Cose da sapere
Puoi escludere singoli elementi o gruppi di elementi utilizzando fields con explore
Puoi utilizzare fields nel parametro explore per sfruttare il set ALL_FIELDS* ed escludere i campi. Ad esempio:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Siamo riusciti a fare riferimento ai campi della visualizzazione unita customer nel parametro fields del livello Esplora utilizzando la sintassi view_name.field_name.
Utilizzando la sintassi -, puoi anche escludere insiemi di campi definiti:
explore: orders {
fields: [ALL_FIELDS*, -users.statezip*]
join: users {
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
view: users {
set: statezip {
fields:[state, zip]
}
}
Il parametro fields che fa parte di un join non può utilizzare il set ALL_FIELDS
Questa pagina si riferisce al parametro fields, che è secondario rispetto a explore. Quando utilizzi il parametro fields in questo modo, puoi accedere al set ALL_FIELDS* ed escludere i campi indesiderati, come mostrato in precedenza.
Esiste anche un parametro fields che è un elemento secondario di join. Se utilizzato in questo modo, non puoi utilizzare il set ALL_FIELDS*.
Il set ALL_FIELDS è limitato dal parametro fields che fa parte di un join
Questa pagina descrive fields quando è nidificato all'interno di un parametro explore. Esiste anche un parametro simile fields nidificato in join. È importante comprendere le implicazioni dell'applicazione di fields a entrambi i livelli contemporaneamente.
Innanzitutto, vengono applicati tutti i parametri fields in join. Viene creato l'insieme di campi tra cui Explore può scegliere. Considera questo esempio:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
In questo caso:
- Tutti i campi di
orderssaranno disponibili e inclusi inALL_FIELDS*. namediuserssaranno disponibili e inclusi inALL_FIELDS*.- Gli altri campi in
usersnon sarebbero disponibili o inclusi nel setALL_FIELDS*.
Ora, se aggiungiamo un parametro fields in explore, stiamo aggiungendo una limitazione a questo insieme. Supponiamo di aver fatto questo:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
In questo caso:
pricediordersverrà visualizzato come previsto perché fa parte del setALL_FIELDS*che abbiamo creato.addressdiusersnon verrà visualizzato perché non è stato incluso quandousersha partecipato (soloname).- Anche
namediusersnon verrà visualizzato perché non l'abbiamo aggiunto alla sezione Esplora nella rigafields: [orders.price, users.address].