7.4 计算
计算区段(分析表单第 4 段)定义实时分析计算什么以及结果存储在哪里。它包含四个部分:计算对象、窗口聚合、输出时间戳和输出属性。
7.4.1 计算对象
计算对象决定实时分析的数据范围——即计算针对当前元素自身的属性执行,还是对其下属子元素的数据进行跨元素聚合。
| 选项 | 说明 |
|---|---|
| 元素本身 | 计算针对元素自身的属性执行。适用于针对单台设备或单个测点进行计算的场景。 |
| 子元素聚合 | 对元素下共享相同模板的子元素数据进行聚合计算。适用于"计算该风电场下所有风机的平均发电功率"等跨子元素的汇总指标。 |
选择子元素聚合后,会显示两个附加字段:
| 字段 | 说明 |
|---|---|
| 子元素模板 | 子元素必须匹配的模板。仅具有该模板的子元素参与聚合。若所有子元素共享相同模板,系统将自动预填。 |
| 子表过滤 | 可选的过滤表达式,用于缩小参与聚合的子元素范围。例如,仅筛选处于特定运行状态的子元素。 |
子元素聚合仅在元素包含子元素时可用。对于叶节点元素,此选项处于禁用状态,仅可选择元素本身。
7.4.2 窗口聚合
窗口聚合复选框(默认启用)控制计算是否在时间窗口上进行聚合。
启用时,间隔字段指定聚合窗口的长度(数字 + 时间单位)。例如,间隔为 1 小时表示每次触发计算过去 1 小时数据的聚合值。
禁用时,计算在单个数据点上运行,不进行窗口聚合——适用于行级计算或转换。
7.4.3 输出时间戳
输出时间戳下拉菜单指定每个结果行写入输出属性时使用哪个时间戳:
| 选项 | 说明 |
|---|---|
| 窗口开始 | 窗口开始时间 |
| 窗口结束 | 窗口结束时间(默认) |
| 时间戳 | 原始时间戳(_c0),即数据写入时刻。适用于定时触发、异常检测等逐行流式输出场景,保留每条结果的真实采集时间 |
选择时间戳(_c0)时,系统会根据触发类型自动决定输出形式:数据窗口聚合类计算(滑动窗口聚合、计数窗口、会话窗口等)输出聚合时刻 last(_c0);逐行流式计算(定时触发、异常检测、未配置间隔的滑动触发等)直接输出原始 _c0。
偏移量字段为所选窗口边界添加时间偏移量(数字 + 单位,默认 0 秒)。可用于调整输出时间戳以对齐显示。
7.4.4 输出属性
输出属性表格定义计算表达式与元素属性(以及在启用事件生成时与事件属性)之间的映射关系。
表格中每行包含以下列:
| 列 | 说明 |
|---|---|
| 表达式 | 计算表达式。点击单元格打开表达式编辑器(参见第 3.2.10 节)。 |
| 目标元素 | 该行计算结果的保存目标元素,默认为当前元素,可切换到其他元素——结果将写入目标元素的属性,便于把聚合/统计结果沉淀到汇总类元素上。分析模板不支持跨元素保存(不显示该列)。 |
| 元素属性 | 计算结果作为新时序值存储的元素属性(跟随该行所选的目标元素) |
| 事件属性 | (仅在第 3 段启用事件生成时可见) 在事件触发时刻捕获计算值的事件属性 |
通过表格底部的 + 按钮可添加更多输出行。每行对应一个独立的表达式,支持在单个实时分析中计算多个指标并将结果写入不同属性(各行可指定不同的目标元素)。
分析中的表达式(输出属性表达式、触发预过滤、事件窗口条件等)均可引用属性的子属性和 KPI 属性的子属性。在表达式编辑器的属性树中展开父属性(或 KPI 属性),点击子属性节点即可插入形如 ${attributes['父属性名']|childAttributes['子属性名']} 的引用;KPI 属性自身无取值,不能被直接引用,必须选择其子属性。
引用已构建完成的 KPI 子属性时,计算实时跟随 KPI 数据;引用构建期或月/季派生的 KPI 子属性时,流中读取的是标签快照值(非精确派生值),如需精确的派生聚合值请使用 KPI 面板或子属性直查。当表达式引用了 KPI 子属性时,界面会在表达式旁显示取数语义提示。引用公式型子属性时,公式会被内联展开为对应的 SQL(与面板口径一致),无需物化列。
7.4.5 触发窗口伪列
流计算的触发窗口伪列仅在流计算运行时有效,表达式评估时不予求值,返回空值:
| 伪列 | 含义 |
|---|---|
_twstart | 触发窗口的开始时间 |
_twend | 触发窗口的结束时间 |
_twduration | 触发窗口的时长 |
在输出属性的表达式编辑器中,左树提供窗口伪列分类(位于替换参数之上),展开后点击伪列节点即可插入;在表达式输入框中键入时,提示列表也会给出对应的快捷补全。
7.4.6 输出过滤
输出过滤是一个可选条件表达式,在实时分析完成计算后、将结果写入输出属性前进行评估。只有当过滤条件为真时,本次计算结果才会写入已配置的元素属性。
该功能适用于只保留满足业务条件的结果,例如仅在窗口内存在有效样本、结果超出允许范围,或某个状态条件成立时才输出。若过滤条件不满足,本次触发仍视为已执行,但不会向输出属性写入结果。









