全部产品
Search
文档中心

云原生多模数据库 Lindorm:CREATE CONTINUOUS QUERY

更新时间:Dec 21, 2023

连续查询(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时可以不用指定查询的时间范围,引擎会自动在当前时间窗口内进行计算。

示例

以下示例创建了一个持续查询:每小时计算过去两个小时内原始时序表sensor中的每小时平均温度和每小时平均湿度,并将数据写入数据库default 中的表sensor 中。

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