InfluxDB连续查询与聚合函数
InfluxDB连续查询
1,InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除。
2,连续查询(Continuous Queries),不需要完全将这些数据删除掉,主要用在将数据归档,也同样降低系统空间的占用率
3,使用连续查询是最优的降低采样率的方式,连续查询和存储策略搭配使用将会大大降低InfluxDB的系统占用量。
4,使用连续查询后,数据会存放到指定的数据表中,这样就为以后统计不同精度的数据提供了方便。
#mydb 中新建了一个名为 cq_30m 的连续查询,每三十分钟取一个used字段的平均值,加入 mem_used_30m 表中 create continuous query cq_30m on mydb begin select mean(used) into men_used_30s from men group by time(30m) end; # 查看所有的连续查询 show continuous queries; # 删除mydb 数据库中的连续查询 cq_30m drop continuous query cq_30m on mydb
influxdb 的常用函数
#count()函数 返回一个(field)字段中的非空值的数量 select count(*) from disk_free #DISTINCT()函数 返回一个字段(field)的唯一值,函数里面是 field 值! select distinct(value) from disk_free #MEAN() 函数 返回一个字段(field)中的值的算术平均值(平均值)字段类型必须是长整型或float64 select mean(value) from disk_free #MEDIAN()函数 从单个字段(field)中的排序值返回中间值(中位数) #字段值的类型必须是长整型或float64格式 select median(value) from disk_free #SPREAD()函数 返回字段的最小值和最大值之间的差值 select spread(value) from disk_free #SUM()函数 返回一个字段中的所有值的和 select sum(value) from disk_free #TOP()函数 返回一个字段中最大的N个值 select top("value", 1) from disk_free #BOTTOM()函数 返回一个字段中最小的N个值 select bottom("value",2) from disk_free #FIRST()函数 返回一个字段中存活时间最长的值 select first(value) from disk_free #MAX()函数 返回一个字段中的最大值 #MIN()函数 返回一个字段中的最小值 select max(value) from disk_free select min(value) from disk_free #PERCENTILE()函数 返回排序值排位为N的百分值 #value 字段按照不同的 value求百分比,然后取第五位数据。 select percentile(value,99),value from disk_free