使用Kibana可视化你的数据
把数据保存到Elasticsearch之后,有一个重要的工作就是要对数据进行可视化,以便下一步的分析。下面通过一个官方的数据集来介绍如何通过Kibana进行数据可视化。
![](https://assets.matters.news/embed/62b63459-f644-4f16-baa6-dc911b755829.png)
操作环境
Elasticsearch: 7.7.0
Kibana: 7.7.0
下载并导入数据
从官网下载如下的数据集:https://download.elastic.co/demos/kibana/gettingstarted/accounts.zip
解压缩后会得到accounts.json这个文件,其大小大约为240K。
运行如下命令将数据导入ES:
curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/bankdemo/account/_bulk?pretty' --data-binary @accounts.json
在Kibana的Devtool中验证数据已经被导入:
GET /_cat/indices?v GET bankdemo/_search?q=*:*
其输出类似于:
{ "took" : 6, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1000, "relation" : "eq" }, "max_score" : 1.0, "hits" : [ { "_index" : "bankdemo", "_type" : "account", "_id" : "1", "_score" : 1.0, "_source" : { "account_number" : 1, "balance" : 39225, "firstname" : "Amber", "lastname" : "Duke", "age" : 32, "gender" : "M", "address" : "880 Holmes Lane", "employer" : "Pyrami", "email" : "amberduke@pyrami.com", "city" : "Brogan", "state" : "IL" } }, ……
创建索引模式(Index Pattern)
索引模式(Index Pattern)可以针对多个索引,因此在创建时支持通配符。
在Kibana的页面中选择:Kibana -> Management -> Index Patterns -> Create index pattern
![](https://assets.matters.news/embed/bf68f76d-75d4-4531-90f9-a925d547beeb.png)
创建完毕后会看到如下界面:
![](https://assets.matters.news/embed/bc9a2a5d-88e7-4a0a-bbc1-edc3635c868b.png)
可以看到有的字段可以被搜索的(Searchable),有的字段是可以被聚合的(Aggregatable)。如果需要的话,可以自己更改这些字段的属性。
在Kibana中查看数据
单击Discovery后,可以输入KQL来检索数据。
比如,输入:
balance >= 47500 and employer:a*
你会看到:
![](https://assets.matters.news/embed/41d277d2-5e5a-40df-933b-08b8b464969f.png)
KQL的语法和SQL非常相似,简单好用,比如:
balance >= 47500 and employer:a* and account_number > 100
可以通过左侧菜单选择索引,以及字段。
Kibana可视化:饼图
选择Visualize -> Create visualization -> Pie -> Bank Demo
![](https://assets.matters.news/embed/b908510d-bde6-4be1-a22a-10bdd44486c7.png)
由于目前没有对源数据进行定义,因此,初始饼图看起来这是这样的:
![](https://assets.matters.news/embed/8aee503c-58e2-4b37-b159-fd3dcb002c3c.png)
选择Buckets -> Add -> Split slices -> Range,同时设定不同的范围:
![](https://assets.matters.news/embed/5aa7888b-c914-4c7c-8a6e-f56bf268a98a.png)
可以看到更新后的饼图:
![](https://assets.matters.news/embed/17bc91f3-204f-410a-88d8-e1d5f0506038.png)
还可以添加一个SUB-BUCKET,在现有聚合的基础上做进一步的划分:
![](https://assets.matters.news/embed/6afc3d5c-77c7-4afb-ba24-a002351775ce.png)
最后不要忘记保存你的Visualization。
喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!
![](https://imagedelivery.net/kDRCweMmqLnTPNlbum-pYA/prod/avatar/bd10e9b1-33f5-4454-9975-222fd8734b3e.png/public)
- 来自作者
- 相关推荐