Os níveis podem ser uma ótima maneira de agrupar valores. No entanto, com as dimensões type: tier
do LookML, esses buckets são predefinidos e estáticos. Às vezes, você pode querer criar um nível dinâmico que permita que os usuários mudem o tamanho do bucket. Isso pode ser feito no Looker usando campos somente para filtros (chamados de parâmetros parameter
) com uma linguagem de modelos (chamada de Liquid).
Você também pode usar agrupamento personalizado para criar níveis dinâmicos de forma nativa nas análises detalhadas quando tiver 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 da interface em que o usuário pode inserir o tamanho do bucket numérico desejado. -
Crie uma dimensão que faça referência ao valor do parâmetro com a variável Liquid
{% 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 seu dialeto de 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, os usuários podem escolher os valores de nível para a coluna Idade em uma Análise detalhada. Por exemplo, um usuário pode querer ver idades agrupadas em intervalos de 10 anos. Para isso, ele 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 do 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.