Créer des niveaux dynamiques

Les niveaux peuvent être un excellent moyen de regrouper des valeurs. Toutefois, avec les dimensions type: tier LookML, ces buckets sont prédéfinis et statiques. Il peut arriver que vous souhaitiez créer un niveau dynamique permettant aux utilisateurs de modifier la taille des buckets. Pour ce faire, utilisez des champs de filtre uniquement (appelés paramètres parameter) avec un langage de création de modèles (Liquid).

Vous pouvez également utiliser le binning personnalisé pour créer des niveaux dynamiques en mode natif dans les explorations lorsque vous disposez de l'autorisation de créer ou de modifier des champs personnalisés.

Pour créer un niveau dynamique:

  1. Créez un paramètre type: number qui servira de champ de filtre côté client, dans lequel l'utilisateur pourra saisir la taille de bucket numérique souhaitée.
  2. Créez une dimension qui fait référence à la valeur du paramètre avec la variable Liquid {% parameter parameter_name %}. Cette dimension détermine les différents buckets et modifie de manière dynamique la taille des buckets en fonction de la valeur saisie par l'utilisateur dans le champ de filtre du frontend (paramètre parameter).

Par exemple, un développeur crée un niveau d'âge dynamique qui permet aux utilisateurs de regrouper les valeurs d'âge par plages personnalisées:

La syntaxe SQL de l'exemple suivant peut nécessiter d'être adaptée au dialecte de votre base de données.
  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 %} ;;
  }

Un utilisateur peut désormais choisir des valeurs de niveau pour la colonne Âge dans une exploration. Par exemple, un utilisateur peut vouloir voir les âges regroupés par tranches de 10 ans. Il doit alors saisir la valeur 10 dans le filtre Taille des buckets par tranche d'âge:

Exploration avec la dimension "Tranche d'âge dynamique des utilisateurs" et le nombre d'utilisateurs filtrés par la valeur 10 dans le filtre "Taille de la tranche d'âge des utilisateurs".

L'expression SQL de la dimension dynamic_age_tier divise une valeur d'âge de la colonne ${TABLE}.age sous-jacente (par exemple, 25) par la valeur du paramètre (10), ce qui donne 2,5. La valeur 2,5 est tronquée à 2 par la fonction TRUNCATE et est multipliée par la valeur du paramètre 10, ce qui donne 20. 20 devient le bucket. Toute valeur d'âge comprise entre 20 et 29 est incluse dans le bucket 20.