Off Limit Tagger

支持对数据进行阈值判断,其主要功能包括:

  • 基于指定的最大值或最小值的阈值判断,属于异常识别 (Outlier Detection) 中的基于大小值判断方法的实现。

  • 该算子针对流入数据的 record.measurepoint.value 字段,会根据用户设置的最大值和最小值阈值范围(从 8 种开闭区间之一 + 用户填的 min,max 值),来对每个数据(StreamSet 中的单个 Record)进行是否在 min,max 区间的判断:

    • 如果不在阈值区间内,则判断为异常,,输出字段 /attr/isOutlier 的值为 “true”

    • 如果 record.value 在阈值范围内,则 /attr/isOutlier 的值为 “false”

  • 另外,还会将这次判断设计的大小值,开闭区间等参数,封装进 /attr/outlierAttr 字段中。

配置详情

该算子的配置包括 GeneralBasic,和 Input/Output 的详细信息,各字段的配置如下:

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 才会进行此次处理

Input/Output

名称

是否必须

描述

Input Point

Yes

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

OpenClose

Yes

选择输入点阈值区间格式,可选(x,y)、(x,y]、[x,y)、[x,y]、(-∞,y)、(-∞,y]、(x,+∞)、[x,+∞)或(-∞,+∞)

Min-Max

Yes

具体阈值区间参数取值,有 2 个参数时,需用逗号进行分隔,比如 (x,y) 选项的取值为 “2,10”,则表示为实际阈值区间为(2,10)

Output Point

Yes

数据输出点,格式为:{模型标识}::{测点标识}。当对输入点进行阈值判断后,Streaming 会为超出了上下限的 record 打上越限标签,并输出打标结果,数据输出点是承载输出结果的测点。

输出结果

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

名称

数据类型

描述

isOutlier

Boolean

minValue

Int/Double/Float

设置的阈值范围最小值

maxValue

Int/Double/Float

设置的阈值范围最大值

enableMinJudger

Boolean

是否开启最小值判断

enableMaxJudger

Boolean

是否开启最大值判断

输出示例

../../../_images/minmax_outlier_result1.png