Lokale Dateninstanzen für mehrere Visualisierungen

  • Freigeben Version: Yokohama
  • Aktualisiert 30. Januar 2025
  • 5 Minuten Lesedauer
  • 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

    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 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

    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 Wählvisualisierungen 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 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.

    Als Nächstes schreiben Sie die JSON 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 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.

    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 willkürliche visualizationIdWert, den Sie jeder 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 einer Visualisierung für einen Indikator unterscheidet sich vom vorherigen Beispiel, das für eine Tabelle war. Hier ist die 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 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.