influxdb连续查询CQ和保留策略RP
发布日期:2021-07-01 02:23:18 浏览次数:2 分类:技术文章

本文共 1635 字,大约阅读时间需要 5 分钟。

目录


保留策略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 earthsiteBEGIN	SELECT mean(value) 	INTO mem_used_3m 	FROM cpu_times_percent	GROUP BY time(3m) ENDCREATE 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 
ON

四、其他说明

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

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

 

转载地址:https://mapengsen.blog.csdn.net/article/details/108845100 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:一文理解接口和抽象类
下一篇:Influxdb的更新操作

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月15日 04时16分45秒