4

所以我有一个索引,其中包含从主机 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;
4

1 回答 1

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,您所需要做的就是将结果附加到日志文件中。

于 2014-07-18T15:29:18.880 回答