Off Limit Tagger

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

  • 基于指定的最大值或最小值的阈值判断,属于异常识别 (Outlier Detection) 中的基于大小值判断方法的实现。
  • 该算子针对流入数据的 record.measurepoint.value 字段,会根据用户设置的最大值和最小值阈值范围(从 9 种开闭区间之一 + 用户填的 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_result3.png