Freigeben über


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

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