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

Angenommen, Sie haben viele Nutzer, die eine explorative Datenanalyse gemeinsam nutzen, aber je nach Team oder Region unterschiedliche Anwendungsfälle haben. Jeder Nutzer möchte nur die Felder sehen, die für seine individuellen Anwendungsfälle gelten. Mit LookML-Verfeinerungen können Sie vorhandene Ansichten und Explores anpassen, ohne die ursprüngliche LookML ändern zu müssen. So können Sie die unterschiedlichen Anforderungen Ihrer Nutzer erfüllen. Sie können diese optimierten Ansichten und Explores dann in separaten, speziellen 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. Außerdem enthält es Beispiele zum Ausblenden und Hinzufügen von Feldern in optimierten Inhalten.

Zutaten

Vorbereitung

Beispiel: Mehrere benutzerdefinierte Explores aus derselben Basisansicht erstellen

Angenommen, Sie haben eine explorative Datenanalyse vom Typ Umsätze mit Daten zu Kunden, Käufen, Versand und Standort. Sowohl das Marketing- als auch das Logistikteam Ihres Unternehmens müssen diese Daten untersuchen, wobei sich beide auf unterschiedliche Felder im explorativen Datenanalysetool Umsatz konzentrieren.

Sie möchten nur die Felder in der Explore-Feldauswahl anzeigen, die für jedes Team nützlich sind, um die explorative Datenanalyse zu vereinfachen. Dazu können Sie zwei verschiedene Einschränkungen für die explorative Datenanalyse Umsätze 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 Ansicht auch neue Felder hinzufügen, die den Anforderungen der einzelnen Teams entsprechen.

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, Stadt, Land, Erstellungsdatum, E-Mail-Adresse, Vorname, 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 und die zugehörigen Ansichten verwenden möchten, um für jedes Team eine benutzerdefinierte Explore 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 Verfeinerungen des explorativen Datenanalyse-Objekts Umsatz, 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 für Verweise in der Datei marketing_analysis.lkml 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 Seite LookML-Optimierungen.

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

  5. Fügen Sie den Dateien marketing_analysis.lkml und logistics_analysis.lkml nach Bedarf weitere Verfeinerungen 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 sales-Ansicht in der marketing_analysis.lkml-Datei so verfeinern, dass die Dimensionen Zurückgegeben, Versandt, Zugestellt und Erstellt sowie die Dimension Status ausgeblendet werden, 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 über Kunden wie Namen, Alter oder E-Mail-Adressen 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.sales Sie können beispielsweise in der Ansicht „sales“ die Felder Durchschnittlicher Sonderangebotspreis, Gesamtwert des Sonderangebotspreises und Durchschnittliche Ausgaben pro Nutzer hinzufügen:

In der Verkaufsansicht werden die ID, der Gewinn, der Sonderangebotspreis und die Stückzahl sowie die neuen Felder „Durchschnittlicher Sonderangebotspreis“, „Durchschnittliche Ausgaben pro Nutzer“ und „Gesamtwert des Sonderangebotspreises“ aufgeführt.

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 Datenansicht Nutzer auch die neuen Felder in der Datenansicht Umsatz. Die Dimensionsgruppen 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} ;;
  }
}

Die von Ihnen erstellte explorative Datenanalyse für Logistik enthält neben den Feldern in der zusammengeführten Datenansicht Nutzer auch die neuen Felder in der Datenansicht Umsatz. Die Felder Gewinn, Sonderangebotspreis und Durchschnittlicher Sonderangebotspreis aus der Ansicht Umsätze und die Felder Alter, E-Mail, Vorname, Nachname und Erstellt aus der explorativen Datenanalyse Nutzer sind ausgeblendet, da sie für das Logistikteam nicht erforderlich sind.

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