Aanstaande wijzigingen in JSON-afvlakken en escaperegels voor nieuwe omgevingen
Notitie
De Time Series Insights-service wordt op 7 juli 2024 buiten gebruik gesteld. Overweeg om bestaande omgevingen zo snel mogelijk naar alternatieve oplossingen te migreren. Voor meer informatie over de veroudering en migratie, ga naar onze documentatie.
Belangrijk
Deze wijzigingen worden alleen toegepast op zojuist gemaakte Microsoft Azure Time Series Insights Gen2-omgevingen. De wijzigingen zijn niet van toepassing op Gen1-omgevingen.
Uw Azure Time Series Insights Gen2-omgeving maakt dynamisch uw opslagkolommen, volgens een bepaalde set naamconventies. Wanneer een gebeurtenis wordt opgenomen, past Time Series Insights een set regels toe op de JSON-nettolading en eigenschapsnamen. Wijzigingen in de wijze waarop JSON-gegevens worden afgevlakt en opgeslagen, zijn in juli 2020 van kracht geworden voor nieuwe Azure Time Series Insights Gen2-omgevingen. Deze wijziging heeft gevolgen voor u in de volgende gevallen:
- De JSON-payload bevat geneste objecten.
- Uw JSON-nettolading bevat matrices.
- U gebruikt een van de volgende vier speciale tekens in de naam van een JSON-eigenschap:
[
\
.
'
- Een of meer eigenschappen van uw TS-id (Time Series) bevinden zich in een genest object.
Als u een nieuwe omgeving maakt en een of meer van deze gevallen van toepassing zijn op de payload van uw gebeurtenis, worden uw gegevens afgevlakt en anders opgeslagen. De volgende tabel bevat een overzicht van de wijzigingen:
Huidige regel | Nieuwe regel | Voorbeeld van JSON | Vorige kolomnaam | Nieuwe kolomnaam |
---|---|---|---|---|
Geneste JSON wordt afgevlakt met een onderstrepingsteken als de delineator. | Genest JSON wordt afgevlakt met behulp van een punt als scheidingsteken. | {"series" : { "value" : 19.338 }} |
series_value_double |
series.value_double |
Speciale tekens worden niet ontsnapt. | JSON-eigenschapsnamen met de speciale tekens . [ \ en ' worden met [' en '] geëscaped. Binnen [' en '] zijn er extra escapes van enkele aanhalingstekens en backslashes. Eén aanhalingsteken wordt geschreven als \' en een backslash als \\ . |
"Foo's Law Value": "17.139999389648" |
Foo's Law Value_double |
['Foo\'s Law Value']_double |
Matrices van primitieven worden opgeslagen als een tekenreeks. | Matrices van primitieve typen worden opgeslagen als een dynamisch type. | "values": [154, 149, 147] |
values_string |
values_dynamic |
Matrices van objecten worden altijd afgevlakt en produceren meerdere gebeurtenissen. | Als de objecten in een matrix geen TS-id of tijdstempeleigenschappen hebben, wordt de matrix met objecten opgeslagen als dynamisch type. | "values": [{"foo" : 140}, {"bar" : 149}] |
values_foo_long | values_bar_long |
values_dynamic |
Aanbevolen wijzigingen voor nieuwe omgevingen
Als uw TS-id en/of eigenschap voor de tijdsaanduiding is ingebed binnen een object
Nieuwe implementaties moeten overeenkomen met de nieuwe opnameregels. Als uw TS-id bijvoorbeeld is telemetry_tagId
, moet u azure Resource Manager-sjablonen of geautomatiseerde implementatiescripts bijwerken om telemetry.tagId
te configureren als de TS-id van de omgeving. U hebt deze wijziging ook nodig voor tijdstempels van gebeurtenisbronnen in geneste JSON.
Als uw payload geneste JSON of speciale tekens bevat en u het opstellen van Time Series Model variabele expressies automatiseert
Werk de clientcode bij die TypesBatchPut uitvoert om deze overeen te laten komen met de nieuwe invoeringsregels. U moet bijvoorbeeld een eerdere Time Series-expressie bijwerken van "value": {"tsx": "$event.series_value.Double"}
naar een van de volgende opties:
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
Volgende stappen
Meer informatie over Azure Time Series Insights Gen2-opslag en invoer.
Meer informatie over het uitvoeren van query's op uw gegevens met behulp van Time Series-query-API's.
Lees meer over de nieuwe syntaxis van tijdreeksexpressies.