En esta página, se hace referencia al parámetro
fieldsque forma parte de una Exploración.
fieldstambién se puede usar como parte de una unión, como se describe en la página de documentación del parámetrofields(para uniones).
fieldstambién se puede usar como parte de un conjunto, como se describe en la página de documentación del parámetroset.
Uso
explore: explore_name {
fields: [
field-or-set-specification,
field-or-set-specification,
...
]
}
|
Jerarquía
fields |
Valor predeterminado
ALL_FIELDS*
Acepta
Corchetes que contienen una lista de campos o conjuntos separados por comas
Reglas especiales
|
Definición
fields te permite especificar qué campos de una Exploración se exponen en la IU de Explorar. Estos campos pueden estar en la vista base de la Exploración o estar disponibles en las uniones de la Exploración. Si no usas fields, Looker expondrá todos los campos de forma predeterminada.
Se puede usar una lista de campos de la siguiente manera: [view_name.field_a, view_name.field_b].
También puedes hacer referencia a un conjunto de campos (que se define en el parámetro set de una vista), como [view_name.set_a*]. El asterisco le indica a Looker que haces referencia a un nombre de conjunto, en lugar de a un nombre de campo.
En ambos casos, ten en cuenta que el campo o el conjunto deben tener un alcance completo. En otras palabras, debes incluir el nombre de la vista y el nombre del campo.
Looker crea automáticamente un conjunto llamado ALL_FIELDS*, que contiene todos los campos de la vista base y las uniones de Explorar. Esto es particularmente útil para excluir algunos campos no deseados, como en el siguiente ejemplo:
explore: view_name {
fields: [ALL_FIELDS*, -joined_view_name.unwanted_field]
}
Looker también crea automáticamente conjuntos que contienen todos los campos de una vista determinada, a los que se puede hacer referencia con el formato view_name*. Por ejemplo, el siguiente Explore incluye solo los campos de la vista customers:
explore: all_people {
fields: [customers*]
}
Ejemplos
Solo muestra el campo llamado name de la vista customer en la exploración customer:
explore: customer {
fields: [customer.name]
}
Solo muestra los campos llamados name, address y age de la vista customer en el Explorador de customer:
explore: customer {
fields: [customer.name, customer.address, customer.age]
}
Solo muestra el conjunto de campos del conjunto export_fields, desde la vista customer, en el Explorar customer:
explore: customer {
fields: [customer.export_fields*]
}
Excluye el campo llamado status en la vista customer de la exploración order:
explore: order {
fields: [ALL_FIELDS*, -customer.status]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Información importante
Puedes excluir elementos individuales o conjuntos de elementos con fields y explore.
Puedes usar fields en el parámetro explore para aprovechar el conjunto ALL_FIELDS* y, luego, excluir campos. Por ejemplo:
explore: order {
fields: [
ALL_FIELDS*,
-customer.unwanted_field_a,
-customer.unwanted_field_b
]
join: customer {
sql_on: ${order.customer_id} = ${customer.id} ;;
}
}
Pudimos hacer referencia a los campos de la vista unida customer en el parámetro fields del nivel de Exploración con la sintaxis view_name.field_name.
Con la sintaxis -, también puedes excluir conjuntos de campos definidos:
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]
}
}
El parámetro fields que forma parte de un join no puede usar el conjunto ALL_FIELDS.
En esta página, se hace referencia al parámetro fields, que es secundario de explore. Cuando usas el parámetro fields de esta manera, puedes acceder al conjunto ALL_FIELDS* y, luego, excluir los campos no deseados, como se mostró anteriormente.
También hay un parámetro fields que es hijo de join. Cuando se usa de esa manera, no puedes usar el conjunto ALL_FIELDS*.
El conjunto ALL_FIELDS está limitado por el parámetro fields que forma parte de un join.
En esta página, se describe fields cuando se anida en un parámetro explore. También hay un parámetro fields similar que está anidado en join. Es importante comprender las implicaciones de aplicar fields a ambos niveles al mismo tiempo.
Primero, se aplican todos los parámetros fields en join. Esto crea el conjunto de campos entre los que puede elegir la exploración. Considera el siguiente ejemplo:
explore: orders {
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
En este caso, ocurre lo siguiente:
- Todos los campos de
ordersestarán disponibles y se incluirán enALL_FIELDS*. namedeusersestará disponible y se incluirá enALL_FIELDS*.- Otros campos en
usersno estarían disponibles ni se incluirían en el conjuntoALL_FIELDS*.
Ahora, si agregamos un parámetro fields en explore, agregamos una restricción sobre ese conjunto. Supongamos que hicimos lo siguiente:
explore: orders {
fields: [orders.price, users.address]
join: users {
fields: [name]
sql_on: ${orders.user_id} = ${users.id} ;;
}
}
En este caso, ocurre lo siguiente:
pricedeordersaparecerá como se espera, ya que está en el conjuntoALL_FIELDS*que creamos.addressdeusersno aparecerá porque no se incluyó cuando se unióusers(solo se incluyóname).namedeuserstampoco aparecerá, ya que no lo agregamos a Explorar en la filafields: [orders.price, users.address].