Los niveles pueden ser una excelente manera de agrupar valores. Sin embargo, con las dimensiones type: tier
de LookML, esos buckets son estáticos y predefinidos. A veces, es posible que desees crear un nivel dinámico que permita a los usuarios cambiar el tamaño del bucket. Para ello, puedes usar campos de solo filtro (llamados parámetros parameter
) junto con un lenguaje de plantillas (llamado Liquid) en Looker.
También puedes usar el agrupamiento personalizado para crear niveles dinámicos de forma nativa en Exploraciones cuando tienes permiso para crear o editar campos personalizados.
Para crear un nivel dinámico, sigue estos pasos:
-
Crea un parámetro de
type: number
para que funcione como el campo de filtro de frontend en el que el usuario pueda ingresar el tamaño numérico del bucket que desee. -
Crea una dimensión que haga referencia al valor del parámetro con la variable Liquid
{% parameter parameter_name %}
. Esta dimensión determina los distintos buckets y cambiará dinámicamente el tamaño del bucket al valor que ingrese el usuario en el campo de filtro del frontend (el parámetroparameter
).
Por ejemplo, un desarrollador crea un nivel de edad dinámico que permite a los usuarios bucket los valores de edad por rangos personalizados:
Es posible que la sintaxis de SQL para el siguiente ejemplo deba adaptarse a tu dialecto de base de datos.
parameter: age_tier_bucket_size { type: number } dimension: dynamic_age_tier { type: number sql: TRUNCATE(${TABLE}.age / {% parameter age_tier_bucket_size %}, 0) * {% parameter age_tier_bucket_size %} ;; }
Ahora, un usuario puede elegir los valores de nivel para la columna Edad en una exploración. Por ejemplo, un usuario podría querer ver las edades agrupadas en buckets de 10 años, por lo que ingresaría el valor 10 en el filtro Tamaño del bucket de nivel de edad:
La expresión SQL en la dimensión dynamic_age_tier
divide un valor de edad de la columna ${TABLE}.age
subyacente (por ejemplo, 25) por el valor del parámetro de 10, lo que da como resultado 2.5. El valor 2.5 se trunca a 2 con la función TRUNCATE
y se multiplica por el valor del parámetro 10, lo que da como resultado 20. 20 se convierte en el bucket. Cualquier valor de edad entre 20 y 29 se incluye en el bucket 20.