Kachelerweiterungen erstellen

Ab Looker 24.0 können Erweiterungen so entwickelt werden, dass sie in einer Kachel in Dashboards ausgeführt werden. Erweiterungen, die die Ausführung als Kachel oder Visualisierung unterstützen, können hinzugefügt werden, während sich das Dashboard im Bearbeitungsmodus befindet, oder in einem Dashboard als Visualisierung aus einem Explore gespeichert. Erweiterungen können auch als Tiles in LookML-Dashboards konfiguriert werden.

Beispiele für Erweiterungen, die als Dashboard-Kacheln verwendet werden können, sind verfügbar:

Looker Extension SDK mit Kachelerweiterungen verwenden

Für Kachelerweiterungen muss der Parameter mount_points in der Projektmanifestdatei von LookML definiert sein, damit Erweiterungen als Kacheln in ein Dashboard geladen werden können. Es gibt zwei Arten von mount_points, die sich auf die Kachelerweiterungen beziehen:

  mount_points: {
    dashboard_vis: yes
    dashboard_tile: yes
    standalone: yes
  }
  • dashboard_vis: Wenn diese Option aktiviert ist, wird die Erweiterung in den Visualisierungsoptionen eines Explores angezeigt. Dort kann die Erweiterung als Visualisierung ausgewählt und als Dashboardkachel gespeichert werden. Wenn das Dashboard ausgeführt wird, führt das Dashboard die mit der Tile verknüpfte Abfrage aus und macht die Daten für die Erweiterung verfügbar. Dies funktioniert ähnlich wie benutzerdefinierte Visualisierungen. Der Hauptunterschied zwischen einer benutzerdefinierten Visualisierung und einer Erweiterung, die in einer Dashboardkachel mit aktiviertem dashboard_vis ausgeführt wird, besteht darin, dass die Erweiterung Looker API-Aufrufe ausführen kann.
  • dashboard_tile: Wenn diese Option aktiviert ist, wird die Erweiterung im Steuerfeld Erweiterungen angezeigt, wenn ein Nutzer ein Dashboard bearbeitet und die Option Erweiterungen auswählt, nachdem er auf die Schaltfläche Hinzufügen geklickt hat. Dieser Erweiterungstyp ist für das Abrufen der eigenen Daten verantwortlich, anstatt dass die Erweiterung von der Kachelabfrage automatisch mit Daten versorgt wird.

Der zusätzliche Bereitstellungspunkt standalone sorgt dafür, dass die Erweiterung im Bereich Applications (Anwendungen) des Looker-Hauptmenüs angezeigt wird. Für eine Erweiterung können mehrere Bereitstellungspunkte definiert sein. Während der Laufzeit wird die Erweiterung darüber informiert, wie sie bereitgestellt wurde, und sie kann ihr Verhalten entsprechend anpassen. Beispielsweise muss bei standalone-Erweiterungen möglicherweise eine eigene Höhe festgelegt werden, bei Kachelerweiterungen nicht.

Zusätzliche APIs für Tile-Erweiterung

Tile-Erweiterungen werden zur Laufzeit mit zusätzlichen APIs und Daten bereitgestellt. Diese werden aus dem Erweiterungskontext abgerufen:

const {
  tileSDK,
  tileHostData,
  visualizationData,
  visualizationSDK,
} = useContext(ExtensionContext40)
  • tileSDK: Bietet kachelspezifische Funktionen, mit denen die Erweiterung mit dem Host des Looker-Dashboards interagieren kann. Beispielsweise können Sie damit zulassen, dass die Erweiterung Fehlermeldungen anzeigen und löschen kann.
  • tileHostData: stellt Kacheldaten für die Erweiterung bereit. Die Daten werden basierend auf den Interaktionen mit dem Hosting-Dashboard automatisch aktualisiert. Ein Beispiel ist der isDashboardEditing-Indikator.
  • visualizationSDK: Bietet visualisierungsspezifische Funktionen, die es der Erweiterung ermöglichen, mit dem Host des Looker-Dashboards zu interagieren. Ein Beispiel hierfür ist die Funktion updateRowLimit.
  • visualizationData: stellt der Erweiterung Visualisierungsdaten zur Verfügung. Die Daten werden basierend auf den Interaktionen mit dem Hosting-Dashboard automatisch aktualisiert. Die Daten ähneln den Daten, die in benutzerdefinierten Visualisierungen bereitgestellt werden.

Reaktive Erweiterungen erstellen

Die Größe der iFrames, in denen Erweiterungen ausgeführt werden, wird automatisch angepasst, wenn die Größe des übergeordneten Looker-Hostfensters angepasst wird. Dies wird automatisch im Inhaltsfenster des iFrames widergespiegelt. Die iFrame-Komponente hat keine Auffüllung oder Rand. Es liegt an der Erweiterung, einen eigenen Abstand und Rand bereitzustellen, damit sie mit der Looker-Anwendung übereinstimmen. Bei eigenständigen Erweiterungen muss die Höhe der Erweiterung von der jeweiligen Erweiterung festgelegt werden. Bei Erweiterungen, die in Dashboardkacheln oder Explore-Visualisierungen ausgeführt werden, wird das iFrame-Inhaltsfenster automatisch auf die Höhe gesetzt, die vom iFrame verfügbar gemacht wird.

Überlegungen zum Rendering

Beachten Sie, dass Kachelerweiterungen gerendert werden, wenn ein Dashboard als PDF oder Bild heruntergeladen wird. Der Renderer erwartet, dass die Kachel sie benachrichtigt, wenn das Rendern abgeschlossen ist. Andernfalls reagiert der Renderer nicht mehr. Im folgenden Beispiel wird gezeigt, wie der Renderer darüber informiert wird, dass die Kachel gerendert wurde.

  const { extensionSDK } = useContext(ExtensionContext40)

  useEffect(() => {
    extensionSDK.rendered()
  }, [])

Animationen sollten beim Rendern ebenfalls deaktiviert sein. Im folgenden Beispiel sind Animationskonfigurationen beim Rendern deaktiviert:

  const { lookerHostData} = useContext(ExtensionContext40)
  const isRendering = lookerHostData?.isRendering

  const config = isRendering
    ? {
        ...visConfig,
        valueCountUp: false,
        waveAnimateTime: 0,
        waveRiseTime: 0,
        waveAnimate: false,
        waveRise: false,
      }
    : visConfig

  if (mountPoint === MountPoint.dashboardVisualization) {
    return <VisualizationTile config={config} />
  }

Funktionen und Eigenschaften des Tile-SDK

Das Tile-SDK bietet Funktionen, mit denen eine Kachelerweiterung mit ihrem Hosting-Dashboard interagieren kann.

Die verfügbaren Funktionen und Eigenschaften sind in der folgenden Tabelle aufgeführt:

Funktion oder Eigenschaft Beschreibung
tileHostData (Property) Hostdaten, die für die Kachelerweiterung spezifisch sind. Weitere Informationen findest du im Abschnitt Tile SDK-Daten.
addError Beim Aufruf zeigt das Dashboard oder Explore eine Fehlermeldung unter der Visualisierung an.
clearError Beim Aufruf blendet das Dashboard oder Explore alle Fehlermeldungen aus, die unter der Visualisierung angezeigt werden.
openDrillMenu Bei Visualisierungserweiterungen wird durch diesen Aufruf ein Aufschlüsselungsmenü geöffnet. Dieser Aufruf wird ignoriert, wenn die Erweiterung keine Visualisierung der Kachelerweiterung ist.
runDashboard Führt das aktuelle Dashboard aus. Dieser Aufruf wird von einer Kachelvisualisierungserweiterung ignoriert, die in einem Explore ausgeführt wird.
stopDashboard Stoppt ein laufendes Dashboard. Dieser Aufruf wird von einer Kachelvisualisierungserweiterung ignoriert, die in einem Explore ausgeführt wird.
updateFilters Aktualisiert Filter im aktuellen Dashboard oder Explore.
openScheduleDialog Öffnet das Dialogfeld für den Zeitplan. Dieser Aufruf wird bei Ausführung in einem Explore ignoriert.
toggleCrossFilter Schaltet die Kreuzfilter ein bzw. aus. Dieser Aufruf wird bei Ausführung in einem Explore ignoriert.

Tile SDK-Daten

Die verfügbaren Dateneigenschaften des Tile-SDK sind in der folgenden Tabelle aufgeführt:

Attribut Beschreibung
isExploring Bei „true“ gibt dies an, dass die Kachel als Visualisierung in einem Explore konfiguriert wird.
dashboardId Die Dashboard-ID der Kachel, die gerendert wird. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.
elementId Die Element-ID der Kachel, die gerendert wird. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.
queryId Die Abfrage-ID der gerenderten Kachel, wenn sie einer Visualisierung zugeordnet ist. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.

queryId ist die ID der Abfrage, die erstellt wird, wenn die Visualisierung in das Looker-Explore eingebunden ist. Es enthält keine Filter oder Kreuzfilterung, die auf das Dashboard angewendet werden können. Damit die in QueryResponse angezeigten Daten widergespiegelt werden, müssen Filter und Kreuzfilter angewendet und eine neue Abfrage generiert werden. Daher gibt es möglicherweise mehr nützliche Attribute als queryId. Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern.
querySlug Die Abfrage Slug der Kachel, die gerendert wird, wenn sie einer Visualisierung zugeordnet ist. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.

Das querySlug ist ein Slug der Abfrage, die erstellt wird, wenn die Visualisierung in das Looker-Explore eingebunden ist. Es enthält keine auf das Dashboard angewendeten Filter oder Kreuzfilterung. Damit die in QueryResponse angezeigten Daten widergespiegelt werden, müssen Filter und Kreuzfilter angewendet und eine neue Abfrage generiert werden. Daher gibt es möglicherweise mehr nützliche Attribute als querySlug. Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern.
dashboardFilters Die Filter, die auf das Dashboard angewendet werden. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.
dashboardRunState Gibt an, ob das Dashboard ausgeführt wird. Wenn die Kachel als Explore konfiguriert wird, ist der Status UNKNOWN.

Aus Gründen der Dashboard-Leistung wird der Ausführungsstatus möglicherweise nie als „Wird ausgeführt“ angezeigt. Dies geschieht im Allgemeinen, wenn einer Abfrage keine anderen Tiles zugeordnet sind, einschließlich derjenigen, mit der die Erweiterung verknüpft ist. Wenn die Erweiterung sicher sein muss, dass ein Dashboard ausgeführt wurde, ist die Erkennung von Unterschieden im lastRunStartTime die zuverlässige Methode.
isDashboardEditing Bei „true“ wird das Dashboard bearbeitet. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.
isDashboardCrossFilteringEnabled Ist sie auf „true“ gesetzt, ist die Kreuzfilterung im Dashboard aktiviert. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.
filteredQuery Ein Abfrageobjekt, das mit der Abfrage-ID übereinstimmt, die dem zugrunde liegenden Dashboardelement zugeordnet ist, das alle Dashboard-Filter und Zeitzonenänderungen anwendet, die auf Dashboard-Ebene vorgenommen werden.
lastRunSourceElementId Die ID des Kachelerweiterungselements, das die letzte Dashboardausführung ausgelöst hat. Die ID ist nicht definiert, wenn die Dashboard-Ausführung über die Dashboard-Schaltfläche Ausführen oder automatisch aktualisieren oder über das eingebettete SDK ausgelöst wurde. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.

Beachten Sie, dass die lastRunSourceElementId mit der Element-ID der aktuellen Erweiterungsinstanz übereinstimmen kann. Wenn die Erweiterung beispielsweise eine Dashboardausführung auslöst, wird sie benachrichtigt, wenn die Dashboardausführung gestartet und beendet wird.
lastRunStartTime Gibt die Startzeit der letzten Dashboardausführung an. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt.

Die Start- und Endzeiten sollten nicht zum Erfassen von Leistungsmesswerten verwendet werden.
lastRunEndTime Gibt das Ende der letzten Dashboardausführung an. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Eigenschaft nicht ausgefüllt.

Die Start- und Endzeiten sollten nicht für die Erfassung von Leistungsmesswerten verwendet werden.
lastRunSuccess Gibt an, ob die letzte Dashboard-Ausführung erfolgreich war oder nicht. Wenn die Kachel als Explore konfiguriert ist, wird diese Eigenschaft nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Eigenschaft nicht ausgefüllt.

Funktionen und Attribute des SDKs zur Visualisierung

Die verfügbaren Funktionen und Eigenschaften des Visualisierungs-SDK sind in der folgenden Tabelle aufgeführt:

Funktion oder Eigenschaft Beschreibung
visualizationData (Property) Visualisierung (Kombination aus visConfig- und queryResponse-Daten).
visConfig (Property) Konfigurationsdaten für Visualisierungen:

  • Konfigurationen messen
  • Dimensionskonfigurationen
  • Tabellenkalkulationen
  • Pivot-Konfigurationen
  • Visualisierungskonfigurationen

Damit können Sie das Erscheinungsbild einer Visualisierung in einem Explore anpassen.
queryResponse (Property) Antwortdaten aus der Abfrage
configureVisualization Legt die Standardkonfiguration für die Visualisierung einer Erweiterung fest. Die Konfiguration wird im Visualisierungseditor für Explores gerendert. Dies sollte nur einmal aufgerufen werden.
setVisConfig Aktualisiert die Visualisierungskonfiguration.
updateRowLimit Aktualisiert das Zeilenlimit für Abfragen.

SDK-Daten für die Visualisierung

Das Visualisierungs-SDK umfasst Folgendes:

  • Konfigurationsdaten für Visualisierung
  • Abfrageantwortdaten

Konfigurationsdaten für Visualisierung

Attribut Beschreibung
queryFieldMeasures Informationen zum Messen
queryFieldDimensions Dimensionsinformationen
queryFieldTableCalculations Informationen zur Tabellenkalkulation
queryFieldPivots Pivot-Informationen
visConfig Visuelle Konfigurationsdaten. Diese sollte mit der Standardkonfiguration zusammengeführt und auf die von der Erweiterung gerenderte Visualisierung angewendet werden.
export interface VisualizationConfig {
  queryFieldMeasures: Measure[]
  queryFieldDimensions: Dimension[]
  queryFieldTableCalculations: TableCalculation[]
  queryFieldPivots: PivotConfig[]
  visConfig: RawVisConfig
}

Abfrageantwortdaten

Attribut Beschreibung
data Array mit Zeilendaten
fieldMeasures Informationen zu Feldmesswerten.
fieldDimensions Informationen zur Felddimension.
fieldTableCalculations Informationen zu Feldtabellenberechnungen.
fieldPivots Pivot-Informationen des Felds.
fieldMeasureLike Ein verkettetes Array von Feldmesswertinformationen und Tabellenkalkulationen, die sich wie Messwerte verhalten.
fieldDimensionLike Ein verkettetes Array von Felddimensionsinformationen und Tabellenkalkulationen, die sich wie Dimensionen verhalten.