Record Generator¶
根据配置的条件产生新的数据(Record),具体功能如下:
按固定的查询频率、计算频率、或按触发点,生成所需要的 Record。
根据各种过滤条件(资产 ID、模型 ID、资产标签、资产树 ID、资产树标签),确定要计算的设备(Asset ID)及其测点(Point ID)的数据集合,即一个
Map<assetId,Set<pointId>>
。根据以上数据集合,生成 record 的触发条件包括:
按固定的查询频率和时间间隔,从 Redis 查询测点数据
按固定的查询频率和查询时间区间,从 TSDB 查询测点数据
按固定的计算频率,模拟生成指定类型的数据
按固定的计算频率,模拟生成触发点数据
配置详情¶
该算子的配置包括 General,Basic,Input/Output,和 Record Generate 的详细信息,各字段的配置如下:
General¶
名称 |
是否必须 |
描述 |
---|---|---|
Name |
Yes |
算子名称 |
Description |
No |
算子描述 |
Stage Library |
Yes |
算子所属的库 |
Required Fields |
No |
数据必须包含的字段,如果未包含指定字段,则 record 将被过滤掉 |
Preconditions |
No |
数据必须满足的前提条件,如果不满足指定条件,则 record 将被过滤掉。例如: |
On Record Error |
Yes |
对错误数据的处理方式,可选:
|
Basic¶
名称 |
是否必须 |
描述 |
---|---|---|
Trigger Type |
Yes |
选择触发生成数据的方式,可选 By Fixed Frequency 或 By Input Point |
Trigger Frequency |
Yes |
当选择 By Fixed Frequency 触发方式时,选择触发产生新 record 的频率,将按频率触发生成数据 |
Trigger Point |
Yes |
当选择 By Input Point 触发方式时,输入触发点(格式为 pointId ,非 modelId::pointId ),按前置 Record Generator 生成的触发点触发生成数据 |
Input/Output¶
名称 |
是否必须 |
描述 |
---|---|---|
Generate Type |
Yes |
选择产生数据集合的方式,可选:
|
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¶
生成 record 的方式包括:从 Redis 查询测点数据、从 TSDB 查询测点数据、模拟生成指定类型的数据、按指定数据类型生成设备数据作为触发点。各种方式的具体配置项说明如下:
Query From Redis¶
名称 |
是否必须 |
描述 |
---|---|---|
Use LastUpdate Interval Filter |
No |
选择是否按一定的时间间隔从 Redis 获取测点最新数据 |
LastUpdate Interval(Minutes) |
No |
当选择按一定的时间间隔获取数据时,输入时间间隔的值 |
NotExistHandle |
Yes |
当未获取到测点数据时,选择处理方式,可选:
|
Query From TSDB¶
名称 |
是否必须 |
描述 |
---|---|---|
Start Time |
Yes |
输入查询测点数据的起始时间,格式为 2019-08-26T00:00:00+08:00 |
Time Interval |
Yes |
输入查询测点数据的时间间隔 |
End Time |
Yes |
输入查询测点数据的截止时间,格式为 2019-08-26T00:00:00+08:00 |
Generate New Point¶
名称 |
是否必须 |
描述 |
---|---|---|
Date Format |
Yes |
选择生成数据的日期格式,可选 SimpleDateFormat 或 TimeFunctions
|
Start Time |
Yes |
输入新测点数据的起始时间戳(格式为 2019-08-26T00:00:00+08:00),或按 StreamSets 表达式生成时间戳 |
Time Interval |
Yes |
输入产生新测点数据的时间间隔 |
Value Generator |
Yes |
选择如何生成测点数据以及测点数据的类型,可选:
|
Generate Trigger Point¶
名称 |
是否必须 |
描述 |
---|---|---|
Date Format |
Yes |
选择生成数据的日期格式,可选 SimpleDateFormat 或 TimeFunctions
|
Start Time |
Yes |
输入新测点数据的起始时间戳(格式为 2019-08-26T00:00:00+08:00),或按 StreamSets 表达式生成时间戳 |
Time Interval |
Yes |
输入产生新测点数据的时间间隔 |
Value Generator |
Yes |
选择如何生成测点数据以及测点数据的类型,可选:
|
输出结果¶
该算子的输出结果为新的 records,record 中包括:
通用字段(如 assetId,pointId,modelId,time,value 等)
Stage配置属性字段:/attr/recordGenerator下所有字段,如下表:
名称 |
数据类型 |
描述 |
---|---|---|
assetCfg |
String |
Generate Type配置对应的值,产生数据集合的方式 |
generateBy |
String |
生成 record 的方式 |
queryStart/queryEnd |
String |
当选择从 TSDB 查询数据时,查询区间的起始时间/结束时间 |
offset |
Long |
当选择模拟生成数据时,pipeline 启动后,最新生成虚点数据的计数量 |
curQueryBatch |
Long |
当选择模拟生成数据时,pipeline 启动后,实际触发查询的批次计数 |
triggerPoint |
Boolean |
生成的数据是否为触发点 |
generatorKey |
String |
当选择生成触发点数据时,Generate Type 对应的具体 Value |