在本系统中,针对计量系统的数据计算是最复杂的,其中需要采用多种转换以及公式计算,并且需要结合系统预置的一些计算参数以及每个台区的一些补充技术参数进行计算,计算的过程分为5大步骤(转换):
1、 根据系统时间获取到计量系统瞬时数据的表名(计量系统每天都会生成一个以日期命名的新表)。
2、 从系统数据库中读入系统级的计算参数。
3、 计算每日指标。
4、 计算每日告警信息。
5、 计算每月指标(每月1号执行一次)。
在实现上述5大步骤的同时,辅以清空重复数据以及自动重试机制,保证计算数据的正确性。
计算作业脚本如下图所示:
下面详细介绍一下每个转换的详细实现:
获取瞬时数据的表名:
该转换比较简单,2个控件完成,第一个是通过脚本获取当前系统时间,并拼接成瞬时数据的表名。(不限于用sql脚本),完成后将结果输出到变量,活动类型为当前作业。
读取系统计算参数:
该转换由2个表输入和2个设置变量和1个列转行来完成,系统计算参数是由每行一个参数及其值来保存(如下图的预览数据),但是设置变量控件是以字段为输入的,所以在这里使用了一个列转行控件。
在行转列过程中会用到一个分组字段,如果不分组的话,必须新增一个无用列来输入,该列的值只要全部相同即可。在行转列完成后,将值设置到相应名称的变量即可。
在本转换中,获取完成系统的计算参数后,还要设置好数据所属的时间,如下图所示,作为业务上与本次计算相匹配的时间,主要方法是查询计量系统瞬时数据表的数据时标(数据采集的时间),分别以日期部分以及月份作为2个字段输出,并置为变量输入到下一步指标的计算中,作为指标的业务时间。
时间: 2024-10-02 18:12:23