Lokale Dateninstanzen für mehrere Datenvisualisierungen

  • Freigeben Version: Zurich
  • Aktualisiert 31. Juli 2025
  • 5 Minuten Lesedauer
  • 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

    Sie können die Datenressource „Datenvisualisierungs-API für mehrere Datenvisualisierungen“ in den folgenden Szenarien verwenden:
    • 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

    Wichtig:
    Diese Datenressource führt mehrere Aufrufe zu einem einzigen zusammen. Der einzelne Aufruf wird als einzelne Transaktion für einen einzelnen Thread ausgeführt. Verwenden Sie daher diese Datenressource mit besonderer Vorsicht, insbesondere bei der Verarbeitung einer großen Datenmenge, da dies in einigen Fällen zu Transaktionszeitüberschreitungen führen kann. Abhängig von der Menge der Daten, dem Setup der Seite und der Zielanwender-Experience erzielen Sie möglicherweise bessere Ergebnisse, wenn Sie separate Datenressourcen verwenden.

    Prozedur

    1. Navigieren Sie mit den Datenvisualisierungen zum technischen Dashboard oder zur UIB-Seite.
    2. Stellen Sie sicher, dass die Datenvisualisierungen auf der Seite die Kriterien in erfüllen Verwendungszeitpunkt .
      Sie haben beispielsweise mehrere Skalenvisualisierungen in der Datenquelle der Incident-Tabelle, und die Menge der abgerufenen Daten ist nicht zu groß.
    3. Wählen Sie im Drawer Daten und Skripts unter Datenressourcen die Option aus + Datenressource hinzufügen .

      Fügen Sie den Datenressourcenlink hinzu, wenn noch keine Datenressourcen vorhanden sind.
    4. Suchen Sie im Fenster Datenressource auswählen nach Datenvisualisierung .
      Sie erhalten eine Auswahl der Datenressourcen, die Sie verwenden können.
      Auswahl von Datenvisualisierungs-API-Datenressourcen, einschließlich der für mehrere Datenvisualisierungen.
    5. Wählen Sie „Datenvisualisierungs-API für mehrere Datenvisualisierungen“ aus.
    6. Legen Sie den Typ als fest Datenkonfigurationen .
    7. Füllen Sie im Feld „Anforderung“ die JSON aus.
      Siehe Beispiel am Ende dieses Verfahrens.
    8. Führen Sie in jeder Datenvisualisierung, die Sie diese Datenressource verwenden möchten, die folgenden Aktionen aus:
      1. Wählen Sie die Datenvisualisierung aus.
      2. Öffnen Sie den Konfigurationsbereich.
      3. Aktivieren Definieren Sie Daten manuell .
      4. Verwenden Sie die Datenbindung, um ein Skript an das Datenfeld zu binden.

    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.

    Als Nächstes schreiben Sie die JSON-Datei für die Anforderung wie folgt:
    [
        {
            "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.

    Die endgültige Konfiguration der Datenressource sieht folgendermaßen aus:
    Schließen Sie die Konfiguration des Dashboard-Daten-Brokers ab.
    Schließlich binden Sie für jede Datenvisualisierung das folgende Skript an das Datenfeld. Sie verwenden das beliebige visualizationIdWert, den Sie für jede Visualisierung als angegeben haben 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

    Die Anforderung für eine Visualisierung für einen Indikator unterscheidet sich vom vorherigen Beispiel, das für eine Tabelle war. Hier ist das JSON für eine Zeitreihenvisualisierung, die einen Trend im Zeitverlauf für den Indikator „Anzahl der offenen Incidents“ anzeigt, gruppiert nach der Prioritätsaufgliederung:
    [
        {
            "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.