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系列學習教程目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章