码迷,mamicode.com
首页 > 其他好文 > 详细

应用Pentaho Data Integration(Kettle) 6.1 进行数据抽取以及指标计算(四、每日指标的计算下)

时间:2016-09-24 19:10:38      阅读:519      评论:0      收藏:0      [点我收藏+]

标签:

台区负载情况计算(新增按值排序控件的使用):

台区负载情况

1、对变压器类型为干性的配变,“负载率超过80%(100%)持续时间”大于等于1小时的,计1次;一个自然月内累计有10天(含)以上的,为重载(过载)。
2、对变压器类型为油浸式的配变,“负载率超过80%(100%)持续时间”大于等于2小时的,计1次;一个自然月内累计有10天(含)以上的,为重载(过载)。

 

    台区负载情况的计算流程如下图所示:

 技术分享

首先针对每行数据(每15分钟的值)的负载率判断其过载情况,采用javascript代码脚本控件进行判断,我们定义过载、重载、轻载3个标识字段,针对负载率与输入的判断阀值(在表输入步骤的时候输入的)间进行比较,符合条件的置为1,脚本如下图所示:

 技术分享

接下来针对3组标识进行持续时间计算

首先对数据流进行按照台区编号以及数据时标进行升序排序

 技术分享

然后采用“根据字段值来改变序列”控件,针对每个台区的过载、重载、轻载标识进行序号标记,生成一个新的序号字段,当过/重/轻载标识为1的时候,序号计为:当前序号的值+1,从1开始,当遇到过/重/轻载标识为0时,序号值重新计算。

 技术分享

计算的结果实例如下

 技术分享

接下来要将过/重/轻载标识为0,的这些序号清零通过2个字段相乘即可

 技术分享

计算结果如下示例:

 技术分享

然后按台区分组取最大值,即可得到这个台区过/重/轻载的最大连续次数(每个BS15分钟)

 技术分享

最后根据每15分钟台区过/重/轻载的最大连续续次数计算出一整天的台区负载情况结论

 技术分享

         至此,瞬时数据全部计算完成,计算的结果将汇总到台区整日数据计算。

4)日指标计算——整日数据的计算(新增ID、时间、排序生成):

 技术分享

整日数据计算,是不需要每15分钟数据支撑的部分,根据指标的不同情况采取不同的计算方式

针对用户信息系统的几个指标,计算逻辑比较简单,单条SQL语句即可得出结果的,不需要把全部的数据都读入到kettle中,只需要把数据统计完,并按照台区编号排列后,左连接到结果即可,如下图所示。

 技术分享

其他计算基本上属于普通的字段间加减乘除,采用前面介绍的那些控件都能一一完成,如下图所示:

 技术分享

最后简单介绍一下采用公式控件代替javascript代码脚本进行判断的示例,简单判断而不想写脚本的同学可以采用:

 技术分享

最后为即将插入数据库的数据建立主键以及时间戳、排序字段等

 技术分享

到这里每日指标的计算流程就基本上介绍完成。

应用Pentaho Data Integration(Kettle) 6.1 进行数据抽取以及指标计算(四、每日指标的计算下)

标签:

原文地址:http://www.cnblogs.com/wheel/p/5903682.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!