Maximieren der Wiederverwendbarkeit von Code mit DRY LookML: wiederverwendbare Listen von Feldern mit dem Parameter „set“ definieren

Eine Möglichkeit, Ihre LookML-Projekte effizienter und einfacher zu verwalten, ist der LookML-Parameter set. Mit dem Parameter set können Sie Felder gruppieren, die sich häufig in Ihrem Projekt innerhalb des Parameters fields oder in Aufschlüsselungsfeldern wiederholen. Wenn Sie wiederkehrende Felder mit einem Satz gruppieren, erstellen Sie einen zentralen Ort im Modell, an dem diese Gruppe von Feldern verwaltet werden kann.

Diese Seite enthält die folgenden Beispiele für die Verwendung von LookML-Sätzen, um Ihre LookML-Projekte effizienter und leichter zu verwalten:

Produkte

Vorbereitung

Beispiel: Dieselben Aufschlüsselungsfelder zu mehreren Messungen hinzufügen

Angenommen, Sie möchten, dass Nutzer in jedem Bericht, für den Umsatzmesswerte in einem Bericht angezeigt werden, detailliertere Nutzerdetails aufrufen können. Wenn Sie dann in der Explore-Benutzeroberfläche einen Wert für den Messwert Anzahl auswählen, wird eine Abfrage für die Felder ID, Stadt, Bundesland und Land geöffnet:

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

Sie können eine Gruppe mit dem Namen user_details erstellen, die die Felder id, city, state und country enthält, und dann in mehreren Kennzahlen darauf verweisen, damit Ihre Nutzer sie weiter untersuchen können:


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

Mit dem Satz user_details kann ein Drilldown-Feld für den Messwert count definiert werden:


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

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

Sie können diesen Satz dann wiederverwenden, um zusätzliche Aufschlüsselungsfelder zu erstellen. Beispielsweise können Sie 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*]
}

Wie bei der Messung Anzahl öffnet Looker ein Fenster mit einer Abfrage für die Felder ID, Stadt, Bundesland und Land, wenn ein Nutzer in der Explore-Benutzeroberfläche einen Wert für Anzahl, Gesamtverkaufspreis oder Durchschnittlicher Verkaufspreis auswählt.

Wenn Sie Änderungen an den Aufschlüsselungsfeldern vornehmen möchten, z. B. ein Feld hinzufügen oder entfernen, müssen Sie nur den user_details-Satz aktualisieren.

Sie können auch auf einen Satz innerhalb des Parameters drill_fields einer Ansicht verweisen, um Aufschlüsselungsfelder für alle Messwerte in dieser Ansicht zu definieren, für die noch keine Aufschlüsselungsfelder auf Feldebene festgelegt wurden.

Beispiel: Einschließen oder Auslassen einer Gruppe von Feldern in einem Explore

Angenommen, Sie möchten die Explore-Feldauswahl für Benutzer vereinfachen, indem Sie Felder ausschließen, die für diese Benutzer nicht wichtig sind.

Angenommen, Sie haben eine users-Datenansicht, die Informationen zu Ihren Kunden enthält, darunter Felder für ID, Vorname, Nachname, E-Mail und Alter sowie Standortfelder wie Stadt, Bundesland, Land und Postleitzahl. Die Ansicht users wird mit dem Explore orders verbunden:

Der Field Picker für die Ansicht „Aufträge“ enthält alle Felder der Ansichten „Aufträge“ und „Nutzer“, einschließlich der Felder, die Sie auslassen möchten.

Sie möchten für Ihre Nutzer die Felder Vorname, Nachname, E-Mail-Adresse, Alter und Geschlecht aus dem explorativen Analysetool ausschließen? Sie können einen Satz mit dem Namen user_info erstellen, in dem die Felder aufgeführt sind, die Sie aus dem Explore Orders ausschließen möchten:

Das Explore „Aufträge ohne Benutzerdaten“ schließt die Felder „Vorname“, „Nachname“, „E-Mail“, „Alter“ und „Geschlecht“ aus der Feldauswahl für explorative Datenanalysen aus.

Der LookML-Code für den user_info-Satz würde wie folgt aussehen:


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

Um ein Explore vom Typ Aufträge mit dem Label Aufträge ohne Nutzerdaten zu definieren, 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 in user_info aus der Ansicht users einzubeziehen:


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 fields-Parameter des orders-Explores aus dem Explore ausgeschlossen wird, werden in der Ansicht Aufträge im Explore Aufträge ohne Nutzerdaten die Felder weggelassen, die im Satz users_user.info aus der Feldauswahl für Explores aufgeführt sind.

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