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

Eine Möglichkeit, Ihre LookML-Projekte effizienter und einfacher zu verwalten, ist die Verwendung des LookML-Parameters set. Mit dem Parameter set können Sie Felder gruppieren, die im gesamten Projekt häufig wiederholt werden, entweder innerhalb des Parameters fields oder innerhalb von Drill-Feldern. Wenn Sie ein Set verwenden, um wiederholte Felder zu gruppieren, erstellen Sie eine einzige Stelle im Modell, an der 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 verwaltbarer zu machen:

Produkte

Vorbereitung

Beispiel: Mehreren Messwerten dieselben Drill-Felder hinzufügen

Angenommen, Sie möchten, dass Ihre Nutzer detailliertere Nutzerdetails aufrufen können, wenn sie in Explores, Looks oder Dashboards Umsatzmesswerte sehen. Wenn sie also in der Explore-UI einen Wert für den Messwert Anzahl auswählen, soll eine Abfrage für die Felder ID, Ort, Bundesland 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 ein Set mit dem Namen user_details erstellen, das die Felder id, city, state und country enthält, und dann in mehreren Measures darauf verweisen, damit Ihre Nutzer die Daten untersuchen können:


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

Mit dem user_details Set kann ein Drill-Feld für den count Messwert 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 in den Measure Anzahl untersuchen.

Sie können dieses Set dann wiederverwenden, um zusätzliche Drill-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*]
}

Wie beim Messwert Anzahl öffnet Looker ein Fenster mit einer Abfrage für die Felder ID, Ort, Bundesland und Land, wenn ein Nutzer in der Explore-UI einen Wert für Anzahl der Bestellungen, Gesamtverkaufspreis oder Durchschnittlicher Verkaufspreis auswählt.

Wenn Sie etwas an den Drill-Feldern ändern möchten, z. B. ein Feld hinzufügen oder entfernen, müssen Sie nur das Set user_details aktualisieren.

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

Beispiel: Ein Set von Feldern in ein Explore einbeziehen oder daraus ausschließen

Angenommen, Sie möchten die Feldauswahl im Explore 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 Feldern für ID, Vorname, Nachname, E-Mail und Alter sowie Standortfeldern wie Ort, Bundesland, Land und Postleitzahl. Die Ansicht users ist 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, Alter und Geschlecht für Ihre Nutzer aus dem Explore ausschließen möchten? Sie können ein Set mit dem Namen user_info erstellen, in dem die Felder aufgeführt sind, die Sie aus dem Explore Bestellungen 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.

Das LookML für das Set user_info sieht so aus:


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

Wenn Sie ein Explore Bestellungen mit dem Label Bestellungen ohne Nutzerdaten 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 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 das user_details Set mit der Syntax -users.user_details* im Parameter fields des Explore orders aus dem Explore ausgeschlossen wird, werden in der Ansicht Bestellungen im Explore Bestellungen ohne Nutzerdaten die Felder aus der Feldauswahl im Explore entfernt, die im Set users_user.info aufgeführt sind.

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