Fixed Time Window Aggregator

支持对单个测点的数据按时间窗口聚合,具体功能如下:

  • 窗口类型:支持滚动窗口

  • 聚合算法:支持 max/min/avg/count/sum/first/last

  • 延迟策略:支持0~60min的数据延迟,该范围内乱序到达的数据仍会参与计算

  • 提前输出:支持在当前窗口结束前,按固定频率或输入点触发提前输出中间结果

  • 因任何原因导致的失败重试,比如集群节点异常,不能保证计算结果幂等。

配置详情

该算子的配置包括 GeneralBasicTriggerConfigInput/OutputExtraConfig,和 CacheConfig 的详细信息,各字段的配置如下:

General

名称

是否必须

描述

Name

Yes

算子名称

Description

No

算子描述

Stage Library

Yes

算子所属的库

Required Fields

No

数据必须包含的字段,如果未包含指定字段,则 record 将被过滤掉

Preconditions

No

数据必须满足的前提条件,如果不满足指定条件,则 record 将被过滤掉。例如:${record:value('/value') > 0}。有关 EL 语句的使用方法,参考 Expression Language

On Record Error

Yes

对错误数据的处理方式,可选:

  • Discard:直接丢弃

  • Send to Error:发送至错误中心

  • Stop Pipeline:停止流任务运行

Basic

名称

是否必须

描述

Quality Filter

No

根据数据质量过滤处理数据,只有符合质量条件的 record 才会进行此次处理

TriggerConfig

名称

是否必须

描述

Latency (Minute)

Yes

数据延迟策略设置,支持0~60min的延迟

Early Trigger

No

是否支持在当前窗口结束前,提前输出中间结果(默认不输出)

Early Trigger Type

No

选择提前输出中间结果的方式,可选按固定频率或按输入点触发的方式

Input/Output

名称

是否必须

描述

Input Point

Yes

数据输入点,格式为:{模型标识}::{测点标识}

Fixed Window Size

Yes

滚动窗口的时长

Fixed Window Unit

Yes

滚动窗口的时间单位

Aggregator Policy

Yes

数据聚合算法,支持 max/min/avg/count/sum/first/last

Output Point

Yes

数据输出点,格式为:{模型标识}::{测点标识}

ExtraConfig

名称

是否必须

描述

Output Data Type

Yes

选择输出数据的类型,可选 Double 或 From TSL Model Service:

  • Double:若输出点均为中间结果测点(非模型上定义的测点)或测点数据类型全部为 Double 类型,可选择此项。

  • From TSL Model Service:若输出点为模型上定义的测点且测点类型非 Double 类型,必须选择此项,否则数据不能正常存储到 TSDB。

CacheConfig

名称

是否必须

描述

Cache Type

Yes

选择缓存数据的类型,可选 Redis 存储或 Local 存储。

  • Redis:优点是任务暂停、重启、或重试后,缓存数据不会丢失;缺点是数据处理速度慢,对网络比较敏感。建议网络延迟小于 1ms,否则会影响处理性能。

  • Local:优点是数据处理速度快;缺点是任务暂停、重启、或重试时,缓存数据会丢失。

输出结果

该算子的输出结果包含在 attr 结构体中,各字段的描述如下:

名称

数据类型

描述

lastOutput

Int/Double/Float

该测点在该 timestamp,上一次输出的值;上一次无输出则为 NaN

calMode

String

输出模式:

  • 超出延迟时,输出最终结果 “final”

  • 配置On-time Trigger时,窗口结束,输出准时结果 “onTime”

  • 配置Early Trigger时,窗口未结束,输出提前结果 “early”

calType

String

聚合算法:max/min/avg/count/sum/first/last

calDetail

Map

计算详情:该如 calType=avg 时,输出 value&lastValue 的 sum 和 count 信息

输出示例

../../../_images/fixed_window_aggregator1.png