Dynamische Stufen erstellen

Stufen sind eine gute Möglichkeit, Werte zu gruppieren. Bei LookML-Dimensionen vom Typ type: tier sind diese Bucket jedoch vordefiniert und statisch. Manchmal möchten Sie eine dynamische Stufe erstellen, mit der Nutzer die Bucket-Größe ändern können. In Looker können Sie dazu Nur-Filter-Felder (parameter-Parameter) in Kombination mit einer Vorlagensprache (Liquid) verwenden.

Wenn Sie berechtigt sind, benutzerdefinierte Felder zu erstellen oder zu bearbeiten, können Sie auch benutzerdefinierte Binnings verwenden, um dynamische Stufen direkt in explorativen Datenanalysen zu erstellen.

So erstellen Sie eine dynamische Stufe:

  1. Erstellen Sie einen Parameter vom Typ type: number, der als Filterfeld auf der Benutzeroberfläche dient, in das der Nutzer die gewünschte numerische Bucket-Größe eingeben kann.
  2. Erstellen Sie eine Dimension, die mit der Liquid-Variablen {% parameter parameter_name %} auf den Parameterwert verweist. Anhand dieser Dimension werden die verschiedenen Bucket-Größen bestimmt. Die Bucket-Größe wird dynamisch auf den Wert geändert, den der Nutzer im Filterfeld auf der Benutzeroberfläche (parameter-Parameter) eingegeben hat.

Ein Entwickler erstellt beispielsweise eine dynamische Altersstufe, mit der Nutzer Alterswerte in benutzerdefinierte Bereiche unterteilen können:

Die SQL-Syntax für das folgende Beispiel muss möglicherweise an Ihren Datenbankdialekt angepasst werden.
  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 %} ;;
  }

Nutzer können jetzt Stufenwerte für die Spalte Alter in einem Explore auswählen. Ein Nutzer möchte beispielsweise sehen, wie die Altersgruppen in 10-Jahres-Intervalle unterteilt sind. Er gibt dazu den Wert 10 in den Filter Altersgruppe – Bucket-Größe ein:

explorative Datenanalyse mit den Dimensionen „Altersgruppe der Nutzer (dynamisch)“ und „Anzahl der Nutzer“, gefiltert nach dem Wert „10“ im Filter „Altersgruppe der Nutzer (dynamisch) – Bucket-Größe“.

Im SQL-Ausdruck in der Dimension dynamic_age_tier wird ein Alterswert aus der zugrunde liegenden Spalte ${TABLE}.age – z. B. 25 – durch den Parameterwert 10 geteilt. Das Ergebnis ist 2,5. Der Wert 2,5 wird von der Funktion TRUNCATE auf 2 gekürzt und mit dem Parameterwert 10 multipliziert, was 20 ergibt. 20 wird zum Bucket. Alle Alterswerte zwischen 20 und 29 werden in den Bucket 20 aufgenommen.