背景
随着监控系统的搭建开发 时序数据库选择了InfluxDB. 这里记录了Windows平台下的使用过程。
InfluxDB
InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。
InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。
Why is InfluxDB
时间序列数据可以是随时间跟踪、监视、下采样和聚合的度量或事件,如服务器指标、应用程序性能、网络数据、传感器数据以及许多其他类型的分析数据。
Let's Start
- 下载InfluxDB
-
https://portal.influxdata.com/downloads,选windows版
由于官网的下载使用的js寄存于谷歌云服务器。需要使用如下技巧来下载 惊不惊喜意不意外
通过查看网页源代码 我们可以发现下载链接
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.1_windows_amd64.zip
有wget使用wget ,没有的话 直接下载即可 为了减少复杂度 本次使用了1.X的版本。
下载成功后 解压。
使用前配置inflexdb.conf
[data]下的dir字段修改为安装路径。
[meta]下的dir、war-dir两个字段修改为安装路径。
双击influxd.exe即可运行
- 验证InfluxDB是否正在运行
使用SHOW DATABASE Scurl命令验证InfluxDB是否已启动并正在运行:
curl "http://localhost:8086/query?q=show+databases"
如果InfluxDB正在运行,您应该看到一个包含_internal数据库的对象:
这里也附带一个python验证demo
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
data = 'http://localhost:8086/query?q=show+databases'
print( os.popen('curl %s' % data ))
- 图形化管理界面influxdata
图形化工具下载链接https://newreleases.io/project/github/influxdata/chronograf/release/1.8.9
3.1 解压后,直接运行chronograf.exe。
3.2 浏览器输入 localhost:8888 访问。
windows下安装 influxdb 模块
命令 :pip install influxdb
遇到这个超时问题:
- 解决方法
找到C:\Users\tony\AppData\Roaming\pip,在该路径下新建文件夹,命名为“pip”,在pip文件夹中新建pip.ini”,
[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
use-mirrors = true
mirrors = https://pypi.tuna.tsinghua.edu.cn
重新执行pip命令,问题解决
influxdb的应用
目前的数据库如下
测试influxdb
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
from influxdb import InfluxDBClient
# 初始化(指定要操作的数据库)
#client = InfluxDBClient('localhost', 8086, 'your_username', 'yuor_password', 'your_dbname')
client = InfluxDBClient('localhost', 8086, '', '', '_internal')
print(client.get_list_database()) # 显示所有数据库名称
client.create_database('testdb') # 创建数据库
print(client.get_list_database()) # 显示所有数据库名称
client.drop_database('testdb') # 删除数据库
print(client.get_list_database()) # 显示所有数据库名称
** 运行结果 **
[{'name': '_internal'}, {'name': 'testdb'}]
[{'name': '_internal'}]
(venv) E:\nanwang\kafka>
总结
Influxdb已经运行在windows系统中
常用InfluxQL
-- 查看所有的数据库
show databases;
-- 使用特定的数据库
use database_name;
-- 查看所有的measurement
show measurements;
-- 查询10条数据
select * from measurement_name limit 10;
-- 数据中的时间字段默认显示的是一个纳秒时间戳,改成可读格式
precision rfc3339; -- 之后再查询,时间就是rfc3339标准格式
-- 或可以在连接数据库的时候,直接带该参数
influx -precision rfc3339
-- 查看一个measurement中所有的tag key
show tag keys
-- 查看一个measurement中所有的field key
show field keys
-- 查看一个measurement中所有的保存策略(可以有多个,一个标识为default)
show retention policies;
TODO
研究如何使用Influxdb存储数据