Share via


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

Nota

Il servizio Time Series Insights (TSI) non sarà più supportato dopo marzo 2025. Valutare la possibilità di eseguire la migrazione di ambienti TSI esistenti a soluzioni alternative il prima possibile. Per altre informazioni sulla deprecazione e la migrazione, vedere 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 di 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 set di regole ai nomi di proprietà e payload JSON. Modifiche alla modalità di flating dei dati JSON e archiviate sono state applicate 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.
  • In un nome di proprietà JSON si usa uno dei quattro caratteri speciali seguenti: [\.'
  • 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 si applicano al payload dell'evento, i dati verranno appiattiti e archiviati in modo diverso. La tabella seguente riepiloga le modifiche:

Regola corrente Nuova regola JSON di esempio Nome precedente della colonna Nome nuova colonna
Json annidato viene appiattito usando un carattere di sottolineatura come delineatore. Json annidato viene appiattito usando un punto come delineatore. {"series" : { "value" : 19.338 }} series_value_double series.value_double
I caratteri speciali non vengono preceduti da caratteri di escape. Nomi di proprietà JSON che includono i caratteri .[\ speciali e ' vengono preceduti da un carattere di escape usando [' e .'] All'interno [' di e ']è disponibile un'ulteriore escape di virgolette singole e barre rovesciata. 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, generando più eventi. Se gli oggetti all'interno di una matrice non hanno le proprietà TS ID o timestamp, la matrice di oggetti viene archiviata interamente come tipo dinamico. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Se la proprietà TS ID e/o 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 automatizzati da configurare telemetry.tagId come ID TS dell'ambiente. Questa modifica è necessaria anche per i timestamp dell'origine eventi in JSON annidato.

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

Aggiornare il codice client che esegue TypesBatchPut in modo che corrisponda alle nuove regole di inserimento. Ad esempio, è consigliabile aggiornare un'espressione Time Series precedente di "value": {"tsx": "$event.series_value.Double"} a una delle opzioni seguenti:

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

Passaggi successivi