将ElasticSearch聚合的结果放回索引中是否可行?

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百分位数数据(上面的“value”)。我知道可以通过聚合实现这一点,但我的问题如下:ElasticSearch是否支持一种将聚合的输出(或查询结果)自动添加回索引的方法?我知道可以使用一些辅助应用程序将输出取出并调整字段后再将数据放回,但我想知道是否仅使用ES就能实现。使用一个相当的SQL示例,我将寻找类似于以下内容的解决方案:
create table agg
select id, count(*) as counts
from data
group by id;
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,您只需要将结果附加到日志文件中即可。


1
这就是我关于“助手”程序的想法。我添加了一个 SQL 示例,应该有助于缩小我寻找的范围。 - alexpotato

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接