Record Generator

根据配置的条件产生新的数据(record),具体功能如下:

  • 与上游pipeline批次解耦,用于按固定的计算或查询频率,生成所需要的record。
  • 测点查询条件运行原理如下:
    • 根据资产ID、模型ID、资产标签、资产树ID、资产树标签等过滤条件,查询当前OU下所有符合模型条件的资产实例,使用这些实例的asset ID和测点条件,生成新的record。
    • 若配置的过滤条件不存在,则会校验报错。
  • 生成record的触发条件:
    • 根据指定的测点过滤条件,按固定的查询频率,从Redis查询测点数据
    • 根据指定的测点过滤条件,按固定的计算频率,模拟生成指定类型的record

配置详情

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

General

名称 是否必须 描述
Name Yes 算子名称
Description No 算子描述
Stage Library Yes 算子所属的库
Required Fields No 数据必须包含的字段,如果未包含指定字段,则record将被过滤掉
Preconditions No 数据必须满足的前提条件,如果不满足指定条件,则record将被过滤掉
On Record Error Yes

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

  • Discard:直接丢弃
  • Send to Error:发送至错误中心
  • Stop Pipeline:停止流任务运行

Basic

名称 是否必须 描述
Query Frequency Yes 选择触发产生新record的频率

Input/Output

名称 是否必须 描述
Generate Type Yes

选择触发产生record的方式,可选:

  • By AssetIDs:通过资产ID匹配测点
  • By ModelIDs:通过模型ID匹配测点
  • By Asset Tags:通过资产标签匹配测点
  • By Asset Tree:通过资产树ID或资产树标签匹配测点
Output Asset No 当选择 By AssetIDs 触发方式时,输入asset ID;对应的 Output Point 中输入数据输出点名称,格式为:{测点标识}
Asset Tag No 当选择 By Asset Tags 触发方式时,输入资产标签键值对;对应的 Output Point 中输入数据输出点名称,格式为:{模型标识}::{测点标识} 或 {测点标识}
Tree Selector No 当选择 By Asset Tree 触发方式时,选择根据资产树ID或资产树标签搜索资产树
Tree ID No 输入资产树ID;对应的 Output Point 中输入数据输出点名称,格式为:{模型标识}::{测点标识} 或 {测点标识}
Tree Tag No 输入资产树标签键值对;对应的 Output Point 中输入数据输出点名称,格式为:{模型标识}::{测点标识} 或 {测点标识}
Output Point Yes 当选择 By ModelIDs 触发方式时,输入数据输出点,格式为:{模型标识}::{测点标识}

Record Generate

名称 是否必须 描述
Generate CommMethod Yes

选择产生record数据的来源,可选:

  • Query From Redis: 从Redis获取资产测点最新数据
  • Generate New Point: 生成新测点,并按指定方式生成测点数据
Use LastUpdate Interval Filter No 当选择 Query From Redis 时,选择是否按一定的时间间隔获取测点最新数据
LastUpdate Interval(Minutes) No 当选择按一定的时间间隔获取数据时,输入时间间隔的值
NotExistHandle Yes

当未获取到测点数据时,选择除理方式,可选:

  • Ignore this Point:忽略该测点值
  • Ignore and Send Error:忽略该测点值并发送至错误中心
Start Time Yes 当选择 Generate New Point 时,输入新测点数据的起始时间戳,格式为 2019-08-26T00:00:00+08:00
Time Interval Yes 输入产生新测点数据的时间间隔
Value Generator Yes

选择如何生成测点数据以及测点数据的类型,可选:

  • Random Number(Double):随机生成测点数值

  • Fixed Incremental as Value:按固定增量生成测点数值;并在 Beginning Number 字段中输入起始值,在 Fixed Incremental 字段中输入增量值

  • Random Number in Range:在指定区间内,随机生成测点数值;并在 MinMax Range 字段中输入区间的范围,在 Decimal Scale 字段中指定测点数值的小数点位数

  • Current System Time:使用生成测点时的系统时间作为测点数值

  • Input String as Value:输入字符串作为测点数值;并在 Input 字段中输入字符串,在 Data Type 菜单中选择字符串的类型


输出结果

该算子的输出结果为新的records,record各字段的描述如下:

名称 数据类型 描述
pointId String 测点ID
modelId String 测点所属的模型ID
assetId String 资产实例ID
ts Long 时间戳

输出示例

配置示例图

../../../_images/asset_generator_config.png

结果输出示例

../../../_images/asset_generator_result.png