Codewiederverwendbarkeit mit DRY LookML maximieren: Eine einzelne Basisansicht für mehrere Anwendungsfälle anpassen

Stellen Sie sich vor, Sie haben viele Nutzer, die einen Explore gemeinsam nutzen, aber je nach Team oder Region unterschiedliche Anwendungsfälle haben. Jeder Nutzer möchte nur die Felder sehen, die für seinen jeweiligen Anwendungsfall relevant sind. Um den unterschiedlichen Anforderungen Ihrer Nutzer gerecht zu werden, können Sie LookML-Verfeinerungen verwenden, um vorhandene Ansichten und Explores anzupassen, ohne die ursprüngliche LookML ändern zu müssen. Sie können diese optimierten Ansichten und Explores dann in separaten Modelldateien einfügen, die an die unterschiedlichen Anforderungen Ihrer Nutzer angepasst sind.

Auf dieser Seite finden Sie ein Beispiel dafür, wie Sie mit LookML-Verfeinerungen eine einzelne Basisansicht anpassen und unterschiedliche Explores für zwei verschiedene Teams in Ihrem Unternehmen erstellen. Sie enthält auch Beispiele für das Ausblenden und Hinzufügen von Feldern in verfeinerten Inhalten.

Produkte

Vorbereitung

Beispiel: Mehrere benutzerdefinierte Explores aus derselben Basisansicht erstellen

Angenommen, Sie haben ein Sales-Explore, das Daten zu Kunden, Käufen, Versand und Standort enthält. Das Marketing- und das Logistikteam Ihres Unternehmens müssen diese Daten analysieren, konzentrieren sich jedoch jeweils auf andere Felder innerhalb des Explores Vertrieb.

Sie möchten im Field Picker von Explore nur die Felder anzeigen, die für das jeweilige Team nützlich sind, um die Untersuchung zu vereinfachen. Dazu können Sie zwei verschiedene Einschränkungen für die explorative Datenanalyse Umsatz und die zugrunde liegende sales-Ansicht definieren. Im Explore des Marketingteams können Felder zu Kunden und Kauftrends angezeigt werden, während im Explore des Logistikteams Felder zu Versand und Standort angezeigt werden können. Sie können jeder optimierten Ansicht auch neue Felder hinzufügen, die auf die Anforderungen des jeweiligen Teams zugeschnitten sind.

Derzeit werden in der Feldauswahl für die explorative Datenanalyse Umsatz alle Felder aus der Ansicht Umsatz angezeigt:

Die Verkaufsansicht enthält Felder für das Erstellungs-, das Liefer-, das Rückgabe- und das Versanddatum sowie die ID, den Gewinn, den Status, den durchschnittlichen und den Gesamtverkaufspreis und die Anzahl.

In der Auswahl werden auch alle Felder aus der verbundenen Ansicht Nutzer angezeigt:

Die Ansicht „Nutzer“ enthält Felder für Alter, Ort, Land, Erstellungsdatum, E-Mail-Adresse, Vor- und Nachname, ID, Bundesland, Postleitzahl und Anzahl.

Sie können die Ansicht sales verfeinern, um zwei separate Explores zu erstellen, die nur die Felder enthalten, die für die Marketing- und Logistikteams von Interesse sind. Gehen Sie dazu so vor:

  1. Erstellen Sie eine neue LookML-Datei, in diesem Beispiel base_analysis.lkml, die die LookML für das Umsatz-Explore enthält. Dieses basiert auf der Ansicht sales und der zusammengeführten Ansicht users. Da Sie die grundlegende sales-Explore-Datei und die zugehörigen Ansichten verwenden möchten, um für jedes Team eine benutzerdefinierte Explore-Datei zu erstellen, können Sie alle freigegebenen Felder und Properties an einem einzigen Ort definieren, z. B. in einer einzigen Datei.

    
    # base_analysis.lkml
    
    include: "views/sales.view.lkml"
    include: "views/inventory_items.view.lkml"
    include: "views/users.view.lkml"
    
    explore: sales {
      join: inventory_items {
        type: left_outer
        sql_on: ${sales.inventory_item_id} = ${inventory_items.id} ;;
        relationship: many_to_one
      }
    
      join: users {
        type: left_outer
        sql_on: ${sales.user_id} = ${users.id} ;;
        relationship: many_to_one
      }
    }
    
  2. Erstellen Sie zwei separate Dateien für die Optimierungen des Explores Verkauf, die Sie für jedes Team definieren. Sie können die Dateien marketing_analysis.lkml und logistics_analysis.lkml nennen. Im folgenden LookML-Code wird das Basis-Explore sales, wie in der Datei base_analysis.lkml definiert, verfeinert, um in einer neuen Datei namens marketing_analysis.lkml das Label Sales Analysis for Marketing Team hinzuzufügen. Mit der Anweisung include: "/base/base_analysis.lkml" wird der Inhalt der Datei base_analysis.lkml in der Datei marketing_analysis.lkml als Referenz verfügbar gemacht.

    
    # marketing_analysis.lkml
    
    include: "/base/base_analysis.lkml"
    
    explore: +sales {
      label: "Sales Analysis for Marketing Team"
    }
    
    
  3. Erstellen Sie für jedes Team eine separate Modelldatei, z. B. ecommerce_marketing.model und ecommerce_logistics.model. Wenn Sie die verschiedenen Verfeinerungen in separaten Modellen für jedes Team speichern, können Sie dieselbe Gruppe von Ansichten und explorativen Datenanalysen mehrmals verfeinern, ohne die Anpassungen zu überschreiben, die Sie für den Anwendungsfall eines Teams vorgenommen haben. Weitere Informationen finden Sie auf der Dokumentationsseite zu LookML-Verfeinerungen.

  4. Fügen Sie mit dem Parameter include marketing_analysis.lkml in das Modell ecommerce_marketing.model und logistics_analysis.lkml in das Modell ecommerce_logistics.model ein.

  5. Fügen Sie den Dateien marketing_analysis.lkml und logistics_analysis.lkml nach Bedarf weitere Suchfilter hinzu. Sie können beispielsweise unnötige Felder ausblenden und den optimierten Explores für jedes Team neue Felder hinzufügen.

Optional kann ein Looker-Administrator den Modellzugriff für jedes spezielle Modell konfigurieren, um bestimmten Teams Zugriff auf Explore-Ebene zu gewähren.

Nicht benötigte Felder aus den optimierten Explores ausblenden

Sie können die Ansicht sales in der Datei marketing_analysis.lkml folgendermaßen optimieren, um die Dimensionsgruppen Zurückgegeben, Versendet, Zugestellt und Erstellt sowie die Dimension Status auszublenden, da diese Felder vom Marketingteam nicht verwendet werden:


# marketing_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Marketing Team"
}

view: +sales
  dimension_group: returned {
    hidden: yes
  }

  dimension_group: shipped {
    hidden: yes
  }

  dimension_group: delivered {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }

  dimension: status {
    hidden: yes
  }
}

Ebenso können Sie mit der folgenden LookML in der Datei logistics_analysis.lkml Felder ausblenden, die das Logistikteam nicht benötigt, z. B. Gewinn, Sonderangebotspreis und Durchschnittlicher Sonderangebotspreis:


# logistics_analysis.lkml

include: "/base/base_analysis.lkml"

explore: +sales {
  label: "Sales Analysis for Logistics Team"
}

view: +sales {
  dimension: profit {
    hidden: yes
  }

  dimension: sale_price {
    hidden: yes
  }

  measure: average_sale_price {
    hidden: yes
  }
}

Da das Logistikteam keine personenbezogenen Daten wie Namen, Alter oder E-Mail-Adressen von Kunden sehen muss, können Sie auch eine Einschränkung für die zusammengeführte users-Ansicht in der Datei logistics_analysis.lkml hinzufügen, um diese Felder im Explore auszublenden:

  view: +users {
    dimension: age {
    hidden: yes
  }

  dimension: email {
    hidden: yes
  }

  dimension: first_name {
    hidden: yes
  }

  dimension: last_name {
    hidden: yes
  }

  dimension_group: created {
    hidden: yes
  }
}

Den optimierten explorativen Datenanalysen neue Felder hinzufügen

Sie können auch neue Felder erstellen, die für das Marketingteam von Interesse sind. Sie können beispielsweise in der Ansicht „sales“ die Felder Durchschnittlicher Sonderangebotspreis, Gesamtwert des Sonderangebotspreises und Durchschnittliche Ausgaben pro Nutzer hinzufügen:

Die Ansicht „Verkäufe“ enthält die Felder „ID“, „Gewinn“, „Verkaufspreis“ und „Anzahl“ sowie die neuen Felder „Durchschnittlicher Verkaufspreis“, „Durchschnittliche Ausgaben pro Nutzer“ und „Gesamtverkaufspreis“.

Mit der folgenden LookML können Sie diese Felder der Ansicht „sales“ in der Datei „marketing_analysis.lkml“ hinzufügen:


# marketing_analysis.lkml

view: +sales {
  measure: average_sale_price {
    type: average
    value_format_name: usd
    sql: ${sale_price} ;;
    drill_fields: [detail*]
  }

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

  measure: average_spend_per_user {
    type: number
    value_format_name: usd
    sql: 1.0 * ${total_sale_price} / NULLIF(${users.count},0) ;;
    drill_fields: [detail*]
  }
}

Das von Ihnen erstellte explorative Datenanalyse für Marketing enthält neben den Feldern in der zusammengeführten Ansicht Nutzer auch die neuen Felder in der Ansicht Umsatz. Die Dimensionengruppen Zurückgegeben, Versandt, Zugestellt und Erstellt sowie die Dimension Status sind ausgeblendet, da sie für das Marketingteam nicht erforderlich sind.

Ebenso können Sie für das Logistikteam neue Felder erstellen, die für das Logistikteam nützlich sind, z. B. Versandzeit-Buckets und Durchschnittliche Versandzeit:

Im Explore-Tool für das Logistikteam sind jetzt die neuen Felder „Versandzeit-Buckets“ und „Durchschnittliche Versandzeit“ sowie andere Felder zu Versand und Nutzerstandort aufgeführt.

Mit der folgenden LookML können Sie diese Felder der Ansicht „sales“ in der Datei „logistics_analysis.lkml“ hinzufügen:


# logistics_analysis.lkml

view: +sales {
  dimension: shipping_time_buckets {
    case: {
      when: {
        sql: ${shipping_time} <= 7 ;;
        label: "One Week"
      }
      when: {
        sql: ${shipping_time} > 7 AND ${shipping_time} <= 14 ;;
        label: "Two Weeks"
      }
      when: {
        sql:  ${shipping_time} > 14 ;;
        label: "Over Two Weeks"
      }
      else: "Note Shipped"
    }
  }

  measure: average_shipping_time {
    type: average
    value_format_name: decimal_4
    sql: ${shipping_time} ;;
  }
}

Das von Ihnen erstellte Logistics-Explore enthält zusätzlich zu den Feldern in der verknüpften Ansicht Users die neuen Felder in der Ansicht Sales. Die Felder Gewinn, Verkaufspreis und Durchschnittlicher Verkaufspreis aus der Ansicht Verkauf sowie die Felder Alter, E-Mail-Adresse, Vorname, Nachname und Erstellt im Explore Nutzer sind ausgeblendet, da das Logistikteam sie nicht benötigt.

Jedes Team hat jetzt eine explorative Datenanalyse, die besser auf seine spezifischen Anforderungen zugeschnitten ist. Dieser Ansatz erfordert zwar ein wenig mehr Einrichtung, aber wenn Sie die Kerndaten an einem Ort aufbewahren, können Sie sie leichter finden und verwenden.