Ab Looker 24.0 können Erweiterungen entwickelt werden, die 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 als Visualisierung aus einem Explore in einem Dashboard gespeichert. Erweiterungen können auch als Tiles in LookML-Dashboards konfiguriert werden.
Es sind Beispiele für Erweiterungen verfügbar, die als Dashboard-Kacheln verwendet werden können:
- In der Erweiterung für die Ansicht mit Kacheln wird gezeigt, wie Sie mit dem Erweiterungs-Framework eine benutzerdefinierte Visualisierung erstellen.
- In der Erweiterung „Kacheln-SDK“ werden die verfügbaren API-Methoden angezeigt, die speziell für Erweiterungen für Kacheln gelten.
Looker-Erweiterungs-SDK mit Kachelerweiterungen verwenden
Für Kachelnerweiterungen muss der Parameter mount_points
in der LookML-Manifestdatei des Projekts definiert sein, damit die Erweiterungen als Kacheln in ein Dashboard geladen werden können. Es gibt zwei Arten von mount_points
im Zusammenhang mit Erweiterungen für Ansichten:
mount_points: {
dashboard_vis: yes
dashboard_tile: yes
standalone: yes
}
dashboard_vis
– Wenn diese Option aktiviert ist, wird die Erweiterung in den Visualisierungsoptionen eines Explore angezeigt. Dort kann sie als Visualisierung ausgewählt und als Dashboard-Kachel gespeichert werden. Wenn das Dashboard ausgeführt wird, führt das Dashboard die mit der Tile verknüpfte Abfrage aus und stellt die Daten der Erweiterung zur Verfügung. Das funktioniert ähnlich wie bei benutzerdefinierten Visualisierungen. Der Hauptunterschied zwischen einer benutzerdefinierten Visualisierung und einer Erweiterung, die in einer Dashboard-Kachel ausgeführt wird, für diedashboard_vis
aktiviert ist, besteht darin, dass die Erweiterung Looker API-Aufrufe ausführen kann.dashboard_tile
– Wenn diese Option aktiviert ist, wird die Erweiterung im Bereich Erweiterungen angezeigt, der eingeblendet wird, wenn ein Nutzer ein Dashboard bearbeitet und die Option Erweiterungen auswählt, nachdem er auf die Schaltfläche Hinzufügen geklickt hat. Diese Art von Erweiterung ist für den Abruf ihrer eigenen Daten verantwortlich, anstatt die Kachelanfrage automatisch mit Daten zu versorgen.
Durch einen zusätzlichen Bereitstellungspunkt, standalone
, wird die Erweiterung im Looker-Hauptmenü im Bereich Anwendungen angezeigt. Für eine Erweiterung können mehrere Bereitstellungspunkte definiert werden. Während der Laufzeit wird die Erweiterung darüber informiert, wie sie bereitgestellt wird, und sie kann ihr Verhalten entsprechend anpassen. So muss beispielsweise standalone
-Erweiterungen im Gegensatz zu Kachelerweiterungen eine eigene Höhe festlegen.
Zusätzliche APIs der Tile-Erweiterung
Kachelerweiterungen 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 Looker-Dashboard-Host interagieren kann. So können Sie beispielsweise festlegen, dass die Erweiterung Fehlermeldungen anzeigen und löschen darf.tileHostData
: Stellt der Erweiterung Kacheldaten zur Verfügung. Die Daten werden automatisch anhand von Interaktionen mit dem Hosting-Dashboard aktualisiert. Ein Beispiel ist der IndikatorisDashboardEditing
.visualizationSDK
: bietet visualisierungsspezifische Funktionen, die es der Erweiterung ermöglichen, mit dem Looker-Dashboardhost zu interagieren. Ein Beispiel ist dieupdateRowLimit
-Funktion.visualizationData
: stellt der Erweiterung Visualisierungsdaten bereit. Die Daten werden automatisch anhand von Interaktionen mit dem Hosting-Dashboard aktualisiert. Die Daten ähneln denen, die für benutzerdefinierte Visualisierungen verwendet werden.
Reaktive Erweiterungen erstellen
Die Größe der iFrames, in denen Erweiterungen ausgeführt werden, wird automatisch angepasst, wenn sich die Größe des übergeordneten Looker-Hostfensters ändert. Dies wird automatisch im iFrame-Inhaltsfenster angezeigt. Die Iframe-Komponente hat keinen Abstand oder Rand. Daher muss die Erweiterung eigene Abstände und Ränder festlegen, damit sie mit der Looker-Anwendung übereinstimmt. Bei eigenständigen Erweiterungen wird die Höhe von der Erweiterung selbst gesteuert. Bei Erweiterungen, die in Dashboard-Tiles oder Explore-Visualisierungen ausgeführt werden, wird das iFrame-Inhaltsfenster automatisch auf die Höhe gesetzt, die der iFrame zur Verfügung stellt.
Hinweise zum Rendern
Beachten Sie, dass Kachelerweiterungen beim Herunterladen eines Dashboards als PDF oder Bild gerendert werden. Der Renderer erwartet, dass die Kachel ihn benachrichtigt, wenn das Rendern abgeschlossen ist. Andernfalls reagiert der Renderer nicht mehr. Im Folgenden finden Sie ein Beispiel dafür, wie der Renderer darüber informiert wird, dass die Kachel gerendert wurde.
const { extensionSDK } = useContext(ExtensionContext40)
useEffect(() => {
extensionSDK.rendered()
}, [])
Animationen sollten auch beim Rendern deaktiviert werden. Im folgenden Beispiel werden die 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 Kachel-SDK bietet Funktionen, mit denen eine Kachelerweiterung mit dem Hosting-Dashboard interagieren kann.
Die verfügbaren Funktionen und Eigenschaften sind in der folgenden Tabelle aufgeführt:
Funktion oder Property | Beschreibung |
---|---|
tileHostData (Property) |
Hosten Sie Daten, die für die Kachelerweiterung spezifisch sind. Weitere Informationen finden Sie im Abschnitt Tile SDK-Daten. |
addError |
Beim Aufrufen wird im Dashboard oder Explore unter der Visualisierung eine Fehlermeldung angezeigt. |
clearError |
Wenn das Dashboard oder Explore aufgerufen wird, werden alle Fehlermeldungen unter der Visualisierung ausgeblendet. |
openDrillMenu |
Bei Visualisierungserweiterungen wird durch diesen Aufruf ein Drilldown-Menü 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 |
Beendet ein laufendes Dashboard. Dieser Aufruf wird von einer Erweiterung für die Ansicht mit Kacheln ignoriert, die in einem Explore ausgeführt wird. |
updateFilters |
Aktualisiert die Filter im aktuellen Dashboard oder Explore. |
openScheduleDialog |
Öffnet das Dialogfeld für den Zeitplan. Dieser Aufruf wird bei der Ausführung in einem Explore ignoriert. |
toggleCrossFilter |
Schaltet Kreuzfilter ein und aus. Dieser Aufruf wird ignoriert, wenn er in einem Explore ausgeführt wird. |
Tile SDK-Daten
Die verfügbaren Kachel-SDK-Dateneigenschaften sind in der folgenden Tabelle aufgeführt:
Attribut | Beschreibung |
---|---|
isExploring |
Wenn „true“ festgelegt ist, wird die Kachel als Visualisierung in einem Explore konfiguriert. |
dashboardId |
Die Dashboard-ID der Kachel, die gerendert wird. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. |
elementId |
Die Element-ID der gerenderten Kachel. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. |
queryId |
Die Abfrage-ID der gerenderten Kachel, sofern sie mit einer Visualisierung verknüpft ist. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt.Die 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 der QueryResponse angezeigten Daten berücksichtigt werden, müssen Filter und Kreuzfilter angewendet und eine neue Abfrage generiert werden. Daher gibt es möglicherweise nützlichere Attribute als queryId . Unter filteredQuery finden Sie ein Abfrageobjekt mit angewendeten Filtern. |
querySlug |
Der Slug der Abfrage der gerenderten Kachel, wenn sie mit einer Visualisierung verknüpft ist. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.querySlug ist ein Slug der Abfrage, der erstellt wird, wenn die Visualisierung in den Looker-Explore eingebettet wird. Es enthält keine Filter oder Kreuzfilterung, die auf das Dashboard angewendet werden. 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 nützlichere 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 wird, wird diese Eigenschaft nicht ausgefüllt. |
dashboardRunState |
Gibt an, ob das Dashboard ausgeführt wird. Wenn die Kachel als Explore konfiguriert wird, lautet der Status UNKNOWN .Aus Gründen der Dashboard-Leistung wird der Laufstatus möglicherweise nie als „Aktiv“ angezeigt. Dies geschieht im Allgemeinen, wenn einer Abfrage keine anderen Tiles zugeordnet sind, einschließlich der Tiles, mit der die Erweiterung verknüpft ist. Wenn die Erweiterung sicher sein muss, dass ein Dashboard ausgeführt wurde, ist es zuverlässig, Unterschiede im lastRunStartTime zu erkennen. |
isDashboardEditing |
Ist dieser Wert auf „true“ gesetzt, wird das Dashboard bearbeitet. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. |
isDashboardCrossFilteringEnabled |
Wenn „wahr“ festgelegt ist, ist die Kreuzfilterung im Dashboard aktiviert. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. |
filteredQuery |
Ein Abfrageobjekt, das mit der Abfrage-ID übereinstimmt, die dem zugrunde liegenden Dashboard-Element zugeordnet ist. Auf dieses Objekt werden alle Dashboardfilter und Zeitzonenänderungen angewendet, die auf Dashboardebene vorgenommen werden. |
lastRunSourceElementId |
Die ID des Kachelerweiterungselements, das die letzte Dashboard-Ausführung ausgelöst hat. Die ID ist nicht definiert, wenn die Dashboardausführung über die Schaltfläche Ausführen oder die autorefresh des Dashboards ausgelöst wurde oder wenn die Ausführung mit dem eingebetteten SDK ausgelöst wurde. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt.Hinweis: lastRunSourceElementId kann mit der Element-ID der aktuellen Erweiterungs-Instanz übereinstimmen. Wenn die Erweiterung beispielsweise eine Dashboard-Ausführung auslöst, wird sie benachrichtigt, wenn die Ausführung des Dashboards beginnt und endet. |
lastRunStartTime |
Gibt den Beginn der letzten Dashboardausführung an. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt.Die angegebenen Start- und Endzeiten sollten nicht für die Erfassung von Leistungsmesswerten verwendet werden. |
lastRunEndTime |
Gibt die Endzeit der letzten Dashboard-Ausführung an. Wenn die Kachel als Explore konfiguriert wird, wird diese Property nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Eigenschaft nicht ausgefüllt.Der Beginn und das Ende im Bericht sollten nicht zur Erfassung von Leistungsmesswerten verwendet werden. |
lastRunSuccess |
Gibt an, ob die letzte Ausführung des Dashboards erfolgreich war. Wenn die Kachel als Explore konfiguriert wird, wird diese Eigenschaft nicht ausgefüllt. Wenn die Kachel ausgeführt wird, wird diese Property nicht ausgefüllt. |
Funktionen und Eigenschaften des Visualisierungs-SDK
Die verfügbaren Funktionen und Eigenschaften des Visualisierungs-SDKs sind in der folgenden Tabelle aufgeführt:
Funktion oder Eigenschaft | Beschreibung |
---|---|
visualizationData (Property) |
Visualisierung (Kombination aus visConfig - und queryResponse -Daten). |
visConfig (Property) |
Daten zur Visualisierungskonfiguration:
|
queryResponse (property) |
Antwortdaten aus der Abfrage |
configureVisualization |
Legt die Standardkonfiguration für eine Erweiterungsvisualisierung fest. Die Konfiguration wird im Visualisierungseditor des Explores gerendert. Dies sollte nur einmal aufgerufen werden. |
setVisConfig |
Aktualisiert die Visualisierungskonfiguration. |
updateRowLimit |
Aktualisiert das Zeilenlimit der Abfrage. |
Daten des Visualisierungs-SDK
Das Visualisierungs-SDK besteht aus folgenden Elementen:
- Konfigurationsdaten für Visualisierungen
- Abfrageantwortdaten
Konfigurationsdaten für Visualisierungen
Attribut | Beschreibung |
---|---|
queryFieldMeasures |
Informationen zur Messung |
queryFieldDimensions |
Dimensionsinformationen |
queryFieldTableCalculations |
Informationen zu Tabellenkalkulationen |
queryFieldPivots |
Pivot-Informationen |
visConfig |
Daten zur visuellen Konfiguration 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
}
Antwortdaten abfragen
Attribut | Beschreibung |
---|---|
data |
Array mit Zeilendaten |
fieldMeasures |
Informationen zu Feldmesswerten. |
fieldDimensions |
Informationen zur Felddimension. |
fieldTableCalculations |
Informationen zu Tabellenkalkulationen für Felder. |
fieldPivots |
Pivot-Informationen für Felder. |
fieldMeasureLike |
Ein verkettetes Array von Feldmesswertinformationen und Tabellenkalkulationen, die sich wie Messwerte verhalten. |
fieldDimensionLike |
Ein verkettetes Array mit Informationen zu Felddimensionen und Tabellenkalkulationen, die sich wie Dimensionen verhalten. |