У меня есть некоторые данные, хранящиеся в пакете свойств customEvents, для которых я хочу выполнить агрегирование и аналитику. Я новичок в аналитических запросах, которые можно запускать в AppInsights с помощью языка запросов Azure Data Explorer, и я застрял.
У меня есть способ преобразования содержимого одной из пар ключ-значение пакета свойств в массив чисел (в приведенном ниже примере этот вывод представлен как items
.
let items = parse_json('{"operation_Id": "12345Z12", "days":[43, 21, 65]}');
print items.operation_Id, items.days;
Однако, когда мне нужно вычислить среднее значение элементов в массиве для каждого operation_Id, я наталкиваюсь на стену документации. Я рассмотрел mvexpand
, let
(с использованием лямбда-выражения), datatable
, с использованием динамических типов данных и т. Д. Проблема с блокировкой, с которой я столкнулся с использованием mvexpand
, заключается в том, что я хочу связать каждую строку в выводе, коррелированную с ее операцией operation_Id
, и mvexpand
, кажется, сохраняет эту связь только в первой строке. С datatable
тип не поддерживает ввод конвейера.
Еще одна распространенная ошибка (в том числе из приведенного ниже примера кода: Выражение исходного кода оператора должно быть таблицей или столбцом).
let items = parse_json('{"days":[43, 21, 65]}');
let arraySum = (T:(x: long))
{
T
| summarize sum(x)
};
items
| project days | invoke arraySum()
При необходимости я могу выполнить код агрегации в JavaScript и передать только вычисленное среднее значение в сумке свойств, но выбрасывать необработанные значения данных кажется пустой тратой. Есть ли какая-нибудь очевидная функция вычисления или агрегирования, которая решает эту проблему?