CREATE CONTINUOUS QUERY

更新时间: 2023-06-01 11:01:32

本文介绍创建连续查询的SQL语法。

语法

create_cq_statement ::= CREATE CONTINUOUS QUERY [database_name.] cq_name WITH ( cq_attribute_statement ) AS insert_select_statement

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

参数

参数

说明

database_name

连续查询对象所属数据库的名称。不指定的情况下默认是当前数据库。必须是SQL常量或标识符。

cq_name

连续查询的名称。

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

示例

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

CREATE CONTINUOUS QUERY `db_sensor`.`my_cq` WITH (`INTERVAL`='1h', `WINDOW`='2h') AS 
INSERT INTO `db_sensor_year`.`sensor` 
SELECT MEAN(`temperature`) AS `temperature`, 
       MEAN(`humidity`) AS `humidity`, `device_id`, `region` 
FROM  `db_sensor`.`sensor`
SAMPLE BY 1h;
阿里云首页 云原生多模数据库 Lindorm 相关技术圈