如何在Elasticsearch中为每小时访客构建数据

时间:2019-06-07 12:23:20

标签: elasticsearch kibana

我正在努力如何在Elasticsearch中构建数据。我每小时只有一个号码。

所以会是这样:

2018-01-01T03:00:00 - 280

也就是说,凌晨3点有280位访客。我对如何将所有这些都投入Elasticsearch感到困惑。应该全部放在一个索引中,一个文档作为一个长文件吗?

如果有帮助的话,这将被放在Kibana中的图形上。

1 个答案:

答案 0 :(得分:2)

您可以创建包含两个字段的单个索引:datecount。 令文档类型为_doc

要创建索引并将文档放入_id为1的文档中:

PUT test/_doc/1
{
  "date":"2018-01-01T03:00:00",
  "count": 280
}

您可以重复此操作以放置所有要添加的数据。 例如,如果数据是这样的:

[ { "_index" : "test", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" : { "date" : "2018-01-01T03:00:00", "count" : 280 } }, { "_index" : "test", "_type" : "_doc", "_id" : "2", "_score" : 1.0, "_source" : { "date" : "2018-02-01T03:00:00", "count" : 1312 } }, { "_index" : "test", "_type" : "_doc", "_id" : "3", "_score" : 1.0, "_source" : { "date" : "2018-03-01T03:00:00", "count" : 124 } }, { "_index" : "test", "_type" : "_doc", "_id" : "5", "_score" : 1.0, "_source" : { "date" : "2018-05-01T03:00:00", "count" : 34 } }, { "_index" : "test", "_type" : "_doc", "_id" : "7", "_score" : 1.0, "_source" : { "date" : "2018-01-01T03:00:00", "count" : 280 } } ]

然后您可以将每月计数可视化为例如:

enter image description here

将存储桶添加为:

enter image description here

PS:默认情况下,elasticsearch启用了date_detection,因此您的日期字符串将自动保留为日期类型。

希望这会有所帮助。