Benutzerdefinierten Block für den Looker Marketplace entwickeln

Auf dieser Seite wird beschrieben, wie Sie eine benutzerdefinierte Blockierung erstellen, die dem Looker Marketplace hinzugefügt und von anderen Looker-Nutzern aufgerufen werden kann.

Beachten Sie, dass Sie ein Mitglied des Looker-Partnernetzwerks sein müssen oder ein Looker-Kunde sein müssen, um Inhalte auf dem Looker Marketplace einreichen zu können.

Informationen zu bereits erstellten und verfügbaren Looker Blocks finden Sie auf der Dokumentationsseite zu Looker Blocks. Informationen zum Anpassen von über den Marketplace installierten Blockierungen finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke anpassen.

So können Sie eine Blockierung erstellen und allen Looker-Nutzern über den Looker Marketplace zur Verfügung stellen:

  1. Richten Sie die Datenquelle ein und verbinden Sie sie mit Looker.
  2. Erstellen Sie ein Projekt und fügen Sie die erforderlichen Dateien hinzu.
  3. Sperre deine Blockierung.
  4. Reichen Sie Ihre Blockierung für die Looker-Überprüfung ein.

Datenquelle einrichten und mit Looker verbinden

Blöcke sind Datenmodelle. Sie eignen sich am besten, wenn sie für ein bestimmtes, leicht wiederholbares Dataset vorgesehen sind. Die meisten Installationsfehler treten auf, wenn das Dataset des Nutzers nicht mit dem Schema, der Tabelle und den Feldnamen im Block übereinstimmt.

  • Wenn Sie einen Block für ein bestimmtes Dataset erstellen, z. B. Google Analytics-Daten, notieren Sie sich alle Einstellungen oder Anpassungen, die Sie am Dataset vorgenommen haben. Setzen Sie solche Anpassungen wenn möglich auf ein Minimum ein, um die Installation für Ihre Nutzer zu optimieren. Geben Sie die entsprechenden Informationen in einer README-Datei an.
  • Wenn Sie einen Block für ein allgemeines Analysemuster wie die Kohortenbindung erstellen, sollten Sie sich überlegen, welche Felder das Nutzer-Dataset enthalten soll. 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 den Nutzer in einer README-Datei darüber, welche Felder aktualisiert werden müssen.

Nachdem Sie die Datenquelle ermittelt haben, verbinden Sie sie mit Looker, um mit der Modellierung zu beginnen. Falls Sie die Standardverbindungseinstellungen ändern möchten, notieren Sie die entsprechende Datei in der README-Datei.

Projekt erstellen und erforderliche Dateien hinzufügen

Erstellen Sie ein Projekt für den Block. Sie sollten eine Namenskonvention wie
block-<database_dialect>-<role> verwenden, 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 Datei pro Aufruf
  • Eine Erkundungsdatei für jede Erkundung
  • Eine Modelldatei, die alle Ansichtsdateien, Dateien zur explorativen Datenanalyse und LookML-Dashboard-Dateien im Projekt enthält
  • Mindestens drei LookML-Dashboard-Dateien
  • Eine marketplace.json-Datei mit Informationen, die im Marktplatz für diesen Block angezeigt werden
  • Eine LIZENZdatei, die den Text der Open-Source-Lizenz des MIT enthält
  • Eine README-Datei mit Anweisungen und Optionen zur Einrichtung

Nutzer, die Ihren Block installieren, können die grundlegenden Ansichten, Ansichten und Dashboards in einer separaten refinements.lkml-Datei optimieren. In den folgenden Abschnitten werden die einzelnen Dateitypen genauer erklärt:

Manifestdatei erstellen

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

Hier ein Beispiel für eine Manifestdatei:

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
}

Dateien erstellen und ansehen

Erstellen Sie für jede Ansicht eine view.lkml-Datei. Wenn sich die Schema- und Tabellennamen eines Nutzers von denen unterscheiden, müssen Sie die Schema- und Tabellennamen als Konstanten in der Manifestdatei festlegen. Nur dann können Nutzer, die Ihren Block herunterladen, die Schema- und Tabellennamen in der automatisch generierten Manifestdatei aktualisieren. Verweisen Sie dann diese Konstanten in den sql_table_name-Parametern Ihrer Ansichten.

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

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 Analysedatei die erforderlichen Datenansichten für diese Analyse enthält. Entwerfen Sie Ihre explorativen Datenanalysen durchdacht, um logische Joins, Übungen und ausgewählte Suchseiten zu enthalten. Nachdem ein anderer Nutzer die Blockierung vom Marktplatz installiert hat, sollte es für die geschäftlichen Nutzer einfach sein, ihre Daten zu analysieren.

Eine allgemeine Liste der Best Practices für die Modellierung finden Sie in unserem Community-Forum und in der Looker-Hilfe, z. B. Best Practice: LookML Dos and Don'ts und Best Practice: Sustainable, Sustainable LookML.

Hier ein Beispiel für eine explore.lkml-Datei:

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 mit allen Ansichts-, Erkundungs- und Dashboard-Dateien in Ihrem Projekt. Achten Sie darauf, dass der Verbindungsname als LookML-Konstante aus Ihrer Manifestdatei referenziert wird.

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

Hier 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-Dashboard-Dateien erstellen

Damit der Block in den Looker Marketplace aufgenommen werden kann, muss er mindestens drei LookML-Dashboards enthalten, die eine aussagekräftige und nützliche Analyse ermöglichen. Die Dashboards sollten ästhetisch, funktional und umfassend sein und dürfen keine unkenntlich gemachten Daten enthalten.

Obwohl es keine festen Designanforderungen für LookML-Dashboards gibt, empfiehlt Looker die folgenden allgemeinen Best Practices für das Design:

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

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

Auf den Dokumentationsseiten zu Dashboard-Parametern und Dashboard-Elementparametern finden Sie weitere Informationen zum Anpassen von LookML-Dashboards und Visualisierungen in LookML-Dashboards. Ein Beispiel für eine LookML-Dashboard-Datei finden Sie in der Redshift Admin LookML-Dashboard-Datei der Redshift-Administratorblockierung.

Datei marketplace.json erstellen

Erstellen Sie eine marketplace.json-Datei mit Informationen dazu, wie der Eintrag im Marktplatz angezeigt werden soll. Jeder Block im Looker Marketplace muss diese zusätzlichen Informationen bereitstellen, damit Nutzer den Block auswählen können, der ihren Anforderungen am besten entspricht. Die Datei marketplace.json sollte Folgendes enthalten:

  • Felder für den Marktplatz label, category_label und branding
  • Eine Liste von LookML-Konstanten, die von Nutzern ausgefüllt werden müssen, um das LookML-Modell zu füllen (z. B. Verbindungsnamen)

Hier 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 BQ 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 BQ Optimization data (typically cloudaudit_googleapis_com_data_access_*)."
    }
  },
  "models": [
    {
      "name": "block_bigquery_optimization_v2",
      "connection_constant": "CONNECTION_NAME"
    }
  ]
}

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

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

LICENSE-Datei wird erstellt

Alle Looker Blocks müssen unter der Open-Source-Lizenz des MIT lizenziert sein. Fügen Sie den Text aus dieser Lizenz in eine Datei mit dem Namen LIZENZ ein. Ein Beispiel für eine LICENSE-Datei finden Sie in der Redshift Admin Block LICENSE-Datei.

README-Datei erstellen

Die README-Datei sollte alle Anweisungen zur Implementierung des Blocks enthalten und klar angeben, wo Anpassungen nötig sind, wie z. B. in der automatisch generierten Manifestdatei](#the_autoGenerate_manifest_file) oder der Datei für Suchfilter. Ein Beispiel für eine README-Datei finden Sie unter Redshift Admin Block README-Datei.

Wichtige Hinweise zu Ihrer README-Datei:

  • Welche Datenquelle benötigt der Nutzer? Müssen sie für ein Abo bezahlen?
  • Welche Berechtigungen sollte der Datenbanknutzer haben?
  • Welche Looker-Verbindungseinstellungen sind erforderlich?
  • Stimmen die Namen der Blockfelder mit den Feldnamen im Dataset Ihres Nutzers überein? Falls nicht, was sollte der Nutzer ändern?

Automatisch generierte Dateien

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

  • Eine schreibgeschützte Datei marketplace_lock.lkml, die Informationen zum Marktplatz enthält.
  • Eine Manifestdatei, die auf den Eintrag von marketplace_lock.lkml verweist
  • Eine refinements.lkml-Datei mit allen Aufrufen und Entdeckungen für Ihren Block
  • Eine schreibgeschützte Modelldatei, die sowohl die Modelldatei aus Ihrem Block als auch die Datei refinements.lkml enthält

Nutzer, die Ihren Block aus dem Looker Marketplace installieren, können mithilfe der Datei refinements.lkml Ihr LookML optimieren und sogar neue LookML-Dateien hinzufügen. Weitere Informationen darüber, wie Nutzer Ihre Blockierung anpassen können, finden Sie auf der Dokumentationsseite Looker Marketplace-Blockierungen anpassen.

Die automatisch generierte Manifestdatei

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

Die Datei mit den Suchfiltern

Mit der automatisch generierten refinements.lkml-Datei können Nutzer, die Ihren Block installieren, Ansichten und Entdeckungen optimieren, die als Blockierung definiert sind. Hier werden die Nutzer, die Ihre Blockierung herunterladen, den Großteil der LookML-Anpassung entsprechend ihrem Anwendungsfall vornehmen.

Hier 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"
\#     }
\#

Zugriff auf das Blockprojekt

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

Alle Looker Blocks müssen unter der Open-Source-Lizenz des MIT lizenziert sein und der Lizenztext muss in einer LIZENZdatei im Repository enthalten sein.

Blockierung zur Überprüfung einreichen

Sobald Ihre Blockierung fertig ist, folgen Sie der Anleitung unter Inhalte an den Looker Marketplace senden, um unterstützende Dokumente für die Blockierung zu erstellen, reichen Sie die Blockierung zur Überprüfung durch das Looker-Team ein und veröffentlichen Sie die Blockierung im Looker Marketplace.