原创声明:本文首发腾讯云·云+社区,未经允许,不得转载
数据可视化是kibana的重要功能之一,相关用法可以参考官网文档:
https://www.elastic.co/guide/cn/kibana/current/tutorial-visualizing.html
下面,我们以《全国高校信息.json》为例,进行实际操作。
根据上面的json内容,我们需要首先创建索引并指定映射。
PUT daxue
{
"mappings": {
"alldata": {
"properties": {
"codea": {"type": "keyword"},
"charge": {"type": "keyword"},
"level": {"type": "keyword"},
"name": {"type": "text"},
"location": {"type": "keyword"},
"remark": {"type": "keyword"},
"prov": {"type": "keyword"}
}
}
}
}
这里,我们使用python,构造curl语句,将数据上传到ES。代码需要在虚拟机上执行,该虚拟机与ES在同一网络下。
#python 3.6
# -*- coding:utf-8 -*-
__author__ = 'BH8ANK'
import json
import os
#文件预处理
a = open(r"/bh8ank/elasticsearch/daxue.json", "r",encoding='UTF-8')
out = a.read()
tmp = json.dumps(out)
tmp = json.loads(out)
#构造curl语句上传数据
num = len(tmp)
i = 0
while i < num:
data = json.dumps(tmp[i],ensure_ascii=False)
i = str(i)
curl_word_1 = """curl -XPUT "http://10.0.0.32:9200/daxue/alldata/""" + i #此处设置ES的IP:PORT
curl_word_2 = '''" -H 'Content-Type: application/json' -d'''
curl_word_3 = "'" + data + "'"
curl_words = curl_word_1 + curl_word_2 + curl_word_3
os.system(curl_words)
print(i)
i = int(i)
i = i + 1
上述代码执行后,数据即上传到了ES。可以通过kibana确认数据是否已OK。
如下图,在kibana中创建index pattern,需要注意的是,index pattern名称需要与之前创建索引时保持一致。创建后,需要耐心等待几分钟。
完成创建后,即可进行下一步。
如下图,我们以创建一个饼图为例。
点击上面的饼图后,选择数据源(即上一步创建的index pattern),如下图:
下面,就以动图来展示(可以在图片右键选择在新窗口打开,查看高清大图):
同样的,我们再生成一个柱状图(可以在图片右键选择在新窗口打开,查看高清大图):
除此之外,还可以生成词云:
那么问题来了,上面的几个视图保存后,我们如何将它们展示在一个页面内呢?
这里需要使用到DashBoard功能,操作如下图:
最终,我们得到了一张包含各种视图的DashBoard:
现在看起来,数据是不是比冰冷冷的字符更直观了呢?需要注意的是,不管是创建了视图还是创建了DashBoard,都不要忘记保存。
有关Kibana可视化的内容就介绍到这里, 还有很多其他的视图功能,还有待进一步摸索,这里不再展开。