全部产品
Search
文档中心

云原生多模数据库 Lindorm:CREATE PREDOWNSAMPLE

更新时间:Dec 22, 2023

创建预降采样规则用于产生预降采样数据。

引擎与版本

CREATE PREDOWNSAMPLE语法仅适用于时序引擎。无版本要求。

语法

create_predownsample_statement ::= CREATE PREDOWNSAMPLE time_interval
                                    AGGREGATORS '('function_identifier ( ',' function_identifier) ')'
                                    [ TTL time_interval ] ON table_identifier
time_interval                  ::= interval units

使用说明

参数

说明

interval

正整数,表示时间线聚合的时间窗口的数值。

units

时间单位,包括s(秒)、m(分钟)、h(小时)、d(天)。

AGGREGATORS

预降采样支持的聚合函数,取值如下:

  • count:返回总数据点数。

  • first:返回第一个值。

  • last:返回最后一个值。

  • min:返回最小值.

  • max:返回最大值。

  • sum:返回和。

说明

预降采样不支持使用avg函数,但可以通过count和sum函数计算平均值。如果存在覆盖写的情况,可能会出现数据重复相加导致平均值结果不精确。

function_identifier

聚合函数名称。

说明

一条创建语句中可以包括一个或者多个具有相同降采样周期的聚合函数。也可以将多个聚合函数拆分成多条创建语句。

TTL

设置预降采样数据的有效期。

说明

如果多个预降采样规则设置了TTL,那么取最大的TTL作为所有预降采样规则的TTL。

table_identifier

时序数据表名。

从预降采样数据中查询数据

默认情况下,降采样查询数据是从原始数据中进行查询。如果要从预降采样数据中查询数据需要在查询语句中使用Hint(/*+ PREDOWNSAMPLE */)。预降采样的详细信息,请参见预降采样

示例

  1. 创建预采样规则并设置数据有效期为90天。

    CREATE PREDOWNSAMPLE `1h` AGGREGATORS (`sum`, `max`) TTL `90d` ON sensor;
  2. 从预降采样数据中查询数据,数据结果按照1小时进行降采样。

    SELECT /*+ PREDOWNSAMPLE */ SUM(temperature) FROM sensor
    WHERE time >= 1619076780000 AND time <= 1619076800000
    SAMPLE BY 1h;