Lokale Dateninstanzen für mehrere Datenvisualisierungen
Eine spezielle Datenressource der Datenvisualisierungs-API ist verfügbar, um Daten für mehrere Datenvisualisierungen gleichzeitig abzurufen. Diese Datenressource reduziert die Anzahl der API-Aufrufe und kann somit den Datenabruf beschleunigen.
Verwendungszeitpunkt
- Mehrere Datenvisualisierungen desselben Typs haben dieselbe Datenquelle. Sie haben beispielsweise fünf Visualisierungen, bei denen der Visualisierungstyp „einzelne Punktzahl“ und die Datenquelle die Incident-Tabelle [Incident] mit dem Filter ist
Active=wahr. Wenn Sie mehrere Gruppen von Indikatoren mit demselben Typ und derselben Datenquelle haben, können Sie für jede Gruppe eine Instanz derselben Visualisierungsdatenressource erstellen. - Eine Datenvisualisierung verfügt über mehrere Datenressourcen, die auf dieselbe Datenquelle verweisen. Sie haben beispielsweise eine Linienvisualisierung mit einer Datenressource aus dem Indikator „Anzahl der offenen Incidents“ und eine andere Datenressource aus dem Indikator „durchschnittliches Alter der offenen Incidents“. Beide Indikatoren verwenden die Datenquelle „Incident.Open“. Aus Effizienzgründen können Sie diese Visualisierung so konvertieren, dass nur eine Datenressource verwendet wird.
Wann nicht verwendet werden soll
- Es gibt nur eine Datenvisualisierung auf UI Builder Seite.
- Die Datenvisualisierungen auf der Seite dauern wahrscheinlich lange, um Daten zu laden. In diesem Fall ist es besser, das Laden der Daten auf separate Datenressourcen aufzuteilen.
Richten Sie eine Datenressource für mehrere Visualisierungen ein
Wenn Ihr Anwendungsfall die Kriterien für eine Ressource mit mehreren Visualisierungsdaten erfüllt, können Sie dieses Verfahren ausführen.
Vorbereitungen
Überprüfen Sie den Anwendungsfall für eine einzelne Datenressource für mehrere Visualisierungen in Lokale Dateninstanzen für mehrere Datenvisualisierungen.
Erforderliche Rolle: ui_builder_admin, admin
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
Datenressource für drei Visualisierungen mit Einzelpunktzahl mit derselben Datenquelle
In diesem Beispiel beginnen wir mit einer UIB-Seite, die drei Datenvisualisierungskomponenten enthält. Diese Komponenten sind alle vom Visualisierungstyp „einzelne Punktzahl“ und verwenden alle dieselbe Datenquelle.
Sie befolgen das allgemeine Verfahren bis Schritt 6. Jetzt haben Sie eine Datenvisualisierungs-API für mehrere Datenvisualisierungen auf Ihrer Dashboards-Seite.
[
{
"details": {
"visualizationId": "vis_1",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "COUNT"
}
]
}
},
{
"details": {
"visualizationId": "vis_2",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "AVG",
"aggregateField": "business_duration"
}
]
}
},
{
"details": {
"visualizationId": "vis_3",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sourceType": "table",
"dataCategory": "simple",
"order": 0,
"tableOrViewName": "incident",
"aggregateFunction": "AVG",
"aggregateField": "priority"
}
]
}
}
]Die Anforderung ist ein Array von Objekten, eines für jede Datenvisualisierung. Jede Visualisierung hat einen detailsEigenschaft mit einem beliebigen Wert für visualizationIdUnd ein boolescher Wert followFilterFestlegen, ob die Visualisierung Filterkomponenten auf der Seite folgt. In diesem Fall folgen alle drei Visualisierungen Filtern.
Jede Visualisierung hat auch einen configurationsEigenschaft, die nur einen enthält dataConfigurationsArray. Da alle Visualisierungen vom gleichen Typ sind, ist eine einzelne Punktzahl und dieser Visualisierungstyp zeigt nur einen einfachen Wert, alle drei dataCategoryEigenschaften sind „einfach“. Ebenso verwenden alle Visualisierungen dieselbe Datenquelle. Da die Datenquelle die Tabelle „Incident“ [Incident] ist, haben alle drei Visualisierungen einen sourceTypeVon „Tabelle“ und von tableOrViewNameVon „Incident“. Der einzige Ort, an dem die Visualisierungen variieren können, sind die verwendeten Zusammenfassungen. Hier sehen Sie, dass der erste eine ZÄHLUNGSZUSAMMENFASSUNG verwendet, der zweite eine durchschnittliche Zusammenfassung für das Feld „Business_duration“ und der dritte einen Durchschnitt des Prioritätsfelds verwendet.
VizId Wert im Skript für diese Visualisierung.function evaluateProperty({api, helpers}) {
const data = api.data.data_visualization_api_for_multiple_data_visualizations_1.output;
if (!data) {
return [];
}
const vizId = 'vis_1';
const dataForViz = data.result.find(d => d.details.visualizationId === vizId);
return dataForViz.dataResponses;
}Fordern Sie JSON für einen Indikator an
[
{
"details": {
"visualizationId": "vis1",
"followFilter": true
},
"configurations": {
"dataConfigurations": [
{
"sortBy": "choice",
"sortOrder": "asc",
"sourceType": "indicator",
"dataCategory": "trend",
"order": 0,
"splitView": false,
"numberOfGroups": 2,
"uuid": {
"indicator": "fb007202d7130100b96d45a3ce6103b4",
"breakdowns": []
},
"trendBy": "anything",
"trendInterval": "date",
"groupBy": [
"0df47e02d7130100b96d45a3ce610399"
],
"removeMissingIntervalData": false
}
]
}
}
]Der erste und offensichtliche Unterschied besteht darin, dass sourceTypeIst „Indikator“ und dataCategoryIst „Trend“. Sie sehen auch das anstelle von tableOrViewNameEigenschaft, haben Sie eine uuidObjekt mit der UUID des Indikators „Anzahl der offenen Incidents“ und einem leeren Array, das die UUIDs der Aufgliederungen zum Filtern dieses Indikators enthalten könnte. Da diese Visualisierung Gruppierungswerte unterstützt, haben Sie einen groupByArray, das in diesem Fall nur die UUID der Prioritätsaufgliederung enthält. Eine Gruppierung nach bedeutet eine Sortierung, und hier sehen Sie, dass sortByIst „Auswahl“, was den Datentyp der Prioritätsaufgliederung und widerspiegelt sortOrderIst aufsteigend.