influxdb安装使用

来源:互联网 发布:公共摄像头查看软件 编辑:程序博客网 时间:2024/06/07 01:32
influxdb


安装
wget http://dl.influxdata.com/influxdb/releases/influxdb-1.0.2.x86_64.rpm
yum localinstall influxdb-1.0.2.x86_64.rpm
service influxdb start


在浏览器中输入localhost:8083 即可进入web管理页面。
CREATE DATABASE "testDB"
show databases


切换数据库
use testDB


与传统数据库中的名词做比较


influxDB中的名词 传统数据库中的概念
database 数据库
measurement 数据库中的表
points 表里面的一行数据 


Point由时间戳(time)、数据(field)、标签(tags)组成。


Point属性 传统数据库中的概念
time 每个数据记录时间,是数据库中的主索引(会自动生成)
fields 各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags 各种有索引的属性:地区,海拔


新增
命令行:
use testDB
insert weather,altitude=1000,area=北 temperature=11,humidity=-4
通过Http接口
curl -i -XPOST 'http://localhost:8086/write?db=testDB' --data-binary 'weather,altitude=1000,area=北 temperature=11,humidity=-4'
Line Protocol格式


插入数据的格式似乎比较奇怪,这是因为influxDB储存数据所采用的是Line Protocol格式。
在上面两个插入数据的方法中,都有一样的部分。
weather,altitude=1000,area=北 temperature=11,humidity=-4
其中:
weather : 表名
altitude=1000,area=北 : tag
temperature=11,humidity=-4 :field


删与改
在InfluxDB中并没有提供数据的删除与修改方法。
不过我们可以通过数据保存策略(Retention Policies)来实现删除。



通过命令行
use testDB
# 查询最新的三条数据
SELECT * FROM weather ORDER BY time DESC LIMIT 3
通过Http接口
curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=testDB" --data-urlencode "q=SELECT * FROM weather ORDER BY time DESC LIMIT 3"


数据库与表的操作
以下语句都可以直接在InfluxDB的Web管理界面中调用
# 创建数据库
CREATE DATABASE "db_name"
# 显示所有数据库
SHOW DATABASES
# 删除数据库
DROP DATABASE "db_name"
# 使用数据库
USE mydb
# 显示该数据库中的表
SHOW MEASUREMENTS
# 创建表
# 直接在插入数据的时候指定表名(weather就是表名)
insert weather,altitude=1000,area=北 temperature=11,humidity=-4
# 删除表
DROP MEASUREMENT "measurementName"


数据保存策略(Retention Policies)
InfluxDB没有提供直接删除Points的方法,但是它提供了Retention Policies。
主要用于指定数据的保留时间:当数据超过了指定的时间之后,就会被删除。


查看当前数据库的Retention Policies
SHOW RETENTION POLICIES ON "testDB"


创建新的Retention Policies
CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT
其中:
rp_name:策略名
db_name:具体的数据库名
30d:保存30天,30天之前的数据将被删除
它具有各种时间参数,比如:h(小时),w(星期)
REPLICATION 1:副本个数,这里填1就可以了
DEFAULT 设为默认的策略


修改Retention Policies
ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT


删除Retention Policies
DROP RETENTION POLICY "rp_name" ON "db_name"


连续查询(Continuous Queries)
当数据超过保存策略里指定的时间之后,就会被删除。
如果我们不想完全删除掉,比如做一个数据统计采样:把原先每秒的数据,存为每小时的数据,让数据占用的空间大大减少(以降低精度为代价)。
这就需要InfluxDB提供的:连续查询(Continuous Queries)。


当前数据库的Continuous Queries
# 这条命令得在命令行下输入,在web管理界面不能显示。
SHOW CONTINUOUS QUERIES


创建新的Continuous Queries
 CREATE CONTINUOUS QUERY cq_30m ON testDB BEGIN SELECT mean(temperature) INTO weather30m FROM weather GROUP BY time(30m) END
 
其中:
cq_30m:连续查询的名字
testDB:具体的数据库名
mean(temperature): 算平均温度
weather: 当前表名
weather30m: 存新数据的表名
30m:时间间隔为30分钟
当我们插入新数据之后,可以发现数据库中多了一张名为weather30m(里面已经存着计算好的数据了)。这一切都是通过Continuous Queries自动完成的。


删除Continuous Queries
DROP CONTINUOUS QUERY <cq_name> ON <database_name>


用户管理
以下语句都可以直接在InfluxDB的Web管理界面中调用
# 显示用户
SHOW USERS
# 创建用户
CREATE USER "username" WITH PASSWORD 'password'
# 创建管理员权限的用户
CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
# 删除用户
DROP USER "username"


第三方库API接口
InfluxDB提供了各种语言的Http API接口的封装。具体可以看这里:
https://docs.influxdata.com/influxdb/v0.10/clients/api/
同时,官方也提供了Telegraf插件来收集数据,除此之外还有collectd等比较常用的第三方数据收集工具。


数据展示工具
数据展示工具


数据最终是需要一套UI来展示的,而这种实时数据的展示,已经有不少项目了。 比如:
官方的Chronograf
Grafana
其它...

原创粉丝点击