OData - Bewährte Verfahren und Problembehandlung
Diese bewährten Verfahren und Tipps zur Problembehebung helfen Ihnen, Ihren OData-Client effektiv einzusetzen.
Leistung
Die Leistung des OData-Service hängt von der Art der Daten ab, auf die Sie zugreifen möchten. Das Auslesen von 1M Datenpunkten dauert zum Beispiel ca. 2,5 bis 3 Minuten (6K Datenpunkte pro Sekunde). Jede komplette Anforderung dauert durchschnittlich 120 ms, wobei der OData-Client den Aufwand für die Verarbeitung und das Handling der Daten weiter erhöhen kann.
Befolgen Sie die nachfolgenden bewährten Verfahren, um die beste und zuverlässigste Leistung zu erhalten:
- Verwenden Sie keine
OR
-Ausdrücke oder erweiterten Tabellen. - Verwenden Sie nach Möglichkeit multiple Abfragen.
- Verwenden Sie inkrementelle Aktualisierungen.
- Teilen Sie Datensätze möglichst auf.
- Behalten Sie nur die Daten, die Sie benötigen. Entfernen Sie nicht benötigte Spalten und Daten.
- Halten Sie historische Daten in einem eigenen Bericht vor, wenn Sie sie nicht täglich benötigen. Aktualisieren Sie den Bericht mit den historischen Daten bei Bedarf.
Leistungsstarke Abfragen schreiben
Die OData-Services empfangen multiple, parallele Anfragen und verarbeiten diese gleichzeitig. OData-Clients können nach Möglichkeiten multiple Anfragen auch gleichzeitig versenden.
Es ist besser, multiple Abfragen zu erstellen und zu verwenden statt einer einzelnen, komplexen Abfrage, die zum Beispiel OR
-Ausdrücke oder Erweiterungen enthält. Eine einzelne, komplexe Abfrage muss nacheinander wiederholt durchgeführt werden, dabei addiert jede Anforderung eine erneute Latenz.
Laden Sie die Daten mit multiplen Abfragen herunter und verbinden Sie die erhaltenen Tabellen im OData-Client, damit Sie mit ihnen so arbeiten können, als handele es sich um eine einzige Tabelle.
Inkrementelle Aktualisierungen verwenden
Inkrementelle Aktualisierungen bieten für große Datensätze die folgenden Vorteile:
- Es müssen nur die Daten aktualisiert werden, die auch geändert wurden.
- Sie müssen keine lang laufenden Verbindungen zu Quellsystemen aufrechterhalten.
- Weniger Daten, die aktualisiert werden, benötigen weniger Speicher und andere Ressourcen.
Die einzelnen OData-Clients können unterschiedliche Funktionen für die inkrementelle Aktualisierung haben. Für Microsoft Power BI siehe Inkrementelle Aktualisierung für semantische Modelle in Power BI.
Große Datensätze aufteilen
Wenn Sie große Datensätze herunterladen müssen, teilen Sie sie auf und lesen Sie die einzelnen Partitionen jeweils mit einer eigenen Abfrage aus. Einige OData-Clients wie Microsoft Power BI können gleichzeitig multiple Abfragen verarbeiten. Eine Partitionierung des Datensatzes kann die Leistung stark verbessern.
Wenn Sie zum Beispiel die Datenpunkte der letzten zwei Jahre auslesen, versuchen Sie, die Abfrage in zwei separate Abfragen zu unterteilen, die jeweils ein Jahr umfassen. Führen Sie dann die Tabellen in Power BI zusammen (Verknüpfung).
Namensgebung von Eigenschaften in Metadaten und CDF RAW
Eigenschaftsschlüssel für Metadaten und den CDF-Bereitstellungsbereich (RAW) müssen gültige Kennungen sein und dürfen nur Buchstaben, Zahlen und Unterstriche enthalten. Alle anderen Zeichen werden von den OData-Services durch Unterstriche ersetzt. Um möglichst gute Ergebnisse zu erzielen, sollten die aufgenommenen Daten der folgenden Namenskonvention für Eigenschaftsschlüssel entsprechen: ^[a-zA-Z][_a-za-z0-9]\*[a-zA-Z0-9]\$
.
Problembehandlung
Nach Informationen zur Problembehandlung von Fehlern beim Einsatz von CDF als Datenquelle für OData-Clients suchen.
Abfragen dauern zu lange
Ein CDF-Projekt kann Hunderte Millionen von Datenreihen enthalten. Es ist nicht möglich, diese alle in einen OData-Client zu laden. Wenn Ihre Abfrage zu lange dauert, versuchen Sie vermutlich, zu viele Daten zu laden.
Siehe Elemente in Datenmodellen filtern and Anlagenbezogene Ressourcentypen filtern, um mehr über die von den OData-Services unterstützten Filterfunktionen zu erfahren.
Es werden nicht alle Ergebnisse erhalten
Wenn Sie weniger Ergebnisse als erwartet erhalten, verwenden Sie vielleicht eine Filterfunktion, die von CDF nicht unterstützt wird, wie zum Beispiel startswith
für die Spalte Name in TimeSeries.
Siehe Elemente in Datenmodellen filtern and Anlagenbezogene Ressourcentypen filtern, um mehr über die von den OData-Services unterstützten Filterfunktionen zu erfahren.
Mindestwerte können nicht aus CDF RAW abgerufen werden
Wenn Sie Daten aus dem CDF-Bereitstellungsbereich CDF RAW in einem OData-Client verwenden, können Sie Probleme beim Abrufen von kleinen Zahlen in exponentiellen Darstellungen haben.
CDF RAW besitzt kein Schema, aber die OData-Bibliotheken in einigen OData-Clients wie Power BI versuchen, das korrekte Format für die Daten auszuwählen. Aktuell wählt Power BI den falschen Decoder für kleine Zahlen in exponentiellen Darstellungen. Es könnte sein, dass Sie eine Fehlermeldung erhalten, die wie folgt aussieht:
DataSource,Error: OData: Cannot convert the literal '2.89999206870561 to the expected type 'Edm.Decimal',
Um den Fehler zu beheben, sollten Sie die Werte in CDF RAW als Zeichenfolge statt als Zahlen aufnehmen und die Zeichenfolgen in Power BI in Zahlen zurückkonvertieren, zum Beispiel mit der Power Query M-Funktion Decimal.From
. Dabei bleibt die Präzision bestehen. Und da die meisten JSON-Decoder Zeichenfolgen als Zahlen akzeptieren, funktionieren auch Clients, die eine Zahl erwarten.