Criar níveis dinâmicos

Os níveis podem ser uma ótima forma 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 aos usuários alterar o tamanho do bucket. É possível fazer isso no Looker usando campos somente de filtro (chamados de parâmetros parameter) em conjunto com uma linguagem de modelos (chamada Liquid).

Você também pode usar a binação personalizada para criar níveis dinâmicos nativamente em "Explorar" quando tiver permissão para criar ou editar campos personalizados.

Para criar um nível dinâmico, faça o seguinte:

  1. Crie um parâmetro de type: number para servir como o campo de filtro de front-end em que o usuário pode inserir o tamanho numérico do bucket que quiser.
  2. Crie uma dimensão que faça referência ao valor do parâmetro com a variável líquida {% parameter parameter_name %}. Essa dimensão determina os vários buckets e muda dinamicamente o tamanho do bucket para o valor inserido pelo usuário no campo de filtro de front-end (o parâmetro parameter).

Por exemplo, um desenvolvedor cria uma faixa etária dinâmica que permite aos usuários agrupar valores de idade por intervalos personalizados:

A sintaxe SQL do exemplo a seguir pode ser adaptada de acordo com 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 um usuário pode escolher valores de nível para a coluna Idade em uma exploração. Por exemplo, talvez um usuário queira ver idades agrupadas em intervalos de 10 anos. Portanto, insira o valor 10 no filtro Idade do bucket:

A opção "Explorar com a faixa etária dinâmica dos usuários" e a "Contagem de usuários" são filtradas pelo valor 10 no filtro "Tamanho do intervalo de idade dos usuários".

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 de parâmetro 10, resultando em 20. 20 se torna o bucket; qualquer valor de idade entre 20 e 29 está incluído no bucket 20.