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

Mit dem LookML-Parameter set können Sie Ihre LookML-Projekte effizienter und einfacher verwalten. Mit dem Parameter set können Sie Felder, die sich im gesamten Projekt häufig wiederholen, im Parameter fields oder in Aufschlüsselungsfeldern gruppieren. Wenn Sie wiederholte Felder in einem Satz gruppieren, erstellen Sie einen einzigen 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-Sätzen, um Ihre LookML-Projekte effizienter und wartungsfreundlicher zu gestalten:

Zutaten

Vorbereitung

Beispiel: Mehreren Messwerten dieselben Aufschlüsselungsfelder hinzufügen

Angenommen, Sie möchten, dass Nutzer an jeder Stelle, an der sie in Explores, Looks oder Dashboards Verkaufsmesswerte sehen, eine detailliertere Aufschlüsselung der Nutzerdaten aufrufen können. Wenn also in der Explore-Benutzeroberfläche ein Wert für den Messwert Anzahl ausgewählt wird, wird eine Abfrage für die Felder ID, Ort, Bundesland und Land geöffnet:

Wenn Sie einen Wert für das Maß „Anzahl“ auswählen, wird eine Abfrage für die Felder „ID“, „Ort“, „Bundesland“ und „Land“ geöffnet.

Sie können einen Satz namens user_details mit den Feldern id, city, state und country erstellen und dann in mehreren Messwerten darauf verweisen, die Nutzer analysieren können:


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

Mit dem Satz user_details können Sie ein Aufschlüsselungsfeld für den Messwert count definieren:


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

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

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*]
}

Ähnlich wie beim Messwert Anzahl öffnet Looker, wenn ein Nutzer in der Explore-Benutzeroberfläche einen Wert für Bestellmenge, Gesamtverkaufspreis oder Durchschnittlicher Sonderangebotspreis auswählt, ein Fenster mit einer Abfrage zu den Feldern ID, Ort, Bundesland und Land.

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

Sie können auch einen Satz im drill_fields-Parameter einer Datenansicht referenzieren, um Drilldown-Felder für alle Messwerte in dieser Datenansicht zu definieren, für die noch keine Drilldown-Felder auf Feldebene angegeben sind.

Beispiel: Eine Reihe von Feldern in ein Explore aufnehmen oder daraus ausschließen

Angenommen, Sie möchten die Auswahl der Felder für Explores für Nutzer vereinfachen, indem Sie Felder ausschließen, die für diese Nutzer nicht entscheidend sind.

Angenommen, Sie haben eine users-Ansicht mit Informationen zu Ihren Kunden, einschließlich Feldern für ID, Vorname, Nachname, E-Mail und Alter sowie Standortfelder wie Ort, Bundesland, Land und Postleitzahl. Die Ansicht users ist mit dem Explore orders verbunden:

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

Was ist, wenn Sie die Felder Vorname, Nachname, E-Mail, Alter und Geschlecht aus der explorativen Datenanalyse für Ihre Nutzer ausschließen möchten? Sie können einen Satz namens user_info erstellen, der die Felder enthält, 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“ in der Feldauswahl nicht enthalten.

Die 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 exploratives Analysetool vom Typ Bestellungen mit dem Label Bestellungen ohne Nutzerdaten definieren möchten, verknüpfen Sie die Datenansicht users mit dem explorativen Analysetool orders. Fügen Sie dem Explore orders den LookML-Code fields: [ALL_FIELDS*, -users.user_info*] hinzu, um alle Felder außer den Feldern im Satz 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 die Gruppe user_details mit der Syntax -users.user_details* im Parameter fields der explorativen Datenanalyse orders aus der explorativen Datenanalyse ausgeschlossen ist, werden in der Ansicht Bestellungen in der explorativen Datenanalyse Bestellungen ohne Nutzerdaten die im Satz users_user.info aufgeführten Felder nicht in der Auswahl der explorativen Datenanalyse-Felder angezeigt.

Sie können den Satz user_info wiederverwenden, um diese Felder in der Explore-Benutzeroberfläche für alle anderen Explores auszuschließen, mit denen die Ansicht users 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.