Codewiederverwendbarkeit mit DRY LookML maximieren: Wiederverwendbare Listen von Feldern mit dem Parameter „set“ definieren

Eine Möglichkeit, Ihre LookML-Projekte effizienter und wartungsfreundlicher zu gestalten, ist die Verwendung des LookML-Parameters set. Mit dem Parameter set können Sie Felder, die in Ihrem Projekt häufig wiederholt werden, im Parameter fields oder in Drilldown-Feldern gruppieren. Wenn Sie ein Set zum Gruppieren von Feldern verwenden, erstellen Sie einen einzelnen Ort im Modell, an dem diese Gruppe von Feldern verwaltet werden kann.

Auf dieser Seite finden Sie die folgenden Beispiele für die Verwendung von LookML-Sets, um Ihre LookML-Projekte effizienter und wartungsfreundlicher zu gestalten:

Produkte

Vorbereitung

Beispiel: Dieselben Drilldown-Felder mehreren Messwerten hinzufügen

Angenommen, Sie möchten, dass Ihre Nutzer in Explores, Looks oder Dashboards, in denen sie Umsatzmesswerte sehen, detailliertere Nutzerinformationen aufrufen können. Wenn sie also in der Explore-Benutzeroberfläche einen Wert für den Messwert Anzahl auswählen, soll eine Abfrage für die Felder ID, Stadt, Bundesstaat und Land geöffnet werden:

Wenn Sie einen Wert für die Messwertart „Anzahl“ auswählen, wird eine Abfrage für die Felder „ID“, „Stadt“, „Bundesstaat“ und „Land“ geöffnet.

Sie können einen Satz namens user_details erstellen, der die Felder id, city, state und country enthält, und dann in mehreren Messwerten darauf verweisen, damit Nutzer sie aufschlüsseln können:


set: user_details {
  fields: [id, city, state, country]
}

Mit dem Set user_details kann ein Aufschlüsselfeld für die Messung count definiert werden:


measure: count {
  type: count
  drill_fields: [user_details*]
}

In diesem Beispiel wird mit der Syntax [set_name*] angegeben, dass die Felder in user_details in den Abfrageergebnissen angezeigt werden, wenn Sie den Messwert Anzahl aufschlüsseln.

Sie können diesen Satz dann wiederverwenden, um zusätzliche Drilldown-Felder zu erstellen. Sie können beispielsweise den LookML-Code drill_fields: [user_details*] den Messwerten order_count, total_sale_price und average_sale_price hinzufügen:


measure: order_count {
  view_label: "Orders"
  type: count_distinct
  description: "Number of orders"
  sql: ${order_id} ;;
  drill_fields: [user_details*]

}

measure: total_sale_price {
  type: sum
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

measure: average_sale_price {
  type: average
  value_format_name: usd
  sql: ${sale_price} ;;
  drill_fields: [user_details*]
}

Wenn ein Nutzer in der Explore-Benutzeroberfläche einen Wert für Anzahl der Bestellungen, Gesamtverkaufspreis oder Durchschnittlicher Verkaufspreis auswählt, wird in Looker wie beim Messwert Anzahl ein Fenster mit einer Abfrage für die Felder ID, Ort, Bundesstaat und Land geöffnet.

Wenn Sie etwas an den Aufschlüsselfeldern ändern möchten, z. B. ein Feld hinzufügen oder entfernen, müssen Sie nur den user_details-Satz aktualisieren.

Sie können auch in einem drill_fields-Parameter einer Ansicht auf ein Set verweisen, um Drilldown-Felder für alle Messwerte in dieser Ansicht zu definieren, für die noch keine Drilldown-Felder auf Feldebene angegeben sind.

Beispiel: Eine Gruppe von Feldern in ein Explore einbeziehen oder daraus entfernen

Angenommen, Sie möchten den Field Picker in Explores für Nutzer vereinfachen, indem Sie Felder ausschließen, die für diese Nutzer nicht wichtig sind.

Angenommen, Sie haben eine users-Ansicht mit Informationen zu Ihren Kunden, einschließlich der Felder ID, Vorname, Nachname, E‑Mail-Adresse und Alter sowie Standortfelder wie Ort, Bundesland, Land und Postleitzahl. Die Ansicht users wird mit dem Explore orders verknüpft:

Die Feldauswahl für die Ansicht „Bestellungen“ enthält alle Felder aus den Ansichten „Bestellungen“ und „Nutzer“, einschließlich der Felder, die Sie weglassen möchten.

Was ist, wenn Sie die Felder Vorname, Nachname, E-Mail-Adresse, Alter und Geschlecht aus dem Bereich „Erkunden“ für Ihre Nutzer ausschließen möchten? Sie können einen Satz namens user_info erstellen, in dem die Felder aufgeführt sind, die Sie aus dem Explore Aufträge ausschließen möchten:

Im Explore „Bestellungen ohne Nutzerdaten“ sind die Felder „Vorname“, „Nachname“, „E-Mail-Adresse“, „Alter“ und „Geschlecht“ nicht im Field Picker verfügbar.

Das LookML für den Satz user_info würde so aussehen:


set: user_info {
  fields: [first_name, last_name, email, age, gender]
}

Wenn Sie ein Orders-Explore mit dem Label Orders Without User Data definieren möchten, verknüpfen Sie die Ansicht users mit dem Explore orders. Fügen Sie dem Explore orders den LookML-Code fields: [ALL_FIELDS*, -users.user_info*] hinzu, um alle Felder mit Ausnahme der Felder im Set user_info aus der View users einzuschließen:


explore: orders {
  fields: [ALL_FIELDS*, -users.user_info*]
  label: "Orders Without User Data"
  join: users {
    type: left_outer
    sql_on: ${orders.user_id} = ${users.id} ;;
    relationship: many_to_one
  }
}

Da der user_details-Satz mit der Syntax -users.user_details* im Parameter fields der orders-Exploration ausgeschlossen wird, werden die im users_user.info-Satz aufgeführten Felder in der Ansicht Orders der Exploration Orders Without User Data nicht in der Feldauswahl angezeigt.

Sie können den user_info-Satz wiederverwenden, um diese Felder in der Explore-Benutzeroberfläche für alle anderen Explores auszublenden, mit denen die Ansicht users verknüpft ist. Wenn Sie etwas an der user_info-Gruppe ändern möchten, z. B. ein Feld hinzufügen oder entfernen, müssen Sie nur die user_info-Gruppe aktualisieren.