influxdb连续查询

项目场景:

InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。


问题描述

使用influxdb做数据统计,运行一段时间之后,发现页面查询缓慢。


原因分析:

经查询发现数据存储量很大,在做聚合查询时缓慢会导致查询失败。


解决方案:

计划使用influxdb的连续查询功能,将需要聚合的数据定时聚合统计,查询数据时,直接查询聚合后的数据
官方文档:https://docs.influxdata.com/influxdb/v1.7/query_language/continuous_queries/

创建连续查询

CREATE CONTINUOUS QUERY ON BEGIN
END

cq_query格式

SELECT INTO FROM
[WHERE ] GROUP BY time()[,]

例:

CREATE CONTINUOUS QUERY active_week ON active BEGIN SELECT count(distinct(device_id)) INTO active.active_week_m FROM active.device_active GROUP BY time(1w) END

查询连续查询

SHOW CONTINUOUS QUERIES

删除连续查询

DROP CONTINUOUS QUERY ON

连续查询一旦创建就不能修改,需要删除之后重新创建。

配置采样时间和频率
RESAMPLE EVERY :采样执行频次。如RESAMPLE EVERY 30m:表示30分钟执行一次。

RESAMPLE FOR :采样时间范围。如RESAMPLE FOR 60m:时间范围 = now() - for间隔(60m)。

RESAMPLE EVERY 30m FOR 60m:表示每30分钟执行一次60分钟内的数据计算。

CREATE CONTINUOUS QUERY “cq_advanced_every” ON “transportation”
RESAMPLE EVERY 30m
BEGIN
SELECT mean(“passengers”) INTO “average_passengers” FROM “bus_data” GROUP BY time(1h)
END

参考:https://www.cnblogs.com/quchunhui/p/13402808.html

你可能感兴趣的:(linux,时序数据库)