RANGE QUERY
Range 查询将时序数据划分为时间窗口,并在每个窗口上计算聚合表达式。它是 SELECT 语句的一部分,语义类似于 PromQL 的 range selector。
Syntax
Range query 使用 Time Index 列作为聚合的时间线。
一个合法的 Range 查询语法结构如下所示:
SELECT
AGGR_FUNCTION(column1, column2,..) RANGE INTERVAL [FILL FILL_OPTION],
...
FROM table_name
[ WHERE <where_clause>]
ALIGN INTERVAL [ TO TO_OPTION ] [BY (columna, columnb,..)] [FILL FILL_OPTION]
[ ORDER BY <order_by_clause>]
[ LIMIT <limit_clause>];
INTERVAL := TIME_INTERVAL | ( INTERVAL expr )
- 关键字
ALIGN,必选字段,后接参数INTERVAL,ALIGN指明了 Range 查询的步长。 - 参数
INTERVAL,主要用于给出一段时间长度,有两种参数形式:- 基于
PromQL Time Durations格式的字符串(例如:3h、1h30m)。访问 Prometheus 文档 获取该格式更详细的说明。 Interval类型,使用Interval类型需要携带括号,(例如:('1 year 3 hours 20 minutes'::INTERVAL))。访问 Interval 获取该格式更详细的说明。
- 基于
AGGR_FUNCTION(column1, column2,..) RANGE INTERVAL [FILL FILL_OPTION]称为一个 Range 表达式。AGGR_FUNCTION(column1, column2,..)是一个聚合函数,代表需要聚合的表达式。- 关键字
RANGE,必选字段,后接参数INTERVAL指定了每次数据聚合的时间范围, - 关键字
FILL