champs (pour les explorations)

Cette page fait référence au paramètre fields qui fait partie d'une exploration.

fields peut également être utilisé dans le cadre d'une jointure, décrite sur la page de documentation du paramètre fields (pour les jointures).

fields peut également être utilisé dans le cadre d'un ensemble, décrit sur la page de documentation sur les paramètres set.

Utilisation

explorer: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,

...
]
Hiérarchie
fields
Valeur par défaut
ALL_FIELDS*

Acceptation
Crochets contenant une liste de champs ou d'ensembles séparés par une virgule

Règles spéciales
  • Tous les champs et ensembles doivent être entièrement définis (utiliser la syntaxe view_name.field_name)
  • Vous pouvez exclure les champs et les ensembles en les faisant précéder d'un trait d'union (-).
  • Les noms de séries se terminent toujours par un astérisque (*).
  • Vous pouvez utiliser le nom d'ensemble intégré ALL_FIELDS*, qui inclut tous les champs de la section Explorer
  • Vous pouvez utiliser le nom d'ensemble intégré view_name*, qui inclut tous les champs de la vue référencée.

Définition

fields vous permet de spécifier les champs d'une exploration qui sont exposés dans l'interface utilisateur de l'exploration. Ces champs peuvent se trouver dans la vue de base de l'exploration ou dans les jointures disponibles. Si vous n'utilisez pas fields, Looker expose par défaut tous les champs.

Une liste de champs peut être utilisée comme suit: [view_name.field_a, view_name.field_b].

Vous pouvez également référencer un ensemble de champs (défini dans le paramètre set d'une vue), comme [view_name.set_a*]. L'astérisque indique à Looker que vous faites référence à un nom d'ensemble plutôt qu'à un nom de champ.

Dans les deux cas, notez que la portée du champ ou de l'ensemble doit être entièrement définie. En d'autres termes, vous devez inclure le nom de la vue et le nom du champ.

Looker crée automatiquement un ensemble appelé ALL_FIELDS*, qui contient tous les champs de la vue de base et des jointures de l'outil Explorer. Cela s'avère particulièrement utile pour exclure quelques champs indésirables, comme suit:

explore: view_name {
  fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}

Looker crée également automatiquement des ensembles contenant tous les champs d'une vue donnée, qui peut être référencé au format view_name*. Par exemple, la fonction Explorer suivante n'inclut que les champs de la vue customers:

explore: all_people {
  fields: [customers*]
}

Examples

Afficher uniquement le champ intitulé name dans la vue customer de la section customer Explorer:

explore: customer {
  fields: [customer.name]
}

Afficher uniquement les champs name, address et age dans la vue customer de la page customer Explorer:

explore: customer {
  fields: [customer.name, customer.address, customer.age]
}

Afficher uniquement l'ensemble de champs de l'ensemble export_fields, à partir de la vue customer, dans l'customer Explorer:

explore: customer {
  fields: [customer.export_fields*]
}

Excluez le champ intitulé status dans la vue customer de la vue order:

explore: order {
  fields: [ALL_FIELDS*, -customer.status]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Bon à savoir

Vous pouvez exclure des éléments individuels ou des ensembles d'éléments en utilisant fields avec explore.

Vous pouvez utiliser fields sous le paramètre explore afin de profiter de l'ensemble ALL_FIELDS*, puis d'exclure des champs. Exemple :

explore: order {
  fields: [
    ALL_FIELDS*,
    -customer.unwanted_field_a,
    -customer.unwanted_field_b
  ]
  join: customer {
    sql_on: ${order.customer_id} = ${customer.id} ;;
  }
}

Nous avons pu référencer les champs de la vue jointe customer dans le paramètre fields du niveau Explorer en utilisant la syntaxe view_name.field_name.

Avec la syntaxe -, vous pouvez également exclure des ensembles de champs définis:

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]
  }
}

Le paramètre fields qui fait partie d'un join ne peut pas utiliser l'ensemble ALL_FIELDS

Cette page fait référence au paramètre fields qui est un enfant de explore. Lorsque vous utilisez cette méthode, vous pouvez accéder à l'ensemble ALL_FIELDS*, puis exclure les champs indésirables comme indiqué ci-dessus.

Il existe également un paramètre fields enfant de join. Lorsque vous utilisez cette méthode, vous ne pouvez pas utiliser l'ensemble ALL_FIELDS*.

L'ensemble ALL_FIELDS est limité par le paramètre fields qui fait partie d'un join

Cette page décrit fields lorsqu'il est imbriqué sous un paramètre explore. Il existe également un paramètre fields similaire qui est imbriqué sous join. Il est important de comprendre les implications de l'application de fields aux deux niveaux en même temps.

Tout d'abord, tous les paramètres de fields sous join sont appliqués. Vous créez ainsi un ensemble de champs que l'explorateur peut choisir. Considérez l'exemple suivant :

explore: orders {
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Dans ce cas :

  • Tous les champs du champ "orders" seront disponibles et inclus dans le champ "ALL_FIELDS*".
  • name de users seront disponibles et inclus dans ALL_FIELDS*.
  • Les autres champs du champ users ne seront pas disponibles ni inclus dans l'ensemble ALL_FIELDS*.

Maintenant, si nous ajoutons un paramètre fields sous explore, nous ajoutons une restriction à cet ensemble. Supposons que nous l'ayons fait:

explore: orders {
  fields: [orders.price, users.address]
  join: users {
    fields: [name]
    sql_on: ${orders.user_id} = ${users.id} ;;
  }
}

Dans ce cas :

  • price de orders s'affichera comme prévu, car il fait partie de l'ensemble ALL_FIELDS* que nous avons créé.
  • address de users ne s'afficheront pas, car il n'était pas inclus lorsque users a été rejoint (seule name l'a été).
  • name de users ne s'affichera pas non plus, car nous ne l'avons pas ajouté à l'exploration à la ligne fields: [orders.price, users.address].