转载请注明出处:
1.定义:
InfluxDB 连续查询(Continuous Query)是一种自动化查询类型,该查询会根据定义的时间间隔定期运行,并将结果存储在新的目标测量中。这样的查询通常用于处理大量时间序列数据。
使用语法格式:
CREATE CONTINUOUS QUERY cq_name> ON db_name>
BEGIN
SELECT function>(column>) INTO target_measurement> FROM source_measurement>
WHERE time_clause> GROUP BY tag_key>
END
其中:
:为连续查询指定一个名称
:为数据库指定一个名称
:函数必须是mean、sum、min、max或count的其中之一
:要执行聚合操作的列名
:新创建的目标测量名称
:源测量名称
:指定时间范围的语句,可以包含
WHERE time > now() -
等:可选参数,按照此 tag 进行分组操作
3.使用
在 InfluxDB 中创建连续查询可以通过以下两个步骤完成:
- 创建
到
目标测量的查询。 - 将第一步得到的查询作为连续查询的输入。
4.使用场景
采样和数据保留
使用CQ与InfluxDB的保留策略(RP)来减轻存储问题。结合CQ和RP自动将高精度数据降低到较低的精度,并从数据库中移除可分配的高精度数据。常见用例的详细演示指南,请参阅下采样和数据保留
预先计算昂贵的查询
通过使用CQ预先计算昂贵的查询来缩短查询运行时间。使用CQ自动将普通查询的高精度数据下采样到较低的精度。较低精度数据的查询需要更少的资源并且返回更快。
替换HAVING子句
InfluxQL不支持HAVING子句。通过创建CQ来聚合数据并查询CQ结果以达到应用HAVING子句相同的功能。
5.查看和删除sql
查看连续查询
SHOW CONTINUOUS QUERIES
删除连续查询:
从一个指定的database删除CQ:
DROP CONTINUOUS QUERY cq_name> ON database_name>
DROP CONTINUOUS QUERY
返回一个空的结果。
修改连续查询:
根据官网的介绍,创建CQ之后,无法进行更改,如果需要更改需要drop掉之后重新create。
CQ对实时数据进行操作。他们使用本地服务器的时间戳,GROUP BY time()
间隔和InfluxDB的预设时间边界来确定何时执行以及查询中涵盖的时间范围。
CQs以与cq_query
的GROUP BY time()
间隔相同的间隔执行,并且它们在InfluxDB的预设时间边界开始时运行。如果GROUP BY time()
间隔为1小时,则CQ每小时开始执行一次。
当CQ执行时,它对于now()
和now()
减去GROUP BY time()
间隔的时间范围运行单个查询服务器托管网。 如果GROUP BY time()
间隔为1小时,当前时间为17:00,查询的时间范围为16:00至16:59999999999。
CREATE CONTINUOUS QUERY "cq_basic" ON "transportation"
BEGIN
SELECT mean("passengers") INTO "average_passengers" FROM "bus_data" GROUP BY time(1h)
END
以上示例使用数据库transportation
中的示例数据。measurementbus_data
数据存储有关公共汽车乘客数量和投诉数量的15分钟数据:
cq_basic
从bus_data
中计算乘客的平均小时数,并将结果存储在数据库transportation
中的average_passengers
中。
cq_basic
以一小时的间隔执行,与GROUP BY time()
间隔相同的间隔。 每个小时,cq_basic
运行一个单一的查询,覆盖了now()
和now()
减去GROUP BY time()
间隔之间的时间范围,即now()
和now()
之前的一个小时之间的时间范围。
7.使用示例:
假设我们有一个名为 cpu_usage
的测量,其中包含了多个 tag 和 field,我们需要将其聚合并写入一个新的测量 cpu_usage_per_hour
中。
CREATE CONTINUOUS QUERY "cq_cpu_usage" ON "mydb"
BEGIN
SELECT MEAN("value") INTO "cpu_usage_per_hour" FROM "cpu_usage"
WHERE time > now() - 1h GROUP BY time(1h), "host"
END
该连续查询会计算最近一小时内 cpu_usage
测量的平均值,并按照每小时以及 host
进行分组,结果存储在 cpu_usage_per_hour
测量中。
可以使用以下命令查看已创建的连续查服务器托管网询列表:
SHOW CONTINUOUS QUERIES
8.官网链接
https://docs.influxdata.com/influxdb/v1/query_language/continuous_queries/
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: CentOS 7.9在线和离线两种方式安装docker-24.0.6
一、安装前准备: 1、查看操作系统和内核版本: # cat /etc/redhat-release # uname -r 2、关闭防火墙和SELinux: # firewall-cmd –state # sestatus 二、在线安装docker-24.0.…