Compartir vía


Próximos cambios en las reglas de aplanamiento y escapado de JSON para nuevos entornos

Nota

El servicio Time Series Insights se retirará el 7 de julio de 2024. Considere la posibilidad de migrar entornos existentes a soluciones alternativas lo antes posible. Para obtener más información sobre la deprecación y la migración, visite nuestra documentación de.

Importante

Estos cambios se aplicarán solo a recién creados entornos de Microsoft Azure Time Series Insights Gen2. Los cambios no se aplican a los entornos de Gen1.

El entorno de Azure Time Series Insights Gen2 crea dinámicamente las columnas de almacenamiento, siguiendo un conjunto determinado de convenciones de nomenclatura. Cuando se ingiere un evento, Time Series Insights aplica un conjunto de reglas a la carga JSON y los nombres de propiedad. Cambios en cómo se aplanan y almacenan los datos JSON entraron en vigor para los nuevos entornos de Azure Time Series Insights Gen2 en julio de 2020. Este cambio le afecta en los casos siguientes:

  • Tu carga JSON contiene objetos anidados.
  • La carga JSON contiene matrices.
  • Use cualquiera de los cuatro caracteres especiales siguientes en un nombre de propiedad JSON: [\.'
  • Una o varias de las propiedades de identificador de serie temporal (TS) están dentro de un objeto anidado.

Si crea un nuevo entorno y uno o varios de estos casos se aplica a la carga del evento, los datos se aplanarán y almacenarán de forma diferente. En la tabla siguiente se resumen los cambios:

Regla actual Nueva regla Json de ejemplo Nombre de columna anterior Nuevo nombre de columna
Json anidado se aplana mediante un carácter de subrayado como delimitador. Json anidado se aplana mediante un punto como delimitador. {"series" : { "value" : 19.338 }} series_value_double series.value_double
Los caracteres especiales no están escapados. Los nombres de propiedad JSON que incluyen los caracteres especiales .[\ y ' se escapan mediante [' y ']. Dentro de [' y '], hay escape adicional de comillas simples y barras diagonales inversas. Una comilla simple se escribirá como \' y una barra diagonal inversa como \\. "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
Las matrices de primitivos se almacenan como una cadena. Las matrices de tipos primitivos se almacenan como un tipo dinámico. "values": [154, 149, 147] values_string values_dynamic
Las matrices de objetos siempre se desglosan y generan varios eventos. Si los objetos de una matriz no tienen las propiedades TS ID o timestamp, la matriz de objetos se almacena en su totalidad como un tipo dinámico. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Si el identificador de TS y/o la propiedad de marca de tiempo está anidado dentro de un objeto

Las nuevas implementaciones deben coincidir con las nuevas reglas de ingesta. Por ejemplo, si el identificador de TS es telemetry_tagId, debe actualizar las plantillas de Azure Resource Manager o los scripts de implementación automatizada para configurar telemetry.tagId como identificador de TS de entorno. También necesita este cambio para las marcas de tiempo de origen de eventos en JSON anidado.

Si la carga contiene caracteres JSON anidados o especiales y automatiza la autoría de Modelo de serie temporal expresiones de variables

Actualice el código de cliente que ejecuta TypesBatchPut para cumplir con las nuevas reglas de ingestión. Por ejemplo, debe actualizar una expresión de serie temporal de anterior de "value": {"tsx": "$event.series_value.Double"} a una de las siguientes opciones:

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

Pasos siguientes