预降采样规则

更新时间:
复制 MD 格式

本文介绍预降采样规则的创建、查询和删除操作,用于产生和管理预降采样数据。

前提条件

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

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函数,但可以通过countsum函数计算平均值。如果存在覆盖写的情况,可能会出现数据重复相加导致平均值结果不精确。

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;

SHOW PREDOWNSAMPLES

查询预降采样规则。

语法

SHOW PREDOWNSAMPLES [ ON table_identifier ]

参数说明

参数

必选

描述

table_identifier

时序数据表名。

说明

不填写该参数时,默认返回所有表的预降采样规则。

示例

  • 示例一:返回所有表的预降采样规则。

    SHOW PREDOWNSAMPLES;

    返回结果如下:

    +--------+----------+------------+-----+----------------------+
    | table  | interval | aggregator | ttl | update_time          |
    +--------+----------+------------+-----+----------------------+
    | sensor | 1h       | sum, max   | 90d | 2021-10-10T08:00:00Z |
    | sensor | 5m       | sum, max   | 30d | 2021-10-10T08:00:00Z |
    | test   | 1m       | sum, max   | 30d | 2021-10-10T08:00:00Z |
    | test   | 2h       | sum, max   | 30d | 2021-10-10T08:00:00Z |
    +--------+----------+------------+-----+----------------------+
  • 示例二:返回sensor表的预降采样规则。

    SHOW PREDOWNSAMPLES ON sensor;

    返回结果如下:

    +--------+----------+------------+-----+----------------------+
    | table  | interval | aggregator | ttl | update_time          |
    +--------+----------+------------+-----+----------------------+
    | sensor | 1h       | sum, max   | 90d | 2021-10-10T08:00:00Z |
    | sensor | 5m       | sum, max   | 30d | 2021-10-10T08:00:00Z |
    +--------+----------+------------+-----+----------------------+

DROP PREDOWNSAMPLE

删除预降采样规则。

语法

drop_predownsample_statement ::= DROP PREDOWNSAMPLE time_interval
                                    AGGREGATORS '('function_identifier ( ',' function_identifier) ')' ON table_identifier
time_interval                  ::= interval units

参数说明

参数

说明

interval

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

units

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

AGGREGATORS

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

  • count:返回总数据点数。

  • first:返回第一个值。

  • last:返回最后一个值。

  • min:返回最小值.

  • max:返回最大值。

  • sum:返回和。

说明

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

function_identifier

聚合函数名称。

说明

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

table_identifier

时序表名。

示例

DROP PREDOWNSAMPLE `1d` AGGREGATORS (`sum`, `max`) ON sensor;