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 |
Rekommenderade ändringar för nya miljöer
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_tagId
må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
Lär dig mer om Azure Time Series Insights Gen2-lagring och ingress.
Lär dig hur du kör frågor mot dina data med hjälp av Time Series Query-API:er.
Läs mer om den nya syntaxen för Tidsserieuttryck.