所以我有一个从主机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;
答案 0 :(得分:1)
也许有点偏离您正在寻找的内容,但您可以使用Logstash执行此操作,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设置,你需要做的就是将你的结果追加到日志文件中。