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 |
Modifiche consigliate per i nuovi ambienti
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
Informazioni sull'archiviazione e l'ingresso di Azure Time Series Insights Gen2.
Informazioni su come eseguire query sui dati usando le API di query Time Series.
Altre informazioni sulla nuova sintassi dell'espressione Time Series.