使用Kibana可视化你的数据
把数据保存到Elasticsearch之后,有一个重要的工作就是要对数据进行可视化,以便下一步的分析。下面通过一个官方的数据集来介绍如何通过Kibana进行数据可视化。
操作环境
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
创建完毕后会看到如下界面:
可以看到有的字段可以被搜索的(Searchable),有的字段是可以被聚合的(Aggregatable)。如果需要的话,可以自己更改这些字段的属性。
在Kibana中查看数据
单击Discovery后,可以输入KQL来检索数据。
比如,输入:
balance >= 47500 and employer:a*
你会看到:
KQL的语法和SQL非常相似,简单好用,比如:
balance >= 47500 and employer:a* and account_number > 100
可以通过左侧菜单选择索引,以及字段。
Kibana可视化:饼图
选择Visualize -> Create visualization -> Pie -> Bank Demo
由于目前没有对源数据进行定义,因此,初始饼图看起来这是这样的:
选择Buckets -> Add -> Split slices -> Range,同时设定不同的范围:
可以看到更新后的饼图:
还可以添加一个SUB-BUCKET,在现有聚合的基础上做进一步的划分:
最后不要忘记保存你的Visualization。