campi (per le esplorazioni)

Questa pagina si riferisce al parametro fields che fa parte di un'esplorazione.

fields può essere utilizzato anche nell'ambito di un'unione, come descritto nella pagina della documentazione relativa al parametro fields (per le unioni).

fields può essere utilizzato anche nell'ambito di un insieme, come descritto nella pagina della documentazione dedicata al parametro set.

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
  • Tutti i campi e i set devono essere completamente definiti (utilizza la sintassi view_name.field_name)
  • Campi e set possono essere esclusi se preceduti da un trattino (-).
  • I nomi dei set terminano sempre con un asterisco (*)
  • Puoi utilizzare il nome del set integrato ALL_FIELDS*, che include tutti i campi dell'esplorazione.
  • Puoi utilizzare il nome del set integrato view_name*, che include tutti i campi della vista a cui viene fatto riferimento.

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 orders saranno disponibili e inclusi in ALL_FIELDS*.
  • name di users saranno disponibili e inclusi in ALL_FIELDS*.
  • Gli altri campi in users non sarebbero disponibili o inclusi nel set ALL_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:

  • price di orders verrà visualizzato come previsto perché fa parte del set ALL_FIELDS* che abbiamo creato.
  • address di users non verrà visualizzato perché non è stato incluso quando users ha partecipato (solo name).
  • Anche name di users non verrà visualizzato perché non l'abbiamo aggiunto alla sezione Esplora nella riga fields: [orders.price, users.address].