influxdb使用及总结
方便以后查询,做一个简单总结
增相关
CLI终端下插入数据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'
查
CLI终端下查询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"
库相关
创建数据库CREATE DATABASE "db_name"
显示所有数据库SHOW DATABASES
删除数据库DROP DATABASE "db_name"
USE mydb
表相关
显示所有表SHOW MEASUREMENTS
创建表并插入数据insert weather,altitude=1000,area=北 temperature=11,humidity=-4
删除表DROP MEASUREMENT "measurementName"
保存策略相关
Points : 指的是由Tags、Fields和timestamp组成的一行数据
InfluxDB没有提供直接删除Points的方法,但是它提供了Retention Policies。
主要用于指定数据的保留时间:当数据超过了指定的时间之后,就会被删除。
显示testDB所有的保存策略SHOW RETENTION POLICIES ON "testDB"
创建一个新的策略CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT
修改策略ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT
删除策略DROP RETENTION POLICY "rp_name" ON "db_name"
连续查询
当数据超过保存策略里指定的时间之后,就会被删除。
如果我们不想完全删除掉,比如做一个数据统计采样:把原先每秒的数据,存为每小时的数据,让数据占用的空间大大减少(以降低精度为代价)。
这就需要InfluxDB提供的:连续查询(Continuous Queries)。
显示所有的continuous querySHOW CONTINUOUS QUERIES
使用下面命令创建一个新的 continuous queries
示例在testDB库中新建了一个名为 cq_30m 的连续查询,每三十分钟取一个temperature字段的平均值,加入 weather30m 表中。
continuous queryCREATE CONTINUOUS QUERY cq_30m ON testDB BEGIN SELECT mean(temperature) INTO weather30m FROM weather GROUP BY time(30m)
字段 | 说明 |
---|---|
cq_30m | 连续查询的名字 |
testDB | 具体的数据库名 |
mean(temperature) | 算平均温度 |
weather | 当前表名 |
weather30m | 存新数据的表名 |
30m | 时间间隔为30分钟 |
删除DROP CONTINUOUS QUERY <cq_name> ON <database_name>
用户管理相关
显示用户SHOW USERS
创建用户CREATE USER "username" WITH PASSWORD 'password'
创建管理员权限的用户CREATE USER "username" WITH PASSWORD 'password' WITH ALL PRIVILEGES
删除用户DROP USER "username"
官方文档传送门