Como criar camadas dinâmicas

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:

  1. 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.
  2. 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âmetro parameter).

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:

Explore com a camada de idade dinâmica de usuários e a contagem de usuários filtradas pelo valor 10 no filtro "Tamanho do bucket da faixa etária 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 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.