网站首页  词典首页

请输入您要查询的论文:

 

标题 Oracle数据表空项筛选技术探索
范文

    张磊

    

    

    

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

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

    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).

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/3/24 16:19:45