一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法和裝置制造方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法和裝置,該方法包括:(1)確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息;(2)根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息;(3)計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理。該方能夠能自動(dòng)的采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,并據(jù)此可以進(jìn)行后續(xù)的數(shù)據(jù)冗余減少處理,由此具有很好的技術(shù)效果。
【專(zhuān)利說(shuō)明】一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,涉及數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)優(yōu)化等領(lǐng)域?!颈尘凹夹g(shù)】
[0002]目前,大型的企業(yè)級(jí)數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng),經(jīng)過(guò)幾年來(lái)的建設(shè)后,系統(tǒng)中必然會(huì)存在大量的冗余數(shù)據(jù)。比如基于清單上開(kāi)發(fā)的程序會(huì)非常多,生成的目標(biāo)匯總表也會(huì)非常多,這些目標(biāo)匯總表中有些會(huì)存在一定的相似性,隨著具有相似性的表逐漸累計(jì),這就造成了大量的冗余數(shù)據(jù),這些冗余數(shù)據(jù),一方面影響統(tǒng)計(jì)分析數(shù)據(jù)的精確性和可靠性,同時(shí)也影響著數(shù)據(jù)庫(kù)的性能,耗占寶貴的存儲(chǔ)資源。
[0003]要解決這個(gè)問(wèn)題有兩個(gè)環(huán)節(jié):發(fā)現(xiàn)冗余數(shù)據(jù)、對(duì)冗余進(jìn)行消除合并。目前主要采取的技術(shù)方案基本是:通過(guò)有經(jīng)驗(yàn)的技術(shù)人員進(jìn)行人工分析和處理。
[0004]現(xiàn)有發(fā)現(xiàn)和消除冗余數(shù)據(jù)的技術(shù)方案有以下的缺點(diǎn):
[0005]1、人工處理對(duì)人員的經(jīng)驗(yàn)和知識(shí)要求非常高,提高了問(wèn)題解決的門(mén)檻。
[0006]2、發(fā)現(xiàn)的冗余數(shù)據(jù)會(huì)因?yàn)槿说牟煌兴煌?,?zhǔn)確性難以保障。
[0007]3、難以發(fā)現(xiàn)全面的數(shù)據(jù)冗余問(wèn)題。
[0008]4、難以給出最優(yōu)的冗余消除解決方案。
【發(fā)明內(nèi)容】
[0009]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,該方法能夠通過(guò)采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,并據(jù)此進(jìn)行數(shù)據(jù)冗余減少處理,以此達(dá)到發(fā)現(xiàn)和消除冗余的目的。
[0010]本發(fā)明解決上述技術(shù)問(wèn)題所采取的技術(shù)方案如下:
[0011]一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,包括:
[0012](I)確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息;(2)根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息;
[0013](3)計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理。
[0014]一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,包括:
[0015]輸出表計(jì)算單元,用于確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息;
[0016]粒度層級(jí)計(jì)算單元,用于根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息;
[0017]相似度計(jì)算單元,用于計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性;
[0018]數(shù)據(jù)冗余處理單元,用于獲取所述處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性信息,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余處理。
[0019]本發(fā)明采取了上述方案以后,能夠根據(jù)數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)信息來(lái)發(fā)現(xiàn)數(shù)據(jù)的流向,找到輸入表的生成的輸出表,并據(jù)此根據(jù)輸出表計(jì)算表的相似性,如果這些表的相似程度高,說(shuō)明存在冗余數(shù)據(jù),可以進(jìn)行合并,以此達(dá)到自動(dòng)地采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,從而達(dá)到自動(dòng)發(fā)現(xiàn)和消除冗余的目的。
[0020]本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0021]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)的描述,以使得本發(fā)明的上述優(yōu)點(diǎn)更加明確。其中,
[0022]圖1是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法的流程示意圖;
[0023]圖2是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法的流程示意圖;
[0024]圖3是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法中建立關(guān)系鏈表的流程示意圖;
[0025]圖4是現(xiàn)有技術(shù)中數(shù)據(jù)倉(cāng)庫(kù)中表的示意圖;
[0026]圖5是經(jīng)過(guò)本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法后的數(shù)據(jù)倉(cāng)庫(kù)中表的示意圖;
[0027]圖6是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0028]以下將結(jié)合附圖及實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決技術(shù)問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。需要說(shuō)明的是,只要不構(gòu)成沖突,本發(fā)明中的各個(gè)實(shí)施例以及各實(shí)施例中的各個(gè)特征可以相互結(jié)合,所形成的技術(shù)方案均在本發(fā)明的保護(hù)范圍之內(nèi)。
[0029]另外,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0030]具體來(lái)說(shuō),本發(fā)明的原理在于分析數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù),以此得到各個(gè)數(shù)據(jù)表(輸入表和輸出表)之間的關(guān)聯(lián)關(guān)系,并最終確定表與表之間的冗余程度,從而達(dá)到自動(dòng)發(fā)現(xiàn)和消除冗余的目的。
[0031]如圖1所示,是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法的流程示意圖,其包括下列步驟:
[0032]步驟101:確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息;
[0033]步驟102::根據(jù) 各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息;
[0034]步驟103:計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性,其中,當(dāng)所述兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性較大時(shí),步驟104::對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理。
[0035]具體來(lái)說(shuō),本發(fā)明可以根據(jù)數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)信息來(lái)發(fā)現(xiàn)數(shù)據(jù)的流向,找到輸入表的生成的輸出表,并由此根據(jù)輸出表計(jì)算表的相似性,如果這些表的相似程度高,說(shuō)明存在冗余數(shù)據(jù),可以進(jìn)行合并,以此達(dá)到自動(dòng)地采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,從而達(dá)到自動(dòng)發(fā)現(xiàn)和消除冗余的目的。
[0036]繼續(xù)參照實(shí)施例對(duì)上述方法進(jìn)行說(shuō)明,在一個(gè)實(shí)施例中,所述步驟104中,對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理,可以包括:將兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表合并于一個(gè)新表中,并將所述新表作為所述起始表的后驅(qū)輸出表,即在系統(tǒng)中將上述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表退出系統(tǒng),并用新表替換掉上述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表,以此達(dá)到數(shù)據(jù)冗余減少的目的。
[0037]其中,結(jié)合具體的實(shí)施例和具體的數(shù)據(jù)結(jié)構(gòu)對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明,一般來(lái)說(shuō),一個(gè)數(shù)據(jù)倉(cāng)庫(kù)的表中,其存儲(chǔ)著以下的信息:
[0038]存放的表的屬性信息,level表示是表的粒度級(jí)別;
[0039]fromtab是表從哪些表處理過(guò)了的;Groupfield在生成這張表時(shí)匯總字段;wherefields是指條件中用到的表和字段。字段:表示表的字段信息,其中fromCols表示這個(gè)字段是從哪個(gè)哪些表的字段處理過(guò)來(lái)的。一張表?yè)碛泻芏鄠€(gè)字段信息。
[0040]在數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)中,存在著每張表的表結(jié)構(gòu)信息,生成這張的處理程序和處理腳本,生成這張表的輸入表,以及表的字段映射關(guān)系,因此,基于所述數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)的上述信息,我們可以通過(guò)元數(shù)據(jù)得知以上表的相關(guān)數(shù)據(jù)處理流程和字段的映射關(guān)系。
[0041]如圖2所示,是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法的流程示意圖,其主要包括下列的主要步驟:
[0042]步驟201:輸入分析的起始表表名和/或業(yè)務(wù)主鍵;
[0043]步驟202:查找分析起始表的后續(xù)所有表;
[0044]步驟203:計(jì)算表的粒度層級(jí);
[0045]步驟204:計(jì)算表的相關(guān)性;
[0046]步驟205:判斷表是否冗余和可合并的;
[0047]步驟206:記錄冗余表信息;
[0048]步驟207:輸出冗余表和合并建議。
[0049]以下結(jié)合上述描述和本發(fā)明的基本原理進(jìn)行詳細(xì)說(shuō)明各個(gè)步驟201~207,其中,步驟201:輸入分析的起始表表名和/或業(yè)務(wù)主鍵,具體包括:
[0050]輸入起始的分析表和表的主鍵字段;
[0051]比如要從清單表出發(fā),找后續(xù)相關(guān)的冗余表信息,因?yàn)樵跀?shù)據(jù)倉(cāng)庫(kù)的模型設(shè)計(jì)中沒(méi)有設(shè)計(jì)物理主鍵,因此需要輸入表的業(yè)務(wù)主鍵,具體來(lái)說(shuō),對(duì)于一些表,是沒(méi)辦法通過(guò)元數(shù)據(jù)等技術(shù)手段識(shí)別逐漸字段,如通過(guò)外部接口直接入庫(kù)到倉(cāng)庫(kù)的表,這時(shí)需要人工輸入主鍵。
[0052]步驟202:查找分析起始表的后續(xù)所有表;
[0053] 具體包括,從兀數(shù)據(jù)出發(fā),從中查找輸入表的后續(xù)相關(guān)表信息,例如,在一個(gè)實(shí)施例中,主要根據(jù)輸入要分析對(duì)象,從系統(tǒng)加載所有相關(guān)的對(duì)象建立關(guān)系鏈表,要包括起始對(duì)象后驅(qū)的所有對(duì)象。
[0054]其中,關(guān)系信息:[關(guān)系名、輸入對(duì)象、輸出對(duì)象、轉(zhuǎn)換規(guī)則、類(lèi)型]
[0055]其中,數(shù)據(jù)結(jié)構(gòu):節(jié)點(diǎn)關(guān)系鏈表,其中,圖3是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法中建立關(guān)系鏈表的流程示意圖;
[0056]具體來(lái)說(shuō),其主要包括:根據(jù)要分析對(duì)象,建立關(guān)系鏈表的第一個(gè)節(jié)點(diǎn)。
[0057]從關(guān)系信息中遞歸查找輸入對(duì)象為分析對(duì)象,建立后續(xù)節(jié)點(diǎn),增加到鏈接表中,后驅(qū)節(jié)點(diǎn)的兄弟節(jié)點(diǎn)表示多個(gè)后驅(qū)節(jié)點(diǎn)。
[0058]計(jì)算后驅(qū)對(duì)象表的字段的屬性,后驅(qū)的某張表的字段名跟其前驅(qū)對(duì)象字段不一定一樣,如生成數(shù)據(jù)腳本insert into后驅(qū)表名(字段名I,字段明2,...) select fieldl,field2 from前驅(qū)表,則后驅(qū)表的字段名I的原生字段為前驅(qū)表的fieldl字段的原生字段名,以表示字段名的不一樣但其內(nèi)容是一樣的對(duì)表相似性分析帶來(lái)影響。
[0059]在判斷表相識(shí)性時(shí),主要是如何識(shí)別后驅(qū)表的字段是由前驅(qū)表哪些字段而來(lái)的,取個(gè)名稱(chēng)叫為后驅(qū)表字段的原生字段,舉一個(gè)在移動(dòng)話(huà)費(fèi)處理中的實(shí)例進(jìn)行說(shuō)明,其主要有以下2種類(lèi)型:
[0060]I)后驅(qū)表的某個(gè)字段是由前驅(qū)表直接映射的,如后驅(qū)表的號(hào)碼,費(fèi)用是前驅(qū)表直接簡(jiǎn)單計(jì)算映射過(guò)來(lái)的。則后驅(qū)表的號(hào)碼,費(fèi)用的原生字段為前驅(qū)表的號(hào)碼,費(fèi)用。
[0061]2)后驅(qū)表的某個(gè)字段是由前驅(qū)表若干字段計(jì)算而來(lái)的,如后驅(qū)表的總費(fèi)用是由前驅(qū)表的長(zhǎng)途費(fèi)+本地費(fèi)兩個(gè)字段計(jì)算出來(lái)的,則后驅(qū)表的總費(fèi)用的原生字段為長(zhǎng)途費(fèi),本地費(fèi)。
[0062]加載表的字段和用到字段,并根據(jù)鏈表中逐一取后驅(qū)表標(biāo)記為AaftTab查找其對(duì)應(yīng)的處理程序的對(duì)應(yīng)生成數(shù)據(jù)的sql腳本。
[0063]這里由于,在數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中,表不設(shè)物理主鍵,根據(jù)sql腳本解析得到表的groupfield字段,做為表的主鍵字段,根據(jù)表生成sql語(yǔ)句中,調(diào)用sql解析器得到表在生成過(guò)程中用到的字段,為合并算法時(shí)所用到。
[0064]步驟203:計(jì)算表的粒度層級(jí),輸入表的粒度記為1,表示最細(xì)粒度的數(shù)據(jù),并按廣度遍歷后驅(qū)表,取后驅(qū)表的主鍵字段跟其前驅(qū)表做主鍵集合比較:按廣度遍歷后續(xù)輸出表,取后續(xù)輸出表的主鍵字段跟其前驅(qū)表做主鍵集合比較,如果所述后續(xù)輸出表的主鍵字段集合僅存在于前驅(qū)表主鍵字段集合,則表的粒度=前驅(qū)表的粒度+1 ;
[0065]如果后續(xù)輸出表的主鍵字段集合存在于多個(gè)前驅(qū)表主鍵字段集合中,則取所有前驅(qū)表的最大粒度+1。
[0066]步驟204:計(jì)算表的相關(guān)性,具體包括:
[0067]取后驅(qū)的表,做兩兩之間或者多個(gè)之間的比較,并將其結(jié)果保存于數(shù)組中,數(shù)組的結(jié)構(gòu)為[表,比較表,共同主鍵字段,用到所有的字段],共同的字段是去比較表的主鍵字段集合的交集,用到的所有字段是比較表用到的字段的并集。
[0068]步驟205:判斷表是否冗余和可合并,具體來(lái)說(shuō),如果表的主鍵是一樣,則此兩表可以合并,合并的表新字段為合并表的用到字段的并集合。
[0069]如果表的主鍵存在包含關(guān)系,則優(yōu)化數(shù)據(jù)處理流程。將同粒度級(jí)別的數(shù)據(jù)處理進(jìn)行合并。
[0070]步驟206:計(jì)算冗余表信息;[0071]步驟207:輸出冗余表和合并建議,比如,在一個(gè)實(shí)施例中,數(shù)據(jù)表有些是不能直接合并,因?yàn)橛袝r(shí)候的冗余是為了性能和調(diào)度任務(wù)處理及時(shí)性考慮的,因此在該實(shí)施例中,本發(fā)明能夠給出幾種的合并建議,供人工進(jìn)一步確認(rèn)選擇,當(dāng)然,其在合并的時(shí)候,可以根據(jù)上述實(shí)施例所描述的那樣,即其可以將兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表合并于一個(gè)新表中,并將所述新表作為所述起始表的后驅(qū)輸出表,即在系統(tǒng)中將上述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表退出系統(tǒng),并用新表替換掉上述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表。
[0072]在一個(gè)實(shí)施例中,圖5是經(jīng)過(guò)本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法后的數(shù)據(jù)倉(cāng)庫(kù)中表的示意圖;
[0073]圖6是本發(fā)明實(shí)施例減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置的結(jié)構(gòu)示意圖。
[0074]其中,優(yōu)化前的數(shù)據(jù)處理,如下圖5所示,Tabl從不同角度匯總形成了 tab2,tab3,tab4的表。Tabl作為起始的輸入表,數(shù)據(jù)量比較大需要對(duì)表進(jìn)行三次的表的掃描。
[0075]經(jīng)過(guò)優(yōu)化以后,如圖6所示,其各個(gè)表之間的順序比較有序,從而降低了在以后步驟的中的數(shù)據(jù)處理計(jì)算量,提供了數(shù)據(jù)倉(cāng)庫(kù)的效率。
[0076]總之,本發(fā)明可以根據(jù)數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)信息來(lái)發(fā)現(xiàn)數(shù)據(jù)的流向,找到輸入表的生成的輸出表,并由此根據(jù)輸出表計(jì)算表的相似性,如果這些表的相似程度高,說(shuō)明存在冗余數(shù)據(jù),可以進(jìn)行合并,以此達(dá)到自動(dòng)地采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,從而達(dá)到自動(dòng)發(fā)現(xiàn)和消除冗余的目的。
[0077]如圖7所示,根據(jù)本發(fā)明上述方法實(shí)施例的同一構(gòu)思,本發(fā)明還公開(kāi)了一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,包括:
[0078]輸出表計(jì)算單元701,用于確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息;
[0079]粒度層級(jí)計(jì)算單元702,用于根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息;
[0080]相似度計(jì)算單元703,用于計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性;
[0081]數(shù)據(jù)冗余處理單元704,用于獲取所述處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性信息,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余處理。
[0082]進(jìn)一步地,所述數(shù)據(jù)冗余處理單元,用于對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余處理,具體包括:
[0083]將所述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表合并于一個(gè)新表中,并將所述新表作為所述起始表的后驅(qū)輸出表。
[0084]其中,在優(yōu)選的實(shí)施例中,所述輸出表計(jì)算單元,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息,具體包括:
[0085]獲取所述兀數(shù)據(jù)中所述待分析表的表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映身寸關(guān)系;
[0086]根據(jù)所述表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映射關(guān)系獲取所述表的數(shù)據(jù)處理流程和字段的映射關(guān)系,并根據(jù)所述數(shù)據(jù)處理流程和字段的映射關(guān)系獲得所述待分析表的后驅(qū)輸出表信息。[0087]并且,所述輸出表計(jì)算單元,進(jìn)一步用于獲取待分析的起始表和各個(gè)后驅(qū)輸出表業(yè)務(wù)主鍵字段信息;
[0088]所述數(shù)據(jù)冗余處理單元,進(jìn)一步基于各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段信息進(jìn)行后驅(qū)輸出表的合并,具體包括:
[0089]如果兩個(gè)后驅(qū)輸出表的主鍵字段是一樣,則對(duì)所述兩個(gè)后驅(qū)輸出表進(jìn)行合并,其合并的表新字段為合并表的用到字段的并集合;
[0090]如果各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段存在包含關(guān)系,則不進(jìn)行后續(xù)輸出表合并。
[0091]并且,所述粒度層級(jí)計(jì)算單元,用于根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息,具體包括:
[0092]按廣度遍歷后續(xù)輸出表,取后續(xù)輸出表的主鍵字段跟其前驅(qū)表做主鍵集合比較,如果所述后續(xù)輸出表的主鍵字段集合僅存在于前驅(qū)表主鍵字段集合,則表的粒度=前驅(qū)表的粒度+1 ;
[0093]如果后續(xù)輸出表的主鍵字段集合存在于多個(gè)前驅(qū)表主鍵字段集合中,則取所有前驅(qū)表的最大粒度+1。
[0094]總之,本發(fā)明裝置可以根據(jù)數(shù)據(jù)倉(cāng)庫(kù)元數(shù)據(jù)信息來(lái)發(fā)現(xiàn)數(shù)據(jù)的流向,找到輸入表的生成的輸出表,并由此根據(jù)輸出表計(jì)算表的相似性,如果這些表的相似程度高,說(shuō)明存在冗余數(shù)據(jù),可以進(jìn)行合并,以此達(dá)到自動(dòng)地采集和分析數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系,確定表與表之間的冗余程度,從而達(dá)到自動(dòng)發(fā)現(xiàn)和消除冗余的目的。
[0095]需要說(shuō)明的是,對(duì)于上述方法實(shí)施例而言,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請(qǐng)并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本申請(qǐng),某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書(shū)中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本申請(qǐng)所必須的。
[0096]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。
[0097]而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤(pán)存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0098]最后應(yīng)說(shuō)明的是:以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,其特征在于,包括: (1)確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息; (2)根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息; (3)計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理。
2.根據(jù)權(quán)利要求1所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,其特征在于,步驟(3)中,所述對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余減少處理,包括: 將所述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表合并于一個(gè)新表中,并將所述新表作為所述起始表的后驅(qū)輸出表。
3.根據(jù)權(quán)利要求1所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,其特征在于,步驟(1)中,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息,具體包括: 獲取所述兀數(shù)據(jù)中所述待分析表的表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映射關(guān)系; 根據(jù)所述表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映射關(guān)系獲取所述表的數(shù)據(jù)處理流程和字段的映射關(guān)系 ,并根據(jù)所述數(shù)據(jù)處理流程和字段的映射關(guān)系獲得所述待分析表的后驅(qū)輸出表信息。
4.根據(jù)權(quán)利要求2所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,其特征在于,步驟(1)中,進(jìn)一步包括:獲取待分析的起始表和各個(gè)后驅(qū)輸出表業(yè)務(wù)主鍵字段信息,所述步驟(3)中,進(jìn)一步包括: 基于各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段信息進(jìn)行后驅(qū)輸出表的合并,具體包括:如果兩個(gè)后驅(qū)輸出表的主鍵字段是一樣,則對(duì)所述兩個(gè)后驅(qū)輸出表進(jìn)行合并,其合并的表新字段為合并表的用到字段的并集合; 如果各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段存在包含關(guān)系,則不進(jìn)行后續(xù)輸出表合并。
5.根據(jù)權(quán)利要求1所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的方法,其特征在于,步驟(2)中,所述根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息,具體包括: 按廣度遍歷后續(xù)輸出表,取后續(xù)輸出表的主鍵字段跟其前驅(qū)表做主鍵集合比較,如果所述后續(xù)輸出表的主鍵字段集合僅存在于前驅(qū)表主鍵字段集合,則表的粒度=前驅(qū)表的粒度+1 ; 如果后續(xù)輸出表的主鍵字段集合存在于多個(gè)前驅(qū)表主鍵字段集合中,則取所有前驅(qū)表的最大粒度+1。
6.一種減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,其特征在于,包括: 輸出表計(jì)算單元,用于確定待分析的起始表,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息; 粒度層級(jí)計(jì)算單元,用于根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息; 相似度計(jì)算單元,用于計(jì)算處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性; 數(shù)據(jù)冗余處理單元,用于獲取所述處于同一粒度層級(jí)的兩個(gè)或者多個(gè)后驅(qū)輸出表之間的相似性信息,并對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余處理。
7.根據(jù)權(quán)利要求6所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,其特征在于,所述數(shù)據(jù)冗余處理單元,用于對(duì)相似性較大的兩個(gè)或者多個(gè)后驅(qū)輸出表進(jìn)行數(shù)據(jù)冗余處理,具體包括: 將所述兩個(gè)或者多個(gè)相似性較大的后驅(qū)輸出表合并于一個(gè)新表中,并將所述新表作為所述起始表的后驅(qū)輸出表。
8.根據(jù)權(quán)利要求6所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,其特征在于,所述輸出表計(jì)算單元,根據(jù)數(shù)據(jù)倉(cāng)庫(kù)的元數(shù)據(jù)獲得所述起始表的多個(gè)后續(xù)輸出表信息,具體包括: 獲取所述兀數(shù)據(jù)中所述待分析表的表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映射關(guān)系; 根據(jù)所述表結(jié)構(gòu)信息、生成表的輸入表以及表的字段映射關(guān)系獲取所述表的數(shù)據(jù)處理流程和字段的映射關(guān)系,并根據(jù)所述數(shù)據(jù)處理流程和字段的映射關(guān)系獲得所述待分析表的后驅(qū)輸出表信息。
9.根據(jù)權(quán)利要求6所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,其特征在于,所述輸出表計(jì)算單元,進(jìn)一步用于獲取待分析的起始表和各個(gè)后驅(qū)輸出表業(yè)務(wù)主鍵字段信息; 所述數(shù)據(jù)冗余處理單元,進(jìn)一步基于各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段信息進(jìn)行后驅(qū)輸出表的合并,具體包括: 如果兩個(gè)后驅(qū)輸出表的主鍵字段是一樣,則對(duì)所述兩個(gè)后驅(qū)輸出表進(jìn)行合并,其合并的表新字段為合并表的用到字段的并集合; 如果各個(gè)后驅(qū)輸出表的業(yè)務(wù)主鍵字段存在包含關(guān)系,則不進(jìn)行后續(xù)輸出表合并。
10.根據(jù)權(quán)利要求6所述的減少數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)冗余的裝置,其特征在于,所述粒度層級(jí)計(jì)算單元,用于根據(jù)各個(gè)后續(xù)輸出表與起始表的關(guān)系確定各個(gè)后驅(qū)輸出表的粒度層級(jí)信息,具體包括: 按廣度遍歷后續(xù)輸出表,取后續(xù)輸出表的主鍵字段跟其前驅(qū)表做主鍵集合比較,如果所述后續(xù)輸出表的主鍵字段集合僅存在于前驅(qū)表主鍵字段集合,則表的粒度=前驅(qū)表的粒度+1 ; 如果后續(xù)輸出表的主鍵字段集合存在于多個(gè)前驅(qū)表主鍵字段集合中,則取所有前驅(qū)表的最大粒度+1。
【文檔編號(hào)】G06F17/30GK103902582SQ201210579470
【公開(kāi)日】2014年7月2日 申請(qǐng)日期:2012年12月27日 優(yōu)先權(quán)日:2012年12月27日
【發(fā)明者】顏海濤 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)湖北有限公司