Anstehende Änderungen an JSON-Flattening- und Escaperegeln für neue Umgebungen
Anmerkung
Der Time Series Insights-Dienst wird am 7. Juli 2024 eingestellt. Erwägen Sie, vorhandene Umgebungen so schnell wie möglich zu alternativen Lösungen zu migrieren. Weitere Informationen zur Veraltung und zur Migration finden Sie in unserer Dokumentation.
Wichtig
Diese Änderungen werden nur auf neu erstellte Microsoft Azure Time Series Insights Gen2-Umgebungen angewendet. Die Änderungen gelten nicht für Gen1-Umgebungen.
Ihre Azure Time Series Insights Gen2-Umgebung erstellt Ihre Speicherspalten dynamisch und folgt einer bestimmten Reihe von Benennungskonventionen. Wenn ein Ereignis aufgenommen wird, wendet Time Series Insights eine Reihe von Regeln auf die JSON-Nutzlast und die Eigenschaftennamen an. Änderungen, wie JSON-Daten vereinfacht und gespeichert werden, wurden für neue Azure Time Series Insights Gen2-Umgebungen im Juli 2020 wirksam. Diese Änderung wirkt sich in den folgenden Fällen auf Sie aus:
- Ihre JSON-Nutzlast enthält geschachtelte Objekte.
- Ihre JSON-Nutzlast enthält Arrays.
- Sie verwenden eines der folgenden vier Sonderzeichen in einem JSON-Eigenschaftsnamen:
[
\
.
'
- Eine oder mehrere Ihrer ID-Eigenschaften für Zeitreihen (TS) befinden sich innerhalb eines geschachtelten Objekts.
Wenn Sie eine neue Umgebung erstellen und mindestens eine dieser Fälle auf Ihre Ereignisnutzlast angewendet wird, werden Ihre Daten flacher und unterschiedlich gespeichert. In der folgenden Tabelle sind die Änderungen zusammengefasst:
Aktuelle Regel | Neue Regel | Beispiel-JSON | Vorheriger Spaltenname | Neuer Spaltenname |
---|---|---|---|---|
Geschachtelter JSON-Code wird mit einem Unterstrich als Delineator abgeflacht. | Geschachtelter JSON-Code wird mit einem Punkt als Trennzeichen abgeflacht. | {"series" : { "value" : 19.338 }} |
series_value_double |
series.value_double |
Sonderzeichen werden nicht maskiert. | JSON-Eigenschaftsnamen, die die Sonderzeichen . [ \ und ' enthalten, werden mithilfe von [' und '] maskiert. Innerhalb von [' und '] gibt es zusätzliches Escapen von Apostrophen und Backslashes. Ein einzelnes Anführungszeichen wird als \' und ein Rückstrich als \\ geschrieben. |
"Foo's Law Value": "17.139999389648" |
Foo's Law Value_double |
['Foo\'s Law Value']_double |
Arrays von primitiven Datentypen werden als Zeichenfolge gespeichert. | Arrays von Grundtypen werden als dynamischer Typ gespeichert. | "values": [154, 149, 147] |
values_string |
values_dynamic |
Arrays von Objekten werden immer flacher und erzeugen mehrere Ereignisse. | Wenn die Objekte in einem Array weder die TS ID noch die Zeitstempel-Eigenschaften haben, wird das Objekt-Array insgesamt als dynamischer Typ gespeichert. | "values": [{"foo" : 140}, {"bar" : 149}] |
values_foo_long | values_bar_long |
values_dynamic |
Empfohlene Änderungen für neue Umgebungen
Wenn Ihre TS-ID und/oder Zeitstempeleigenschaft in einem Objekt geschachtelt ist
Alle neuen Implementierungen müssen den neuen Aufnahmeregeln entsprechen. Wenn Ihre TS-ID beispielsweise telemetry_tagId
ist, müssen Sie alle Azure Resource Manager-Vorlagen oder automatisierte Bereitstellungsskripts aktualisieren, um telemetry.tagId
als TS-ID der Umgebung zu konfigurieren. Sie benötigen diese Änderung auch für Ereignisquellen-Zeitstempel in geschachtelter JSON.
Wenn Ihre Nutzlast geschachtelte JSON- oder Sonderzeichen enthält und Sie die Erstellung Time Series Model Variablenausdrücke automatisieren
Aktualisieren Sie Ihren Client-Code, der TypesBatchPut ausführt, um den neuen Aufnahmeregeln zu entsprechen. Beispielsweise sollten Sie einen vorherigen Zeitreihenausdruck von "value": {"tsx": "$event.series_value.Double"}
auf eine der folgenden Optionen aktualisieren:
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
Nächste Schritte
Erfahren Sie mehr über Azure Time Series Insights Gen2-Speicher und den Datenzugang mit.
Erfahren Sie, wie Sie Ihre Daten mithilfe Zeitreihenabfrage-APIsabfragen.
Weitere Informationen zur neuen Syntax für Zeitreihenausdruck.