專利名稱:一種etl數(shù)據(jù)清洗設(shè)計(jì)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于軟件工程領(lǐng)域中商務(wù)智能軟件開(kāi)發(fā)方面,特別涉及一種ETL數(shù)據(jù)清洗 設(shè)計(jì)方法,及該方法在日常生活中的應(yīng)用。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的迅速發(fā)展,信息處理技術(shù)也得到了長(zhǎng)足的發(fā)展。瞬息萬(wàn)變的市場(chǎng)環(huán)境、琢磨不透的客戶需求以及海量的業(yè)務(wù)數(shù)據(jù)決定了企業(yè)是商 業(yè)智能(Business Intelligence,簡(jiǎn)稱Bi)應(yīng)用的熱點(diǎn)行業(yè)之一。近年來(lái),商業(yè)智能在企業(yè) 的確得到了長(zhǎng)足的發(fā)展,越來(lái)越多的企業(yè)開(kāi)始或已經(jīng)實(shí)施商業(yè)智能項(xiàng)目。ETL即數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換CTransform)、裝載(Load)的過(guò)程。它是構(gòu)建數(shù) 據(jù)倉(cāng)庫(kù)、實(shí)現(xiàn)BI系統(tǒng)的重要環(huán)節(jié)。WlMMi^: (data cleansing/data cleaning/data scrubing) i—fMi^Iti^禾口 不一致性、解決對(duì)象識(shí)別的過(guò)程。目前有很多數(shù)據(jù)清洗研究和ETL研究,但是如何在ETL過(guò) 程中進(jìn)行有效的數(shù)據(jù)清洗,此方面研究不多。因此,為更好地推動(dòng)BI在企業(yè)應(yīng)用,有必要綜合現(xiàn)有ETL經(jīng)驗(yàn),研究并完善數(shù)據(jù)清 洗方法。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)BI系統(tǒng)ETL過(guò)程中數(shù)據(jù)清洗存在數(shù)據(jù)清洗不充分的問(wèn)題,提 出一種ETL數(shù)據(jù)清洗設(shè)計(jì)辦法。為了實(shí)現(xiàn)發(fā)明目的,采用的技術(shù)方案如下首先介紹常見(jiàn)ETL數(shù)據(jù)處理方法。數(shù)據(jù)抽取負(fù)責(zé)完成從數(shù)據(jù)源找到并取出當(dāng)前主題所需的那部分?jǐn)?shù)據(jù),由于數(shù)據(jù)倉(cāng) 庫(kù)中各個(gè)主題中的數(shù)據(jù)是按照前端應(yīng)用的需求存放的,因此需要對(duì)抽取出的數(shù)據(jù)進(jìn)行轉(zhuǎn)換 以適應(yīng)前端應(yīng)用的需要。轉(zhuǎn)換后的數(shù)據(jù)就可以裝入數(shù)據(jù)倉(cāng)庫(kù)了,數(shù)據(jù)加載過(guò)程定時(shí)進(jìn)行,并 且不同主題的數(shù)據(jù)加載任務(wù)有各自不同的執(zhí)行時(shí)間表。本方法基于數(shù)據(jù)庫(kù)中的ETL處理。數(shù)據(jù)庫(kù)中的ETL處理方式使用數(shù)據(jù)庫(kù)作為完整的數(shù)據(jù)轉(zhuǎn)換引擎,在轉(zhuǎn)換過(guò)程中也 不使用段。數(shù)據(jù)庫(kù)中的ETL處理具有數(shù)據(jù)庫(kù)段區(qū)域中的ETL處理的優(yōu)點(diǎn),同時(shí)又充分利用 了數(shù)據(jù)庫(kù)的數(shù)據(jù)轉(zhuǎn)換引擎功能,但是這要求數(shù)據(jù)庫(kù)必須完全具有這種轉(zhuǎn)換引擎功能。綜上分析三種ETL處理方式,數(shù)據(jù)庫(kù)外部的ETL處理可擴(kuò)展性差,不適合復(fù)雜的數(shù) 據(jù)清洗處理,數(shù)據(jù)庫(kù)段區(qū)域中的ETL處理可以進(jìn)行復(fù)雜的數(shù)據(jù)清洗,而數(shù)據(jù)庫(kù)中的ETL處理 具有數(shù)據(jù)庫(kù)段區(qū)域ETL處理的優(yōu)點(diǎn),又利用了數(shù)據(jù)庫(kù)的轉(zhuǎn)換引擎功能。所以為了進(jìn)行有效 的數(shù)據(jù)清洗,本方法使用數(shù)據(jù)庫(kù)中的ETL處理。
圖1是本發(fā)明的數(shù)據(jù)清洗在ETL中應(yīng)用模型示意圖。
具體實(shí)施例方式如圖1所示,在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中,數(shù)據(jù)清洗是ETL過(guò)程中的一個(gè)重要環(huán)節(jié),主要任 務(wù)是檢測(cè)并刪除/改正將裝入數(shù)據(jù)倉(cāng)庫(kù)的臟數(shù)據(jù)。由于數(shù)據(jù)倉(cāng)庫(kù)的多種異構(gòu)數(shù)據(jù)源和海量 數(shù)據(jù),數(shù)據(jù)清洗應(yīng)是與領(lǐng)域無(wú)關(guān)的。而且數(shù)據(jù)清洗不是ETL中一個(gè)單獨(dú)的步驟,需要與數(shù)據(jù) 抽取、數(shù)據(jù)轉(zhuǎn)換集成,與數(shù)據(jù)載入統(tǒng)一使用,需要進(jìn)行循環(huán)處理。如果數(shù)據(jù)源是一個(gè)能力比 較強(qiáng)的DBMS (如圖1中的數(shù)據(jù)源1和數(shù)據(jù)源2),則可以在數(shù)據(jù)抽取過(guò)程中使用SQL來(lái)完成 一部分的數(shù)據(jù)清洗工作。但是有一些數(shù)據(jù)源不提供這種能力(如數(shù)據(jù)源幻,則只能直接將 數(shù)據(jù)從數(shù)據(jù)源抽取出來(lái),然后在數(shù)據(jù)轉(zhuǎn)換的時(shí)候進(jìn)行清洗。具體實(shí)現(xiàn)過(guò)程不同的系統(tǒng)可以采用不同的數(shù)據(jù)清洗方法。基于某貿(mào)易公司的數(shù)據(jù)庫(kù)。表 Customer 記錄了公司的客戶信息,共有 11 個(gè)字段:CustomerID CompanyName ContactName ContactTitle Address City Region PostalCode Country Phone Fax。我們以這個(gè)表為 基礎(chǔ),編寫(xiě)程序來(lái)加入一些臟數(shù)據(jù)形成新表fustomernew。數(shù)據(jù)清洗分為以下幾步(1)結(jié)構(gòu)數(shù)據(jù)處理將非標(biāo)準(zhǔn)的數(shù)據(jù)格式化成結(jié)構(gòu)數(shù)據(jù)。以數(shù)據(jù)庫(kù)表Customernew的任意一條記錄為例。Address、City和Phone三個(gè)字 段值分別為Address :0bere Stre. 57City :BerlinPhone :030-0074321結(jié)構(gòu)處理后為Address(I) :0bereAddress (2) :StreAddress (3) :57City :BerlinPhone(I) :031Phone (2) :0074321(2)標(biāo)準(zhǔn)化將元素標(biāo)準(zhǔn)化,根據(jù)字典消除不一致的縮寫(xiě)。這里的字典是用戶通過(guò)分析樣本表預(yù)先制定的一些規(guī)則的集合。樣本表是根據(jù)概 率統(tǒng)計(jì)從表Customernew選擇一部分記錄所形成的一個(gè)表。首先分析Address (2)的值Mre,此值應(yīng)是Mreet的縮 寫(xiě)。而在字典中Mreet的縮寫(xiě)是Mr,所以在這里,Mre被認(rèn)為是臟數(shù)據(jù),正確的數(shù)據(jù)應(yīng) 為Str。(3)校驗(yàn)對(duì)標(biāo)準(zhǔn)化的元素進(jìn)行一致性校驗(yàn),即在內(nèi)容上修改錯(cuò)誤。
Berlin的電話區(qū)號(hào)應(yīng)為030,所以Phone(I)的值應(yīng)為030。(4)匹配在其它記錄中尋找相似的記錄,發(fā)現(xiàn)重復(fù)記錄。對(duì)整個(gè)表Customernew排序,然后在表中查找Address(I)值為Obere的所有記 錄,如果有這樣的記錄再去查找Address (2),依次類推,如果所有字段的數(shù)據(jù)全都相同,那 么這兩條記錄就是重復(fù)記錄。(5)消除重復(fù)記錄根據(jù)匹配結(jié)果進(jìn)行處理,刪除部分記錄或者合并多個(gè)記錄為一個(gè)完整信息的記 錄。本方法采用了基于距離的聚類方法,重點(diǎn)在于它的類的評(píng)測(cè)標(biāo)準(zhǔn)為歐幾里德距離或者 Edit距離,通過(guò)這種距離來(lái)發(fā)現(xiàn)數(shù)據(jù)集中的重復(fù)記錄。(6)歸檔將前5個(gè)步驟的結(jié)果寫(xiě)入元數(shù)據(jù)存儲(chǔ)中心。
權(quán)利要求
1.一種ETL數(shù)據(jù)清洗設(shè)計(jì)方法,其特征在于使用數(shù)據(jù)庫(kù)中的ETL處理;
2.—種ETL數(shù)據(jù)清洗設(shè)計(jì)方法,其特征在于預(yù)定義的數(shù)據(jù)清洗規(guī)則將臟數(shù)據(jù)轉(zhuǎn)化成滿 足數(shù)據(jù)質(zhì)量要求的數(shù)據(jù);
3.—種ETL數(shù)據(jù)清洗設(shè)計(jì)方法,其特征在于符合傳統(tǒng)ETL的抽取、轉(zhuǎn)換和裝載三個(gè)步驟;
4.根據(jù)權(quán)利要求3所述的ETL數(shù)據(jù)清洗設(shè)計(jì)方法,其特征在于基于距離的聚類方法來(lái) 檢測(cè)相似重復(fù)記錄。
全文摘要
本發(fā)明提供了一種ETL數(shù)據(jù)清洗設(shè)計(jì)方法及其在BI系統(tǒng)開(kāi)發(fā)中的應(yīng)用,通過(guò)預(yù)定義的數(shù)據(jù)清洗規(guī)則將臟數(shù)據(jù)轉(zhuǎn)化成滿足數(shù)據(jù)質(zhì)量要求的數(shù)據(jù),并應(yīng)用基于距離的聚類方法檢測(cè)數(shù)據(jù)相似度,最終滿足數(shù)據(jù)清洗的目標(biāo)要求。
文檔編號(hào)G06F17/30GK102135995SQ201110063960
公開(kāi)日2011年7月27日 申請(qǐng)日期2011年3月17日 優(yōu)先權(quán)日2011年3月17日
發(fā)明者丁保劍, 張?bào)阒? 許文捷 申請(qǐng)人:新太科技股份有限公司