Los niveles pueden ser una excelente manera de agrupar valores. Sin embargo, con las dimensiones type: tier
de LookML, esos depósitos están predefinidos y estáticos. En ocasiones, es posible que desee crear un nivel dinámico que permita a los usuarios cambiar el tamaño del bucket. Puedes hacer esto en Looker mediante campos de solo filtro (llamados parámetros parameter
) junto con un lenguaje de plantillas (llamado líquido).
También puede usar la vinculación personalizada a fin de crear niveles dinámicos de forma nativa en Explorars cuando tenga permiso para crear o editar campos personalizados.
Para crear un nivel dinámico:
-
Crea un parámetro de
type: number
para que funcione como el campo de filtro de frontend en el que el usuario puede 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 líquida
{% parameter parameter_name %}
. Esta dimensión determina los distintos buckets y cambia el tamaño del bucket de forma dinámica al valor que ingrese el usuario en el campo de filtro de frontend (el parámetroparameter
).
Por ejemplo, un desarrollador crea un nivel de edad dinámico que permite a los usuarios agrupar los valores de edad por rangos personalizados:
Es posible que la sintaxis de SQL del siguiente ejemplo deba adaptarse para adaptarse al dialecto de tu 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 valores de nivel para la columna Edad en Explorar. Por ejemplo, un usuario podría ver edades agrupadas en depósitos de 10 años y, luego, ingresar el valor 10 en el filtro Tamaño del depósito por edad:
La expresión de 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 de 20.