Os níveis podem ser uma excelente forma de agrupar valores. No entanto, com as dimensões type: tier
do LookML, esses intervalos são predefinidos e estáticos. Por vezes, pode querer criar um nível dinâmico que permita aos utilizadores alterar o tamanho do grupo. Pode fazê-lo no Looker através de campos apenas de filtragem (denominados parameter
parâmetros) em conjunto com uma linguagem de criação de modelos (denominada Liquid).
Também pode usar a agrupação personalizada para criar níveis dinâmicos nativamente nas explorações quando tiver autorização para criar ou editar campos personalizados.
Para criar um nível dinâmico:
-
Crie um parâmetro de
type: number
para servir como campo de filtro de front-end onde o utilizador pode introduzir o tamanho do grupo numérico pretendido. -
Crie uma dimensão que faça referência ao valor do parâmetro com a variável Liquid
{% parameter parameter_name %}
. Esta dimensão determina os vários grupos e altera dinamicamente o tamanho do grupo para o valor introduzido pelo utilizador no campo de filtro do frontend (o parâmetroparameter
).
Por exemplo, um programador cria um nível de idade dinâmico que permite aos utilizadores agrupar valores de idade por intervalos personalizados:
A sintaxe SQL do exemplo seguinte pode ter de ser adaptada para se adequar ao dialeto da sua base de dados.
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 %} ;; }
Um utilizador pode agora escolher valores de nível para a coluna Idade numa exploração. Por exemplo, um utilizador pode querer ver as idades agrupadas em intervalos de 10 anos e, por isso, introduzir o valor 10 no filtro Tamanho do intervalo de idades:
A expressão SQL na dimensão dynamic_age_tier
divide um valor de idade da coluna ${TABLE}.age
subjacente, por exemplo, 25, pelo valor do parâmetro de 10, o que resulta em 2,5. O valor 2,5 é truncado para 2 pela função TRUNCATE
e é multiplicado pelo valor do parâmetro 10, resultando em 20. 20 torna-se o intervalo; qualquer valor de idade entre 20 e 29 é incluído no intervalo 20.