APP下载

Oracle数据表空项筛选技术探索

2019-08-27张磊

中国管理信息化 2019年14期
关键词:数据质量数据表

张磊

[摘 要]随着信息数据的爆炸式增长,数据质量成为提高企业数据资产价值的最核心因素,是数据治理领域的重要分支,是提高企业数据资产价值最重要的体现。基于此,本文主要介绍了如何实现数据表空值的筛选功能,旨在提高数据质量管理的工作效率。

[关键词]空项筛选;数据质量;数据表

doi:10.3969/j.issn.1673 - 0194.2019.14.077

[中图分类号]TP311.13[文献标识码]A[文章编号]1673-0194(2019)14-0-02

1     问题的提出

随着生产管理信息系统在油田的广泛应用,数据质量问题日益突出,生产数据在许多方面存在不同程度的质量缺陷,这些缺陷分布在各生产信息管理系统的各个环节,严重影响了系统的工作效率,用户还会对系统产生抵触情绪。数据质量分为很多类别,如及时性、完整性、准确性等。本文将针对数据完整性中的数据缺失数据筛查技术进行探索,从而提高数据质量,保障系统正常运行。

2     研究背景

本次筛查工作范围为A5系统涉及的历史回迁数据,历史数据整理是支持A5数据库建设的重要工作之一,为采油工程信息化建设建立“数据仓库”,为各单位扩展业务功能提供数据支持及便利。历史数据回迁涉及井基础数据、采油井测试、施工总结3大部分数据,在系统应用过程中,发现由于缺失历史数据,会影响系统的正常应用,因此,需要筛选缺失的数据,由专业人员对缺失数据进行补录,从而保证系统正常运行。

3     数据筛查原则

3.1   方便性

数据检查是一项烦琐、细致的工作,存在大量的重复性劳动。数据检查的首要原则就是方便性,通过研究数据检查的规则,进行标准化自动检查,减少人工干预,降低人为操作可能带来的错误率,使数据检查更为高效化、自动化。

3.2   实用性

数据检查还应体现实用性,检查过程应将数据的错误尽可能显示、输出,方便数据处理人员找到及修改错误数据。同时,数据检查应方便数据处理人员对数据进行标注、保存、导出修改后的正确数据等。

4     可行性分析

本次筛查工作共涉及开发静态、油田监测、井下作业10个表,数据项206个,具体如表1所示。

4.1   利用sql语句手动检查

手动检查需要对每个表的每个数据项写一条sql语句进行查询,将数据表的每个数据项的检查结果汇总到一个电子表格里。以daa02为例,sql语句如下。

Select  jh,wjrq  from  daa02   where  wjrq  is   null;

利用sql语句手动检查,每次检查都需要重复输入sql语句206条,并需要人工将检查结果汇总到一张电子表格中,工作量大,易出错,工作效率低。

4.2   利用程序自动检查

利用程序检查,需建立上述表的数据字典,针对每个数据表在Oracle后台建立一个存储过程和检查结果表,将检查的结果自动存入结果表。具体流程如图1所示。

此种方式减少了人工干预,降低了人为操作可能带来的错误率,可以实时监测,能够保障补录数据的检查工作,工作效率高。在筛查数据空项的过程中,查询语句中的数据项是变化的,能够实现自动查询功能,所以如何实现用变量代替sql语句查询列成为本项工作的难点。例如,在存储过程中一个查询语句如下。

select jh from  v_bm  where  v_sjxdm is   null;

传入的参数为表名和数据项名称,这种情况下,是无法执行的,使用动态sql语句便可以解决以上问题。

首先定义一个变量,用于存放要执行的sql语句,然后用连接符将查询语句和变量连接起来,然后调用execute immediate来执行。

str     varchar2(2000);

str := 'insert  into sjjc_daa02(jh)  select jh from ' || v_bm || ' where ' || v_sjxdm || ' is   null ';

execute immediate str;

经过分析,决定采用研发检测程序来对缺失数据进行筛查。

以daa02为例,其具体检查程序如下:

createorreplaceprocedure p_sjjc_daa02  is

v_bmvarchar2(10);

v_sjxdmvarchar2(10);

v_sjxmcvarchar2(50);

str     varchar2(2000);

cursorc_sjzdis

selectbm, sjxdm, sjxmc

from sjzd_a5

wherepkeyisnull

andsfnullisnull

andbm = 'DAA02';

begin

openc_sjzd;

loop

fetchc_sjzd

intov_bm, v_sjxdm, v_sjxmc;

str := 'insert  into sjjc_daa02(jh)  select jh from ' || v_bm || ' where ' || v_sjxdm || ' is   null ';

executeimmediate str;

update sjjc_daa02 set NULL_CLUM = v_sjxmcwhere NULL_CLUM isnull;

commit;

exitwhenc_sjzd%notfound;

endloop;

closec_sjzd;

end p_sjjc_daa02;

通過程序检查,共自动形成结果表10个,图2为daa05的检查结果表示例。

5     结 语

本次筛查10个数据表,共检查出空值33 812 256个,数据库建表、建立数据字典、编写检查程序时间为7天,此程序为通用程序,所有的数据表建立数据字典,就可通过此程序进行筛查,可重复使用。手动检查空值,10个数据表大概需要两周时间,并且不可重复使用,如果再次检查,需要重新写sql语句进行检查汇总。数据项空值检查只是数据质量管理的一部分,在今后的工作中将对数据的及时性、完整性、准确性等多方面进行检查,提升数据质量,确保各个生产系统平稳运行。

主要参考文献

[1]蒋嶷川,田盛丰.入侵检测中对系统日志审计信息进行数据挖掘的研究[J].计算机工程,2006(1).

[2]庞洋.基于数据挖掘的园区网综合安全审计系统研究与设计[D].郑州:中国人民解放军信息工程大学,2005.

[3]任建平.基于数据挖掘的实时入侵检测系统的研究[D].杭州:浙江大学,2006.

[4]胡敏,潘雪增,平玲娣.基于数据挖掘的实时入侵检测技术的研究[J].计算机应用研究,2007(8).

猜你喜欢

数据质量数据表
联合收获机知识库数据多表联合查询方法研究
湖北省新冠肺炎疫情数据表(2.26-3.25)
基于列控工程数据表建立线路拓扑关系的研究
电子商务平台数据质量控制系统及仿真模型分析
强化统计执法提高数据质量
浅析统计数据质量
金融统计数据质量管理的国际借鉴与中国实践
浅谈统计数据质量控制
图表
基于VSL的动态数据表应用研究