influxdb:https://docs.influxdata.com/influxdb/v1.6/introduction/getting-started/
docker安装
docker search influxdb1. docker pull influxdb2. docker run --name influxdb_s -p 8083:8083 -p 8086:8086 -d influxdb:latest3. docker exec -it influxdb_s influx -precision rfc3339
远程连接:
docker exec -it influxdb_s influx -precision rfc3339 -host 192.168.1.52 -port 8086
数据库与表操作:
# 创建数据库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"
增
insert weather,altitude=1000,area=北 temperature=11,humidity=-4
其中:
weather : 表名
altitude=1000,area=北 : tag
temperature=11,humidity=-4 :field
删、改
在InfluxDB中并没有提供数据的删除与修改方法。
不过我们可以通过数据保存策略(Retention Policies)来实现删除。查
select * from table_nameselect * from raw_data where time < now() and unique_id='xxx' and value != 0 limit 20 offset 0
保存策略:
查询策略:
> show retention policies on testdbname duration shardGroupDuration replicaN default---- -------- ------------------ -------- -------autogen 0s 168h0m0s 1 true// name:策略名// duration:数据有效期 0代表永久// shardGroup:是InfluxDB的一个基本存储结构, 应该大于这个时间的数据在查询效率上应该有所降低. ???什么鬼,网上找的资源都是这样说// replicaN:副本个数// default:是否是默认策略
新增策略:
CREATE RETENTION POLICY "rp_name" ON testdb DURATION 30d REPLICATION 1 DEFAULT// rp_name:策略名// db_name:具体的数据库名// 30d:保存30天,30天之前的数据将被删除// 它具有各种时间参数,比如:h(小时),w(星期)// REPLICATION 1:副本个数,这里填1就可以了// DEFAULT 设为默认的策略 修改默认策略后,查询结果默认是修改策略之后保存的数据: select * from "new_retention_policies_name".table_name 或 select * from table_name 修改默认策略后,如果想查询以前的数据: select * from "old_retention_policies_name".table.name
修改策略:
ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT
删除策略:
DROP RETENTION POLICY "rp_name"
用户管理
// 显示用户SHOW USERS// 创建用户CREATE USER "username" WITH PASSWORD 'password'// 创建管理员权限的用户CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES // 删除用户DROP USER "username"
连续查询(Continous Queries)
当数据超过保存策略里指定的时间之后就会被删除,但是这时候可能并不想数据被完全删掉,怎么办?
influxdb提供了联系查询,可以做数据统计采样。
查看:
> show continuous queriesname: _internalname query---- -----name: testdbname query---- -----
创建:
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分钟
删除:
drop continous query cp_name on db_name
关于series
: https://www.cnblogs.com/strinkbug/p/5079553.html
show series on (database)// show series on testdbshow series on (database) from (measurement) // show series on testdb from cpushow series on (database) from (measurement) where (field) = (field_value) // show series on testdb from cpu where "region" = 'us_west'// 注意 单引号