Os níveis podem ser uma ótima maneira de agrupar valores. No entanto, com as dimensões do LookML type: tier
, esses buckets são predefinidos e estáticos. Às vezes, é preciso criar uma camada dinâmica que permita aos usuários alterar o tamanho do bucket. É possível fazer isso no Looker usando campos somente filtro (chamados de parâmetros parameter
) com uma linguagem de modelo (chamada Liquid).
Também é possível usar o agrupamento personalizado para criar níveis dinâmicos de forma nativa nas Análises quando você tem permissão para criar ou editar campos personalizados.
Para criar um nível dinâmico:
-
Crie um parâmetro de
type: number
para servir como o campo de filtro do front-end em que o usuário pode inserir o tamanho numérico do bucket que quiser. -
Crie uma dimensão que faça referência ao valor do parâmetro com a variável
{% parameter parameter_name %}
. Essa dimensão determina os vários grupos e muda dinamicamente o tamanho do grupo para o valor inserido pelo usuário no campo de filtro da interface (parâmetroparameter
).
Por exemplo, um desenvolvedor cria um nível de idade dinâmico que permite que os usuários agrupem valores de idade por intervalos personalizados:
A sintaxe SQL do exemplo a seguir pode precisar ser adaptada para se adequar ao dialeto do seu banco 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 %} ;; }
Agora o usuário pode escolher valores de nível para a coluna Idade em uma Análise. Por exemplo, um usuário pode querer ver idades agrupadas em intervalos de 10 anos e, portanto, insere o valor 10 no filtro Tamanho do intervalo de faixa etária:
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 de parâmetro 10, resultando 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 se torna o bucket, e qualquer valor de idade entre 20 e 29 é incluído no bucket 20.