【问题标题】:Kibana Timelion: Subselect or Subquery to aggregate sum of maxKibana Timelion:子选择或子查询以聚合最大值的总和
【发布时间】:2017-08-10 17:12:43
【问题描述】:

假设我在 ElasticSearch 上有以下数据:

@timestamp; userId; currentPoints
August 7th 2017, 00:30:37.319; myUserName; 4
August 7th 2017, 00:43:22.121; myUserName; 10
August 7th 2017, 00:54:29.177; myUserName; 7
August 7th 2017, 01:10:29.352; myUserName; 4
August 7th 2017, 00:32:37.319; myOtherUserName; 12
August 7th 2017, 00:44:22.121; myOtherUserName; 17
August 7th 2017, 00:56:29.177; myOtherUserName; 8
August 7th 2017, 01:18:29.352; myOtherUserName; 11

我正在寻找一个日期直方图,它将向我显示每小时每个用户名的所有 max:currentPoints 的总和,这将生成以下要绘制的数据:

August 7th 2017, 00; SumOfMaxCurrentPoints -> 27 (max from hour 00h from both users 10 + 17)
August 7th 2017, 00; SumOfMaxCurrentPoints -> 15 (max from hour 01h from both users 4 + 11)

这通常使用子查询来完成,提取用户每小时的 max(currentPoints),然后对结果求和并每小时聚合。

例如,Kibana Timelion 是否可以做到这一点?我找不到使用文档实现此目的的方法。

谢谢 亚历克斯

【问题讨论】:

  • 嗨,你能解决这个问题吗?
  • 我不记得能用 Timelion 解决这个问题。最终为该项目使用了其他技术。
  • @Kostanos ,您可以在下面找到答案。终于找到了。

标签: elasticsearch kibana timelion


【解决方案1】:

在处理另一个项目时,我偶然发现了在 Kibana/Elasticsearch 中不使用 Timelion 进行此操作的答案。

该功能称为同级管道聚合,在这种情况下,您使用 Sum Bucket。您可以将它与任何最近的 Kibana/Elastic 可视化一起使用(我使用的是 5.5 版)。

对于如下数据集:

@timestamp; userId; currentPoints
August 7th 2017, 00:30:37.319; myUserName; 4
August 7th 2017, 00:43:22.121; myUserName; 10
August 7th 2017, 00:54:29.177; myUserName; 7
August 7th 2017, 01:10:29.352; myUserName; 4
August 7th 2017, 00:32:37.319; myOtherUserName; 12
August 7th 2017, 00:44:22.121; myOtherUserName; 17
August 7th 2017, 00:56:29.177; myOtherUserName; 8
August 7th 2017, 01:18:29.352; myOtherUserName; 11

您想要每个 userId 的 (currentPoints) 所有 MAXs(currentPoints) 的每小时总和,结果是:

August 7th 2017, 00; SumOfMaxCurrentPoints -> 27 (max from hour 00h from both users 10 + 17)
August 7th 2017, 00; SumOfMaxCurrentPoints -> 15 (max from hour 01h from both users 4 + 11)

你可以这样做:

指标

  1. 聚合:兄弟管道聚合(Sum Bucket)
  2. 桶聚合类型:术语
  3. 桶字段:userId
  4. 存储桶大小:如果您想要总精度,则该值高于用户数
  5. 指标聚合:最大值
  6. 指标字段:currentPoints

存储桶

  1. 桶类型:拆分行
  2. 桶聚合:日期直方图
  3. 直方图字段:@timestamp
  4. 直方图间隔:每小时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多