场景示例
1.统计产量
现有字段“累计产量”为累计量,可按照分、时、日和班次统计产量,假设原始数据的累计产量每秒加1
1.1时间维度
演示效果
通过下拉选项选取分、时、日表格,再通过筛选器选择日期
配置步骤
i.数据处理
①创建原始表
创建变量归档表“产量统计-原始表”,添加“累计产量”字段关联原始数据,开启归档实时触发,确保数据每秒归档
②计算净产量
在原始表创建“净产量”字段,计算净产量,即计算累计产量与其上一记录值的差值,以下两个函数均可实现:
PREVALUE函数:“累计产量”与其上一记录值的差值
[累计产量] - PREVALUE( [累计产量] )
CHANGE函数:直接返回“累计产量”跟上一记录值的差值
Change( [累计产量] )
③创建数据聚合表
创建数据聚合表“产量统计-时间维度-聚合表”,“原始表关联”选择原始表
④聚合数据
在聚合表中创建字段“分聚合”、“时聚合”、“日聚合”(根据所需时间维度创建),关联字段为记录时间,按时间维度分组;创建字段“产能汇总”计算产量,关联字段为净产量,汇总求和
打开聚合触发设置-实时更新,此时数据将会根据原始表更新实时聚合
ii.可视化
①创建表格(以分聚合表格为例,时聚合与日聚合表格操作步骤相同)
按时间维度创建表格,关联数据表为聚合表,维度为分聚合,指标为"产量汇总—求和",将表格名改为分表格
②关联筛选器
为通过筛选器选定所需查看数据的日期,将三个表格查询条件都关联到一个筛选器
③配置下拉选项
添加下拉选择组件,为下拉选项配置选项值,对应三个表格名称
为实现选择选项显示对应表格,为下拉选项添加条件判断,确保选中对应的选项时该表格显示,其他表格隐藏
1.2班次维度
现有班次配置:
演示效果
通过时间控件选择日期,可查看日期范围内的班次产量汇总
配置步骤
i.数据处理
①创建原始表,计算净产量
延用时间维度的表和"净产量"字段
②添加字段
在原始表添加“当前班次”与“当前班次日期”字段,分别关联系统变量System_Shift(系统当前班次)与System_ShiftDate(系统当前班次日期)
③创建数据聚合表
创建数据聚合表,“原始表关联”选择原始表
④聚合数据
在聚合表中创建字段“当前班次”、“当前班次日期”,关联字段为原始表的“当前班次”与“当前班次日期”,处理方式分别为“相同值为一组”与“按日”;创建字段“产量汇总”,关联字段为净产量,汇总求和
由于班次存在跨天的情况,如果选择实时聚合,聚合数据范围只会取本日数据,所以调整数据管理的对应聚合表为定时聚合
ii.可视化
①创建表格
添加表格组件,关联数据表为聚合表,维度为""当前班次""与"当前班次日期",指标为产能汇总—求和
②配置时间控件
为了更直观展现时间维度,使用时间控件筛选时间。时间控件配置如下:
关联表格,关联字段为当前班次日期
2.统计设备状态时长
设备运行状态用数字代表:"0"代表停机;"1"代表运行;"2"代表故障。需通过“设备状态”从分、时、日和班次统计状态时长。
2.1时间维度
演示效果
通过下拉选项选取日、时、分表格,再通过时间控件选择日期,可观察对应时间设备状态时长(单位:秒)
配置步骤
i.数据处理
①创建原始表
创建变量归档表“状态时长统计-原始表”,添加“设备状态”字段关联原始数据,开启归档实时触发,确保数据每秒归档
②记录各个状态时长
为方便计算各个状态时长,添加字段”设备状态-归档时间颗粒度停机时长“、"设备状态-归档时间颗粒度运行时长"、”设备状态-归档时间颗粒度故障时长“
以"设备状态_归档时间颗粒度运行时长"为例,若设备状态值为1,则该字段返回”1“,否则返回”0“
③创建数据聚合表
创建数据聚合表,“原始表关联”选择原始表
④聚合数据
在聚合表中创建字段“分聚合”、“时聚合”、“日聚合”(根据所需时间维度创建),关联字段为记录时间,按时间维度分组
在聚合表中再创建字段“设备状态归档时间停机时长”、“设备状态归档时间运行时长”、“设备状态_归档时间故障时长”,关联字段为对应原始表中状态时长,汇总求和,可计算出对应状态持续时长
注:此处聚合单位为秒,若想以分钟为单位聚合,可添加字段处理
打开聚合触发设置-实时更新,此时数据将会根据原始表更新实时聚合
ii.可视化
①配置堆积条形图
由于堆积条形图可以横向展示每个小分类的数据,可以直观看出设备状态持续时间占比,故使用堆积条形图。
下面以日聚合条形图为例:将条形图名称改为"日聚合",数据表选择"状态时长统计时间维度聚合表",维度选择日聚合,指标选择各个状态时间求和
②配置时间控件
为了更直观展现时间维度,使用时间控件筛选时间。时间控件配置如下:
关联三个堆积条形图,关联字段均为记录时间
③配置下拉选项
与产量统计-时间维度-配置下拉选项步骤相同。
2.2班次维度
现有班次配置:
演示效果
通过时间控件选择日期,可查看班次日期范围内的班次各个状态持续时间(单位:秒)
配置步骤
i.数据处理
①创建原始表、记录各个状态时长
延用时间维度的原始表与记录状态时长字段
②添加字段
在原始表添加“当前班次”与“当前班次日期”字段,分别关联系统变量System_Shift(系统当前班次)与System_ShiftDate(系统当前班次日期)
③创建数据聚合表
创建数据聚合表,“原始表关联”选择原始表
④聚合数据
在聚合表中创建字段“当前班次”、“当前班次日期”,关联字段为原始表的“当前班次”与“当前班次日期”,处理方式分别为“相同值为一组”与“按日”;
再创建字段“设备状态归档时间停机时长”、“设备状态归档时间运行时长”、“设备状态_归档时间故障时长”,关联字段为对应原始表中运行状态时长,汇总求和,可计算出对应状态持续时长
注:由于归档实时触发,所以时间单位为秒;若想以分钟为单位,可添加字段处理
由于班次存在跨天的情况,如果选择实时聚合,聚合数据范围只会取本日数据,所以调整数据管理的对应聚合表为定时聚合(最小单位为分钟)
ii.可视化
①配置堆积条形图
数据表选择“状态统计班次维度聚合表”,维度选择"当前班次日期"与"当前班次",指标选择各个状态时长求和
②配置指标卡
数据配置与堆积条形图相同,可直接复制粘贴堆积条形图,将图表类型改为指标卡
③配置时间控件
关联堆积条形图与指标卡,关联字段均为当前班次日期
3.按班次统计历史报警次数
演示效果
用柱状图统计每日每班次报警次数
配置步骤
数据处理
①创建聚合表
为处理历史报警数据,添加"历史报警聚合表",原始表关联选择系统表"报警管理-历史表"
②配置字段
i.班次不跨天且时间节点均为整点情况,以下图班次为例
- 报警时间:关联原表“报警时间”
- 报警日期:返回当日日期,公式为:TODAY(),配置此字段目的是统计班次日期
- 报警次数:记录"报警名称"个数,计算报警次数
- 报警时段:返回报警时段,公式为:HOUR([报警时间])。配置此字段目的是判断班次
- 报警班次:判断班次,公式为:IF( [报警时段] < 14,"早班","晚班") ,根据班次设置写公式,14点前为早班,否则为晚班(不考虑非班次时间情况)
ii.班次不跨天且时间节点为非整点情况,以下图班次为例
- 报警分钟:与报警时段作用相同,用来计算班次,计算公式:MINUTE([报警时间])
- 是否早班:判断班次是否为早班,计算公式:AND( OR([报警时段] > 8, AND([报警时段] == 8,[报警分钟] >= 15)), OR([报警时段] < 14, AND([报警时段] == 14,[报警分钟] <= 45)))。判断报警事件是否在早班(8:15=14:45)之间,若在该区间返回ture,否则返回false。
- 报警班次:判断最终班次为早班还是晚班,计算公式:IF([是否早班]==true, "早班", "晚班"),如果“是否早班”字段为true则为早班,否则为晚班(不考虑非班次时间情况)
iii.班次跨天且时间节点为整点情况,以下图班次为例
- 是否跨天:判断是否是跨日班次的次日时段,计算公式:[报警时段] <= 7。若报警时段小于等于7代表报警时间为跨日班次的跨日部分,返回true,否则返回false。
- 报警日期:计算公式:IF( [是否跨天]==false, TODAY().AddDays(-1d), [报警时间] )。若不是跨日班次的次日时段(“是否跨天”返回false),正常计算报警日期。若为跨日班次的次日时段(“是否跨天”返回true),需要将其报警日期往前移一天。
可视化
配置堆积柱状图,数据表选择历史表聚合,维度为"报警日期"与"班次",指标为"报警次数"
若需使用时间控件或筛选器控制,参考产量统计。