基于上一篇的操作, 我们已经获得了数据, 接下来我们就要处理数据, 因此选用了 Kibana
先来介绍一下,
Kibana 是一个针对 Elasticsearch 的开源分析及可视化平台, 用来搜索, 查看交互存储在 Elasticsearch 索引中的数据.
使用 Kibana, 可以通过各种图表进行高级数据分析及展示.
Kibana 让海量数据更容易理解. 它操作简单, 基于浏览器的用户界面可以快速创建仪表板实时显示 Elasticsearch 查询动态.
进入操作:
1. 首先, 将 Elasticsearch 和 kibana 搭建在一个服务器上.
其次, 在 kibana 界面建立一个索引, 和 elaticsearch 建立的索引进行配对.
关于索引建立的步骤如下:
1. 打开 kibana 中的 management 管理
2. 单击 index patterns 索引模块.
3. 选择 create index pattern 模块, 建立索引.
进入新建索引页面后, 建立的索引名要和 Elasticsearch 建立的索引对应, 否则, 无法创建 kibana 的索引.
进入 next step 后 不要更改设置里面的默认选项, 直接 create 就可以.
2. 索引建立完成后, 我们可以去 discover 选项, 选择建立的索引, 查看通过 elaticsearch 上传的数据.
3. 既然已经找到数据, 那么我们就要对这些数据进行处理, 我们选择可视化里面的创建折线图 Line 来展示.
然后选择想可视化的对应索引后, 将出现如下界面.
选择 X 和 Y 的单位等, 比如 x 轴选择时间作为单位, 但是出现了以下问题:
匹配不到相应类型, 也就是说, 我在 elaticsearch 上传的时间不是 kibana 需要的 date 类型. 那我们的时间是什么类型呢??
再回到当初的 python 上传数据的代码发现, 第 23 行的这句话 (在上一篇文里面):
- y
- ={
- 'id'
- :
- '1'
- ,
- 'time'
- :
- str
- (
- time
- .
- strftime
- (
- "
- %Y-%m-
- %d
- %H:%M:%S
- "
- ,
- time
- .
- localtime
- ())),
- 'value'
- :str(val)
- }
发现 time 键对应的值是个字符串类型的啊!!!
OK, 那我就改类型, 把 str 改成 date 类型, 可以运用 python 的 datetime 库,
import datetime
将
- str
- (
- time
- .
- strftime
- (
- "
- %Y-%m-
- %d
- %H:%M:%S
- "
- , time.localtime()))---->
- datetime
- .date.today()
再仔细看看, 发现, value 对应的值也是 str, 当你在 kibana 操作的时候, 字段里面的选项也是没有 value 选项的, 现在知道了,
既然是 str 类型怎么能当成数字传上去呢, 所以要把 str 类型转成 number, 即删除 str() 即可.
改完之后我们保存执行, 在 kibana 中发现还是会报同样的错. 为什么呢???
因为索引里面的字段类型是不能更改的, 所以想变, 就只能重新建立一个新的索引了, 注意索引的名字一定不能相同!!!
再重复建立索引, 建立可视化图的步骤, 选择相应的 X 轴 Y 轴后, 我们的折线图就出来了.
来源: https://www.cnblogs.com/zx0423/p/11270426.html