張磊
[摘 要]隨著信息數(shù)據(jù)的爆炸式增長(zhǎng),數(shù)據(jù)質(zhì)量成為提高企業(yè)數(shù)據(jù)資產(chǎn)價(jià)值的最核心因素,是數(shù)據(jù)治理領(lǐng)域的重要分支,是提高企業(yè)數(shù)據(jù)資產(chǎn)價(jià)值最重要的體現(xiàn)?;诖耍疚闹饕榻B了如何實(shí)現(xiàn)數(shù)據(jù)表空值的篩選功能,旨在提高數(shù)據(jù)質(zhì)量管理的工作效率。
[關(guān)鍵詞]空項(xiàng)篩選;數(shù)據(jù)質(zhì)量;數(shù)據(jù)表
doi:10.3969/j.issn.1673 - 0194.2019.14.077
[中圖分類號(hào)]TP311.13[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1673-0194(2019)14-0-02
1? ? ?問(wèn)題的提出
隨著生產(chǎn)管理信息系統(tǒng)在油田的廣泛應(yīng)用,數(shù)據(jù)質(zhì)量問(wèn)題日益突出,生產(chǎn)數(shù)據(jù)在許多方面存在不同程度的質(zhì)量缺陷,這些缺陷分布在各生產(chǎn)信息管理系統(tǒng)的各個(gè)環(huán)節(jié),嚴(yán)重影響了系統(tǒng)的工作效率,用戶還會(huì)對(duì)系統(tǒng)產(chǎn)生抵觸情緒。數(shù)據(jù)質(zhì)量分為很多類別,如及時(shí)性、完整性、準(zhǔn)確性等。本文將針對(duì)數(shù)據(jù)完整性中的數(shù)據(jù)缺失數(shù)據(jù)篩查技術(shù)進(jìn)行探索,從而提高數(shù)據(jù)質(zhì)量,保障系統(tǒng)正常運(yùn)行。
2? ? ?研究背景
本次篩查工作范圍為A5系統(tǒng)涉及的歷史回遷數(shù)據(jù),歷史數(shù)據(jù)整理是支持A5數(shù)據(jù)庫(kù)建設(shè)的重要工作之一,為采油工程信息化建設(shè)建立“數(shù)據(jù)倉(cāng)庫(kù)”,為各單位擴(kuò)展業(yè)務(wù)功能提供數(shù)據(jù)支持及便利。歷史數(shù)據(jù)回遷涉及井基礎(chǔ)數(shù)據(jù)、采油井測(cè)試、施工總結(jié)3大部分?jǐn)?shù)據(jù),在系統(tǒng)應(yīng)用過(guò)程中,發(fā)現(xiàn)由于缺失歷史數(shù)據(jù),會(huì)影響系統(tǒng)的正常應(yīng)用,因此,需要篩選缺失的數(shù)據(jù),由專業(yè)人員對(duì)缺失數(shù)據(jù)進(jìn)行補(bǔ)錄,從而保證系統(tǒng)正常運(yùn)行。
3? ? ?數(shù)據(jù)篩查原則
3.1? ?方便性
數(shù)據(jù)檢查是一項(xiàng)煩瑣、細(xì)致的工作,存在大量的重復(fù)性勞動(dòng)。數(shù)據(jù)檢查的首要原則就是方便性,通過(guò)研究數(shù)據(jù)檢查的規(guī)則,進(jìn)行標(biāo)準(zhǔn)化自動(dòng)檢查,減少人工干預(yù),降低人為操作可能帶來(lái)的錯(cuò)誤率,使數(shù)據(jù)檢查更為高效化、自動(dòng)化。
3.2? ?實(shí)用性
數(shù)據(jù)檢查還應(yīng)體現(xiàn)實(shí)用性,檢查過(guò)程應(yīng)將數(shù)據(jù)的錯(cuò)誤盡可能顯示、輸出,方便數(shù)據(jù)處理人員找到及修改錯(cuò)誤數(shù)據(jù)。同時(shí),數(shù)據(jù)檢查應(yīng)方便數(shù)據(jù)處理人員對(duì)數(shù)據(jù)進(jìn)行標(biāo)注、保存、導(dǎo)出修改后的正確數(shù)據(jù)等。
4? ? ?可行性分析
本次篩查工作共涉及開(kāi)發(fā)靜態(tài)、油田監(jiān)測(cè)、井下作業(yè)10個(gè)表,數(shù)據(jù)項(xiàng)206個(gè),具體如表1所示。
4.1? ?利用sql語(yǔ)句手動(dòng)檢查
手動(dòng)檢查需要對(duì)每個(gè)表的每個(gè)數(shù)據(jù)項(xiàng)寫(xiě)一條sql語(yǔ)句進(jìn)行查詢,將數(shù)據(jù)表的每個(gè)數(shù)據(jù)項(xiàng)的檢查結(jié)果匯總到一個(gè)電子表格里。以daa02為例,sql語(yǔ)句如下。
Select? jh,wjrq? from? daa02? ?where? wjrq? is? ?null;
利用sql語(yǔ)句手動(dòng)檢查,每次檢查都需要重復(fù)輸入sql語(yǔ)句206條,并需要人工將檢查結(jié)果匯總到一張電子表格中,工作量大,易出錯(cuò),工作效率低。
4.2? ?利用程序自動(dòng)檢查
利用程序檢查,需建立上述表的數(shù)據(jù)字典,針對(duì)每個(gè)數(shù)據(jù)表在Oracle后臺(tái)建立一個(gè)存儲(chǔ)過(guò)程和檢查結(jié)果表,將檢查的結(jié)果自動(dòng)存入結(jié)果表。具體流程如圖1所示。
此種方式減少了人工干預(yù),降低了人為操作可能帶來(lái)的錯(cuò)誤率,可以實(shí)時(shí)監(jiān)測(cè),能夠保障補(bǔ)錄數(shù)據(jù)的檢查工作,工作效率高。在篩查數(shù)據(jù)空項(xiàng)的過(guò)程中,查詢語(yǔ)句中的數(shù)據(jù)項(xiàng)是變化的,能夠?qū)崿F(xiàn)自動(dòng)查詢功能,所以如何實(shí)現(xiàn)用變量代替sql語(yǔ)句查詢列成為本項(xiàng)工作的難點(diǎn)。例如,在存儲(chǔ)過(guò)程中一個(gè)查詢語(yǔ)句如下。
select jh from? v_bm? where? v_sjxdm is? ?null;
傳入的參數(shù)為表名和數(shù)據(jù)項(xiàng)名稱,這種情況下,是無(wú)法執(zhí)行的,使用動(dòng)態(tài)sql語(yǔ)句便可以解決以上問(wèn)題。
首先定義一個(gè)變量,用于存放要執(zhí)行的sql語(yǔ)句,然后用連接符將查詢語(yǔ)句和變量連接起來(lái),然后調(diào)用execute immediate來(lái)執(zhí)行。
str? ? ?varchar2(2000);
str := 'insert? into sjjc_daa02(jh)? select jh from ' || v_bm || ' where ' || v_sjxdm || ' is? ?null ';
execute immediate str;
經(jīng)過(guò)分析,決定采用研發(fā)檢測(cè)程序來(lái)對(duì)缺失數(shù)據(jù)進(jìn)行篩查。
以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;
通過(guò)程序檢查,共自動(dòng)形成結(jié)果表10個(gè),圖2為daa05的檢查結(jié)果表示例。
5? ? ?結(jié) 語(yǔ)
本次篩查10個(gè)數(shù)據(jù)表,共檢查出空值33 812 256個(gè),數(shù)據(jù)庫(kù)建表、建立數(shù)據(jù)字典、編寫(xiě)檢查程序時(shí)間為7天,此程序?yàn)橥ㄓ贸绦?,所有的?shù)據(jù)表建立數(shù)據(jù)字典,就可通過(guò)此程序進(jìn)行篩查,可重復(fù)使用。手動(dòng)檢查空值,10個(gè)數(shù)據(jù)表大概需要兩周時(shí)間,并且不可重復(fù)使用,如果再次檢查,需要重新寫(xiě)sql語(yǔ)句進(jìn)行檢查匯總。數(shù)據(jù)項(xiàng)空值檢查只是數(shù)據(jù)質(zhì)量管理的一部分,在今后的工作中將對(duì)數(shù)據(jù)的及時(shí)性、完整性、準(zhǔn)確性等多方面進(jìn)行檢查,提升數(shù)據(jù)質(zhì)量,確保各個(gè)生產(chǎn)系統(tǒng)平穩(wěn)運(yùn)行。
主要參考文獻(xiàn)
[1]蔣嶷川,田盛豐.入侵檢測(cè)中對(duì)系統(tǒng)日志審計(jì)信息進(jìn)行數(shù)據(jù)挖掘的研究[J].計(jì)算機(jī)工程,2006(1).
[2]龐洋.基于數(shù)據(jù)挖掘的園區(qū)網(wǎng)綜合安全審計(jì)系統(tǒng)研究與設(shè)計(jì)[D].鄭州:中國(guó)人民解放軍信息工程大學(xué),2005.
[3]任建平.基于數(shù)據(jù)挖掘的實(shí)時(shí)入侵檢測(cè)系統(tǒng)的研究[D].杭州:浙江大學(xué),2006.
[4]胡敏,潘雪增,平玲娣.基于數(shù)據(jù)挖掘的實(shí)時(shí)入侵檢測(cè)技術(shù)的研究[J].計(jì)算機(jī)應(yīng)用研究,2007(8).