Share via


Kommande ändringar av regler för att platta ut och fly från JSON för nya miljöer

Anteckning

Tjänsten Time Series Insights (TSI) stöds inte längre efter mars 2025. Överväg att migrera befintliga TSI-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 av 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 händelsenyttolasten 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 Föregående kolumnnamn 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 från enkla citattecken och omvänt snedstreck. Ett enda citat 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 med primitiva typer lagras som en dynamisk typ. "values": [154, 149, 147] values_string values_dynamic
Matriser med objekt plattas alltid ut, vilket ger upphov till 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öns 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- eller specialtecken och du automatiserar redigering av variabeluttryck för Time Series Model

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"} för till något av följande alternativ:

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

Nästa steg