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 Verbindung mit einer Vorlagensprache (Liquid) verwenden.

Sie können auch benutzerdefiniertes Binning verwenden, um dynamische Ebenen nativ in Explores zu erstellen, wenn Sie benutzerdefinierte Felder erstellen oder bearbeiten haben.

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 auf den Parameterwert mit der Liquid-Variable {% parameter parameter_name %} 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 in das Filterfeld auf der Benutzeroberfläche (parameter-Parameter) eingibt.

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 %} ;;
  }

Ein Nutzer kann jetzt Stufenwerte für die Spalte Age (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:

Explore mit „Dynamische Altersstufe der Nutzer“ und „Nutzeranzahl“ gefiltert nach dem Wert „10“ im Filter „Bucket-Größe der Nutzer-Altersstufe“.

Der SQL-Ausdruck in der Dimension dynamic_age_tier teilt einen Alterswert aus der zugrunde liegenden Spalte ${TABLE}.age (z. B. 25) durch den Parameterwert 10, was 2, 5 ergibt. 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.