一種etl數(shù)據(jù)血統(tǒng)查詢系統(tǒng)及查詢方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)管理領(lǐng)域,特別涉及一種ETL數(shù)據(jù)血統(tǒng)查詢系統(tǒng)及查詢方法。
技術(shù)背景
[0002]隨著企業(yè)業(yè)務(wù)范圍的擴(kuò)大,企業(yè)需要對各個(gè)區(qū)域的不同業(yè)務(wù)的數(shù)據(jù)進(jìn)行集成并分析??梢哉J(rèn)為,商業(yè)智能是對商業(yè)信息的搜集、管理和分析過程,目的是使企業(yè)的各級決策者獲得知識或洞察力,促使他們做出對企業(yè)更有利的決策。商業(yè)智能一般由數(shù)據(jù)倉庫、聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘、數(shù)據(jù)備份和恢復(fù)等部分組成。數(shù)據(jù)倉庫是為企業(yè)所有級別的決策制定過程提供支持的所有類型數(shù)據(jù)的戰(zhàn)略集合。它是單個(gè)數(shù)據(jù)存儲,出于分析性報(bào)告和決策支持的目的而創(chuàng)建。為企業(yè)提供需要業(yè)務(wù)智能來指導(dǎo)業(yè)務(wù)流程改進(jìn)和監(jiān)視時(shí)間、成本、質(zhì)量和控制。ETL過程就是構(gòu)建數(shù)據(jù)倉庫的重要過程。ETL是Extract1n Transformat1nLoading的縮寫,中文名稱為數(shù)據(jù)抽取、轉(zhuǎn)換和加載。ETL負(fù)責(zé)將來自不同系統(tǒng)的,屬于同主題的且具有不同數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)抽取到中間層后進(jìn)行數(shù)據(jù)格式的轉(zhuǎn)換和數(shù)據(jù)內(nèi)容的清洗,最后加載到數(shù)據(jù)倉庫中,是構(gòu)建數(shù)據(jù)倉庫非常重要的一環(huán)。目前ETL主要過程為轉(zhuǎn)換,我們需要對ETL過程進(jìn)行監(jiān)督。目前的ETL過程監(jiān)督只能單獨(dú)監(jiān)督某個(gè)中間過程的輸出字段和輸出預(yù)覽,不能有效給出整個(gè)ETL過程的數(shù)據(jù)修改情況。這將使得在ETL過程創(chuàng)建完成后非常不易于修改,因?yàn)橐坏┬薷钠渲心硞€(gè)環(huán)節(jié),該環(huán)節(jié)之后的環(huán)節(jié)都必須單獨(dú)檢查和修正,ETL過程不易于改進(jìn)。
[0003]鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過長時(shí)間的研宄和實(shí)踐終于獲得了本發(fā)明。
【發(fā)明內(nèi)容】
[0004]為解決上述技術(shù)缺陷,本發(fā)明采用的技術(shù)方案在于,提供一種ETL數(shù)據(jù)血統(tǒng)查詢系統(tǒng),其特征在于,包括一運(yùn)行模塊與一數(shù)據(jù)血統(tǒng)管理模塊,
[0005]所述運(yùn)行模塊能夠運(yùn)行任務(wù)腳本、并且能夠劃分任務(wù)形成帶有操作信息的任務(wù)腳本文件,并將所述帶有操作信息的任務(wù)劃分文件傳送至所述數(shù)據(jù)血統(tǒng)管理模塊;
[0006]所述數(shù)據(jù)血統(tǒng)管理模塊能夠接受用戶配置文件,收集源數(shù)據(jù)文件、帶有操作信息的任務(wù)腳本文件,對數(shù)據(jù)血統(tǒng)信息進(jìn)行存儲。
[0007]較佳的,所述運(yùn)行模塊包括:
[0008]一操作劃分單元,用于對任務(wù)腳本進(jìn)行劃分、形成帶有操作信息的任務(wù)腳本文件;
[0009]一腳本運(yùn)行單元:獲取源數(shù)據(jù)與運(yùn)行帶有操作信息的任務(wù)劃分文件,運(yùn)行任務(wù);
[0010]較佳的,所述數(shù)據(jù)血統(tǒng)管理模塊包括:
[0011]一數(shù)據(jù)血統(tǒng)獲取單元,能夠發(fā)送和接受用戶配置文件、獲取操作信息的任務(wù)腳本文件,將數(shù)據(jù)血統(tǒng)寫入數(shù)據(jù)血統(tǒng)表與數(shù)據(jù)血統(tǒng)附屬表;
[0012]一數(shù)據(jù)血統(tǒng)存儲單元,用于存儲所述數(shù)據(jù)血統(tǒng)表與數(shù)據(jù)血統(tǒng)附屬表。
[0013]較佳的,所述數(shù)據(jù)血統(tǒng)獲取單元包括:
[0014]一操作信息獲取子單元,用于獲取用戶配置文件、帶有操作信息的任務(wù)腳本文件與任務(wù)源文件;
[0015]一字段信息獲取子單元,用于獲取一次操作的字段信息;
[0016]一控制子單元,用于根據(jù)所述操作信息獲取子單元與所述字段信息獲取子單元獲取的數(shù)據(jù)進(jìn)行判斷,確定對應(yīng)操作對每個(gè)字段的行為結(jié)果。
[0017]較佳的,所述控制子單元能夠?qū)Ξ?dāng)前運(yùn)行任務(wù)進(jìn)行監(jiān)控。
[0018]較佳的,所述行為結(jié)果包括:增行,減行,添加,刪除,更新,修改元數(shù)據(jù),查詢。
[0019]較佳的,包括步驟:
[0020]S1:用戶填寫配置文件,所述配置文件由數(shù)據(jù)血統(tǒng)獲取單元獲??;
[0021]S2:操作劃分單元獲取ETL任務(wù)腳本并對其處理,生成帶有操作信息的任務(wù)腳本文件;
[0022]S3:所述腳本運(yùn)行單元獲取帶有操作信息的任務(wù)腳本文件進(jìn)行處理,生成腳本運(yùn)行文件;
[0023]S4:數(shù)據(jù)血統(tǒng)獲取單元獲取腳本運(yùn)行文件、源數(shù)據(jù)文件進(jìn)行分析,獲取數(shù)據(jù)血統(tǒng);
[0024]S5:所述數(shù)據(jù)血統(tǒng)獲取單元將數(shù)據(jù)血統(tǒng)寫入數(shù)據(jù)血統(tǒng)表與數(shù)據(jù)血統(tǒng)附屬表;
[0025]S6:所述數(shù)據(jù)血統(tǒng)獲取單元將數(shù)據(jù)血統(tǒng)表與數(shù)據(jù)血統(tǒng)附屬表存入數(shù)據(jù)血統(tǒng)存儲單
J L.ο
[0026]較佳的,所述步驟S4具體為:
[0027]操作信息獲取子單元根據(jù)配置文件獲取一些列的操作的操作號與SQL語言,字段信息獲取子單元獲取一次操作所得到的字段。
[0028]與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:開發(fā)人員可以自行設(shè)置參數(shù),選擇需要查看的數(shù)據(jù)血統(tǒng),此裝置可以把用戶需要的數(shù)據(jù)血統(tǒng)以圖表的方式展示出來。該圖表包含了操作的順序和每個(gè)操作對數(shù)據(jù)的行為。該方法及裝置還有出錯(cuò)檢測功能,操作出錯(cuò)情況可以顯示在上述圖表中。此外,用戶還可以任意選擇任務(wù)斷點(diǎn)以及查看該斷點(diǎn)的數(shù)據(jù)輸出情況及數(shù)據(jù)血統(tǒng)。
【附圖說明】
[0029]圖1為本發(fā)明中所述ETL數(shù)據(jù)血統(tǒng)查詢系統(tǒng)結(jié)構(gòu)示意圖;
[0030]圖2為本發(fā)明中所述數(shù)據(jù)血統(tǒng)獲取單元結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0031]為便于本領(lǐng)域技術(shù)人員對本發(fā)明的技術(shù)方案和有益效果進(jìn)行理解,特結(jié)合附圖對【具體實(shí)施方式】進(jìn)行如下描述。
[0032]請參見圖1所示,圖1為本發(fā)明所述ETL數(shù)據(jù)血統(tǒng)查詢系統(tǒng)結(jié)構(gòu)圖。一種ETL數(shù)據(jù)血統(tǒng)查詢系統(tǒng),包括運(yùn)行模塊I與數(shù)據(jù)血統(tǒng)管理模塊2。所述運(yùn)行模塊I將數(shù)據(jù)處理任務(wù)進(jìn)行劃分、運(yùn)行,所述數(shù)據(jù)血統(tǒng)管理模塊2能夠?qū)ο到y(tǒng)運(yùn)行中所涉及到的數(shù)據(jù)、數(shù)據(jù)血統(tǒng)進(jìn)行管理,形成數(shù)據(jù)血統(tǒng)表和數(shù)據(jù)血統(tǒng)附屬表。
[0033]所述運(yùn)行模塊I包括一操作劃分單元11與一腳本運(yùn)行單元12。
[0034]操作劃分單元11,將輸入到操作劃分單元11的ETL任務(wù)腳本文件中的ETL任務(wù)劃分成操作并且輸出帶有操作信息的任務(wù)腳本文件。
[0035]所述操作劃分單元11將ETL任務(wù)劃分成操作的規(guī)則是以處理后的數(shù)據(jù)行全部輸出到緩存為一次操作。將任務(wù)分成一系列的操作后為操作編號。將操作開始、操作結(jié)束和操作序號統(tǒng)稱為操作信息,將操作信息寫入ETL任務(wù)腳本文件生成帶有操作信息的ETL任務(wù)腳本文件。帶有操作信息的ETL任務(wù)腳本文件是帶有操作開始、操作結(jié)束和操作序號的ETL任務(wù)腳本文件。
[0036]腳本運(yùn)行單元12與所述操作劃分單元11相連,接收操作號、行數(shù)和源數(shù)據(jù)文件,執(zhí)行所述操作劃分單元11輸入到腳本運(yùn)行單元12的帶有操作信息的任務(wù)腳本文件,輸出所述操作號對應(yīng)的操作輸出的所述行數(shù)的緩存行集。所述源數(shù)據(jù)文件包括各種關(guān)系型數(shù)據(jù)文件和關(guān)系型數(shù)據(jù)庫表。腳本運(yùn)行單元102根據(jù)操作號確定要運(yùn)行到的操作,根據(jù)行數(shù)確定運(yùn)行結(jié)束后需要輸出到緩存行集的數(shù)據(jù)行的行數(shù)。
[0037]所述數(shù)據(jù)血統(tǒng)管理模塊2包括一數(shù)據(jù)血統(tǒng)獲取單元21與一數(shù)據(jù)血統(tǒng)存儲單元22。
[0038]所述數(shù)據(jù)血統(tǒng)獲取單元與所述操作劃分單元11相連,并且獲取所述操作劃分單元11生成的帶有操作信息的任務(wù)腳本