Condividi tramite


Modifiche imminenti alle regole di appiattimento e di escape JSON per i nuovi ambienti

Nota

Il servizio Time Series Insights verrà ritirato il 7 luglio 2024. Valutare la possibilità di eseguire la migrazione di ambienti esistenti a soluzioni alternative il prima possibile. Per altre informazioni sulla deprecazione e la migrazione, consultare la documentazione .

Importante

Queste modifiche verranno applicate solo agli ambienti Microsoft Azure Time Series Insights Gen2 appena creati . Le modifiche non si applicano agli ambienti Gen1.

L'ambiente Azure Time Series Insights Gen2 crea dinamicamente le colonne di archiviazione, seguendo un determinato set di convenzioni di denominazione. Quando viene inserito un evento, Time Series Insights applica un insieme di regole al payload JSON e ai nomi delle proprietà. Modifiche al modo in cui i dati JSON vengono appiattiti e archiviati sono stati applicati per i nuovi ambienti Azure Time Series Insights Gen2 a luglio 2020. Questa modifica influisce sui casi seguenti:

  • Il payload JSON contiene oggetti annidati.
  • Il payload JSON contiene matrici.
  • Usi uno dei quattro caratteri speciali seguenti in un nome di proprietà JSON: [\.'
  • Una o più proprietà dell'ID serie temporale (TS) si trovano all'interno di un oggetto annidato.

Se si crea un nuovo ambiente e uno o più di questi casi valgono per il payload dell'evento, i dati verranno semplificati e archiviati in modo diverso. La tabella seguente riepiloga le modifiche:

Regola corrente Nuova regola JSON di esempio Nome colonna precedente Nome della nuova colonna
Il JSON annidato viene appiattito usando la sottolineatura come delineatore. JSON annidato viene appiattito usando un punto come delimitatore. {"series" : { "value" : 19.338 }} series_value_double series.value_double
I caratteri speciali non vengono preceduti da escape. I nomi delle proprietà JSON che includono i caratteri speciali .[\ e ' vengono preceduti da caratteri di escape usando [' e ']. All'interno di [' e ']è presente un ulteriore mascheramento di virgolette singole e barre rovesciate. Una virgoletta singola verrà scritta come \' e una barra rovesciata come \\. "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
Le matrici di primitive vengono archiviate come stringa. Le matrici di tipi primitivi vengono archiviate come tipo dinamico. "values": [154, 149, 147] values_string values_dynamic
Le matrici di oggetti vengono sempre appiattite, producendo più eventi. Se gli oggetti all'interno di una matrice non hanno le proprietà TS ID o timestamp, la matrice di oggetti viene archiviata come tipo dinamico. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Se l'ID TS e/o la proprietà timestamp è annidata all'interno di un oggetto

Le nuove distribuzioni devono corrispondere alle nuove regole di inserimento. Ad esempio, se l'ID TS è telemetry_tagId, è necessario aggiornare i modelli di Azure Resource Manager o gli script di distribuzione automatica per configurare telemetry.tagId come ID TS dell'ambiente. Hai anche bisogno di questa modifica per i timestamp dell'origine degli eventi nel JSON annidato.

Se il payload contiene caratteri JSON o speciali annidati e si automatizza la creazione di modello Time Series espressioni di variabile

Aggiornare il codice cliente che esegue TypesBatchPut affinché sia conforme alle nuove regole di inserimento. Ad esempio, è consigliabile aggiornare un time series di a una delle opzioni seguenti:

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

Passaggi successivi