安装influxdb 1.8

参考 :
https://blog.csdn.net/u011112773/article/details/88307603
https://javapub.blog.csdn.net/article/details/111884534

  1. cd /soft/bak
  2. wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.4.x86_64.rpm
  3. sudo yum localinstall influxdb-1.8.4.x86_64.rpm
  4. chown -R influxdb:influxdb /var/lib/influxdb
  5. 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:各种有索引的属性。

  1. #创建数据库
  2. create database "db_name"
  3. #显示所有的数据库
  4. show databases
  5. #删除数据库
  6. drop database "db_name"
  7. #使用数据库
  8. use db_name
  9. #显示该数据库中所有的表
  10. show measurements
  11. #创建表,直接在插入数据的时候指定表名
  12. insert test,host=127.0.0.1,monitor_name=test count=1
  13. #删除表
  14. drop measurement "measurement_name"
  15. #插入记录
  16. 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是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。

  1. 查看当前数据库Retention Policies
  2. >show retention policies on "db_name"
  3. 创建新的Retention Policies
  4. >create retention policy "rp_name" on "db_name" duration 3w replication 1 default
  5. rp_name:策略名
  6. db_name:具体的数据库名
  7. 3w:保存3周,3周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)
  8. replication 1:副本个数,一般为1就可以了
  9. default:设置为默认策略
  10. 修改Retention Policies
  11. >alter retention policy "rp_name" on "db_name" duration 30d default
  12. 删除Retention Policies
  13. >drop retention policy "rp_name"

当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?
influxdb提供了联系查询,可以做数据统计采样。

  1. 查看数据库的Continous Queries
  2. >show continuous queries
  3. 创建新的Continous Queries
  4. >create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end
  5. cq_name:连续查询名字
  6. db_name:数据库名字
  7. sum(count):计算总和
  8. table_name:当前表名
  9. new_table_name:存新的数据的表名
  10. 30m:时间间隔为30分钟
  11. 删除Continous Queries
  12. drop continous query cp_name on db_name

全量备份与还原

  1. influxd backup -portable /www/influxdb_backup #备份
  2. influxd restore -portable /www/influxdb_backup #还原
  3. -portable:为InfluxDB OSS使用新的与Enterprise兼容的备份格式。建议使用而不是-online。在InfluxDB Enterprise上创建的备份可以恢复到InfluxDB OSS实例。
  4. -online:使用旧版备份格式。仅在不能使用较新的便携式选项时使用。
  5. [-host <hostport>]:InfluxDB OSS实例的主机和端口。默认值为“127.0.0.1:8088”。远程连接所必需的。示例:-host 127.0.0.1:8088
  6. [-db <db_name> | -database <db_name>]:要从备份还原的数据库的名称。如果未指定,则将还原所有数据库。
  7. [-newdb <newdb_name>]:将在目标系统上导入存档数据的数据库的名称。如果未指定,则使用-db的值。新数据库名称必须对目标系统是唯一的。
  8. [-rp <rp_name>]:要还原的备份中的保留策略的名称。需要设置-db。如果未指定,将使用所有保留策略。
  9. [-newrp <newrp_name>]:要在目标系统上创建的保留策略的名称。需要设置-rp。如果未指定,则使用-rp值。
  10. [-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)连接数据库

安装influxdb 2