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 aufgerufen werden kann.

Bitte beachten Sie, dass Sie Mitglied des Looker-Partnernetzwerks oder Looker-Kunde sein müssen, um Inhalte an den Looker Marketplace senden zu können.

Informationen zu Looker Blocks, die bereits erstellt und zur Nutzung verfügbar sind, finden Sie auf der Dokumentationsseite Looker Blocks. Informationen zum Anpassen von Blöcken, die Sie aus dem Marketplace installiert haben, finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke anpassen.

Führen Sie die auf dieser Seite beschriebenen Schritte aus, um einen Block zu entwickeln und allen Looker-Benutzern über den Looker Marketplace zur Verfügung zu stellen:

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

Datenquelle einrichten und mit Looker verbinden

Blöcke sind Datenmodelle. Daher funktionieren sie am besten, wenn sie für ein bestimmtes, einfach wiederholbares Dataset entwickelt wurden. Die meisten Fehler bei der Blockinstallation 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 die Einstellungen oder Anpassungen, die Sie am Dataset vorgenommen haben. Wenn möglich, solltest du solche Anpassungen auf ein Minimum beschränken, um die Installation für deine Nutzer zu vereinfachen. Stellen Sie eine genaue Anleitung in einer Readme-Datei bereit.
  • Wenn Sie einen Block für ein allgemeines Analysemuster wie die Kohortenbindung erstellen, achten Sie darauf, welche Felder das Dataset Ihrer Nutzer 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 Ihre Nutzer in einer Readme-Datei darüber, welche Felder aktualisiert werden müssen.

Nachdem Sie die Datenquelle ermittelt haben, verbinden Sie sie mit Looker, damit Sie mit der Modellierung beginnen können. Wenn Sie eine der Standardverbindungseinstellungen ändern müssen, machen Sie eine Notiz in der Readme-Datei.

Projekt erstellen und erforderliche Dateien hinzufügen

Erstellen Sie ein Projekt für den Block. 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 andere Konstanten definiert
  • Eine Ansichtsdatei für jede Ansicht
  • Eine Explore-Datei für jedes Explore
  • Eine Modelldatei, die alle Ansichtsdateien, Explore-Dateien und LookML-Dashboard-Dateien im Projekt enthält
  • Mindestens drei LookML-Dashboard-Dateien
  • Eine marketplace.json-Datei mit Informationen, die im Marketplace-Eintrag für diese Blockierung angezeigt werden
  • Eine LIZENZ-Datei, die den Text der MIT-Open-Source-Lizenz enthält
  • Eine Readme-Datei mit den Einrichtungsanleitungen und -optionen

Nutzer, die Ihren Block installieren, können die Basis-Explores, Ansichten und Dashboards in einer separaten refinements.lkml-Datei verfeinern. In den folgenden Abschnitten werden die einzelnen erforderlichen Dateitypen näher 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 Ihre Nutzer ändern können. Beispielsweise sollten Sie den Looker-Verbindungsnamen mit export: override_required als Konstante definieren, damit Nutzer ihn mit ihrem eigenen Verbindungsnamen überschreiben können.

Hier ist 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
}

Ansichts- und Explore-Dateien erstellen

Erstellen Sie eine view.lkml-Datei für jede Ansicht. Wenn sich die Schema- und Tabellennamen eines Nutzers von Ihren unterscheiden, definieren Sie die Schema- und Tabellennamen in der Manifestdatei als constants, damit Nutzer, die Ihren Block herunterladen, das Schema und die Tabellennamen in der automatisch generierten Manifestdatei aktualisieren können. Diese Konstanten referenzieren Sie dann in den sql_table_name-Parametern Ihrer Ansichten.

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

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 diesen Explore enthält. Gestalten Sie Ihre Explores so, dass sie logische Joins, Drills und ausgewählte Explore-Seiten enthalten. Nachdem ein anderer Nutzer den Block über den Marketplace installiert hat, sollte es für seine geschäftlichen Nutzer einfach sein, einzusteigen und mit der Analyse der 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 – Dos and Don'ts und Best Practice: Intelligenter, pflegebarer LookML-Code schreiben.

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, die alle Ansichts-, Explore- und Dashboarddateien in Ihrem Projekt enthält. Achten Sie darauf, dass in der Manifestdatei auf den Verbindungsnamen als LookML-Konstante verwiesen 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 sie in den Looker Marketplace aufgenommen werden können, muss jeder Block mindestens drei LookML-Dashboards enthalten, die aussagekräftige, hilfreiche Analysen liefern. Die Dashboards sollten ästhetisch, funktional und umfassend sein und 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 gesamten Dashboard
  • Mindestens sieben Kacheln
  • Mindestens drei verschiedene Visualisierungsarten (z. B. Einzelwert, Balken und Linie)

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

Weitere Informationen zum Anpassen von LookML-Dashboards bzw. der 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 dazu, wie der Eintrag im Marketplace angezeigt werden soll. Jeder Block im Looker Marketplace muss diese zusätzlichen Informationen bereitstellen, damit Benutzer den Block auswählen können, der ihre Anforderungen am besten erfüllt. Die Datei marketplace.json sollte Folgendes enthalten:

  • Felder „label“, „category_label“ und „branding“ des Marktplatzes
  • Eine Liste der LookML-constants, die von Nutzern ausgefüllt werden müssen, um die LookML des Modells auszufüllen (z. B. Verbindungsnamen)

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

{
  "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 durch diese marketplace.json-Datei generiert würde.

Beispiel für einen Marketplace-Eintrag

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

LIZENZ-Datei erstellen

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

Erstellen einer Readme-Datei

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 der Optimierungsdatei. Ein Beispiel für eine Readme-Datei finden Sie in der Readme-Datei für den Redshift-Admin-Block.

Wichtige Hinweise zu Ihrer README-Datei:

  • Welche Datenquelle benötigt der Nutzer? Muss der Kunde für ein Abo bezahlen?
  • Welche Berechtigungen sollte der Datenbanknutzer haben?
  • Welche Looker-Verbindungseinstellungen sind erforderlich?
  • Stimmen die Blockfeldnamen mit den Feldnamen im Dataset des Nutzers überein? Wenn nicht, was sollten Ihre Nutzenden ä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 automatisch die folgenden Dateien für den Nutzer generiert:

  • Eine schreibgeschützte marketplace_lock.lkml-Datei, 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 Explores aus Ihrem Block enthält
  • Eine schreibgeschützte Modelldatei, die sowohl die Modelldatei aus dem Block als auch die Datei refinements.lkml enthält

Nutzer, die Ihren Block aus dem Looker Marketplace installieren, können die Datei refinements.lkml verwenden, um Ihren LookML-Code zu optimieren und sogar neue LookML-Dateien hinzufügen. Weitere Informationen dazu, wie Nutzer Ihren Block anpassen können, finden Sie auf der Dokumentationsseite Looker Marketplace-Blöcke 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 Block-Manifestdatei definierten LookML-Konstanten können entweder in der automatisch generierten Manifestdatei bearbeitet oder von Ihren Nutzern in der Benutzeroberfläche zum Blockieren von Downloads festgelegt werden.

Die Datei mit den Suchfiltern

Die automatisch generierte refinements.lkml-Datei ermöglicht es Nutzern, die Ihren Block installieren, Ansichten und Explores zu verfeinern, die Ihr Block definiert haben. Hier nehmen Benutzer, die Ihren Block herunterladen, den Großteil der LookML-Anpassung an ihren Anwendungsfall vor.

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

Das Bausteinprojekt barrierefrei machen

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

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

Block zur Überprüfung einreichen

Sobald Ihr Block zur Einreichung bereit ist, folgen Sie der Anleitung unter Inhalte beim Looker Marketplace einreichen, um unterstützende Dokumentation für Ihren Block zu erstellen. Reichen Sie den Block dann zur Überprüfung an das Looker-Team ein und veröffentlichen Sie den Block im Looker Marketplace.