influxdb

 

influxdb官方文档:https://docs.influxdata.com/influxdb/v1.6/introduction/getting-started/

docker安装

docker search influxdb

1. docker pull influxdb
2. docker run --name influxdb_s -p 8083:8083 -p 8086:8086 -d influxdb:latest
3. 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

自己写入时间戳:
insert weather, altitude=1000,area=北 temperature=11,humidity=4 1435362189575692182

删、改

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

select * from table_name

select * from raw_data where time < now() and unique_id='xxx' and value != 0 limit 20 offset 0

 

保存策略:

查询策略:

> show retention policies on testdb
name    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 queries

name: _internal
name query
---- -----

name: testdb
name 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 testdb

show series on (database) from (measurement) 
// show series on testdb from cpu

show series on (database) from (measurement) where (field) = (field_value) 
// show series on testdb from cpu where "region" = 'us_west'
// 注意 单引号

 

 

 
 
 
 
 
 
 
 
posted @ 2018-09-10 14:52  静静别跑  阅读(458)  评论(0编辑  收藏  举报