安装influxdb 1.8
参考 :
https://blog.csdn.net/u011112773/article/details/88307603
https://javapub.blog.csdn.net/article/details/111884534
cd /soft/bak
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4.x86_64.rpm
sudo yum localinstall influxdb-1.8.4.x86_64.rpm
chown -R influxdb:influxdb /var/lib/influxdb
systemctl start influxdb
配置文件位置 /etc/influxdb/influxdb.conf
默认端口 8086 8088
直接运行influx使用命令连接
无法修改时区 正常写入 读取的时候 在sql后面加tz(‘Asia/Shanghai’)
例如 SELECT * FROM “detail-eth” WHERE time > now() - 5m order by time limit 1 tz(‘Asia/Shanghai’)
常用命令
database:数据库;
measurement:数据库中的表;
points:表里面的一行数据。
influxDB中独有的一些概念
Point由时间戳(time)、数据(field)和标签(tags)组成。
time:每条数据记录的时间,也是数据库自动生成的主索引;
fields:各种记录的值;
tags:各种有索引的属性。
#创建数据库
create database "db_name"
#显示所有的数据库
show databases
#删除数据库
drop database "db_name"
#使用数据库
use db_name
#显示该数据库中所有的表
show measurements
#创建表,直接在插入数据的时候指定表名
insert test,host=127.0.0.1,monitor_name=test count=1
#删除表
drop measurement "measurement_name"
#插入记录
insert test, host=127.0.0.1, m=1 count=1
通过http接口操作
写入
curl -i -XPOST ‘http://127.0.0.1:8086/write?db=metrics‘ —data-binary ‘test,host=127.0.0.1,monitor_name=test count=1’
查询
curl -G ‘http://localhost:8086/query?pretty=true‘ —data-urlencode “db=metrics” —data-urlencode “q=select * from test order by time desc”
数据保存策略(Retention Policies)
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。
查看当前数据库Retention Policies
>show retention policies on "db_name"
创建新的Retention Policies
>create retention policy "rp_name" on "db_name" duration 3w replication 1 default
rp_name:策略名
db_name:具体的数据库名
3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)
replication 1:副本个数,一般为1就可以了
default:设置为默认策略
修改Retention Policies
>alter retention policy "rp_name" on "db_name" duration 30d default
删除Retention Policies
>drop retention policy "rp_name"
当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?
influxdb提供了联系查询,可以做数据统计采样。
查看数据库的Continous Queries
>show continuous queries
创建新的Continous Queries
>create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
cq_name:连续查询名字
db_name:数据库名字
sum(count):计算总和
table_name:当前表名
new_table_name:存新的数据的表名
30m:时间间隔为30分钟
删除Continous Queries
drop continous query cp_name on db_name
全量备份与还原
influxd backup -portable /www/influxdb_backup #备份
influxd restore -portable /www/influxdb_backup #还原
-portable:为InfluxDB OSS使用新的与Enterprise兼容的备份格式。建议使用而不是-online。在InfluxDB Enterprise上创建的备份可以恢复到InfluxDB OSS实例。
-online:使用旧版备份格式。仅在不能使用较新的便携式选项时使用。
[-host <host:port>]:InfluxDB OSS实例的主机和端口。默认值为“127.0.0.1:8088”。远程连接所必需的。示例:-host 127.0.0.1:8088
[-db <db_name> | -database <db_name>]:要从备份还原的数据库的名称。如果未指定,则将还原所有数据库。
[-newdb <newdb_name>]:将在目标系统上导入存档数据的数据库的名称。如果未指定,则使用-db的值。新数据库名称必须对目标系统是唯一的。
[-rp <rp_name>]:要还原的备份中的保留策略的名称。需要设置-db。如果未指定,将使用所有保留策略。
[-newrp <newrp_name>]:要在目标系统上创建的保留策略的名称。需要设置-rp。如果未指定,则使用-rp值。
[-shard <shard_ID>]:要还原的分片ID。如果指定,则需要-db和-rp![](https://s1.51cto.com/images/blog/201906/11/400909a34a1c65241b4f0171a65f5e16.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
用户管理
#显示用户
>show users
#创建用户
>create user "username" with password 'password'
#创建管理员权限用户
>create user "username" with password 'password' with all privileges
#删除用户
>drop user "username"
InfluxDBStudio-0.2.0
通过远程IP和端口(8086/8088)连接数据库