influxdb连续查询CQ和保留策略RP

目录

保留策略RP

连续查询: CQ  (Continuous  Query )

1)新建连续查询

2)显示所有已存在的连续查询

3)删除Continuous Queries


保留策略RP

一、InfluxDB 数据保留策略说明

InfluxDB的数据保留策略(RP) 用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。

一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

二、InfluxDB 数据保留策略 目的

InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。

因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

三、InfluxDB 数据保留策略 操作

1)查询策略

可以通过如下语句查看数据库的现有策略:

show retention policies on measurement

可以看到,telegraf只有一个策略,各字段的含义如下:

name--名称,此示例名称为 default

duration--持续时间,0代表无限制

shardGroupDuration--shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。

replicaN--全称是REPLICATION,副本个数

default--是否是默认策略

保留策略: RP(retention policy) 

此处注意此处的语句要大写

即数据的过期策略:CREATE RETENTION POLICY "a_year" ON "mytest" DURATION 52w REPLICATION 1 DEFAULT

这个语句对数据库  mytest 创建了一个叫做  a_year 的RP, a_year 保存数据的周期是52周 ,副本个数为1                          


连续查询: CQ  (Continuous  Query )

InfluxDB每秒可以处理数十万的数据点。如果要长时间地存储大量的数据,对于存储会是很大的压力。

一个很自然的方式就是对数据进行采样,对于高精度的裸数据存储较短的时间,而对于低精度的的数据可以保存得久一些甚至永久保存。
所以InfluxDB提供了两个特性——连续查询(Continuous    Queries简称CQ)和保留策略(Retention    Policies简称RP),分别用来处理数据采样和管理老数据的。

1)新建连续查询

是在数据库内部自动周期性跑着的一个InfluxQL的查询,CQ需要在SELECT语句中使用一个函数,并且一定包括一个 GROUP BY  time  

CREATE CONTINUOUS QUERY cq_3m ON earthsite
BEGIN
	SELECT mean(value) 
	INTO mem_used_3m 
	FROM cpu_times_percent
	GROUP BY time(3m) 
END


CREATE CONTINUOUS QUERY cp_3m ON earthsite BEGIN SELECT mean(value) INTO mem_value_3m FROM cpu_times_percent GROUP BY time(3m) END

示例在earthsite库中新建了一个名为 cq_3m 的连续查询,
每三分钟取从表cpu_times_percent取出value字段的平均值,
加入到 mem_used_3m 表中。
使用的数据保留策略都是 default。

2)显示所有已存在的连续查询

SHOW CONTINUOUS QUERIES

3)删除Continuous Queries

删除连续查询的语句如下:

DROP CONTINUOUS QUERY <cq_name> ON <database_name>

四、其他说明

在InfluxDB中,将连续查询与数据存储策略一起使用会达到最好的效果。

比如,将精度高的表的存储策略定为一个周,然后将精度底的表存储策略定的时间久一点,这要就可以实现高低搭配,以满足不同的工作需要。

InfluxDB 支持连续查询(Continuous Queries,CQ),可以在 InfluxDB 中创建一个连续查询来自动聚合数据,以便更快地查询可视化。 连续查询是一种在 InfluxDB 中定期运行的查询,它会将原始数据聚合成新的时间序列数据,并将它们写入新的测量标记中。因此,连续查询旨在优化数据的查询速度存储空间。 以下是在 InfluxDB 中创建连续查询的基本步骤: 1. 确定要聚合的数据。你需要选择要聚合的测量标记、字段聚合函数。例如,你可以聚合一个名为 `cpu_usage` 的测量标记中的 `value` 字段,并使用平均值函数进行聚合。 2. 创建一个新的测量标记。你需要为聚合数据创建一个新的测量标记,并将其写入 InfluxDB 中。你可以使用 `CREATE CONTINUOUS QUERY` 语句来创建连续查询并指定要使用的聚合函数、时间间隔新测量标记的名称。 3. 运行连续查询。一旦连续查询被创建,它将自动在指定的时间间隔内运行,并将聚合数据写入新的测量标记中。你可以使用 `SHOW CONTINUOUS QUERIES` 命令查看当前正在运行的所有连续查询。 以下是一个示例连续查询的代码片段: ``` CREATE CONTINUOUS QUERY avg_cpu_usage ON mydb BEGIN SELECT MEAN(value) INTO cpu_usage_1h FROM cpu_usage GROUP BY time(1h) END ``` 这个连续查询将从 `cpu_usage` 测量标记中选择 `value` 字段,并使用平均值函数将数据聚合到每小时的时间间隔内。它将聚合数据写入新的 `cpu_usage_1h` 测量标记中。 请注意,连续查询的语法与 InfluxDB查询语言类似。你可以在 SELECT 语句中使用各种聚合函数(如 MEAN、MAX、MIN、COUNT 等),并在 GROUP BY 子句中指定时间间隔。 有了连续查询,你可以更轻松地聚合查询大量数据,并更快地生成可视化结果。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值