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 |
Modifiche consigliate per i nuovi ambienti
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
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
Passaggi successivi
Scopri l'archiviazione e l'inserimento di dati in Azure Time Series Insights Gen2.
Informazioni su come eseguire query sui dati usando API di query time series.
Altre informazioni sulla nuova sintassi dell'espressione Serie Temporale .