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 werden kann und auf den andere Looker-Nutzer zugreifen können.

Hinweis: Sie müssen Mitglied des Looker-Partnernetzwerks oder Looker-Kunden sein, um Inhalte an den Looker Marketplace senden 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 Blöcken finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke anpassen.

Wenn Sie einen Block erstellen und für alle Looker-Nutzer über den Looker Marketplace verfügbar machen möchten, folgen Sie der Anleitung auf dieser Seite:

  1. Richten Sie die Datenquelle ein und verknüpfen Sie sie mit Looker.
  2. Erstellen Sie ein Projekt und fügen Sie die erforderlichen Dateien hinzu.
  3. Sperre den Block.
  4. Block für die Looker-Überprüfung einreichen.

Datenquelle einrichten und mit Looker verbinden

Blöcke sind Datenmodelle. Sie funktionieren also am besten, wenn sie für einen bestimmten, leicht wiederholbaren Datensatz konzipiert sind. Die meisten Fehler bei der Installation von Blöcken 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 an dem Dataset vorgenommen haben. Wenn möglich, sollten Sie solche Anpassungen auf ein Minimum beschränken, um die Installation für Ihre Nutzer zu optimieren. Geben Sie die entsprechende Anleitung in einer Readme-Datei an.
  • Wenn Sie einen Block für ein allgemeines Analysemuster erstellen, z. B. zur Kohortenbindung, achten Sie darauf, welche Felder Sie das Dataset Ihres Nutzers erwarten. Höchstwahrscheinlich haben Ihre Nutzer nicht dieselben Schema-, Tabellen- und Feldnamen wie im 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 bestimmt haben, verbinden Sie sie mit Looker, damit Sie mit der Modellierung beginnen können. Wenn Sie eine der Standardverbindungseinstellungen ändern müssen, notieren Sie sich die 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 jeden Explore
  • Eine Modelldatei mit allen Ansichtsdateien, Dateien mit explorativen Datenanalysen und LookML-Dashboarddateien im Projekt
  • Mindestens drei LookML-Dashboard-Dateien
  • Eine marketplace.json-Datei mit Informationen, die im Marketplace-Eintrag für diesen Block angezeigt werden
  • Eine LIZENZ-Datei, die den Text der MIT-Open-Source-Lizenz enthält
  • Eine README-Datei, die die Einrichtungsschritte und Optionen enthält

Benutzer, die deinen Block installieren, können die Basis erforschen die explorativen Datenanalysen, Ansichten und Dashboards in einer separaten refinements.lkml Datei. In den folgenden Abschnitten werden die einzelnen Dateitypen näher erläutert:

Manifestdatei erstellen

Erstellen Sie eine Manifestdatei für Ihr Projekt. Die Manifestdatei muss mit einem Projektnamen beginnen und dann einige LookML-Konstanten definieren, die Ihre Nutzer ändern sollen. Sie sollten beispielsweise den Looker-Verbindungsnamen als Konstante mit export: override_required definieren, damit Nutzer ihn durch ihren eigenen Verbindungsnamen überschreiben können.

Hier ein Beispiel einer 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 Datenansicht die Datei view.lkml. Wenn sich die Schema- und Tabellennamen eines Nutzers von Ihren unterscheiden, müssen Sie das Schema und die Tabellennamen in Ihrer Manifestdatei als Konstanten definieren, damit Nutzer, die den Block herunterladen, die Schema- und Tabellennamen in der automatisch generierten Manifestdatei aktualisieren können. 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}
  }

}

Als Nächstes erstellen Sie eine oder mehrere explore.lkml-Dateien. Jede explorative Datenanalysedatei muss die erforderlichen Datenansichten für diese explorative Datenanalyse enthalten. Entdecke deine explorativen Datenanalysen durchdacht und mit logischen Joins, Übungen und ausgewählten Seiten zum Entdecken. Nachdem ein anderer Nutzer den Block aus dem Marketplace installiert hat, sollte es für die geschäftlichen Nutzer einfach sein, sofort mit der Analyse ihrer Daten zu beginnen.

Eine allgemeine Liste der Best Practices für die Modellierung finden Sie in unserem Community-Forum und in den Best Practices für Looker, z. B. Best Practices: LookML-Tipps

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"

  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-, explorativen 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-Dashboarddateien erstellen

Für die Aufnahme in den Looker Marketplace muss jeder Block mindestens drei LookML-Dashboards enthalten, die eine aussagekräftige und nützliche Analyse bieten. Die Dashboards sollten ästhetisch, funktional und umfassend sein und dürfen keine unkenntlich gemachten Daten enthalten.

Für LookML-Dashboards gelten zwar keine festen Designanforderungen, aber Looker empfiehlt die folgenden allgemeinen Best Practices für das Design:

  • Einheitliche Farbpalette im Dashboard
  • Mindestens sieben Kacheln
  • Mindestens drei verschiedene Visualisierungstypen (z. B. einzelner Wert, Balken und Zeile)

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

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

Datei marketplace.json erstellen

Erstellen Sie eine marketplace.json-Datei mit Informationen zur Anzeige des Eintrags im Marketplace. Für jeden Block im Looker Marketplace müssen die zusätzlichen Informationen angegeben werden, damit Nutzer den für sie passenden Block auswählen können. Die Datei marketplace.json sollte Folgendes enthalten:

  • Felder label für den Marktplatz, category_label und branding
  • Eine Liste der 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 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 Marketplace-Eintrag, der von dieser marketplace.json-Datei generiert werden würde.

Ein Beispiel für einen Marketplace-Eintrag.

  • Das Feld "label" steuert den Titel des Blocks. In diesem Beispiel ist das Google BigQuery Performance.
  • Über das Feld „"tagline"“ wird der erste Absatz des Marketplace-Eintrags festgelegt.
  • Mit dem Feld „"image_uri"“ wird das Bild verwaltet, das links oben im Marketplace-Eintrag angezeigt wird. In diesem Beispiel ist dies das Google Cloud-Logo.
  • Im Feld "constants" werden Nutzer während der Installation aufgefordert, ihre Konstanten 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 daher vor der Installation aufgefordert, Werte für diese drei Felder anzugeben.

LIZENZ-Datei erstellen

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

Eine README-Datei erstellen

Die README-Datei sollte alle Anweisungen zur Implementierung der Blockierung enthalten und explizit angeben, wo Anpassungen vorgenommen werden müssen, z. B. in der automatisch generierten Manifestdatei](#the_autogenerate_manifest_file) oder in der Datei mit den Referenzdateien. Ein Beispiel für eine Readme-Datei finden Sie in der Readme-Datei für Redshift Admin Block.

Wichtige Hinweise für Ihre 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 Feldnamen im Feld mit den Feldnamen im Dataset Ihres Nutzers überein? Falls nicht, was sollte der Nutzer ändern?

Automatisch generierte Dateien

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

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

Nutzer, die Ihren Block über den Looker Marketplace installieren, können mit der Datei refinements.lkml Ihr LookML verfeinern und sogar neue LookML-Dateien hinzufügen. Weitere Informationen dazu, wie Nutzer die Blockierung anpassen können, finden Sie auf der Dokumentationsseite zum Anpassen von Looker Marketplace-Blöcken.

Die automatisch generierte Manifestdatei

Durch 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 den Nutzern auf der Benutzeroberfläche für den Blockdownload festgelegt werden.

Die Datei „Suchfilter“

Mit der automatisch generierten Datei „refinements.lkml“ können Nutzer, die Ihren Block installieren, die für Ihren Block definierten Ansichten und Auswertungen verfeinern. Das bedeutet, dass Nutzer, die Ihren Block herunterladen, die Bulk-Anpassung von LookML vornehmen, um ihren Anwendungsfall zu berücksichtigen.

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

Blockprojekt für alle zugänglich machen

Hosten Sie Ihren Block-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 im Repository in einer LIZENZ-Datei enthalten sein.

Blockierung zur Überprüfung einreichen

Sobald Ihre Blockierung fertig ist, können Sie anhand der Anleitung unter Inhalte an den Looker Marketplace senden die erforderlichen Dokumente erstellen, sie zur Überprüfung einreichen und sie dann im Looker Marketplace veröffentlichen.