zoukankan      html  css  js  c++  java
  • InfluxDB学习之InfluxDB连续查询(Continuous Queries)

    在上一篇:InfluxDB学习之InfluxDB数据保留策略(Retention Policies) 中,我们介绍了 InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除。

    但是如果我们不想完全将这些数据删除掉,就需要连续查询(Continuous Queries)的帮助了。

    连续查询主要用在将数据归档,以降低系统空间的占用率,主要是以降低精度为代价。

    更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

    InfluxDB技术交流群:580487672(点击加入)

    连续查询

    一、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>)[,<function>(<stuff>)] INTO <different_measurement> 
    FROM <current_measurement> [WHERE <stuff>] GROUP BY time(<interval>)[,<stuff>] 
    END

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

    使用示例:

    > CREATE CONTINUOUS QUERY cq_30m ON telegraf BEGIN SELECT mean(used) INTO mem_used_30m FROM mem GROUP BY time(30m) END
    > SHOW CONTINUOUS QUERIES
    name: telegraf
    --------------
    name    query
    cq_30m    CREATE CONTINUOUS QUERY cq_30m ON telegraf BEGIN 
    SELECT mean(used) INTO telegraf."default".mem_used_30m FROM telegraf."default".mem 
    GROUP BY time(30m) END
    
    
    name: _internal
    ---------------
    name    query

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

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

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

    > SHOW CONTINUOUS QUERIES
    name: telegraf
    --------------
    name    query
    cq_30m    CREATE CONTINUOUS QUERY cq_30m ON telegraf 
    BEGIN SELECT mean(used) INTO telegraf."default".mem_used_30m FROM telegraf."default".mem 
    GROUP BY time(30m) END
    
    
    name: _internal
    ---------------
    name    query

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

    3)删除Continuous Queries

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

    DROP CONTINUOUS QUERY <cq_name> ON <database_name>

    四、其他说明

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

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

    更多InfluxDB详细教程请看:InfluxDB系列学习教程目录

    InfluxDB技术交流群:580487672(点击加入)

  • 相关阅读:
    AC日记——与7无关的数 openjudge 1.5 39
    AC日记——计算多项式的导函数 openjudge 1.5 38
    AC日记——矩阵交换行 openjudge 1.8 01
    AC日记——阶乘和 openjudge 1.6 15
    AC日记——求10000以内n的阶乘 openjudge 1.6 14
    逻辑运算
    PLC控制设计的基本步骤
    Micropython通用控制
    class Pin --控制I/O引脚
    Micropython入门实操心得
  • 原文地址:https://www.cnblogs.com/waitig/p/6093903.html
Copyright © 2011-2022 走看看