Dela via


Kommande ändringar av JSON-utplattande och undantagsregler för nya miljöer

Kommentar

Time Series Insights-tjänsten dras tillbaka den 7 juli 2024. Överväg att migrera befintliga miljöer till alternativa lösningar så snart som möjligt. Mer information om utfasning och migrering finns i vår dokumentation.

Viktigt!

Dessa ändringar tillämpas endast på nyligen skapade Microsoft Azure Time Series Insights Gen2-miljöer. Ändringarna gäller inte för Gen1-miljöer.

Din Azure Time Series Insights Gen2-miljö skapar dynamiskt dina lagringskolumner enligt en viss uppsättning namngivningskonventioner. När en händelse matas in tillämpar Time Series Insights en uppsättning regler för JSON-nyttolasten och egenskapsnamnen. Ändringar i hur JSON-data plattas ut och lagras trädde i kraft för nya Azure Time Series Insights Gen2-miljöer i juli 2020. Den här ändringen påverkar dig i följande fall:

  • JSON-nyttolasten innehåller kapslade objekt.
  • JSON-nyttolasten innehåller matriser.
  • Du använder något av följande fyra specialtecken i ett JSON-egenskapsnamn: [ \ . '
  • En eller flera av dina TS-ID-egenskaper (Time Series) finns i ett kapslat objekt.

Om du skapar en ny miljö och ett eller flera av dessa fall gäller för din händelsenyttolast kommer dina data att plattas ut och lagras på olika sätt. I följande tabell sammanfattas ändringarna:

Aktuell regel Ny regel Exempel på JSON Namn på föregående kolumn Nytt kolumnnamn
Kapslad JSON plattas ut med hjälp av ett understreck som delineator. Kapslad JSON plattas ut med hjälp av en punkt som delineator. {"series" : { "value" : 19.338 }} series_value_double series.value_double
Specialtecken är inte undantagna. JSON-egenskapsnamn som innehåller specialtecken . [\ och ' är undantagna med hjälp av [' och .'] Inom [' och ']finns det ytterligare undantag för enkla citattecken och omvänt snedstreck. Ett enda citattecken skrivs som \' och ett omvänt snedstreck som \\. "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
Matriser med primitiver lagras som en sträng. Matriser av primitiva typer lagras som en dynamisk typ. "values": [154, 149, 147] values_string values_dynamic
Matriser med objekt plattas alltid ut och skapar flera händelser. Om objekten i en matris inte har TS-ID eller tidsstämpelegenskaper lagras matrisen med objekt som en dynamisk typ. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Om TS-ID:t och/eller tidsstämpelegenskapen är kapslad i ett objekt

Alla nya distributioner måste matcha de nya inmatningsreglerna. Om TS-ID:t till exempel är telemetry_tagIdmåste du uppdatera alla Azure Resource Manager-mallar eller automatiserade distributionsskript för att konfigurera telemetry.tagId som miljö-TS-ID. Du behöver också den här ändringen för tidsstämplar för händelsekälla i kapslad JSON.

Om nyttolasten innehåller kapslade JSON-tecken eller specialtecken och du automatiserar redigering av tidsseriemodellvariabeluttryck

Uppdatera klientkoden som kör TypesBatchPut så att den matchar de nya inmatningsreglerna. Du bör till exempel uppdatera ett tidigare Time Series-uttryck "value": {"tsx": "$event.series_value.Double"} till något av följande alternativ:

  • "value": {"tsx": "$event.series.value.Double"}
  • "value": {"tsx": "$event['series']['value'].Double"}

Nästa steg