Dela via


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

Anmärkning

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 görs platt med hjälp av ett understreck som avgränsare. Kapslad JSON flattas ut med hjälp av en punkt som avgränsare. {"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 primitiva datatyper 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 din TS-ID och/eller tidsstämpelsegenskapen är kapslad i ett objekt

Alla nya utplaceringar måste överensstämma med 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