Maximizar la reutilización de código con LookML sin redundancias: Cómo definir listas reutilizables de campos con el parámetro set

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 los campos que se pueden repetir a menudo en todo el 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 de uso de conjuntos de LookML para que tus proyectos de LookML sean más eficientes y fáciles de mantener:

Componentes

Requisitos previos

Ejemplo: Cómo agregar los mismos campos de desglose a varias métricas

Supongamos que deseas que tus usuarios puedan desglosar los datos para ver detalles más específicos de los usuarios dondequiera que vean métricas de ventas en los paneles, las Exploraciones o los Looks, de modo que, cuando se seleccione un valor para la medida Recuento en la IU de Explorar, se abra una consulta sobre los campos ID, Ciudad, Estado y País:

Si seleccionas un valor para la medida Recuento, se abrirá una consulta sobre 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 métricas para que los usuarios puedan explorar en detalle:


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, la sintaxis [set_name*] se usa para especificar que los campos dentro de user_details aparecerán en los resultados de la consulta cuando profundices en la medida Recuento.

Luego, puedes reutilizar 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 Recuento, cuando un usuario selecciona un valor para Recuento de pedidos, Precio total de venta o Precio de venta promedio en la IU de Explorar, Looker abre una ventana que contiene una consulta sobre los campos ID, Ciudad, Estado y País.

Si quieres cambiar algo sobre los campos de desglose, como agregar o quitar un campo, solo tendrás que actualizar el conjunto de 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 métricas de esa vista que aún no tengan campos de desglose especificados a nivel del campo.

Ejemplo: Cómo incluir u omitir un conjunto de campos de una exploración

Supongamos que deseas simplificar el selector de campos de 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 los campos de 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:

El selector de campos de la vista Pedidos incluye todos los campos de las vistas Pedidos y Usuarios, incluidos los campos que deseas omitir.

¿Qué sucede si deseas 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 del Explorador de Pedidos:

La función Explorar de Pedidos sin datos del usuario excluye los campos Nombre, Apellido, Correo electrónico, Edad y Sexo del selector de campos de Explorar.

El LookML para el conjunto de 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 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
  }
}

Dado 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 la exploración.

Puedes volver a usar el conjunto user_info para omitir estos campos de la IU de Explorar en cualquier otra exploración a la que se una la vista users. Si quieres cambiar algo sobre el conjunto de user_info, como agregar o quitar un campo, solo tendrías que actualizar el conjunto de user_info.