2018-05-21 InfluxDB连续查询(Continuous Queries)

InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除。 但是如果我们不想完全将这些数据删除掉,就需要连续查询(Continuous Queries)的帮助了。 连续查询主要用在将数据归档,以降低系统空间的占用率,主要是以降低精度为代价。

一、InfluxDB连续查询 定义

InfluxDB的连续查询是在数据库中自动定时启动的一组语句,语句中必须包含 SELECT 关键词和 GROUP BY time() 关键词。 InfluxDB会将查询结果放在指定的数据表中。

二、InfluxDB连续查询 目的

使用连续查询是最优的降低采样率的方式,连续查询和存储策略搭配使用将会大大降低InfluxDB的系统占用量。 而且使用连续查询后,数据会存放到指定的数据表中,这样就为以后统计不同精度的数据提供了方便。

三、InfluxDB连续查询 操作

只有管理员用户可以操作 连续查询。

1)新建连续查询 新建连续查询的语法如下所示:

CREATE CONTINUOUS QUERY <cq_name> ON <database_name>

[RESAMPLE [EVERY <interval>] [FOR <interval>]]

BEGIN SELECT <function> (<stuff>)[,<fuction>(<stuff>)] INTO <different_measurement>

FROM <current_measurement> [where <stuff>] GROUP BY time(<interval>)[,<stuff>]

END



stuff 原料,材料,填充物

interval 幕间休息,间隔

查询部分被 CREATE CONTINUOUS QUERY [...] BEGIN 和 END 所包含,主要的逻辑代码也是在这一部分。

CREATE CONTINUOUS QUERY cq_30m ON test BEGIN SELECT mean(used) INTO mem_used_30m FROM mem GROUP BY time(30m) END

示例在test库中新建了一个名为 cq_30m 的连续查询,每三十分钟取一个used字段的平均值,加入 mem_used_30m 表中。使用的数据保留策略都是 default。

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

查询所有连续查询可以使用如下语句:

> SHOW CONTINUOUS QUERIES

可以看到其连续查询的名称以及 语句等信息。

3)删除Continuous Queries

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

DROP CONTINUOUS QUERY <cq_name> ON <database_name>

四、其他说明

在InfluxDB中,将连续查询与数据存储策略一起使用会达到最好的效果。 比如,将精度高的表的存储策略定为一个周,然后将精度底的表存储策略定的时间久一点,这要就可以实现高低搭配,以满足不同的工作需要。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是InfluxDB? InfluxDB介绍 InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数...
    BilyLuo阅读 3,335评论 0 18
  • 最近这段时间在使用influxdb,抽空翻译了一下配置文件。有不足的地方请指正。因为简书默认markdown编辑器...
    wangrui927阅读 4,321评论 0 4
  • InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据。而I...
    __七把刀__阅读 165,148评论 19 91
  • 前言 influxdb是目前比较流行的时间序列数据库。 何谓时间序列数据库?什么是时间序列数据库,最简单的定义就是...
    miaoLoveCode阅读 84,230评论 7 50
  • 今天考完了大学中最后的一场考试,梦幻大学四年结束了!别人都是穿着黑修女似的衣服毕业了,而我应该还是在实习路途中飘零...
    风逝时光阅读 335评论 0 0