Mongodb процентиль с группой - PullRequest
0 голосов
/ 16 февраля 2020

data

{ "array" : 112233, "hgName" : "host1",  "iops" : 1, "mbps" : 0.001464844, "responseTime" : 0.06, "timeStamp" : NumberLong("1572665400110") }
{ "array" : 112233, "hgName" : "host1",  "iops" : 1, "mbps" : 0.001464844, "responseTime" : 0.06, "timeStamp" : NumberLong("1572666600117") }
{ "array" : 112233, "hgName" : "host2",  "iops" : 1, "mbps" : 0.001464844, "responseTime" : 0.06, "timeStamp" : NumberLong("1572661800115") }
{ "array" : 112233, "hgName" : "host3",  "iops" : 1, "mbps" : 0.001464844, "responseTime" : 0.06, "timeStamp" : NumberLong("1572666900103") }
{ "array" : 112233, "hgName" : "host3",  "iops" : 1, "mbps" : 0.001464844, "responseTime" : 0.06, "timeStamp" : NumberLong("1572667200110") }
<--Truncated-->

Current Query:
db.MyCollections.aggregate([
  { 
   $match: {}    
  }, {
    $group: {
      _id: "$hgName",
      average_IOPS: {
        $avg: "$iops"
      },
      average_MBps: {
        $avg: "$mbps"
      },
      Max_MBPS: {$max: "$mbps"},
      Max_IOPS: {$max: "$iops"}
    }
  }
]);

{ "_id" : "host1", "average_IOPS" : 32.26, "average_MBps" : 11.1, "Max_MBPS" : 664.8, "Max_IOPS" : 1674 }
{ "_id" : "host2", "average_IOPS" : 54.44, "average_MBps" : 0.19, "Max_MBPS" : 13.96, "Max_IOPS" : 3339 }
{ "_id" : "host3", "average_IOPS" : 0.909, "average_MBps" : 0.00, "Max_MBPS" : 0.002, "Max_IOPS" : 1 }

Мне удалось выполнить агрегирование на этом уровне для данных временных рядов,

Мне нужно включить вычисление "процентиля (0,95) для iops и mbps" как средние цифры консолидации по хосту. т.е. процентная_95_iops и процентная_95_mbps вместе с другими результатами.

Спасибо и всего наилучшего VK

...