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 der Lage sind, detailliertere Nutzerinformationen abzurufen, wenn sie in Explores, Looks oder Dashboards auf Vertriebsmesswerte stoßen. 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 Measures darauf verweisen, damit Nutzer sie untersuchen 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 die Syntax [set_name*] verwendet, um anzugeben, dass die Felder in user_details in den Abfrageergebnissen angezeigt werden, wenn Sie den Measure Anzahl untersuchen.

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*] zu 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, Bundesland 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 im 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: Ein- oder Ausschluss einer Gruppe von Feldern in einem Explore

Angenommen, Sie möchten die Feldauswahl 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 PLZ. 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 Orders-Explore ausschließen möchten:

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

Der LookML-Code 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 Ansicht 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 die Gruppe user_details mit der Syntax -users.user_details* im Parameter fields des Explores orders ausgeschlossen wird, werden in der Ansicht Bestellungen des Explores Bestellungen ohne Nutzerdaten die Felder, die in der Gruppe users_user.info aufgeführt sind, aus der Felderauswahl des Explores entfernt.

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