Lokale Dateninstanzen für mehrere Visualisierungen
Eine spezielle Datenressource für 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 Tabelle „Incidents [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 Zeilenvisualisierung 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 Visualisierung auf UI BuilderSeite.
- 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 befolgen.
Vorbereitungen
Überprüfen Sie den Anwendungsfall für eine einzelne Datenressource für mehrere Visualisierungen in Lokale Dateninstanzen für mehrere Visualisierungen.
Erforderliche Rolle: ui_Builder_admin, admin
Warum und wann dieser Vorgang ausgeführt wird
Prozedur
Datenressource für drei Einzelpunktzahl-Visualisierungen mit derselben Datenquelle
In diesem Beispiel beginnen wir mit einer UIB-Seite, die drei Datenvisualisierungskomponenten enthält. Diese Komponenten haben alle den 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 followFilterLegt fest, 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 „einzelne Punktzahl“ und dieser Visualisierungstyp nur einen einfachen Wert anzeigt, alle drei dataCategoryEigenschaften sind „einfach“. Gleichermaßen 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, ist in den verwendeten Zusammenfassungen. Hier sehen Sie, dass der erste eine ANZAHLZUSAMMENFASSUNG verwendet, der zweite eine durchschnittliche Zusammenfassung im 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 von 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. Wenn Sie eine Gruppierung haben, müssen Sie sortieren, und hier sehen Sie, dass sortByIst „Auswahl“, was den Datentyp der Prioritätsaufgliederung und widerspiegelt sortOrderIst aufsteigend.