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(點擊加入)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM