Partager via


Modifications à venir apportées aux règles d’aplatissement et d’échappement JSON pour les nouveaux environnements

Note

Le service Time Series Insights sera mis hors service le 7 juillet 2024. Envisagez de migrer des environnements existants vers d’autres solutions dès que possible. Pour plus d’informations sur la dépréciation et la migration, consultez notre documentation .

Important

Ces modifications seront appliquées aux environnements Microsoft Azure Time Series Insights Gen2 nouvellement créés seulement. Les modifications ne s’appliquent pas aux environnements Gen1.

Votre environnement Azure Time Series Insights Gen2 crée dynamiquement vos colonnes de stockage, en suivant un ensemble particulier de conventions d’affectation de noms. Lorsqu’un événement est ingéré, Time Series Insights applique un ensemble de règles aux noms de propriété et de charge utile JSON. Modifications apportées à la façon dont les données JSON sont aplaties et stockées sont entrés en vigueur pour les nouveaux environnements Azure Time Series Insights Gen2 en juillet 2020. Ce changement vous affecte dans les cas suivants :

  • Votre charge utile JSON contient des objets imbriqués.
  • Votre charge utile JSON contient des tableaux.
  • Vous utilisez l’un des quatre caractères spéciaux suivants dans un nom de propriété JSON : [\.'
  • Une ou plusieurs de vos propriétés d’ID de série chronologique (TS) se trouvent dans un objet imbriqué.

Si vous créez un nouvel environnement et si l'un ou plusieurs de ces cas s'appliquent à la charge de l’événement, vos données seront aplaties et stockées différemment. Le tableau suivant récapitule les modifications :

Règle actuelle Nouvelle règle Exemple JSON Nom de colonne précédent Nouveau nom de colonne
Json imbriqué est aplatit à l’aide d’un trait de soulignement comme délimiteur. Le JSON imbriqué est aplati à l'aide d'un point comme séparateur. {"series" : { "value" : 19.338 }} series_value_double series.value_double
Les caractères spéciaux ne sont pas échappés. Les noms de propriétés JSON qui incluent les caractères spéciaux .,[,\ et ' sont échappés à l’aide des caractères [' et ']. Dans [' et '], il existe des échappements supplémentaires de guillemets simples et d'anti-slash. Une citation unique est écrite en tant que \' et une barre oblique inverse comme \\. "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
Les tableaux de primitives sont stockés sous forme de chaîne. Les tableaux de types primitifs sont stockés en tant que type dynamique. "values": [154, 149, 147] values_string values_dynamic
Les tableaux d’objets sont toujours aplatis, ce qui produit plusieurs événements. Si les objets d’un tableau n’ont pas l’ID TS ou les propriétés d’horodatage, le tableau d’objets est stocké dans son ensemble sous la forme d’un type dynamique. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Si votre propriété TS ID et/ou timestamp est imbriquée dans un objet

Tous les nouveaux déploiements doivent correspondre aux nouvelles règles d’ingestion. Par exemple, si votre ID TS est telemetry_tagId, vous devez mettre à jour les modèles Azure Resource Manager ou les scripts de déploiement automatisé pour configurer telemetry.tagId en tant qu’ID TS d’environnement. Vous avez également besoin de cette modification pour les horodatages de source d’événements dans le JSON imbriqué.

Si votre charge utile contient des JSON imbriqués ou des caractères spéciaux et que vous automatisez la création d'expressions de variables pour le modèle de série chronologique

Mettez à jour votre code client qui exécute TypesBatchPut pour qu’il corresponde aux nouvelles règles d’ingestion. Par exemple, vous devriez mettre à jour une expression de série chronologique précédente de "value": {"tsx": "$event.series_value.Double"} vers l’une des options suivantes :

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

Étapes suivantes

  • En savoir plus sur le stockage et l'entrée Azure Time Series Insights Gen2 .

  • Découvrez comment interroger vos données à l’aide des API de requête de série chronologique .

  • En savoir plus sur la nouvelle syntaxe des séries temporelles d'expression .