【问题标题】:Is it possible to put the results of an ElasticSearch aggregation back into the index?是否可以将 ElasticSearch 聚合的结果放回索引中?
【发布时间】:2014-09-08 22:16:03
【问题描述】:

所以我有一个索引,其中包含从主机 A 到主机 B 的 ping 数据,我的数据如下所示:

{
  "@version" => "1",
  "@timestamp" => "2014-07-17T21:17:34.030Z",
  "host" => "host_a",
  "to_host" => "host_b",
  "value" => "25.6",
  "from_host" => "host_a",
  "stat_type" => "ping"
}

目标也是在移动窗口上存储 ping 值的第 90 个百分位数数据(上面的“值”),例如最后一小时,最后一天等。

我知道我可以通过聚合来做到这一点,但我的问题如下:

ElasticSearch 是否支持将聚合(或相关的查询)的输出自动添加回索引的方法?

我知道我可能只是获取输出,调整字段,然后使用一些帮助应用程序将数据放回原处,但我很好奇这是否只能使用 ES。

要使用等效的 SQL 示例,我会寻找这样的东西:

create table agg
select id, count(*) as counts
from data
group by id;

【问题讨论】:

    标签: elasticsearch elasticsearch-aggregation


    【解决方案1】:

    可能与您正在寻找的内容有些不同,但您可以使用 Logstash 来完成此操作,它是 Elasticsearch http://www.elasticsearch.com/blog/welcome-jordan-logstash/ 的一部分。

    我不会在这里详细介绍(那里有很多 Logstash 教程),但是将聚合查询的结果附加到日志文件并让 Logstash 自动获取结果并将其加载到 Elasticsearch 索引中是相当不错的琐碎的。本教程涵盖了从日志文件中读取 logstash 并自动索引内容所需的所有内容:

    http://logstash.net/docs/1.4.2/tutorials/getting-started-with-logstash

    您当然可以在代码中执行此操作,但这里的大部分工作都已完成,一旦您设置了 logstash,您所需要做的就是将结果附加到日志文件中。

    【讨论】:

    • 这就是我对“帮助”程序的想法。我添加了一个 SQL 示例,它应该有助于缩小我正在寻找的范围。
    猜你喜欢
    • 2017-04-13
    • 2015-01-15
    • 1970-01-01
    • 2021-09-25
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    相关资源
    最近更新 更多