Предстоящие изменения в правилах выравнивания и экранирования JSON для новых сред
Примечание.
Служба временных рядов Аналитика будет прекращена 7 июля 2024 года. Рассмотрите возможность переноса существующих сред в альтернативные решения как можно скорее. Дополнительные сведения об устаревании и миграции см. в нашей документации.
Внимание
Эти изменения будут применяться только к новым создаваемым средам Аналитики временных рядов Azure 2-го поколения. Изменения не будут применяться к средам 1-го поколения.
Среда Аналитики временных рядов Azure 2-го поколения динамически создает столбцы хранилища согласно определенному набору соглашений об именовании. Когда принимается событие, Аналитика временных рядов применяет набор правил к полезной нагрузке JSON и именам свойств. Изменения в порядке выравнивания и сохранения данных JSON вступают в силу в новых средах Аналитики временных рядов Azure 2-го поколения в июле 2020 г. Это изменение влияет на работу в следующих ситуациях:
- Полезные данные JSON содержат вложенные объекты.
- Полезные данные JSON содержат массивы.
- В имени свойства JSON используется любой из следующих четырех специальных символов:
[
\
.
'
- Одно свойство или несколько идентификатора временных рядов (TS) находятся во вложенном объекте.
Если вы создаете новую среду и один или несколько из этих вариантов применяются к полезной нагрузке события, данные будут выравниваться и сохраняться иначе. Эти изменения показаны в следующей таблице.
Текущее правило | Новое правило | Пример JSON | Имя предыдущего столбца | Имя нового столбца |
---|---|---|---|---|
Вложенный JSON выравнивается с использованием подчеркивания в качестве разделителя. | Вложенный JSON выравнивается с использованием точки в качестве разделителя. | {"series" : { "value" : 19.338 }} |
series_value_double |
series.value_double |
Специальные знаки не экранируются. | Имена свойств JSON, которые включают специальные символы . [ \ и ' экранируются с помощью [' и .'] Между [' и '] выполняется дополнительное экранирование одиночных кавычек и обратных косых черт. Одинарная кавычка записывается как \' , а обратная косая черта — как \\ . |
"Foo's Law Value": "17.139999389648" |
Foo's Law Value_double |
['Foo\'s Law Value']_double |
Массивы примитивов хранятся в виде строки. | Массивы типов примитивов хранятся в виде динамического типа. | "values": [154, 149, 147] |
values_string |
values_dynamic |
Массивы объектов всегда выравниваются, так что создается несколько событий. | Если объекты в массиве не имеют идентификатора TS или метки времени, массив объектов сохраняется полностью как динамический тип. | "values": [{"foo" : 140}, {"bar" : 149}] |
values_foo_long | values_bar_long |
values_dynamic |
Рекомендуемые изменения для новых сред
Если идентификатор TS и (или) свойство метки времени вложены в объект,
все новые развертывания должны соответствовать новым правилам приема. Например, если идентификатором TS является telemetry_tagId
, вам нужно обновить все шаблоны Azure Resource Manager или скрипты автоматического развертывания, чтобы настроить telemetry.tagId
как идентификатор TS среды. Это изменение также требуется для меток времени источника события во вложенном JSON.
Если полезные данные содержат вложенный JSON или специальные символы и автоматизируют создание выражений переменной Модель временных рядов,
обновите код клиента, который выполняет TypesBatchPut в соответствии с новыми правилами приема. Например, необходимо обновить предыдущее выражение временного ряда"value": {"tsx": "$event.series_value.Double"}
одним из следующих способов.
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
Следующие шаги
Прочтите о хранении данных и входящем трафике в службе "Аналитика временных рядов Azure" 2-го поколения.
Узнайте, как выполнять запросы к данным с помощью API запросов временных рядов.
Прочтите о новом синтаксисе выражений временных рядов.