Lokale Dateninstanzen für mehrere Visualisierungen
Eine spezielle Datenressource für die Datenvisualisierungs-API ist verfügbar, um Daten für mehrere Datenvisualisierungen gleichzeitig abzurufen. Diese Datenressource reduziert die Anzahl der API-Aufrufe und kann somit das Abrufen von Daten beschleunigen.
Wann zu verwenden ist
- Mehrere Datenvisualisierungen vom selben Typ haben dieselbe Datenquelle. Angenommen, Sie haben fünf Visualisierungen, bei denen der Visualisierungstyp Einzelpunktzahl ist und die Datenquelle die Incident-Tabelle [incident] mit dem Filter
active=trueist. 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 offener Incidents“ und einer weiteren 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 zu verwenden ist
- Es gibt nur eine Visualisierung auf der Seite UI Builder.
- Das Laden der Daten der Datenvisualisierungen auf der Seite dauert wahrscheinlich lange. In diesem Fall ist es besser, das Laden der Daten auf separate Datenressourcen aufzuteilen.
Richten Sie eine Mehrfachvisualisierungsdatenressource ein
Wenn Ihr Anwendungsfall die Kriterien für eine mehrfache Visualisierungsdatenressource erfüllt, können Sie dieses Verfahren anwenden.
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 Einzel-Punktzahl-Visualisierungen mit derselben Datenquelle
In diesem Beispiel beginnen wir mit einer UIB-Seite, die drei Datenvisualisierungskomponenten enthält. Diese Komponenten sind alle vom Visualisierungstyp Einzelpunktzahl, und alle verwenden dieselbe Datenquelle.
Sie folgen dem allgemeinen Verfahren bis Schritt 6. Jetzt haben Sie eine Datenvisualisierungs-API für mehrere Datenvisualisierungen auf Ihrer Seite „Dashboards“.
[
{
"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 verfügt über eine Eigenschaft details mit einem beliebigen Wert für visualizationId und einen booleschen Wert followFilter, der festlegt, ob die Visualisierung Filterkomponenten auf der Seite folgt. In diesem Fall folgen alle drei Visualisierungen Filtern.
Jede Visualisierung hat auch eine Eigenschaft configurations, die nur ein Array dataConfigurations enthält. Da alle Visualisierungen vom gleichen Typ sind, Einzelne Punktzahl, und dieser Visualisierungstyp nur einen einfachen Wert anzeigt, sind alle drei Eigenschaften dataCategory „einfach“. Ebenso verwenden alle Visualisierungen dieselbe Datenquelle. Da die Datenquelle die Incident-Tabelle [incident] ist, haben alle drei Visualisierungen einen sourceType -Wert mit dem Wert „table“ und einen tableOrViewName -Wert mit dem Wert „incident“. Die Visualisierungen können nur in den verwendeten Aggregaten variieren. Hier sehen Sie, dass im ersten eine COUNT-Zusammenfassung, im zweiten ein AVG-Aggregat des Felds business_duration und im dritten ein Durchschnitt des Prioritätsfeldes verwendet wird.
visId “-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;
}JSON für einen Indikator anfordern
[
{
"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 sourceType „Indikator“ und dataCategory „Trend“ ist. Sie sehen auch, dass Sie anstelle einer Eigenschaft tableOrViewName ein Objekt uuid mit der UUID des Indikators Anzahl offener Incidents und ein leeres Array haben, das die UUIDs von Aufgliederungen zum Filtern dieses Indikators enthalten könnte. Da diese Visualisierung „Gruppieren nach“-Werte unterstützt, verfügen Sie über ein groupBy -Array, das in diesem Fall nur die UUID der Prioritätsaufgliederung enthält. Ein „group-by“ impliziert eine Sortierung. Hier sehen Sie, dass sortBy „Auswahl“ ist, was den Datentyp der Prioritätsaufgliederung widerspiegelt, und sortOrder ist aufsteigend.