全部產品
Search
文件中心

Lindorm:CREATE CONTINUOUS QUERY

更新時間:Sep 05, 2025

連續查詢(Continuous Queries,簡稱CQ)是時序引擎內部自動定期執行的時序查詢任務,有助於資料的長期高效儲存。您可以通過在CREATE CONTINUOUS QUERY文法中配置資料寫入規則,完成定期連續查詢任務的建立。

引擎與版本

CREATE CONTINUOUS QUERY文法僅適用於時序引擎。無版本要求。

文法

create_cq_statement ::= CREATE CONTINUOUS QUERY [database_identifier.] cq_identifier WITH ( cq_attribute_statement ) AS insert_select_statement

cq_attribute_statement ::= attribute_definition (',' attribute_definition)*
attribute_definition   ::= attr_identifier '=' attr_val

使用說明

資料庫名(database_identifier)

持續查詢對象所屬資料庫的名稱,不指定時預設是當前資料庫。使用時必須在資料庫名前後添加反引號(`),例如 `db_sensor`

持續查詢名稱(cq_identifier)

使用時必須在持續查詢名稱前後添加反引號(`),例如 `my_cq`

持續查詢配置項(cq_attribute_statement)

cq_attribute_statement為持續查詢的詳細配置。支援的配置參數請參見下表。

參數

類型

是否必選

說明

interval

STRING

用於指定持續查詢的計算間隔,即計算任務的執行間隔。最小單位為秒。

格式為%d%h%m%s。例如,1h30s表示1小時30秒;1d表示一天。

其中:

  • d: 天

  • h: 小時

  • m:分

  • s: 秒

window

STRING

用於指定持續查詢的計算視窗,即每次計算所覆蓋的資料的時間範圍。若不指定,則計算視窗與執行間隔(interval)相同。例如,`interval`='10m', `window`='20m'表示計算任務每隔10分鐘執行一次,每次執行都基於最近20分鐘內的資料進行計算。

計算視窗為左閉右開的時間區間。

格式為%d%h%m%s。例如,1h30s表示1小時30秒;1d表示一天。

其中:

  • d: 天

  • h: 小時

  • m:分

  • s: 秒

offset

STRING

指定視窗位移。預設視窗是按照1970-01-01 00:00:00 UTC對齊劃分,通過offset參數可以指定視窗對齊的位移。例如,`interval`='1d', `offset`='16h'表示計算任務在北京時間每天的零點執行。

格式為%d%h%m%s。例如,1h30s表示1小時30秒; 1d表示一天。

其中:

  • d: 天

  • h: 小時

  • m:分

  • s: 秒

資料寫入語句(insert_select_statement

  • insert_select_statement的文法說明,請參見資料寫入

  • 指定insert_select_statement時可以不用指定查詢的時間範圍,引擎會自動在目前時間視窗內進行計算。

  • SELECT子句的列數需要和目標表一致,包含Field和Tag。

樣本

以下樣本建立了一個持續查詢:每小時計算過去兩個小時內原始時序表sensor中的每小時平均溫度和每小時平均濕度,並將資料寫入資料庫default中的表sensor 中。

CREATE CONTINUOUS QUERY `default`.`my_cq` WITH (`INTERVAL`='1h', `WINDOW`='2h') AS 
INSERT INTO `default`.`sensor` 
SELECT AVG(`temperature`) AS `temperature`, 
       AVG(`humidity`) AS `humidity`, `device_id`, `region` 
FROM  `default`.`sensor`
SAMPLE BY 1h;