Una forma de hacer que tus proyectos de LookML sean más eficientes y fáciles de mantener es con el parámetro set
de LookML. El parámetro set
te permite agrupar campos que suelen repetirse en todo tu proyecto dentro del parámetro fields
o dentro de los campos de desglose. Si usas un conjunto para agrupar campos repetidos, creas un solo lugar dentro del modelo en el que se puede mantener ese grupo de campos.
En esta página, se incluyen los siguientes ejemplos del uso de conjuntos de LookML para que tus proyectos de LookML sean más eficientes y fáciles de mantener:
- Agregar los mismos campos de desglose a varias medidas: Define campos de desglose para los detalles que los usuarios suelen querer ver cuando desglosan las agregaciones.
- Incluir o omitir un conjunto de campos de una exploración: Personaliza la experiencia de exploración para los usuarios y simplifica la lista de campos que pueden elegir en el selector de campos.
Componentes
- El parámetro
set
de LookML - El parámetro
fields
de LookML (para Exploraciones) - El parámetro
drill_fields
(para campos) de LookML - El parámetro
drill_fields
de LookML (para vistas)
Requisitos previos
Ejemplo: Cómo agregar los mismos campos de desglose a varias medidas
Supongamos que deseas que los usuarios puedan desglosar los datos para ver detalles más detallados de los usuarios dondequiera que vean métricas de ventas en Explorar, Looks o paneles, de modo que seleccionar un valor para la medida Cantidad en la IU de Explorar abra una consulta en los campos ID, Ciudad, Estado y País:
Puedes crear un conjunto llamado user_details
que incluya los campos id
, city
, state
y country
y, luego, hacer referencia a ellos en varias medidas para que los usuarios puedan desglosarlos:
set: user_details {
fields: [id, city, state, country]
}
El conjunto user_details
se puede usar para definir un campo de desglose para la medida count
:
measure: count {
type: count
drill_fields: [user_details*]
}
En este ejemplo, se usa la sintaxis [set_name*]
para especificar que los campos dentro de user_details
aparecerán en los resultados de la consulta cuando desgloses la métrica Cantidad.
Luego, puedes volver a usar este conjunto para crear campos de desglose adicionales. Por ejemplo, puedes agregar el código de LookML drill_fields: [user_details*]
a las medidas order_count
, total_sale_price
y average_sale_price
:
measure: order_count {
view_label: "Orders"
type: count_distinct
description: "Number of orders"
sql: ${order_id} ;;
drill_fields: [user_details*]
}
measure: total_sale_price {
type: sum
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
measure: average_sale_price {
type: average
value_format_name: usd
sql: ${sale_price} ;;
drill_fields: [user_details*]
}
Al igual que con la medida Cantidad, cuando un usuario selecciona un valor para Cantidad de pedidos, Precio total de las ventas o Precio promedio de las ventas en la IU de Explorar, Looker abre una ventana que contiene una consulta en los campos ID, Ciudad, Estado y País.
Si quieres cambiar algo de los campos de desglose, como agregar o quitar un campo, solo debes actualizar el conjunto user_details
.
También puedes hacer referencia a un conjunto dentro del parámetro drill_fields
de una vista para definir campos de desglose para todas las medidas de esa vista que aún no tengan campos de desglose especificados a nivel del campo.
Ejemplo: Cómo incluir o omitir un conjunto de campos de una exploración
Supongamos que quieres simplificar el selector de campos Explorar para los usuarios excluyendo los campos que no son fundamentales para ellos.
Por ejemplo, supongamos que tienes una vista users
que contiene información sobre tus clientes, incluidos campos para ID, Nombre, Apellido, Correo electrónico y Edad, así como campos de ubicación, como Ciudad, Estado, País y Código postal. La vista users
se une a la exploración orders
:
¿Qué sucede si quieres excluir los campos Nombre, Apellido, Correo electrónico, Edad y Género de la función Explorar para tus usuarios? Puedes crear un conjunto llamado user_info
que enumere los campos que deseas excluir de la exploración Pedidos:
El código LookML para el conjunto user_info
se vería de la siguiente manera:
set: user_info {
fields: [first_name, last_name, email, age, gender]
}
Para definir una exploración de Pedidos con la etiqueta Pedidos sin datos del usuario, une la vista users
a la exploración orders
. Agrega el código de LookML fields: [ALL_FIELDS*, -users.user_info*]
a la exploración orders
para incluir todos los campos, excepto los campos del conjunto user_info
de la vista users
:
explore: orders {
fields: [ALL_FIELDS*, -users.user_info*]
label: "Orders Without User Data"
join: users {
type: left_outer
sql_on: ${orders.user_id} = ${users.id} ;;
relationship: many_to_one
}
}
Debido a que el conjunto user_details
se excluye de la exploración con la sintaxis -users.user_details*
en el parámetro fields
de la exploración orders
, la vista Pedidos dentro de la exploración Pedidos sin datos del usuario omite los campos que se enumeran en el conjunto users_user.info
del selector de campos de exploración.
Puedes volver a usar el conjunto user_info
para omitir estos campos de la IU de Explorar para cualquier otra exploración a la que se una la vista users
. Si quieres cambiar algo del conjunto user_info
, como agregar o quitar un campo, solo debes actualizar el conjunto user_info
.