一種基于etl的字段級(jí)別血統(tǒng)分析方法及裝置的制造方法
【專(zhuān)利摘要】本發(fā)明提供了一種基于ETL的字段級(jí)別血統(tǒng)分析方法及裝置,該裝置包括:劃分操作模塊、定位模塊、定位查找模塊、第一檢索模塊、第二檢索模塊、第三檢索模塊和記錄模塊。與現(xiàn)有技術(shù)比較本發(fā)明的有益效果在于:本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析方法和裝置,實(shí)現(xiàn)了在字段的級(jí)別上展現(xiàn)字段的變化過(guò)程,通過(guò)建立血統(tǒng)表和血統(tǒng)分析附屬表,采用迭代的方法,并行對(duì)涉及到的相關(guān)字段進(jìn)行血統(tǒng)分析,提高了工作效率,并且采用血統(tǒng)表記錄各個(gè)步驟各個(gè)字段的血統(tǒng)分析圖,當(dāng)以后再涉及到這些字段的血統(tǒng)分析時(shí),則不再需要再一次檢索分析,這樣避免了多次分析,減少了工作量。
【專(zhuān)利說(shuō)明】
一種基于ETL的字段級(jí)別血統(tǒng)分析方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及數(shù)據(jù)倉(cāng)庫(kù)構(gòu)建過(guò)程中ETL技術(shù)領(lǐng)域,尤其涉及一種基于ETL的字段級(jí)別血統(tǒng)分析方法及裝置。
【背景技術(shù)】
[0002]隨著企業(yè)的業(yè)務(wù)不斷地?cái)U(kuò)大,數(shù)據(jù)量也在不斷地增加,企業(yè)為了更好地實(shí)現(xiàn)高效管理,則需要對(duì)各個(gè)區(qū)域的不同業(yè)務(wù)的數(shù)據(jù)進(jìn)行集成并分析。當(dāng)前,商業(yè)智能技術(shù)被更多的企業(yè)運(yùn)用,輔助于公司更好地做出決策,降低風(fēng)險(xiǎn),提高績(jī)效。商業(yè)智能技術(shù),一般由數(shù)據(jù)倉(cāng)庫(kù)、聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘、數(shù)據(jù)備份和恢復(fù)等部分組成。對(duì)于數(shù)據(jù)倉(cāng)庫(kù)的構(gòu)建需要對(duì)數(shù)據(jù)進(jìn)行ETL處理,這是保證數(shù)據(jù)質(zhì)量最為重要的一歩。
[0003]ETL,包括數(shù)據(jù)抽取(Extract)、數(shù)據(jù)轉(zhuǎn)換(Transform)、數(shù)據(jù)加載(Loading),在構(gòu)建數(shù)據(jù)倉(cāng)庫(kù)過(guò)程中占據(jù)了很大的工作量,同時(shí)它的完善將極大地保證了數(shù)據(jù)的質(zhì)量,只有ETL過(guò)程中數(shù)據(jù)處理妥當(dāng),接下來(lái)數(shù)據(jù)分析才能有意義。血統(tǒng)分析是ETL構(gòu)建中很重要一部分,血統(tǒng)分析主要包括了兩種,一種是對(duì)數(shù)據(jù)進(jìn)行回溯分析,即知道一個(gè)數(shù)據(jù)是從哪里來(lái)的,在哪個(gè)步驟中,數(shù)據(jù)的變化是怎樣的;另外一種則是在字段的級(jí)別上分析字段在ETL過(guò)程中的變化過(guò)程。對(duì)于ETL開(kāi)發(fā)人員來(lái)講,在構(gòu)建ETL過(guò)程中,當(dāng)發(fā)現(xiàn)某個(gè)字段的變化與預(yù)期有所差距時(shí),需要對(duì)字段進(jìn)行血統(tǒng)分析,以便找到錯(cuò)誤進(jìn)行修改;而對(duì)于用戶來(lái)講,需要在集成的數(shù)據(jù)倉(cāng)庫(kù)中獲取有用的信息,則在編寫(xiě)SQL語(yǔ)言時(shí),往往需要知道數(shù)據(jù)的結(jié)構(gòu),包括了哪些字段,以及了解字段在ETL過(guò)程中的變化過(guò)程?,F(xiàn)有技術(shù)在字段級(jí)別的血統(tǒng)分析所需的工作量大,需要多次分析。
[0004]鑒于上述缺陷,本發(fā)明創(chuàng)作者經(jīng)過(guò)長(zhǎng)時(shí)間的研究和試驗(yàn),最終獲得了本發(fā)明。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于ETL的字段級(jí)別血統(tǒng)分析方法及裝置用以克服上述技術(shù)缺陷。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案在于:
[0007]一方面提供了一種基于ETL的字段級(jí)別血統(tǒng)分析方法,其特征在于,該方法包括以下步驟:
[0008]步驟SI,對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中;
[0009]步驟S2,根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a;
[0010]步驟S3,在所述血統(tǒng)分析附屬表中定位到所述字段a對(duì)應(yīng)的步驟,并且在所述血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n;
[0011]步驟S4,在所述血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,按照編號(hào)從大到小對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a,若檢索到字段a,則執(zhí)行步驟S5,若沒(méi)檢索到字段a,則執(zhí)行步驟S6;
[0012]步驟S5,對(duì)所述SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與所述字段a相關(guān)的其他字段,若檢索到其他的字段,假設(shè)為字段b,另外并行按照所述步驟S2對(duì)該字段進(jìn)行血統(tǒng)分析,若沒(méi)檢索到其他的字段,則執(zhí)行步驟S6;
[0013]步驟S6,繼續(xù)按所述字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)所述字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,則對(duì)字段a的檢索完成;
[0014]步驟S7,將檢索過(guò)程中所述字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。
[0015]較佳的,所述步驟SI具體為:對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行分析并進(jìn)行操作劃分,將每一個(gè)SQL語(yǔ)句視為一個(gè)操作,并按照此規(guī)則ETL任務(wù)腳本文件的內(nèi)容進(jìn)行操作的劃分,對(duì)于在ETL每個(gè)步驟中,對(duì)每一個(gè)完整的SQL語(yǔ)言按照邏輯順序進(jìn)行從小到大編號(hào),按照步驟名+編號(hào)進(jìn)行命名形成劃分操作結(jié)果,將其記錄在血統(tǒng)分析附屬表中。
[0016]較佳的,所述步驟S7具體為:以所述字段a為主線,畫(huà)出血統(tǒng)分析圖,在血統(tǒng)分析圖上需要標(biāo)記檢索時(shí)出現(xiàn)的某步驟+某編號(hào),并將在該檢索過(guò)程中字段a涉及的其他字段的血統(tǒng)分析圖記錄在血統(tǒng)表中。
[0017]較佳的,所述步驟S6包括:
[0018]步驟S61,判斷編號(hào)m的值是否為I,若編號(hào)I,則執(zhí)行步驟S62,若編號(hào)m=I,則執(zhí)行步驟S63;
[0019]步驟S62,令編號(hào)m = n-l,轉(zhuǎn)到步驟S4繼續(xù)進(jìn)行;
[0020]步驟S63,判斷字段a對(duì)應(yīng)的步驟的編號(hào)是否為I,若是,則執(zhí)行步驟S64,若否,則執(zhí)行步驟S65;
[0021]步驟S64,結(jié)束;
[0022]步驟S65,定位到字段a對(duì)應(yīng)的步驟的前一個(gè)步驟的最大編號(hào),設(shè)編號(hào)為k,領(lǐng)m = k,步驟S4繼續(xù)進(jìn)行。
[0023]又一方面提供了一種基于ETL的字段級(jí)別血統(tǒng)分析裝置,其特征在于,該裝置包括:
[0024]劃分操作模塊,用于對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中;
[0025]定位模塊,用于根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a;
[0026]定位查找模塊,用于在血統(tǒng)分析附屬表中定位到字段a對(duì)應(yīng)的步驟,并且在血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n;
[0027]第一檢索模塊,用于在血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,按照編號(hào)從大到小對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a;
[0028]第二檢索模塊,用于當(dāng)?shù)谝粰z索判斷模塊未檢索到字段a時(shí),對(duì)SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與字段a相關(guān)的其他字段;
[0029]第三檢索模塊,用于當(dāng)?shù)诙z索判斷模塊未檢索到其他的字段時(shí),繼續(xù)按字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,完成對(duì)字段a的檢索;
[0030]記錄模塊,用于將檢索過(guò)程中字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。
[0031]與現(xiàn)有技術(shù)比較本發(fā)明的有益效果在于:本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析方法和裝置,實(shí)現(xiàn)了在字段的級(jí)別上展現(xiàn)字段的變化過(guò)程,通過(guò)建立血統(tǒng)表和血統(tǒng)分析附屬表,采用迭代的方法,并行對(duì)涉及到的相關(guān)字段進(jìn)行血統(tǒng)分析,提高了工作效率,并且采用血統(tǒng)表記錄各個(gè)步驟各個(gè)字段的血統(tǒng)分析圖,當(dāng)以后再涉及到這些字段的血統(tǒng)分析時(shí),則不再需要再一次檢索分析,這樣避免了多次分析,減少了工作量。
[0032]另外,采用了血統(tǒng)分析附屬表,方便在出現(xiàn)問(wèn)題時(shí)可以迅速定位查看相關(guān)的SQL語(yǔ)言,方便于ETL開(kāi)發(fā)人員找出錯(cuò)誤。
【附圖說(shuō)明】
[0033]圖1為本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析方法的流程圖;
[0034]圖2為本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析裝置的功能框圖。
【具體實(shí)施方式】
[0035]為便于進(jìn)一步理解本發(fā)明的技術(shù)內(nèi)容,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
[0036]實(shí)施例一
[0037]如圖1所示,為本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析方法的流程圖,該一種基于ETL的字段級(jí)別血統(tǒng)分析方法包括以下步驟:
[0038]步驟SI,對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中。
[0039]具體的,對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行分析并進(jìn)行操作劃分,將每一個(gè)SQL語(yǔ)句視為一個(gè)操作,并按照此規(guī)則ETL任務(wù)腳本文件的內(nèi)容進(jìn)行操作的劃分,對(duì)于在ETL每個(gè)步驟中,對(duì)每一個(gè)完整的SQL語(yǔ)言按照邏輯順序進(jìn)行從小到大編號(hào),按照“步驟名+編號(hào)”進(jìn)行命名形成劃分操作結(jié)果,將其記錄在血統(tǒng)分析附屬表中。
[0040]步驟S2,根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a。
[0041 ]步驟S3,在血統(tǒng)分析附屬表中定位到字段a對(duì)應(yīng)的步驟,并且在血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n。
[0042]步驟S4,在血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a,若檢索到字段a,則執(zhí)行步驟S5,若沒(méi)檢索到字段a,則執(zhí)行步驟S6。
[0043]步驟S5,對(duì)SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與字段a相關(guān)的其他字段,若檢索到其他的字段,假設(shè)為字段b,另外并行按照步驟S2對(duì)該字段進(jìn)行血統(tǒng)分析,若沒(méi)檢索到其他的字段,則執(zhí)行步驟S6。
[0044]步驟S6,繼續(xù)按字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,則對(duì)字段a的檢索完成。
[0045]具體的,包括以下步驟:
[0046]步驟S61,判斷編號(hào)m的值是否為I,若編號(hào)I,則執(zhí)行步驟S62,若編號(hào)m=I,則執(zhí)行步驟S63。
[0047]步驟S62,令編號(hào)m = n_l,轉(zhuǎn)到步驟S4繼續(xù)進(jìn)行。
[0048]步驟S63,判斷字段a對(duì)應(yīng)的步驟的編號(hào)是否為I,若是,則執(zhí)行步驟S64,若否,則執(zhí)行步驟S65。
[0049]步驟S64,結(jié)束。
[0050]步驟S65,定位到字段a對(duì)應(yīng)的步驟的前一個(gè)步驟的最大編號(hào),設(shè)編號(hào)為k,領(lǐng)m = k,步驟S4繼續(xù)進(jìn)行。
[0051]步驟S7,將檢索過(guò)程中字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。
[0052]具體的,以字段a為主線,畫(huà)出類(lèi)似于樹(shù)形的血統(tǒng)分析圖,在血統(tǒng)分析圖上需要標(biāo)記檢索時(shí)出現(xiàn)的“某步驟+某編號(hào)”,并將在該檢索過(guò)程中字段a涉及的其他字段的血統(tǒng)分析圖記錄在血統(tǒng)表中。
[0053]本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析方法,實(shí)現(xiàn)了在字段的級(jí)別上展現(xiàn)字段的變化過(guò)程,通過(guò)建立血統(tǒng)表和血統(tǒng)分析附屬表,采用迭代的方法,并行對(duì)涉及到的相關(guān)字段進(jìn)行血統(tǒng)分析,提高了工作效率,并且采用血統(tǒng)表記錄各個(gè)步驟各個(gè)字段的血統(tǒng)分析圖,當(dāng)以后再涉及到這些字段的血統(tǒng)分析時(shí),則不再需要再一次檢索分析,這樣避免了多次分析,減少了工作量。
[0054]另外,采用了血統(tǒng)分析附屬表,方便在出現(xiàn)問(wèn)題時(shí)可以迅速定位查看相關(guān)的SQL語(yǔ)言,方便于ETL開(kāi)發(fā)人員找出錯(cuò)誤。
[0055]實(shí)施例二
[0056]如圖2所示,為本發(fā)明提供的一種基于ETL的字段級(jí)別血統(tǒng)分析裝置的功能框圖,一種基于ETL的字段級(jí)別血統(tǒng)分析裝置包括:
[0057]劃分操作模塊I,用于對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中。
[0058]具體的,對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行分析并進(jìn)行操作劃分,將每一個(gè)SQL語(yǔ)句視為一個(gè)操作,并按照此規(guī)則ETL任務(wù)腳本文件的內(nèi)容進(jìn)行操作的劃分,對(duì)于在ETL每個(gè)步驟中,對(duì)每一個(gè)完整的SQL語(yǔ)言按照邏輯順序進(jìn)行從小到大編號(hào),按照“步驟名+編號(hào)”進(jìn)行命名形成劃分操作結(jié)果,將其記錄在血統(tǒng)分析附屬表中。
[0059]定位模塊2,用于根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a。
[0060]定位查找模塊3,用于在血統(tǒng)分析附屬表中定位到字段a對(duì)應(yīng)的步驟,并且在血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n。
[0061]第一檢索模塊4,用于在血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a。
[0062]第二檢索模塊5,用于當(dāng)?shù)谝粰z索判斷模塊4未檢索到字段a時(shí),對(duì)SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與字段a相關(guān)的其他字段。
[0063]第三檢索模塊6,用于當(dāng)?shù)诙z索判斷模塊5未檢索到其他的字段時(shí),繼續(xù)按字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,完成對(duì)字段a的檢索。
[0064]記錄模塊7,用于將檢索過(guò)程中字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。
[0065]具體的,以字段a為主線,畫(huà)出類(lèi)似于樹(shù)形的血統(tǒng)分析圖,在血統(tǒng)分析圖上需要標(biāo)記檢索時(shí)出現(xiàn)的“某步驟+某編號(hào)”,并將在該檢索過(guò)程中字段a涉及的其他字段的血統(tǒng)分析圖記錄在血統(tǒng)表中。
[0066]以上所述僅為本發(fā)明的較佳實(shí)施例,對(duì)本發(fā)明而言僅僅是說(shuō)明性的,而非限制性的。本專(zhuān)業(yè)技術(shù)人員理解,在本發(fā)明權(quán)利要求所限定的精神和范圍內(nèi)可對(duì)其進(jìn)行許多改變,修改,甚至等效,但都將落入本發(fā)明的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于ETL的字段級(jí)別血統(tǒng)分析方法,其特征在于,該方法包括以下步驟: 步驟SI,對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中; 步驟S2,根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a; 步驟S3,在所述血統(tǒng)分析附屬表中定位到所述字段a對(duì)應(yīng)的步驟,并且在所述血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n; 步驟S4,在所述血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,按照編號(hào)從大到小對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a,若檢索到字段a,則執(zhí)行步驟S5,若沒(méi)檢索到字段a,則執(zhí)行步驟S6; 步驟S5,對(duì)所述SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與所述字段a相關(guān)的其他字段,若檢索到其他的字段,假設(shè)為字段b,另外并行按照所述步驟S2對(duì)該字段進(jìn)行血統(tǒng)分析,若沒(méi)檢索到其他的字段,則執(zhí)行步驟S6; 步驟S6,繼續(xù)按所述字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)所述字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,則對(duì)字段a的檢索完成; 步驟S7,將檢索過(guò)程中所述字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。2.根據(jù)權(quán)利要求1所述的一種基于ETL的字段級(jí)別血統(tǒng)分析方法,其特征在于,所述步驟SI具體為:對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行分析并進(jìn)行操作劃分,將每一個(gè)SQL語(yǔ)句視為一個(gè)操作,并按照此規(guī)則ETL任務(wù)腳本文件的內(nèi)容進(jìn)行操作的劃分,對(duì)于在ETL每個(gè)步驟中,對(duì)每一個(gè)完整的SQL語(yǔ)言按照邏輯順序進(jìn)行從小到大編號(hào),按照步驟名+編號(hào)進(jìn)行命名形成劃分操作結(jié)果,將其記錄在血統(tǒng)分析附屬表中。3.根據(jù)權(quán)利要求2所述的一種基于ETL的字段級(jí)別血統(tǒng)分析方法,其特征在于,所述步驟S7具體為:以所述字段a為主線,畫(huà)出血統(tǒng)分析圖,在血統(tǒng)分析圖上需要標(biāo)記檢索時(shí)出現(xiàn)的某步驟+某編號(hào),并將在該檢索過(guò)程中字段a涉及的其他字段的血統(tǒng)分析圖記錄在血統(tǒng)表中。4.根據(jù)權(quán)利要求1-3任一所述的一種基于ETL的字段級(jí)別血統(tǒng)分析方法,其特征在于,所述步驟S6包括: 步驟S61,判斷編號(hào)m的值是否為I,若編號(hào)m#l,則執(zhí)行步驟S62,若編號(hào)m=l,則執(zhí)行步驟 S63; 步驟S62,令編號(hào)m=n-l,轉(zhuǎn)到步驟S4繼續(xù)進(jìn)行; 步驟S63,判斷字段a對(duì)應(yīng)的步驟的編號(hào)是否為I,若是,則執(zhí)行步驟S64,若否,則執(zhí)行步驟 S65; 步驟S64,結(jié)束; 步驟S65,定位到字段a對(duì)應(yīng)的步驟的前一個(gè)步驟的最大編號(hào),設(shè)編號(hào)為k,領(lǐng)m = k,步驟S4繼續(xù)進(jìn)行。5.一種基于ETL的字段級(jí)別血統(tǒng)分析裝置,其特征在于,該裝置包括: 劃分操作模塊,用于對(duì)ETL任務(wù)腳本文件的內(nèi)容進(jìn)行劃分操作,將劃分操作結(jié)果記錄在血統(tǒng)分析附屬表中; 定位模塊,用于根據(jù)用戶的需要,定位某一個(gè)步驟里的某一個(gè)字段進(jìn)行血統(tǒng)分析,假設(shè)該字段為字段a; 定位查找模塊,用于在血統(tǒng)分析附屬表中定位到字段a對(duì)應(yīng)的步驟,并且在血統(tǒng)分析附屬表中查找到該步驟的最大編號(hào),假設(shè)最大編號(hào)為n,令m = n; 第一檢索模塊,用于在血統(tǒng)分析附屬表中從字段a對(duì)應(yīng)的步驟的m編號(hào)開(kāi)始,按照編號(hào)從大到小對(duì)SQL語(yǔ)言中的SELECT語(yǔ)句進(jìn)行檢索,檢索是否有該字段a; 第二檢索模塊,用于當(dāng)?shù)谝粰z索判斷模塊未檢索到字段a時(shí),對(duì)SQL語(yǔ)言中的WHERE語(yǔ)句進(jìn)行檢索,檢索是否有與字段a相關(guān)的其他字段; 第三檢索模塊,用于當(dāng)?shù)诙z索判斷模塊未檢索到其他的字段時(shí),繼續(xù)按字段a對(duì)應(yīng)的步驟的編號(hào)從大到小對(duì)字段a進(jìn)行檢索,直到檢索到第一個(gè)步驟的編號(hào)I為止,完成對(duì)字段a的檢索; 記錄模塊,用于將檢索過(guò)程中字段a以及所涉及的其他字段形成的血統(tǒng)分系圖記錄在血統(tǒng)表中。
【文檔編號(hào)】G06F17/30GK105893603SQ201610255043
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2016年4月22日
【發(fā)明人】李青海, 簡(jiǎn)宋全, 侯大勇, 鄒立斌
【申請(qǐng)人】廣州精點(diǎn)計(jì)算機(jī)科技有限公司