Benutzerdefinierten Block für den Looker Marketplace entwickeln

Auf dieser Seite wird beschrieben, wie Sie einen benutzerdefinierten Block erstellen, der dem Looker Marketplace hinzugefügt und von anderen Looker-Nutzern verwendet werden kann.

Sie müssen Mitglied des Looker Partner Networks oder Looker-Kunde sein, um Inhalte im Looker Marketplace einreichen zu können.

Informationen zu bereits erstellten und verfügbaren Looker-Blöcken finden Sie auf der Dokumentationsseite Looker-Blöcke. Informationen zum Anpassen von Blöcken, die Sie über den Marketplace installiert haben, finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke anpassen.

Wenn Sie einen Block entwickeln und allen Looker-Nutzern über den Looker Marketplace zur Verfügung stellen möchten, folgen Sie der Anleitung auf dieser Seite:

  1. Datenquelle einrichten und mit Looker verbinden
  2. Erstellen Sie ein Projekt und fügen Sie die erforderlichen Dateien hinzu.
  3. Machen Sie Ihren Block barrierefrei.
  4. Reichen Sie Ihren Block zur Überprüfung in Looker ein.

Datenquelle einrichten und mit Looker verbinden

Blöcke sind Datenmodelle und funktionieren daher am besten, wenn sie für einen bestimmten, leicht wiederholbaren Datensatz entwickelt wurden. Die meisten Blockinstallationsfehler treten auf, wenn das Dataset des Nutzers nicht mit den Schema-, Tabellen- und Feldnamen im Block übereinstimmt.

  • Wenn Sie einen Block für einen bestimmten Datensatz erstellen, z. B. Google Analytics-Daten, notieren Sie sich alle Einstellungen oder Anpassungen, die Sie am Datensatz vorgenommen haben. Beschränken Sie solche Anpassungen nach Möglichkeit, um die Installation für Ihre Nutzer zu optimieren. Geben Sie eine detaillierte Anleitung in einer README-Datei an.
  • Wenn Sie einen Block für ein allgemeines Analysemuster wie die Kundenbindungsrate erstellen, notieren Sie sich, welche Felder das Dataset Ihres Nutzers voraussichtlich enthalten wird. Höchstwahrscheinlich haben Ihre Nutzer nicht dieselben Schema-, Tabellen- und Feldnamen wie in Ihrem Dataset. Verwenden Sie LookML-Konstanten für Tabellen- und Feldnamen und informieren Sie die Nutzer in einer README-Datei darüber, welche Felder sie aktualisieren müssen.

Nachdem Sie die Datenquelle ausgewählt haben, verknüpfen Sie sie mit Looker, damit Sie mit der Modellierung beginnen können. Wenn Sie eine der Standardverbindungseinstellungen ändern müssen, notieren Sie dies in Ihrer README-Datei.

Projekt erstellen und erforderliche Dateien hinzufügen

Erstellen Sie ein Projekt, das Ihren Block darstellt. Verwenden Sie eine Namenskonvention wie block-<database_dialect>-<role> (z. B. block-redshift-admin).

Erstellen Sie als Nächstes die folgenden Dateien in Ihrem Projekt:

  • Eine Manifestdatei, die den Projektnamen, den Verbindungsnamen und alle anderen Konstanten definiert
  • Eine Ansichtsdatei für jede Ansicht
  • Eine Explore-Datei für jedes Explore
  • Eine Modelldatei, die alle Ansichts-, Explore- und LookML-Dashboard-Dateien im Projekt enthält
  • Mindestens drei LookML-Dashboard-Dateien
  • Eine marketplace.json-Datei mit Informationen, die im Marktplatzeintrag für diesen Block angezeigt werden
  • Eine LICENSE-Datei mit dem Text der MIT-Open-Source-Lizenz
  • Eine README-Datei mit einer Anleitung und Optionen zur Einrichtung

Nutzer, die Ihren Block installieren, können die zugrunde liegenden explorativen Datenanalysen, Datenansichten und Dashboards in einer separaten refinements.lkml-Datei optimieren. In den folgenden Abschnitten werden die einzelnen erforderlichen Dateitypen genauer erläutert:

Manifestdatei erstellen

Erstellen Sie eine Manifestdatei für Ihr Projekt. Die Manifestdatei sollte mit einem Projektnamen beginnen und dann einige LookML-Konstanten definieren, die von Nutzern geändert werden können. Sie sollten den Looker-Verbindungsnamen beispielsweise als Konstante mit export: override_required definieren, damit Nutzer ihn mit ihrem eigenen Verbindungsnamen überschreiben können.

Hier ist eine Beispielmanifestdatei:

project_name: "block-ga-360"

################# Constants ################

## Used in google_analytics_block.model connection param
constant: CONNECTION_NAME {
  value: "looker-private-demo"
  export: override_required
}

## Used in ga_sessions.view sql_table_name
constant: SCHEMA_NAME {
  value: "bigquery-public-data.google_analytics_sample"
  export: override_optional
}

constant: GA360_TABLE_NAME {
  value: "ga_sessions_*"
  export: override_optional
}

Ansichts- und Explore-Dateien erstellen

Erstellen Sie für jede Ansicht eine view.lkml-Datei. Wenn sich die Schema- und Tabellennamen eines Nutzers von Ihren unterscheiden, müssen Sie sie in Ihrer Manifestdatei als Konstanten definieren, damit Nutzer, die Ihren Block herunterladen, die Schema- und Tabellennamen in der automatisch generierten Manifestdatei aktualisieren können. Verweise dann in den sql_table_name-Parametern deiner Datenansichten auf diese Konstanten.

Hier ein Beispiel für eine Blockdatei view.lkml:

view: user_facts {

  # SCHEMA_NAME and GA360_TABLE_NAME are constants
  sql_table_name: @{SCHEMA_NAME}.@{GA360_TABLE_NAME} ;;

  dimension: clientID {
    type: string
    sql: ${TABLE.clientId}
  }

}

Erstellen Sie als Nächstes eine oder mehrere explore.lkml-Dateien. Achten Sie darauf, dass jede Explore-Datei die erforderlichen Ansichten für das Explore enthält. Planen Sie Ihre Explores sorgfältig, damit sie logische Zusammenführungen, Drilldowns und ausgewählte Explore-Seiten enthalten. Nachdem ein anderer Nutzer den Block aus dem Marketplace installiert hat, sollten die Geschäftsnutzer einfach loslegen und ihre Daten analysieren können.

Eine allgemeine Liste mit Best Practices für die Modellierung finden Sie in unserem Community-Forum und in den Looker-Best Practices, z. B. Best Practice: Do's and Don'ts für LookML und Best Practice: Nachhaltige, wartbare LookML schreiben.

Hier sehen Sie eine explore.lkml-Beispieldatei:

include: "/Google_Analytics/Sessions/*.view.lkml"

explore: future_input {
  view_label: "Audience Traits"
  label: "BigQuery ML Customer Likelihood to Purchase"
  description: "This explore allows you to slice and dice likeliness to purchase scores by different customer traits to see how they differ. The default range of data you are looking at is in the past 30 days"
  join: future_purchase_prediction {
    type: left_outer
    sql_on: ${future_purchase_prediction.clientId} = ${future_input.client_id} ;;
    relationship: one_to_one
  }
}

Modelldatei erstellen

Erstellen Sie eine Modelldatei, die alle Ansichts-, Explore- und Dashboarddateien in Ihrem Projekt enthält. Der Verbindungsname muss in Ihrer Manifestdatei als LookML-Konstante referenziert werden.

Definieren Sie mindestens eine Datengruppe, um eine Cache-Richtlinie festzulegen.

Hier ist ein Beispiel für eine Modelldatei:

connection: "@{CONNECTION_NAME}"

include: "/views/*.view.lkml"
include: "/explores/*.explore.lkml"
include: "/dashboards/*.dashboard.lookml"

datagroup: nightly {
  sql_trigger: SELECT TIMEZONE('US/Pacific',GETDATE())::DATE;;
}

LookML-Dashboarddateien erstellen

Damit ein Block in den Looker Marketplace aufgenommen werden kann, muss er mindestens drei LookML-Dashboards enthalten, die aussagekräftige, hilfreiche Analysen bieten. Die Dashboards sollten ansprechend, funktional und umfassend sein und keine unkenntlich gemachten Daten enthalten.

Es gibt zwar keine strengen Designanforderungen für LookML-Dashboards, aber Looker empfiehlt die folgenden allgemeinen Design-Best Practices:

  • Einheitliche Farbpalette im gesamten Dashboard
  • Mindestens sieben Kacheln
  • Mindestens drei verschiedene Visualisierungstypen (z. B. Einzelwert, Balken und Linie)

Benutzerdefinierte Visualisierungen werden beim Entwickeln von Dashboards für Blöcke nicht unterstützt. Verwenden Sie stattdessen die nativen Visualisierungstypen von Looker.

Weitere Informationen zum Anpassen von LookML-Dashboards und den Visualisierungen in LookML-Dashboards finden Sie auf den Dokumentationsseiten Dashboard-Parameter und Dashboard-Element-Parameter. Ein Beispiel für eine LookML-Dashboard-Datei finden Sie in der LookML-Dashboard-Datei für Redshift Admin im Redshift Admin-Block.

Datei marketplace.json erstellen

Erstellen Sie eine marketplace.json-Datei, um anzugeben, wie der Eintrag im Marketplace angezeigt werden soll. Für jeden Block im Looker Marketplace müssen diese zusätzlichen Informationen angegeben werden, damit Nutzer den Block auswählen können, der ihren Anforderungen am besten entspricht. Ihre marketplace.json-Datei sollte Folgendes enthalten:

  • Marketplace-Felder label, category_label und branding
  • Eine Liste von LookML-Konstanten, die von Nutzern ausgefüllt werden müssen, um die LookML des Modells zu füllen (z. B. Verbindungsnamen)

Hier ist ein Beispiel für eine marketplace.json-Datei für den Google BigQuery-Leistungsblock:

{
  "label": "Google BigQuery Performance",
  "category_label": "Models",
  "branding": {
    "image_uri": "https://marketplace-api.looker.com/block-icons/google-cloud.png",
    "tagline": "This Block provides a comprehensive overview of all cost and performance data for one or multiple BigQuery projects, enabling users to effectively monitor BigQuery usage down to a per user level. It can be used to set up alerts to long running or high cost queries."
  },

  "constants": {
    "CONNECTION_NAME": {
      "label": "Connection Name",
      "value_constraint": "connection"
    },
    "SCHEMA_NAME": {
      "label": "Schema Name"
    },
    "AUDIT_LOG_EXPORT_TABLE_NAME": {
      "label": "Audit Log Export Table Name",
      "description": "The table name of your BigQuery Optimization data (typically cloudaudit_googleapis_com_data_access_*)."
    }
  },
  "models": [
    {
      "name": "block_bigquery_optimization_v2",
      "connection_constant": "CONNECTION_NAME"
    }
  ]
}

Der folgende Screenshot zeigt den Marktplatzeintrag, der von dieser marketplace.json-Datei generiert würde.

Ein Beispiel für einen Marketplace-Eintrag.

  • Das Feld "label" steuert den Titel des Blocks. In diesem Beispiel ist das Google BigQuery-Leistung.
  • Im Feld "tagline" wird der erste Absatz des Marketplace-Eintrags festgelegt.
  • Mit dem Feld "image_uri" wird das Bild gesteuert, das oben links im Marktplatzeintrag angezeigt wird. In diesem Beispiel ist das das Google Cloud-Logo.
  • Im Feld "constants" werden Nutzer aufgefordert, während der Installation ihre Konstanten in der Marketplace-Benutzeroberfläche einzugeben. In diesem Beispiel sind in der Datei marketplace.json drei Konstanten aufgeführt (CONNECTION_NAME, SCHEMA_NAME und AUDIT_LOG_EXPORT_TABLE_NAME). Der Nutzer wird daher vor der Installation aufgefordert, Werte für diese drei Felder anzugeben.

Lizenzdatei erstellen

Alle Looker-Blöcke müssen unter der MIT-Open-Source-Lizenz lizenziert sein. Fügen Sie den Text dieser Lizenz in eine Datei mit dem Namen LICENSE ein. Ein Beispiel für eine LICENSE-Datei finden Sie in der LICENSE-Datei für Redshift-Administratorblöcke.

README-Datei erstellen

Die README-Datei sollte alle Anweisungen zur Implementierung des Blocks enthalten und explizit angeben, wo Anpassungen erforderlich sind, z. B. in der automatisch generierten Manifestdatei (#the_autogenerated_manifest_file) oder in der Datei mit Optimierungen. Ein Beispiel für eine README-Datei finden Sie in der README-Datei für Redshift-Administratorblöcke.

Folgendes sollten Sie bei Ihrem README beachten:

  • Welche Datenquelle benötigt der Nutzer? Müssen sie ein Abo abschließen?
  • Welche Berechtigungen sollte der Datenbanknutzer haben?
  • Welche Looker-Verbindungseinstellungen sind erforderlich?
  • Stimmen die Feldnamen der Blöcke mit den Feldnamen im Datensatz des Nutzers überein? Falls nicht, was sollte der Nutzer ändern?

Automatisch generierte Dateien

Wenn Nutzer Ihren Block installieren, wird in ihrer Looker-Instanz ein neues Looker-Projekt mit den Dateien Ihres Projekts als schreibgeschützte Dateien erstellt. Außerdem werden die folgenden Dateien automatisch für den Nutzer generiert:

  • Eine schreibgeschützte marketplace_lock.lkml-Datei mit Informationen zum Marktplatzeintrag
  • Eine Manifestdatei, die auf den Eintrag aus marketplace_lock.lkml verweist
  • Eine refinements.lkml-Datei mit allen Ansichten und Explores aus Ihrem Block
  • Eine schreibgeschützte Modelldatei, die sowohl die Modelldatei aus Ihrem Block als auch die refinements.lkml-Datei enthält

Nutzer, die Ihren Block über den Looker Marketplace installieren, können die refinements.lkml-Datei verwenden, um Ihre LookML zu optimieren und sogar neue LookML-Dateien hinzuzufügen. Weitere Informationen dazu, wie Nutzer Ihren Block anpassen können, finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke anpassen.

Die automatisch erstellte Manifestdatei

Über die automatisch generierte Manifestdatei können Nutzer, die Ihren Block installieren, Variablen wie den Verbindungsnamen festlegen. Die in der Blockmanifestdatei definierten LookML-Konstanten können entweder in der automatisch generierten Manifestdatei bearbeitet oder von Nutzern auf der Benutzeroberfläche für den Blockdownload festgelegt werden.

Die Datei mit den Optimierungen

Mit der automatisch generierten refinements.lkml-Datei können Nutzer, die Ihren Block installieren, Ansichten und Explores verfeinern, die in Ihrem Block definiert sind. Hier können Nutzer, die Ihren Block herunterladen, die LookML-Anpassung an ihren Anwendungsfall vornehmen.

Hier sehen Sie ein Beispiel für eine automatisch generierte refinements.lkml-Datei:

include: "//ga360-v2/**/*.view.lkml"
include: "//ga360-v2/**/*.explore.lkml"

\# Use LookML refinements to refine views and explores that are defined in the remote project.
\# Learn more at: https://docs.looker.com/data-modeling/learning-lookml/refinements
\#
\#
\# For example we could add a new dimension to a view:
\#     view: +flights {
\#       dimension: air_carrier {
\#         type: string
\#         sql: ${TABLE}.air_carrier ;;
\#       }
\#     }
\#
\# Or apply a label to an explore:
\#     explore: +aircraft {
\#       label: "Aircraft Simplified"
\#     }
\#

Blockprojekt zugänglich machen

Hosten Sie die LookML Ihres Blocks in einem öffentlich zugänglichen GitHub-Repository.

Alle Looker-Blöcke müssen unter der MIT-Open-Source-Lizenz lizenziert sein. Der Lizenztext muss in einer LICENSE-Datei im Repository enthalten sein.

Blockierung zur Überprüfung einreichen

Sobald Ihr Block zur Einreichung bereit ist, folgen Sie der Anleitung unter Inhalte im Looker Marketplace einreichen, um ergänzende Dokumente für Ihren Block zu erstellen, ihn zur Überprüfung an das Looker-Team zu senden und ihn im Looker Marketplace zu veröffentlichen.