刘梦欣(1993-),女,甘肃天水人,硕士研究生,从事计算机网络技术应用、数据库与信息处理研究;
0 引言
生产管理系统(Power Production Management System,PMS)是面向国家电网公司总部、省公司和各级运维检修单位的统一精益生产管理信息系统,它包含了公司运维检修业务和生产管理全过程,完成设备管理向电网管理和资产管理转变,为智能电网建设提供强有力的支撑。
PMS2.0管理的设备类型多、数量大,依靠人工检测的方式需要检查的字段很多,数据量巨大,耗时较长,人力成本和时间成本都很高,而且在检测的过程中很可能出现遗漏或者错检的情况。面对这样的状况,传统依靠人工检查方式已经无法满足数据质量检查要求[1]。因此,采用自动化、流程化手段高效、准确地进行数据检测,对提升数据质量是十分必要的[2]。针对国家电网公司谐波监测平台的纵向接口要求,设计实现PMS台账数据服务及数据质量检测系统,用自动化的检测代替人工检查方式,可以提高供电企业数据质量检测工作的检测速度,并有效提升后续工作效率。
1 台账数据接口服务及检测内容
1.1 台账数据接口服务
根据国家电网公司下发的《国家电网公司电网谐波监测分析模块纵向接口规范》,PMS2.0的纵向接口中台账数据接口用于传输监测终端的台账数据、测试仪器/检定装置的台账数据、监测点的台账数据、电网设备的台账数据。台账数据接口部署在省公司主站侧,采用SOAP Web Service方式实现,由总部主站发起请求,省公司主站应答,将相关台账数据上传给总部主站。
台账数据接口包括监测终端的台账数据接口、测试仪器/检定装置的台账数据接口、监测点的台账数据接口、电网设备的台账数据接口。
各借口功能描述如下:
1)GetTerminalAccountList:获取指定设备编码的监测终端台账数据;
2)GetTestInstrumentAccountList:获取指定设备编码的测试仪器/检定装置台账数据;
3)GetMonitorAccountList:获取指定编码的监测点台账数据;
4)GetDeviceAccountList:获取与指定编码的监测点关联的电网设备台账数据。
台账数据服务接口发出请求和获取服务的数据都有相应的规范标准,以此来进行数据质量检测,由于台账数据接口较多,本文以“获取指定设备编码的监测终端台账数据”接口为例,说明台账服务接口及数据监测的内容。
1.2 服务及数据检测内容
1)接口服务一致性检测:主要检测电网谐波监测分析模块台账数据服务发布的接口格式,是否符合国家电网公司规定的接口规范。因为此接口采用SOAP Web Service方式实现,SOAP 基于XML和HTTP,通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输。通过XML规范来确定统一的数据传输格式,其保证传输数据正确的先决条件是请求方与应答方所了解的服务接口格式是否一致。
省公司主站作为应答方,在接收到请求消息后应解析XML,根据请求参数向总部主站反馈相应数据。总部主站收到应答数据后解析XML入总部生产库,并抽取数据进行计算。针对应答消息的检测,需要根据不同的接口制定不同的标准文件。在检测指定接口的应答消息XML时,与相应接口标准文件进行同步解析对比,以此方式检测结果XML中是否出现以下几种情况:标签缺失、标签冗余、标签级别错误、标签拼写错误。
2)数据质量检测:主要针对台账数据,检测内容包括数据是否完整、数据是否准确、数据格式是否正确、多个台账数据中关联字段是否匹配等。监测终端台账关键字段核查标准如
2 数据质量与检测方法
数据质量可以从应用角度与自身特性2个方面定义[3]。就数据应用角度来看,可从是否能满足指定应用的要求来衡量,即如果一批数据能从各个方面经过验证并满足指定应用的要求,那么这批数据对这些应用来说就是高质量的。就数据质量本身来看,其自身特性主要体现在2个方面:一是数据本身的数据质量,主要包括数据真实性、数据自洽性、数据完整性、数据逻辑一致性、数据精确性、数据时效性、数据可用性、数据可信性等体现数据质量特征的属性[4];二是数据的过程质量,主要包括数据的使用质量、数据的存贮质量、数据的传输质量。影响数据质量的因素可以归结为数据内在因素、应用环境、数据表述和数据存取四大类。
PMS系统台账数据服务及数据质量检测软件设计开发的难点在于异常数据的发现与识别。异常数据检测是对数据集中明显的偏差值、孤立点的识别,异常数据的校验方法因不同的应用领域而有所差
异[5-12]。已有的对电力系统数据检测方法主要有3种:基于统计的检测方法,基于数据间关联关系的检测方法,多个数据来源的检测方法。在这3种方法中,基于统计的检测方法更适合对台账数据进行检测。
3 台账服务及数据质量检测系统设计
3.1 系统物理结构设计
系统物理结构如
3.2 系统逻辑结构设计
系统具有分布性特点,需要随时随地能够进行查询、浏览等业务处理,因而采用B/S三层架构模式,分为与客户交互的表示层,中间的业务逻辑层和底层的数据访问层。因为系统数据源基于服务接口的特殊性,在数据访问层与业务逻辑层之间添加服务层。系统逻辑结构如
1)表示层。台账质量检测的界面收集用户输入信息,包括服务地址、待测数据类型。
2)业务逻辑层。系统首先从表示层获取参数信息,使用Web Service调用方式调用相应的台账数据服务接口,获取标准XML格式的台账数据。系统获得访问Web服务地址返回的XML数据后,对其进行解析才能得到需要的台账数据。在保存错误数据的同时,还要保存所属台账接口类型、所属ID、标签名、异常数据检测时间等信息。检测完毕后,对异常数据进行统计后生成检测报表,包括错误率、缺失率、异常数据明细、缺失数据明细等。
3)服务层。已有台账数据封装发布到Web Service上,为检测提供获取数据接口。
4)数据访问层。主要作用是获取台账数据规范标准表内容和保存质量检测结果。
3.3 数据库设计
系统数据库采用MySQL数据库,全部数据表的说明如
1)台账数据标准规范表。台账数据标准规范表(sy_scheme)中记录的是所有台账数据的存储规范,将规范标准化成可以用程序识别的标准规范表。表中check_type存放检测类型,对于每一项不同的标签可能会有不一样的检测标准,整体分为9类,所以在check_type中用数字代替检测的类型(0无其他要求,1有阈值,2不能有中文,3必须是中文,4判断日期,5不带单位,6匹配标准格式,7生产厂家编码,
8部门编码)。如果check_type为1,说明有阈值,才会读取后面3项(最大值、最小值、错误信息说明)。台账数据标准规范表的表结构如
2)台账错误信息表。台账错误信息表(sy_errorinfo)中记录台账数据质量检测结果,包括台账种类、每种台账中的id编码、错误标签的名称、错误标签对应的参数名、错误数据、错误类型、检测时间、错误信息说明。其中错误类型是为了之后生成报表能统计出缺失率和错误率;错误信息说明是保存错误数据的出错原因,方便有针对性修改数据。台账错误信息表的表结构如
4 系统实现
4.1 系统总体流程
系统主要功能是台账的数据质量检测,首先选择待测台账数据类型,输入Web访问地址,点击开始检测后由按钮响应获取用户输入的数据,调用获取所有台账ID接口,再用返回的ID数据调用待测台账数据,判断是否符合标准格式。然后将XML格式数据转为SimpleXML对象,实现对台账数据的解析。质量检测时先判断是否为空,如果为空,且是必填项保存为缺失数据,若不是必填项检查下一条;如果不为空,判断是否填写正确。检查下一条台账数据直到检测完所有的台账数据,保存检测结果,对结果进行统计汇总生成检测报表。系统流程如
4.2 台账数据质量检测实现
台账数据服务访问后获得的台账数据是XML格式字符串,系统对XML格式字符串进行解析,转为SimpleXML对象,调整对象中每个台账数据标签存储位置,以便检测时获取XML标签中的值,与数据库中台账数据标准规范表进行对比。先判断是否为空,如果为空则是必填数据,需存入错误信息数组;不为空则必填数据不用检测。完成一个台账数据的质量检测后,对下一个台账数据进行质量检测,最后将结果保存、统计、汇总,关键代码如下:
//把结果数组中的xml格式字符串转为SimpleXML对象
$result = simplexml_load_string($result[‘Get’.$type.’AccountListResult’]);
$element = $result->$type.’InfoList’->$type.’Account’;
$element = $this->formatSimpleXML($element); //规范格式方便质量检测
$scheme = M(“sy_scheme”);//将数据规范表实例化
……
//检测判断
if(empty($data[0])){//没有填数据,不再执行check_type
if($is_fill){
$array = $check->addErrorArray($type,$account_id, $label,
$scheme[$i][‘para_name’],$data,0,’为空',$array); //存入错误信息数组}}
elseif($check_type){//判断是否填写正确
settype($data,”string”);
$array = $check->checkType($check_type,$data,$type,$account_id,$scheme[$i],$array);}
else//不是必填项为空或填写正确
continue;
}
return $array;
}
在CheckController中用checkType函数判断是否填写正确,分为几种标准规范:无其他要求,有阈值,不能有中文,必须是中文,判断日期,不带单位,匹配标准格式,匹配生产厂家编码,匹配部门编码。
4.3 实验结果与分析
在台账数据质量检测功能界面(见
点击“生成报表”,对异常数据进行统计,生成的台账数据检测报表如
5 数据质量提升对策
1)集中对PMS数据录入人员展开培训,重点关注PMS系统中对输入规范没有明确要求的相关属性,将培训考核结果与后续工作完成质量同时纳入日常工作考核范围,提升后续工作效率。
2)PMS系统根据各类数据的格式要求,明确数据填写规范,包括填写内容的格式、上下限、统一命名及编码规范等,同时还可设置数据过滤功能,在数据入库前进行多次问题反馈与整改。
3)根据不同类型数据的需求,在系统内添加部分数据修复与缺失数据填充的功能,例如字段要求为不可添加单位,则可以自动将错误值后缀字母部分去除;缺失字段若有填写正确的关联字段,可通过固定关联关系进行填补。需要注意的是,在数据修复与填补功能准确度不够高的情况下,需要生成报表进行人工确认后才可对实际数据进行操作。
6 结语
随着国家电网公司台账数据量的日益增加,台账数据质量的检测耗时变得越来越长,本文设计开发了一套PMS台账数据服务及数据质量检测软件,用自动化的检测替代人工检查方式,提高供电企业数据质量检测工作的检测速度,解决台账数据质量检测难题,能够将缺失数据和错误数据成功并精确地检测出来。系统还需要进一步的完善,在提高检测性能的同时,补充对更多类型台账数据检测的功能,最终实现系统功能完备、操作便捷的目标。
(编辑:张钦芝)
参考文献
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]