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 |
Cambios recomendados para nuevos entornos
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
Obtenga información sobre almacenamiento y entrada de Azure Time Series Insights Gen2.
Obtenga información sobre cómo consultar los datos mediante API de consulta de serie temporal.
Lea más sobre la nueva sintaxis de expresión de serie temporal .