Azure Query Analytics усредняет все значения в столбце - PullRequest
0 голосов
/ 11 сентября 2018

Я использую информацию о приложении для записи пользовательских измерений о нашем приложении. У меня есть customEvent, данные которого хранятся в объекте customMeasurements. Объект содержит 4 пары ключ-значение. У меня есть много таких пользовательских событий, и я пытаюсь усреднить пары ключ-значение из всех событий и отобразить результаты в виде таблицы с двумя столбцами.

Я хочу иметь одну таблицу с двумя столбцами. Первый столбец - это ключ имя и второй столбец в ключ-значение всех событий усредненная .

Например, для event1 значение key1 установлено на 2 . Событие 2 имеет значение ключа key1 6 . Если это только два события, которые я получил за последние 7 дней, я хочу, чтобы в моей таблице было показано число 4 в строке, содержащей данные для ключа 1.

Я могу усреднить только 1 ключ на запрос, поскольку я не могу поместить несколько сумм в 1 запрос ... Вот что я имею для усреднения первого ключа в объекте customMeasurements:

customEvents
| where name == "PerformanceMeasurements"
| where timestamp > ago(7d) 
| summarize key1average=avg(toint(customMeasurements.key1))
| project key1average

Но мне нужно усреднить все ключей внутри этого объекта и построить 1 таблицу, как описано выше.

Для справки я приложил снимок экрана с макетом объекта customEvent customEvent: Here is one event's customMeasurement data

1 Ответ

0 голосов
/ 11 сентября 2018

Если количество ключей ограничено и известно заранее, то я бы рекомендовал использовать несколько агрегаций в операторе | summarize, разделяя их запятой:

| summarize key1average=avg(toint(customMeasurements.key1)), key2average=avg(toint(customMeasurements.key2)), key3average=avg(toint(customMeasurements.key3))

Если ключи могут отличаться, то вы 'd сначала сгладить пользовательские размеры с помощью оператора |mvexpand :

customEvents
| where timestamp > ago(1h)
| where name == "EventName" 
| project customDimensions 
| mvexpand bagexpansion=array customDimensions
| extend Key = customDimensions[0], Value = customDimensions[1]
| summarize avg(toint(Value)) by tostring(Key)

В этом случае каждая пара ключ-значение из customDimensions станет своей собственной строкой, и вы сможетеоперируйте со стандартными языковыми конструкциями запросов.

...