Как извлечь медиану с помощью Кусто

Я понял, что мне нужна функция процентилей для извлечения медианы. Тем не менее, я действительно не получаю результата. Я хочу узнать, сколько писем в среднем отправляется, чтобы выбросы не исказили результат. CustomDimensions.AmountStored содержит информацию о том, сколько писем было сохранено.

Я использую этот запрос:

AllShards_CustomEvents 
| where name == "Mail.Implementation.StoreCount" 
| extend storeCount = toint(customDimensions.AmountStored)
| project timestamp, shard=tostring(customDimensions.ShardName), storeCount
| summarize percentiles(storeCount, 5, 50, 95) by bin(timestamp, 7d), shard

person fabian09    schedule 29.03.2020    source источник
comment
использование percentile(storeCount, 50) действительно даст вам медианное значение. вы можете пояснить, что вы имеете в виду, говоря, что на самом деле я не получаю результата, так как это непонятно для всех, кто читает ваше исходное сообщение.   -  person Yoni    schedule 29.03.2020
comment
@YoniLeibowitz каждые 2 минуты сохраняются электронные письма. Количество сохраненных писем сохраняется в параметре customDimensions.AmountStored. Так что моя медиана должна выглядеть, например, как 1000 писем в день ... но на данный момент это либо 0, либо 1.   -  person fabian09    schedule 30.03.2020


Ответы (1)


Возможно, мне что-то не хватает, но запрос ниже, похоже, работает нормально. Возможно, вы сможете уточнить, что именно у вас не работает?

let AllShards_CustomEvents = datatable(timestamp:datetime, name:string, customDimensions:dynamic)
[
    datetime(2020-03-30 16:55), "Mail.Implementation.StoreCount", dynamic({'AmountStored': 100}),
    datetime(2020-03-30 16:57), "Mail.Implementation.StoreCount", dynamic({'AmountStored': 200}),
    datetime(2020-03-30 16:57), "Mail.Implementation.StoreCount", dynamic({'AmountStored': 300}),
    datetime(2020-03-30 16:57), "Mail.Implementation.StoreCount", dynamic({'AmountStored': 400}),
    datetime(2020-03-30 16:57), "Mail.Implementation.StoreCount", dynamic({'AmountStored': 500}),
];
AllShards_CustomEvents 
| where name == "Mail.Implementation.StoreCount" 
| extend storeCount = toint(customDimensions.AmountStored)
| project timestamp, shard=tostring(customDimensions.ShardName), storeCount
| summarize percentiles(storeCount, 5, 50, 95) by bin(timestamp, 7d), shard
|timestamp|shard|percentile_storeCount_5|percentile_storeCount_50|percentile_storeCount_95|
|---|---|---|---|---|
|2020-03-30 00:00:00.0000000||100|300|500|
person Alexander Sloutsky    schedule 30.03.2020