使用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" : "[email protected]",
          "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。
