專利名稱:用于驗(yàn)證數(shù)據(jù)的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù),尤其涉及用于驗(yàn)證數(shù)據(jù)的方法和系統(tǒng)。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,越來越多的人們開始利用商業(yè)智能的相關(guān)技術(shù)去分析處理企業(yè)的數(shù)據(jù),為決策者提供有力的幫助。隨著數(shù)據(jù)庫技術(shù)的發(fā)展和應(yīng)用,數(shù)據(jù)庫存儲(chǔ)的數(shù)據(jù)量從20世紀(jì)80年代的兆(M)字節(jié)及千兆(G)字節(jié)過渡到現(xiàn)在的兆兆(T)字節(jié)和千兆兆 (P)字節(jié)。同時(shí),用戶的查詢需求也越來越復(fù)雜,涉及的已不僅是查詢或操縱一張關(guān)系表中的一條或幾條記錄,而且要對(duì)多張表中千萬條記錄的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析和信息綜合,事務(wù)處理型關(guān)系數(shù)據(jù)庫系統(tǒng)已不能全部滿足這一要求。而操作型應(yīng)用和分析型應(yīng)用,在性能上又難以兩全,為此人們常常在關(guān)系數(shù)據(jù)庫中放寬了對(duì)冗余的限制,引入了統(tǒng)計(jì)及綜合數(shù)據(jù)。 但這些統(tǒng)計(jì)綜合數(shù)據(jù)的應(yīng)用邏輯是分散并且雜亂的、非系統(tǒng)化的,因此分析功能有限,不靈活,維護(hù)困難。不少軟件廠商采取了發(fā)展其前端產(chǎn)品來彌補(bǔ)關(guān)系數(shù)據(jù)庫管理系統(tǒng)支持的不足,通過專門的數(shù)據(jù)綜合引擎,輔之以更加直觀的數(shù)據(jù)訪問界面,力圖統(tǒng)一分散的公共應(yīng)用邏輯,在短時(shí)間內(nèi)響應(yīng)非數(shù)據(jù)處理專業(yè)人員的復(fù)雜查詢要求。商業(yè)智能(Business Intelligence 簡(jiǎn)稱Bi)技術(shù)處理的是大量的數(shù)據(jù),反映的是數(shù)據(jù)中的信息和知識(shí)。商業(yè)智能是指從企業(yè)現(xiàn)有的數(shù)據(jù)中提取有價(jià)值的數(shù)據(jù),以幫助企業(yè)做出明智的業(yè)務(wù)經(jīng)營(yíng)決策的相關(guān)技術(shù)、應(yīng)用等。數(shù)據(jù)包括來自企業(yè)自身業(yè)務(wù)系統(tǒng)以及企業(yè)所處的其他外部環(huán)境中的各種數(shù)據(jù)。為了將數(shù)據(jù)轉(zhuǎn)化為知識(shí),通常將數(shù)據(jù)源中的數(shù)據(jù)通過ETL(Extract-Transform-Load的縮寫,即數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的過程)模型注入到數(shù)據(jù)倉庫當(dāng)中。然后,通過OLAP(On-Line Analysis Processing的縮寫,即聯(lián)機(jī)分析處理)模型根據(jù)數(shù)據(jù)倉庫中的數(shù)據(jù)創(chuàng)建數(shù)據(jù)立方體,以便用于數(shù)據(jù)挖掘來形成報(bào)表報(bào)告和數(shù)據(jù)分析報(bào)告。但是,由于數(shù)據(jù)源多種多樣,ETL模型以及OLAP模型的處理涉及大量的數(shù)據(jù),有可能在進(jìn)行商業(yè)智能的數(shù)據(jù)處理過程中發(fā)生錯(cuò)誤。已有技術(shù)通過檢查生成的報(bào)告中的數(shù)據(jù), 與應(yīng)用系統(tǒng)中的原始數(shù)據(jù)進(jìn)行直接比較來確定數(shù)據(jù)的準(zhǔn)確性。但是,報(bào)告中的數(shù)據(jù)量太大, 一般無法進(jìn)行全面的比較。此外,即使發(fā)現(xiàn)報(bào)告中的數(shù)據(jù)與應(yīng)用系統(tǒng)中的原始數(shù)據(jù)不一致, 也無法確定問題出在哪里。全面檢測(cè)模型和數(shù)據(jù)倉庫中的數(shù)據(jù),工作量非常大,經(jīng)常需要花費(fèi)大量的時(shí)間來確定問題出在哪里。
發(fā)明內(nèi)容
鑒于已有技術(shù)的不足,根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種用于驗(yàn)證數(shù)據(jù)的方法,其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行抽取轉(zhuǎn)換加載ETL模型變換和聯(lián)機(jī)分析處理OLAP 模型變換所生成的數(shù)據(jù)立方體,所述方法包括根據(jù)數(shù)據(jù)立方體查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集;根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,還提供了一種用于驗(yàn)證數(shù)據(jù)的方法,其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行抽取轉(zhuǎn)換加載ETL模型變換所生成的數(shù)據(jù)倉庫,包括根據(jù)預(yù)定的數(shù)據(jù)倉庫查詢條件,從數(shù)據(jù)倉庫生成報(bào)告多維數(shù)據(jù)集;根據(jù)與所述數(shù)據(jù)倉庫查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,還提供了一種用于驗(yàn)證數(shù)據(jù)的系統(tǒng),其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行抽取轉(zhuǎn)換加載ETL模型變換和聯(lián)機(jī)分析處理OLAP模型變換所生成的數(shù)據(jù)立方體,所述方法包括報(bào)告多維數(shù)據(jù)集生成裝置,用于根據(jù)數(shù)據(jù)立方體查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集;參考多維數(shù)據(jù)集生成裝置,用于根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及驗(yàn)證裝置,用于根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。根據(jù)本發(fā)明的另一個(gè)實(shí)施例,還提供了一種用于驗(yàn)證數(shù)據(jù)的系統(tǒng),其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行抽取轉(zhuǎn)換加載ETL模型變換所生成的數(shù)據(jù)倉庫,包括報(bào)告多維數(shù)據(jù)集生成裝置,用于根據(jù)預(yù)定的數(shù)據(jù)倉庫查詢條件,從數(shù)據(jù)倉庫生成報(bào)告多維數(shù)據(jù)集;參考多維數(shù)據(jù)集生成裝置,用于根據(jù)與所述數(shù)據(jù)倉庫查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及驗(yàn)證裝置,用于根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。通過根據(jù)本發(fā)明的實(shí)施例的方法和系統(tǒng),不僅可以容易地驗(yàn)證展示給用戶的數(shù)據(jù)是否存在問題,在存在數(shù)據(jù)問題的情況下,還可以確定商業(yè)智能解決方案中的何處存在問題。從而一方面確保了數(shù)據(jù)的準(zhǔn)確性,更進(jìn)一步地,還大大減少了在檢測(cè)數(shù)據(jù)問題時(shí)的工作量。
通過對(duì)附圖中本發(fā)明示例實(shí)施例方式的更詳細(xì)描述,本發(fā)明的上述、以及其它目的、特征和優(yōu)勢(shì)將變得更加明顯。圖1示出了一個(gè)典型的商業(yè)智能解決方案架構(gòu)的示意圖;圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證方法200的流程圖;圖3示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證方法300的流程圖;圖4示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)檢驗(yàn)方法的示意圖;圖5示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)檢驗(yàn)方法的流程圖;圖6示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證方法600的流程圖;以及
圖7示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證系統(tǒng)700的系統(tǒng)框圖。
具體實(shí)施例方式以下參照按照本發(fā)明實(shí)施例的方法、系統(tǒng)描述本發(fā)明。其中,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器, 從而生產(chǎn)出一種機(jī)器,使得通過計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置執(zhí)行的這些指令,產(chǎn)生實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置(means)。也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在能指令計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置以特定方式工作的計(jì)算機(jī)可讀介質(zhì)中,這樣,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生一個(gè)包括實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的指令裝置(instruction means) 的制造品。還可以把計(jì)算機(jī)程序指令加載到計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上,使得在計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過程,從而在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令就提供實(shí)現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。圖1示出了一個(gè)典型的商業(yè)智能解決方案架構(gòu)的示意圖。其中,數(shù)據(jù)源A、數(shù)據(jù)源 B和數(shù)據(jù)源C中的數(shù)據(jù),根據(jù)預(yù)先確定的ETL模型,通過數(shù)據(jù)抽取、轉(zhuǎn)換和加載過程,被加載到數(shù)據(jù)倉庫120中。然后,通過聯(lián)機(jī)分析處理(OLAP) (On-Line Analysis Processing)模型根據(jù)數(shù)據(jù)倉庫中的數(shù)據(jù)創(chuàng)建數(shù)據(jù)立方體130,以便用于數(shù)據(jù)挖掘來形成數(shù)據(jù)展示140(報(bào)表報(bào)告和數(shù)據(jù)分析報(bào)告等)。數(shù)據(jù)源(Data Source)提供了公司內(nèi)部或者外部的原始數(shù)據(jù)或者原始資料,這些資料將成為分析和提取知識(shí)的基礎(chǔ)。數(shù)據(jù)源中的數(shù)據(jù)一般用于在線事務(wù)處理(OLTP)系統(tǒng)。 其數(shù)據(jù)組織形式一般為面向事務(wù)型,即將完成一個(gè)事務(wù)所產(chǎn)生的數(shù)據(jù)集中進(jìn)行存儲(chǔ),存儲(chǔ)在同一張表中或通過主外鍵關(guān)聯(lián)關(guān)系存儲(chǔ)在緊密關(guān)聯(lián)的若干張表中。比如,企業(yè)資源管理(ERP)軟件是一種典型的在線事務(wù)處理系統(tǒng),其產(chǎn)生的數(shù)據(jù)可以被商業(yè)智能解決方案當(dāng)作數(shù)據(jù)源。一個(gè)員工入職時(shí)填寫基本信息是一個(gè)獨(dú)立的事務(wù), 這些基本信息可以存儲(chǔ)在數(shù)據(jù)源的同一張表中。公司對(duì)員工發(fā)放薪酬是一個(gè)事務(wù),每個(gè)員工的薪酬發(fā)放情況可以存儲(chǔ)在數(shù)據(jù)源的同一張表中。這樣的數(shù)據(jù)組織形式便是面向事務(wù)型的數(shù)據(jù)組織。數(shù)據(jù)倉庫(Data Warehouse) 120的主要功能是組織大量數(shù)據(jù)。通過數(shù)據(jù)倉庫的數(shù)據(jù)儲(chǔ)存架構(gòu),可以便于進(jìn)行各種分析方法如在線分析處理(0LAP)、數(shù)據(jù)挖掘(Data Mining),幫助決策者快速有效的自大量數(shù)據(jù)中,分析出有價(jià)值的信息。這樣,便于決策的快速擬定及快速響應(yīng)外在環(huán)境的變動(dòng),幫助建構(gòu)商業(yè)智能(Bi)解決方案?!銇碚f,數(shù)據(jù)倉庫可由關(guān)系數(shù)據(jù)庫建立,其中可以由若干個(gè)星型結(jié)構(gòu)的數(shù)據(jù)組織構(gòu)成,每一個(gè)星型數(shù)據(jù)組織結(jié)構(gòu)可以包含數(shù)個(gè)維度數(shù)據(jù)表,及一個(gè)事實(shí)數(shù)據(jù)表。一個(gè)大的企業(yè)通常有很多在線事務(wù)處理系統(tǒng)(OLTP),即有很多數(shù)據(jù)源,數(shù)據(jù)倉庫將來自企業(yè)各OLTP系統(tǒng)的數(shù)據(jù),進(jìn)行集成,并且進(jìn)行一致性處理。一致性處理過程可以包含在數(shù)據(jù)的抽取轉(zhuǎn)換加載(ETL)過程當(dāng)中。
ETL模型為數(shù)據(jù)從源數(shù)據(jù)庫之中轉(zhuǎn)換到數(shù)據(jù)倉庫之中的變換模型,ETL模型定義了數(shù)據(jù)源(如面向事務(wù)處理的數(shù)據(jù)庫)中的源數(shù)據(jù)來源(如位置)、目標(biāo)數(shù)據(jù)倉庫的目標(biāo)數(shù)據(jù)位置以及源數(shù)據(jù)與目標(biāo)數(shù)據(jù)之間的映射關(guān)系。數(shù)據(jù)的抽取轉(zhuǎn)換加載(ETL)過程利用ETL 模型從數(shù)據(jù)源抽取數(shù)據(jù),進(jìn)行轉(zhuǎn)換后,得到目標(biāo)數(shù)據(jù),將目標(biāo)數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)倉庫(面向主題的數(shù)據(jù)庫)中的目標(biāo)數(shù)據(jù)位置。ETL模型可用下面所述的元數(shù)據(jù)所描述。對(duì)業(yè)務(wù)數(shù)據(jù)本身及其運(yùn)行環(huán)境的描述與定義的數(shù)據(jù),稱之為元數(shù)據(jù)(metadata)。業(yè)務(wù)數(shù)據(jù)主要用于支持業(yè)務(wù)系統(tǒng)應(yīng)用的數(shù)據(jù),而元數(shù)據(jù)是描述業(yè)務(wù)數(shù)據(jù)的數(shù)據(jù)。元數(shù)據(jù)的典型表現(xiàn)為對(duì)象的描述,即對(duì)數(shù)據(jù)庫、表、列、列屬性 (類型、格式、約束等)以及主鍵/外部鍵關(guān)聯(lián)等等的描述。對(duì)于ETL處理,元數(shù)據(jù)可以用于定義數(shù)據(jù)源的位置及數(shù)據(jù)源的屬性、目標(biāo)數(shù)據(jù)的位置以及屬性;確定從源數(shù)據(jù)到目標(biāo)數(shù)據(jù)的對(duì)應(yīng)規(guī)則、在數(shù)據(jù)實(shí)際加載前的其他必要的準(zhǔn)備工作,等等。它一般貫穿整個(gè)數(shù)據(jù)倉庫項(xiàng)目,而ETL處理的所有過程必須最大化地參照元數(shù)據(jù),這樣才能快速實(shí)現(xiàn)ETL處理。在圖1的商業(yè)智能解決方案架構(gòu)中,還通過聯(lián)機(jī)分析處理(On-LineAnalysis Processing,即0LAP)模型,根據(jù)數(shù)據(jù)倉庫120中的數(shù)據(jù)創(chuàng)建數(shù)據(jù)立方體130。數(shù)據(jù)立方體是商業(yè)智能解決方案中用于聯(lián)機(jī)在線分析處理系統(tǒng)的基礎(chǔ),由數(shù)據(jù)倉庫中的數(shù)據(jù)通過OLAP模型的變換而生成??梢酝ㄟ^以下概念來描述數(shù)據(jù)立方體維(Dimension)是觀察數(shù)據(jù)的特定角度,是考慮問題時(shí)的一類屬性,屬性集合構(gòu)成一個(gè)維,如時(shí)間維、地理維等。維的層次(Level)觀察數(shù)據(jù)的某個(gè)特定角度(即某個(gè)維)還可以存在細(xì)節(jié)程度不同的各個(gè)描述方面。例如時(shí)間維的層次可以是日期、月份、季度或年。維的成員(Member)維的一個(gè)取值,是數(shù)據(jù)項(xiàng)在某維中位置的描述。例如“某年某月某日”是在時(shí)間維上位置的描述。度量(Measure)多維數(shù)組的取值。例如,2008年3月,北京,筆記本電腦的銷量是 10臺(tái),那么10臺(tái)就是度量值,2008年3月,北京,筆記本電腦分別為相應(yīng)的維度成員。OLAP模型定義了數(shù)據(jù)倉庫中的源數(shù)據(jù)來源(如位置)以及屬性、目標(biāo)數(shù)據(jù)立方體的目標(biāo)數(shù)據(jù)位置以及源數(shù)據(jù)與目標(biāo)數(shù)據(jù)之間的映射關(guān)系。利用OLAP模型,可以對(duì)數(shù)據(jù)倉庫中的數(shù)據(jù)進(jìn)行OLAP變換,形成數(shù)據(jù)立方體,其包括多個(gè)維以及相應(yīng)的度量。相應(yīng)地,OLAP逆變換模型定義了數(shù)據(jù)立方體中的源數(shù)據(jù)位置和屬性、數(shù)據(jù)倉庫中的目標(biāo)數(shù)據(jù)位置以及源數(shù)據(jù)與目標(biāo)數(shù)據(jù)之間的映射關(guān)系。OLAP模型可以用元數(shù)據(jù)來描述,定義數(shù)據(jù)倉庫的位置及數(shù)據(jù)倉庫中數(shù)據(jù)的屬性、 確定從數(shù)據(jù)倉庫中的數(shù)據(jù)到數(shù)據(jù)立方體的數(shù)據(jù)存儲(chǔ)的對(duì)應(yīng)規(guī)則、在數(shù)據(jù)實(shí)際加載前的其他必要的準(zhǔn)備工作,等等。例如OLAP模型的元數(shù)據(jù)可以包括,數(shù)據(jù)立方體中的度量數(shù)據(jù)來自于數(shù)據(jù)倉庫中哪個(gè)事實(shí)表中的哪個(gè)列或者是由該列數(shù)據(jù)經(jīng)由何種運(yùn)算得來。在OLAP逆變換模型中,相應(yīng)地可以包括用元數(shù)據(jù)描述的數(shù)據(jù)倉庫中哪個(gè)事實(shí)表中的哪個(gè)列來自數(shù)據(jù)立方體中的哪個(gè)度量數(shù)據(jù),或者是該列數(shù)據(jù)經(jīng)由何種運(yùn)算的逆運(yùn)算得來。由于數(shù)據(jù)在進(jìn)行OLAP變換前已經(jīng)被整合(ETL變換),因此不會(huì)發(fā)生信息丟失,所以O(shè)LAP模型中一般不包括不可逆變換。
在圖1所示的商業(yè)智能解決方案架構(gòu)中,有了數(shù)據(jù)立方體130中的數(shù)據(jù),通過數(shù)據(jù)展示140、例如報(bào)表,可以很好地將數(shù)據(jù)展示給用戶??梢酝ㄟ^圖表,如柱狀圖,線圖,餅圖等圖形或者列表,交叉表的形式將數(shù)據(jù)立方體中的數(shù)據(jù)呈現(xiàn)給用戶。每個(gè)報(bào)表展示的數(shù)據(jù)只是數(shù)據(jù)立方體的一個(gè)子集,稱為目標(biāo)數(shù)據(jù)立方體??梢愿鶕?jù)具體的業(yè)務(wù)需求,將數(shù)據(jù)立方體中的部分?jǐn)?shù)據(jù)提取出來??梢源_定報(bào)表中的不同層次的維信息來自于數(shù)據(jù)立方體中的哪個(gè)維度,以及報(bào)表中的不同層次的維成員數(shù)據(jù)分別來自于數(shù)據(jù)立方體中相應(yīng)維度的哪個(gè)維成員值。依據(jù)具體的業(yè)務(wù)需求,和數(shù)據(jù)立方體的數(shù)據(jù)組織形式,可以生成對(duì)數(shù)據(jù)立方體的查詢條件,具體可以包括以下多項(xiàng)1)數(shù)據(jù)來自于哪個(gè)數(shù)據(jù)立方體,這取決于我們要查看的目標(biāo)數(shù)據(jù)存儲(chǔ)在哪個(gè)數(shù)據(jù)立方體中;幻組成該數(shù)據(jù)立方體的各個(gè)維度的成員取值為何值,根據(jù)數(shù)據(jù)是按什么分類的以及數(shù)據(jù)的過濾器是什么以及數(shù)據(jù)立方體的定義來確定數(shù)據(jù)立方體中各個(gè)維度成員該取何值;幻度量經(jīng)過何種運(yùn)算展示給用戶,即商業(yè)邏輯中對(duì)目標(biāo)數(shù)據(jù)的定義是不是需要對(duì)立方體的量度做一定的運(yùn)算得到,例如乘以一個(gè)系數(shù)或者單位的轉(zhuǎn)換等。報(bào)表生成工具可以通過這些查詢條件從數(shù)據(jù)立方體中查詢數(shù)據(jù)并以報(bào)表的形式展示給用戶。在這樣一個(gè)典型的商業(yè)智能解決方案的構(gòu)建過程中,經(jīng)常出現(xiàn)的問題有以下幾種ETL模型錯(cuò)誤,OLAP模型錯(cuò)誤,臟數(shù)據(jù)錯(cuò)誤。1)ETL模型錯(cuò)誤ETL模型錯(cuò)誤主要是從源數(shù)據(jù)到數(shù)據(jù)倉庫的映射關(guān)系出現(xiàn)邏輯錯(cuò)誤,導(dǎo)致數(shù)據(jù)倉庫中的數(shù)據(jù)出現(xiàn)錯(cuò)誤,并反映在數(shù)據(jù)立方體和最終的報(bào)表展示數(shù)據(jù)上。需要修正ETL模型來糾正錯(cuò)誤。2)OLAP模型錯(cuò)誤0LAP模型錯(cuò)誤主要是數(shù)據(jù)從數(shù)據(jù)倉庫到數(shù)據(jù)立方體的映射關(guān)系出現(xiàn)邏輯錯(cuò)誤,導(dǎo)致了展示在報(bào)表中的數(shù)據(jù)出現(xiàn)錯(cuò)誤。需要修正OLAP模型來糾正錯(cuò)誤。3)臟數(shù)據(jù)錯(cuò)誤可以反映在源數(shù)據(jù)中或數(shù)據(jù)倉庫中有一些不符合邏輯的數(shù)據(jù),即正常的環(huán)境下, 這些數(shù)據(jù)是不應(yīng)該存在的,比如源數(shù)據(jù)中產(chǎn)生了一些錯(cuò)誤或者重復(fù)的數(shù)據(jù),或者數(shù)據(jù)倉庫中存在了之前加載進(jìn)來的一些無用數(shù)據(jù),這些都可被認(rèn)為是臟數(shù)據(jù)。臟數(shù)據(jù)導(dǎo)致的驗(yàn)證錯(cuò)誤不需要修正解決方案去更正,通常需要清除數(shù)據(jù)來還原。因此,對(duì)于所構(gòu)建的商業(yè)智能解決方案,一方面需要驗(yàn)證最終呈現(xiàn)給用戶的數(shù)據(jù)與應(yīng)用程序的原始數(shù)據(jù)是否一致,另一方面,在數(shù)據(jù)不一致的情況下,需要分析出是由何種問題導(dǎo)致的數(shù)據(jù)不一致。下面將結(jié)合附圖詳細(xì)描述根據(jù)本發(fā)明的實(shí)施例的數(shù)據(jù)驗(yàn)證方法及系統(tǒng)。圖2示出了根據(jù)本發(fā)明的一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證方法200的流程圖。在步驟S210,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集(IteportMulti-Dimens ionalData Set)MDSl0其中,多維數(shù)據(jù)集由特定維度的成員的組合所對(duì)應(yīng)的度量值所構(gòu)成, 多維數(shù)據(jù)集的結(jié)構(gòu)可以描述為組成多維數(shù)據(jù)集的維度,度量的類型,數(shù)據(jù)集中數(shù)據(jù)滿足的條件。根據(jù)本發(fā)明的一個(gè)實(shí)施例,根據(jù)數(shù)據(jù)立方體的查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集MDS1。該報(bào)告多維數(shù)據(jù)集MDSl的組成可以包括多個(gè)維度(根據(jù)查詢條件中的目標(biāo)數(shù)據(jù)立方體的維度定義來確定多維數(shù)據(jù)集的維度);每個(gè)維度由一個(gè)相應(yīng)的成員集合組成(根據(jù)查詢條件中的“組成該數(shù)據(jù)立方體的各個(gè)維度的成員取值為何值”來確定每個(gè)維度的成員集合);每個(gè)維度的成員組合所對(duì)應(yīng)的度量值(根據(jù)維度的值集合,將數(shù)據(jù)從數(shù)據(jù)立方體中提取出來生成每個(gè)維度的成員組合所對(duì)應(yīng)的度量值)。這里需要指出的是,為了便于說明,在本發(fā)明的實(shí)施例中對(duì)多維數(shù)據(jù)集的結(jié)構(gòu)以及報(bào)告多維數(shù)據(jù)集的組成進(jìn)行了詳細(xì)的描述,但本領(lǐng)域普通技術(shù)人員應(yīng)該了解,多維數(shù)據(jù)集的結(jié)構(gòu)并不限于包括組成多維數(shù)據(jù)集的維度、度量的類型,數(shù)據(jù)集中數(shù)據(jù)滿足的條件,等等,報(bào)告多維數(shù)據(jù)集的組成也不限于上述所描述的情況。在步驟S220,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集S。其中,根據(jù)具體的業(yè)務(wù)需求以及源數(shù)據(jù)的數(shù)據(jù)組織形式,可以生成與數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,根據(jù)源數(shù)據(jù)的查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集S。參考多維數(shù)據(jù)集S和報(bào)告多維數(shù)據(jù)集MDSl的生成均是依據(jù)相同的具體業(yè)務(wù)需求 (例如,查看什么樣的數(shù)據(jù)-度量的類型,數(shù)據(jù)是按什么分類的-維度,數(shù)據(jù)的過濾器是什么-數(shù)據(jù)滿足的條件)去不同的數(shù)據(jù)源中抽取數(shù)據(jù),因此參考多維數(shù)據(jù)集S與報(bào)告多維數(shù)據(jù)集MDSl的結(jié)構(gòu)相同。在步驟S230,根據(jù)所生成的多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。在這里,通過匹配生成的報(bào)告多維數(shù)據(jù)集MDSl與參考多維數(shù)據(jù)集S,來確定數(shù)據(jù)是否一致。如前所述,報(bào)告多維數(shù)據(jù)集和參考多維數(shù)據(jù)集可以分別由多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值組成,在這種情況下,通過分別比較所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集的多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值,來確定所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系,并根據(jù)確定的匹配關(guān)系來進(jìn)行數(shù)據(jù)驗(yàn)證。在確定不同的多維數(shù)據(jù)集之間的匹配關(guān)系時(shí),首先比較其維度的數(shù)目;如果相等, 則再比較其維度成員的類型;如果相等,則比較度量值的類型;如果相等,則多維數(shù)據(jù)集的結(jié)構(gòu)相同。否則多維數(shù)據(jù)集的結(jié)構(gòu)不同,需要檢查多維數(shù)據(jù)集的生成是否根據(jù)同樣的業(yè)務(wù)需求。由于參考多維數(shù)據(jù)集S是根據(jù)具體的業(yè)務(wù)需求生成的查詢條件到源數(shù)據(jù)中提取數(shù)據(jù)而構(gòu)成的,而報(bào)告多維數(shù)據(jù)集MDSl也是根據(jù)具體的業(yè)務(wù)需求生成到數(shù)據(jù)立方體中的查詢條件從而提取數(shù)據(jù)而構(gòu)成的。因此,參考多維數(shù)據(jù)集S與報(bào)告多維數(shù)據(jù)集MDSl具有相同的維度和度量類型,即具有相同的結(jié)構(gòu)。但具體的維度成員值和度量值一個(gè)來自于數(shù)據(jù)源,一個(gè)來自于數(shù)據(jù)立方體。如果所述參考多維數(shù)據(jù)集S與所述報(bào)告多維數(shù)據(jù)集MDSl相匹配,則說明經(jīng)過數(shù)據(jù)處理之后的數(shù)據(jù)與源數(shù)據(jù)是一致的,因而確定不存在數(shù)據(jù)處理問題,否則,則存在數(shù)據(jù)處理問題。圖3示出了根據(jù)本發(fā)明的另一個(gè)實(shí)施例的數(shù)據(jù)驗(yàn)證方法300的流程圖。圖3所示的實(shí)施例中的數(shù)據(jù)驗(yàn)證方法300具有與圖2所示的實(shí)施例中的數(shù)據(jù)驗(yàn)證方法200中步驟 S210-230相同的步驟S310-330,為簡(jiǎn)潔起見,這里不再重復(fù)。在步驟S340,根據(jù)聯(lián)機(jī)分析處理OLAP的逆變換模型,對(duì)報(bào)告多維數(shù)據(jù)集MDSl進(jìn)行 OLAP逆變換,以便生成OLAP多維數(shù)據(jù)集MDS2。其中,該OLAP多維數(shù)據(jù)集MDS2采用與報(bào)告多維數(shù)據(jù)集MDSl相同的結(jié)構(gòu)。模型的逆向運(yùn)算指的是邏輯關(guān)系上的逆運(yùn)算,比如正向的邏輯關(guān)系是源數(shù)據(jù)中表 A中列a的值注入到目的數(shù)據(jù)表B中的列c,那么該邏輯關(guān)系的逆運(yùn)算便是數(shù)據(jù)表B中的列 c注入到表A中的列a。由于目的數(shù)據(jù)中不會(huì)自己創(chuàng)造數(shù)據(jù),其必然有源數(shù)據(jù)中的事實(shí)與之相對(duì)應(yīng),所以必然存在一個(gè)源數(shù)據(jù)的子集與目的數(shù)據(jù)是一對(duì)一的映射關(guān)系,因此根據(jù)OLAP 模型的定義和其中的正向邏輯關(guān)系,可以得到OLAP模型的逆變換模型,逆變換模型中包括了相應(yīng)的正向邏輯關(guān)系的逆運(yùn)算。OLAP逆變換模型定義了數(shù)據(jù)立方體中的源數(shù)據(jù)位置和屬性、數(shù)據(jù)倉庫中的目標(biāo)數(shù)據(jù)位置以及源數(shù)據(jù)與目標(biāo)數(shù)據(jù)之間的映射關(guān)系。例如,在OLAP逆變換模型中,可以包括用元數(shù)據(jù)描述的數(shù)據(jù)倉庫中哪個(gè)事實(shí)表中的哪個(gè)列來自數(shù)據(jù)立方體中的哪個(gè)度量數(shù)據(jù),或者是該列數(shù)據(jù)經(jīng)由何種運(yùn)算的逆運(yùn)算得來。報(bào)告多維數(shù)據(jù)集MDSl中包含了來自數(shù)據(jù)立方體的數(shù)據(jù),包括維度的成員集合以及不同維度的成員集合所對(duì)應(yīng)的度量值。同時(shí)構(gòu)造報(bào)告多維數(shù)據(jù)集MDSl的過程還可以記錄報(bào)告多維數(shù)據(jù)集MDSl中的各個(gè)數(shù)據(jù)所來自于的數(shù)據(jù)立方體的維度和度量。OLAP模型定義的變換包含維度之間的轉(zhuǎn)換,以及相應(yīng)的度量之間的轉(zhuǎn)換,即,OLAP 系統(tǒng)中的度量數(shù)據(jù)來自于數(shù)據(jù)倉庫中哪個(gè)事實(shí)表中的哪個(gè)列或者是由該列數(shù)據(jù)經(jīng)由何種運(yùn)算得來,報(bào)表中的不同層次的維來自于數(shù)據(jù)倉庫中的哪個(gè)維度表,報(bào)表中的不同層次的維成員數(shù)據(jù)分別來自于數(shù)據(jù)倉庫中的哪個(gè)維度表中的哪個(gè)列。上面定義的OLAP模型包含的變換均為可逆的。因?yàn)槟康臄?shù)據(jù)立方體中的數(shù)據(jù)不管是維度數(shù)據(jù)還是度量數(shù)據(jù)均是來自于數(shù)據(jù)倉庫中的事實(shí)表或者維度表,因此這種變換是可逆的。也就是說得到了 OLAP模型、數(shù)據(jù)立方體的結(jié)構(gòu)和數(shù)據(jù),就可以將數(shù)據(jù)立方體的任何數(shù)據(jù)映射回?cái)?shù)據(jù)倉庫中,這個(gè)過程就是OLAP模型的逆變換過程。例如,OLAP逆變換模型,包括了數(shù)據(jù)立方體中的維度與數(shù)據(jù)倉庫的維度表字段之間的映射關(guān)系,數(shù)據(jù)立方體中度量與數(shù)據(jù)倉庫中的事實(shí)表字段之間的映射關(guān)系,以及數(shù)據(jù)立方體中維度與度量之間關(guān)系同數(shù)據(jù)倉庫中事實(shí)表和維度表之間關(guān)系的映射關(guān)系。根據(jù)報(bào)告多維數(shù)據(jù)集MDSl中的維度成員值和OLAP模型的逆變換規(guī)則中數(shù)據(jù)立方體的維度與數(shù)據(jù)倉庫的維度表字段之間的映射關(guān)系,得到數(shù)據(jù)倉庫中的維度表相應(yīng)列的值的集合,提取出該列的值的集合構(gòu)成了 OLAP多維數(shù)據(jù)集MDS2的相應(yīng)維度的成員集合。接著,根據(jù)報(bào)告多維數(shù)據(jù)集MDSl中的度量數(shù)據(jù)和OLAP模型的逆變換規(guī)則中數(shù)據(jù)立方體中度量與數(shù)據(jù)倉庫中的事實(shí)表字段之間的映射關(guān)系,得到數(shù)據(jù)倉庫的事實(shí)表中相應(yīng)列的值的集合,提取出該列的值的集合構(gòu)成OLAP多維數(shù)據(jù)集MDS2的度量。構(gòu)建好OLAP多維數(shù)據(jù)集MDS2的所有的維度成員和度量之后,根據(jù)維度成員和度量,結(jié)合OLAP模型的逆變換規(guī)則,得到數(shù)據(jù)倉庫的維度表與事實(shí)表的映射關(guān)系,即OLAP多維數(shù)據(jù)集MDS2中的維度與度量之間的對(duì)應(yīng)關(guān)系。結(jié)合維度信息,度量信息,以及維度和度量的對(duì)應(yīng)關(guān)系,從而得到OLAP多維數(shù)據(jù)集 MDS2。本領(lǐng)域普通技術(shù)人員能夠了解的是,上面僅僅是以例示方式給出了生成OLAP多維數(shù)據(jù)集MDS2的一種實(shí)施方式,還可以采用其他方式根據(jù)聯(lián)機(jī)分析處理OLAP的逆變換模型以及報(bào)告多維數(shù)據(jù)集MDSl來生成OLAP多維數(shù)據(jù)集MDS2。
11
在步驟350,根據(jù)所生成的多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。具體地,根據(jù)參考多維數(shù)據(jù)集、報(bào)告多維數(shù)據(jù)集以及OLAP多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。 其中,確定所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系,并根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系以及所述參考多維數(shù)據(jù)集與所述OLAP 多維數(shù)據(jù)集之間的匹配關(guān)系確定是否存在數(shù)據(jù)處理問題。如果所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集不相匹配,并且所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集相匹配,則確定聯(lián)機(jī)分析處理(OLAP)模型存在問題。如果參考多維數(shù)據(jù)集與報(bào)告多維數(shù)據(jù)集不匹配并且參考多維數(shù)據(jù)集與OLAP多維數(shù)據(jù)集也不匹配,則需要繼續(xù)執(zhí)行下面的步驟。在步驟360,根據(jù)抽取轉(zhuǎn)換加載ETL的逆變換模型,對(duì)OLAP多維數(shù)據(jù)集MDS2進(jìn)行 ETL逆變換,以便生成ETL多維數(shù)據(jù)庫MDS3。ETL模型中可以包括源表(位于數(shù)據(jù)源中)到目的表(位于數(shù)據(jù)倉庫中)之間格式的調(diào)整,比如將多張?jiān)磾?shù)據(jù)庫表整合到一張數(shù)據(jù)倉庫的事實(shí)表中,或者將一張?jiān)磾?shù)據(jù)庫表拆分成多張數(shù)據(jù)倉庫中的表。這是ETL模型最主要的部分,多數(shù)ETL模型中的變換均為此種變換。在ETL逆變換模型中,相應(yīng)地可以包括用元數(shù)據(jù)描述的目的表(位于數(shù)據(jù)倉庫) 到源表(位于數(shù)據(jù)源中)之間格式的調(diào)整。ETL模型中可以包括表中列值的換算,比如將源表中不同金錢的種類統(tǒng)一換算成美元。將列值進(jìn)行百分?jǐn)?shù)換算等。在ETL逆變換模型中,相應(yīng)地可以包括表中列值的逆換
笪弁。ETL模型中可以包括表中列屬性的整合,比如將源表中列A的值和列B的值組合成 A和B的拼接并存入目的表的列C。在ETL逆變換模型中,相應(yīng)地可以包括表中列屬性的拆分,比如將目的表中列C的值根據(jù)上述拼接的逆運(yùn)算,拆分為相應(yīng)的列A的值和列B的值。另外,有些ETL模型中還可以包括一致性處理,比如將數(shù)據(jù)源中所有的小數(shù)在數(shù)據(jù)倉庫中全部統(tǒng)一成2位。超過2位的截?cái)?,不足兩位的補(bǔ)0。這種變換可以劃為模型中的不可逆部分,即為發(fā)生信息丟失的變換,比如說小數(shù)位數(shù)的截取,字符串長(zhǎng)度的截取等。在生成ETL逆變換模型中的逆變換時(shí),這些不可逆的變換操作可以被標(biāo)記。在下文所述的多維數(shù)據(jù)集比較時(shí),先對(duì)參考多維數(shù)據(jù)集S中的數(shù)據(jù)進(jìn)行ETL模型中不可逆部分的變換后再同其他的多維數(shù)據(jù)集進(jìn)行比較。例如,比較的兩個(gè)多維數(shù)據(jù)集(A,B)是否匹配的過程中,如果多維數(shù)據(jù)集中的維度成員相等,同時(shí)維度成員所對(duì)應(yīng)的度量值也相等,則這兩個(gè)多維數(shù)據(jù)集匹配。如果不相等,則檢查參考模型中是否有不可逆的部分。如果多維數(shù)據(jù)集B是根據(jù)多維數(shù)據(jù)集A中的數(shù)據(jù)和模型X的逆生成的,則對(duì)A中的相應(yīng)數(shù)據(jù)進(jìn)行模型X中的不可逆的變換操作。之后再將處理后的A同B進(jìn)行比較。如果多維數(shù)據(jù)集中的維度成員相等,同時(shí)維度成員所對(duì)應(yīng)的度量值也相等,則這兩個(gè)多維數(shù)據(jù)集匹配。生成參考多維數(shù)據(jù)集S后,先對(duì)其中的數(shù)據(jù)進(jìn)行ETL模型和/或OLAP模型中不可逆部分的變換后再同其他的多維數(shù)據(jù)集進(jìn)行比較。多數(shù)情況下,OLAP模型中不包括不可逆部分。OLAP多維數(shù)據(jù)集MDS2中包含了來自數(shù)據(jù)倉庫的數(shù)據(jù),包括以維度的成員集合以及不同維度的成員集合所對(duì)應(yīng)的度量值展示的相對(duì)應(yīng)的維度表的列值的集合以及事實(shí)表的列值的集合。同時(shí)在構(gòu)造OLAP多維數(shù)據(jù)集MDS2的過程中,還可以記錄MDS2中的各個(gè)數(shù)據(jù)來自于數(shù)據(jù)倉庫中的哪個(gè)事實(shí)表中的哪一列和哪一維度表中的哪一列。
ETL模型的逆變換,包括了數(shù)據(jù)倉庫中事實(shí)表的事實(shí)數(shù)據(jù)和源表中的一些字段之間的映射關(guān)系,和數(shù)據(jù)倉庫中維度表的字段與源表中字段之間的映射關(guān)系以及數(shù)據(jù)倉庫中事實(shí)表的事實(shí)數(shù)據(jù)和維度數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系同源表中字段之間的對(duì)應(yīng)關(guān)系的映射關(guān)系。根據(jù)OLAP多維數(shù)據(jù)集MDS2中的維度成員值(實(shí)際上為維度表的列值集合)和 ETL模型的逆變換規(guī)則,對(duì)OLAP多維數(shù)據(jù)集MDS2進(jìn)行處理,得到由OLAP多維數(shù)據(jù)集推導(dǎo)出的源數(shù)據(jù)中的存儲(chǔ)相應(yīng)的列的值的集合。提取出該列的值的集合構(gòu)成了 ETL多維數(shù)據(jù)集 MDS3的相應(yīng)維度的成員集合。構(gòu)建好ETL多維數(shù)據(jù)集MDS3的所有的維度成員之后,根據(jù)ETL模型的逆變換規(guī)則,得到由OLAP多維數(shù)據(jù)集MDS2推導(dǎo)出的源數(shù)據(jù)中存儲(chǔ)事實(shí)表數(shù)據(jù)的相應(yīng)列的值的集合。 根據(jù)ETL多維數(shù)據(jù)集MDS3已構(gòu)建好的各個(gè)維度成員,給定各個(gè)維度成員(即存儲(chǔ)維度表相關(guān)列的值的數(shù)據(jù)源中的相應(yīng)列的取值),根據(jù)數(shù)據(jù)倉庫中事實(shí)表的事實(shí)數(shù)據(jù)和維度數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系同源表中字段之間的對(duì)應(yīng)關(guān)系的映射關(guān)系。從而得到的數(shù)據(jù)源中存儲(chǔ)事實(shí)表數(shù)據(jù)的相應(yīng)列的取值即為ETL多維數(shù)據(jù)集MDS3中度量的取值。根據(jù)OLAP多維數(shù)據(jù)集MDS2中的維度成員值(實(shí)際上為數(shù)據(jù)倉庫中相應(yīng)維度表的列值的集合)和ETL模型的逆變換規(guī)則,得到與OLAP多維數(shù)據(jù)集MDS2相應(yīng)維度成員值相對(duì)應(yīng)的源數(shù)據(jù)中的存儲(chǔ)相應(yīng)列值的集合。提取出該列的值的集合構(gòu)成了 ETL多維數(shù)據(jù)集MDS3 的相應(yīng)維度的成員集合。OLAP多維數(shù)據(jù)集MDS2中的度量值實(shí)際上為數(shù)據(jù)倉庫中相應(yīng)事實(shí)表中的列值集合或者該列值通過預(yù)定的運(yùn)算生成。構(gòu)建好ETL多維數(shù)據(jù)集MDS3的所有的維度成員集合之后,根據(jù)ETL模型的逆變換規(guī)則,得到源數(shù)據(jù)中存儲(chǔ)事實(shí)表數(shù)據(jù)的相應(yīng)列的值的集合(該事實(shí)表中相應(yīng)列對(duì)應(yīng)OLAP多維數(shù)據(jù)集MDS2中的度量值)。根據(jù)ETL多維數(shù)據(jù)集MDS3已構(gòu)建好的各個(gè)維度成員,給定各個(gè)維度成員值(即源數(shù)據(jù)當(dāng)中代表該維度的表的列值),根據(jù)數(shù)據(jù)倉庫中事實(shí)表的事實(shí)數(shù)據(jù)和維度數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系同源表中字段之間的對(duì)應(yīng)關(guān)系的映射關(guān)系。從而得到的數(shù)據(jù)源中存儲(chǔ)代表度量數(shù)據(jù)的相應(yīng)列的取值即為ETL多維數(shù)據(jù)集 MDS3中度量的取值。本領(lǐng)域普通技術(shù)人員能夠了解的是,上面僅僅是以例示方式給出了生成ETL多維數(shù)據(jù)集MDS3的一種實(shí)施方式,還可以采用其他方式根據(jù)ETL的逆變換模型以及OLAP多維數(shù)據(jù)集MDS2來生成ETL多維數(shù)據(jù)集MDS3。在步驟S370,根據(jù)所生成的多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。具體地,可以根據(jù)參考多維數(shù)據(jù)集、報(bào)告多維數(shù)據(jù)集、OLAP多維數(shù)據(jù)集以及ETL多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。例如,可以確定所述參考多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系以及所述報(bào)告多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系,并根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系、所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系、所述參考多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系以及所述報(bào)告多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系確定何處存在數(shù)據(jù)處理問題。還可以進(jìn)一步確定所述OLAP多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系, 并根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系、所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系、所述參考多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系、所述報(bào)告多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系以及所述OLAP 多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系確定何處存在數(shù)據(jù)處理問題。在下面的圖5中,將詳細(xì)描述如何根據(jù)上述多個(gè)多維數(shù)據(jù)集之間的匹配關(guān)系來驗(yàn)證數(shù)據(jù),以確定是否存在數(shù)據(jù)處理問題以及何處存在數(shù)據(jù)處理問題。這里需要說明的是,雖然在圖3中將步驟S340描述為在步驟S330之后,將步驟 S360描述在步驟S350之后,本領(lǐng)域普通技術(shù)人員可以知曉的是,實(shí)際上該步驟S340和 S360并不必須要在步驟S330和S350完成之后執(zhí)行。事實(shí)上,根據(jù)本發(fā)明的另一個(gè)實(shí)施例, 可以在生成了 OLAP多維數(shù)據(jù)集和ETL多維數(shù)據(jù)集之后,再根據(jù)各個(gè)多維數(shù)據(jù)集的匹配關(guān)系來進(jìn)行數(shù)據(jù)驗(yàn)證,例如,步驟S340和S360可以穿插在圖5所示的各個(gè)步驟之間執(zhí)行,也可以在圖5的各個(gè)步驟之前執(zhí)行。圖4示出了所產(chǎn)生的多個(gè)多維數(shù)據(jù)集參考多維數(shù)據(jù)集S,報(bào)告多維數(shù)據(jù)集MDS1, OLAP多維數(shù)據(jù)集MDS2,ETL多維數(shù)據(jù)集MDS3。從圖4中可以看出,通過采用如上述所述的方法,生成了參考多維數(shù)據(jù)集S、報(bào)告多維數(shù)據(jù)集MDS1、0LAP多維數(shù)據(jù)集MDS2以及ETL多維數(shù)據(jù)集MDS3,并通過這些多維數(shù)據(jù)集之間的匹配關(guān)系來確定由數(shù)據(jù)源410至數(shù)據(jù)倉庫420 至數(shù)據(jù)立方體430的數(shù)據(jù)處理是否有問題,以及數(shù)據(jù)處理問題存在于該商業(yè)智能解決方案中的何處。下面將參考圖5詳細(xì)描述各個(gè)多維數(shù)據(jù)集的比較以及商業(yè)智能解決方案問題的跟蹤與定位。如同前面所介紹的,在商業(yè)智能解決方案的構(gòu)建過程中經(jīng)常出現(xiàn)的問題有以下幾種ETL模型錯(cuò)誤,OLAP模型錯(cuò)誤,臟數(shù)據(jù)錯(cuò)誤。通過對(duì)報(bào)告多維數(shù)據(jù)集,OLAP多維數(shù)據(jù)集以及ETL多維數(shù)據(jù)集和參考多維數(shù)據(jù)集的比較結(jié)果,我們可以判定商業(yè)智能解決方案的模型設(shè)計(jì)是不是存在問題以及何處存在問題。在圖5中,S代表參考多維數(shù)據(jù)集,MDSl代表報(bào)告多維數(shù)據(jù)集,MDS2代表OLAP多維數(shù)據(jù)集,MDS3代表ETL多維數(shù)據(jù)集。在步驟S510,將參考多維數(shù)據(jù)集與報(bào)告多維數(shù)據(jù)集進(jìn)行比較,如果匹配,則認(rèn)為所展示的數(shù)據(jù)沒有問題,未發(fā)現(xiàn)模型異常和臟數(shù)據(jù)錯(cuò)誤。如果不匹配,即代表存在著數(shù)據(jù)處理問題,則方法進(jìn)行到步驟S520,將參考多維數(shù)據(jù)集與OLAP多維數(shù)據(jù)集進(jìn)行比較,如果匹配,則表明是OLAP模型出現(xiàn)了問題。如果不相等,則方法進(jìn)行到步驟S530,將報(bào)告多維數(shù)據(jù)集與OLAP多維數(shù)據(jù)集進(jìn)行比較,如果匹配,則方法進(jìn)行到步驟S540,將參考多維數(shù)據(jù)集與ETL多維數(shù)據(jù)集進(jìn)行比較, 如果匹配,則表明是ETL模型出現(xiàn)了問題。如果在步驟S540參考多維數(shù)據(jù)集和ETL多維數(shù)據(jù)集不匹配,則方法進(jìn)行到步驟 S550,將OLAP多維數(shù)據(jù)集與ETL多維數(shù)據(jù)集進(jìn)行比較,如果匹配,則表明是臟數(shù)據(jù)錯(cuò)誤。如果在步驟S550,OLAP多維數(shù)據(jù)集與ETL多維數(shù)據(jù)集不匹配,則表明是ETL模型存在問題,同時(shí)也有可能存在臟數(shù)據(jù)的問題。如果在步驟S530,報(bào)告多維數(shù)據(jù)集和OLAP多維數(shù)據(jù)集之間不匹配,則方法進(jìn)行到步驟S560,比較ETL多維數(shù)據(jù)集與參考多維數(shù)據(jù)集。如果匹配,則表明是OLAP模型和ETL 模型均存在錯(cuò)誤。
如果在步驟S560,ETL多維數(shù)據(jù)集與參考多維數(shù)據(jù)集不匹配,則方法進(jìn)行到步驟 S570,比較OLAP多維數(shù)據(jù)集和ETL多維數(shù)據(jù)集,如果匹配,則表明是OLAP模型和ETL模型均存在問題。如果在步驟S570,OLAP多維數(shù)據(jù)集和ETL多維數(shù)據(jù)集不匹配,則表明除了 OLAP模型和ETL模型存在問題外,還有可能存在臟數(shù)據(jù)問題。上面參考圖5詳細(xì)描述了各個(gè)多維數(shù)據(jù)集的比較以及商業(yè)智能解決方案問題的跟蹤與定位。雖然在圖5中描述了各個(gè)判斷步驟,本領(lǐng)域技術(shù)人員可以了解的是,本發(fā)明并不必須按照?qǐng)D5所示的流程來進(jìn)行判斷,按照與圖5所示的流程不同的順序確定各個(gè)多維數(shù)據(jù)集的匹配關(guān)系,也可以獲得對(duì)數(shù)據(jù)處理問題的跟蹤和定位。并且,按照本發(fā)明的另一個(gè)實(shí)施例,也可以通過查表的方式獲得對(duì)數(shù)據(jù)處理問題的跟蹤和定位。下面的表中清晰地介紹了根據(jù)不同的比較結(jié)果得出的商業(yè)智能解決方案在模型中遇到的問題結(jié)論。表中的“!=”表示不等于。
權(quán)利要求
1.一種用于驗(yàn)證數(shù)據(jù)的方法,其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行ETL模型變換和 OLAP模型變換所生成的數(shù)據(jù)立方體,所述方法包括根據(jù)數(shù)據(jù)立方體查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集;根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
2.根據(jù)權(quán)利要求1所述的方法,其中,根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件、從源數(shù)據(jù)生成參考多維數(shù)據(jù)集進(jìn)一步包括對(duì)參考多維數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行 ETL模型中不可逆部分的變換,其中,將變換后的參考多維數(shù)據(jù)集作為生成的參考多維數(shù)據(jù)集。
3.根據(jù)權(quán)利要求1或2所述的方法,進(jìn)一步包括根據(jù)OLAP模型的逆變換模型,對(duì)所述報(bào)告多維數(shù)據(jù)集進(jìn)行OLAP逆變換,以便生成OLAP 多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集以及所述OLAP多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
4.根據(jù)權(quán)利要求3所述的方法,其中,如果所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集不相匹配,并且所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集相匹配,則確定OLAP模型存在問題。
5.根據(jù)權(quán)利要求3所述的方法,進(jìn)一步包括根據(jù)ETL模型的逆變換模型,對(duì)所述OLAP多維數(shù)據(jù)集進(jìn)行ETL逆變換,以便生成ETL 多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集、所述OLAP多維數(shù)據(jù)集以及所述ETL 多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
6.根據(jù)權(quán)利要求5所述的方法,其中,如果所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集不相匹配,所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集不相匹配,所述參考多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集相匹配,并且所述報(bào)告多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集相匹配, 則確定ETL模型存在問題。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集分別由多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值組成,其中,所述根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系、進(jìn)行數(shù)據(jù)驗(yàn)證進(jìn)一步包括通過分別比較所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集的多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值,來確定所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系;以及根據(jù)所確定的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
8.一種用于驗(yàn)證數(shù)據(jù)的方法,其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行ETL模型變換所生成的數(shù)據(jù)倉庫,包括根據(jù)預(yù)定的數(shù)據(jù)倉庫查詢條件,從數(shù)據(jù)倉庫生成報(bào)告多維數(shù)據(jù)集;根據(jù)與所述數(shù)據(jù)倉庫查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
9.根據(jù)權(quán)利要求8所述的方法,進(jìn)一步包括根據(jù)ETL模型的逆變換模型,對(duì)所述報(bào)告多維數(shù)據(jù)集進(jìn)行ETL逆變換,以便生成ETL多維數(shù)據(jù)集;以及根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集以及所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
10.根據(jù)權(quán)利要求8所述的方法,其中,所述報(bào)告多維數(shù)據(jù)集和參考多維數(shù)據(jù)集分別由多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值組成,其中,所述根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系、進(jìn)行數(shù)據(jù)驗(yàn)證進(jìn)一步包括通過分別比較所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集的多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值,來確定所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系;以及根據(jù)所確定的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
11.一種用于驗(yàn)證數(shù)據(jù)的系統(tǒng),其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行ETL模型變換和 OLAP模型變換所生成的數(shù)據(jù)立方體,所述方法包括報(bào)告多維數(shù)據(jù)集生成裝置,用于根據(jù)數(shù)據(jù)立方體查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集;參考多維數(shù)據(jù)集生成裝置,用于根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及驗(yàn)證裝置,用于根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述參考多維數(shù)據(jù)集生成裝置還用于對(duì)參考多維數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行ETL模型中不可逆部分的變換,其中,將變換后的參考多維數(shù)據(jù)集作為生成的參考多維數(shù)據(jù)集。
13.根據(jù)權(quán)利要求11或12所述的系統(tǒng),進(jìn)一步包括OLAP多維數(shù)據(jù)集生成裝置,用于根據(jù)OLAP模型的逆變換模型,對(duì)所述報(bào)告多維數(shù)據(jù)集進(jìn)行OLAP逆變換,以便生成OLAP多維數(shù)據(jù)集,其中,所述驗(yàn)證裝置進(jìn)一步根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集以及所述 OLAP多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,如果所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集不相匹配,并且所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集相匹配,則確定OLAP模型存在問題。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),進(jìn)一步包括ETL多維數(shù)據(jù)集生成裝置,用于根據(jù)ETL模型的逆變換模型,對(duì)所述OLAP多維數(shù)據(jù)集進(jìn)行ETL逆變換,以便生成ETL多維數(shù)據(jù)集,其中,所述驗(yàn)證裝置進(jìn)一步根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集、所述OLAP 多維數(shù)據(jù)集以及所述ETL多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,如果所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集不相匹配,所述參考多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集不相匹配,所述參考多維數(shù)據(jù)集與所述ETL多維數(shù)據(jù)集相匹配,并且所述報(bào)告多維數(shù)據(jù)集與所述OLAP多維數(shù)據(jù)集相匹配,則確定ETL模型存在問題。
17.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述報(bào)告多維數(shù)據(jù)集和參考多維數(shù)據(jù)集分別由多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值組成,其中,所述驗(yàn)證裝置進(jìn)一步包括比較裝置,通過分別比較所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集的多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值,來確定所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系。
18.一種用于驗(yàn)證數(shù)據(jù)的系統(tǒng),其中,所述數(shù)據(jù)來自于對(duì)源數(shù)據(jù)進(jìn)行ETL模型變換所生成的數(shù)據(jù)倉庫,包括報(bào)告多維數(shù)據(jù)集生成裝置,用于根據(jù)預(yù)定的數(shù)據(jù)倉庫查詢條件,從數(shù)據(jù)倉庫生成報(bào)告多維數(shù)據(jù)集;參考多維數(shù)據(jù)集生成裝置,用于根據(jù)與所述數(shù)據(jù)倉庫查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集;以及驗(yàn)證裝置,用于根據(jù)所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系,進(jìn)行數(shù)據(jù)驗(yàn)證。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步包括ETL多維數(shù)據(jù)集生成裝置,用于根據(jù)ETL模型的逆變換模型,對(duì)所述報(bào)告多維數(shù)據(jù)集進(jìn)行ETL逆變換,以便生成ETL多維數(shù)據(jù)集,其中,所述驗(yàn)證裝置進(jìn)一步根據(jù)所述參考多維數(shù)據(jù)集、所述報(bào)告多維數(shù)據(jù)集以及所述 ETL多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所述報(bào)告多維數(shù)據(jù)集和參考多維數(shù)據(jù)集分別由多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值組成,其中,所述驗(yàn)證裝置進(jìn)一步包括比較裝置,用于通過分別比較所述報(bào)告多維數(shù)據(jù)集和所述參考多維數(shù)據(jù)集的多個(gè)維度、每個(gè)維度的成員集合以及每個(gè)維度的成員集合所對(duì)應(yīng)的度量值,來確定所述參考多維數(shù)據(jù)集與所述報(bào)告多維數(shù)據(jù)集之間的匹配關(guān)系。
全文摘要
本發(fā)明提供了一種用于驗(yàn)證數(shù)據(jù)的方法和系統(tǒng)。該方法和系統(tǒng)根據(jù)數(shù)據(jù)立方體查詢條件,從數(shù)據(jù)立方體生成報(bào)告多維數(shù)據(jù)集。根據(jù)與所述數(shù)據(jù)立方體查詢條件相應(yīng)的源數(shù)據(jù)查詢條件,從源數(shù)據(jù)生成參考多維數(shù)據(jù)集。同時(shí),還可以對(duì)報(bào)告多維數(shù)據(jù)集進(jìn)行OLAP逆變換,生成OLAP多維數(shù)據(jù)集,對(duì)OLAP多維數(shù)據(jù)集進(jìn)行ETL逆變換,生成ETL多維數(shù)據(jù)集。根據(jù)所生成的多維數(shù)據(jù)集之間的匹配關(guān)系進(jìn)行數(shù)據(jù)驗(yàn)證,以確定是否存在數(shù)據(jù)不一致的情況。通過上述方法和系統(tǒng),不僅可以容易地驗(yàn)證展示給用戶的數(shù)據(jù)是否存在問題,在存在數(shù)據(jù)問題的情況下,還可以確定商業(yè)智能解決方案中的何處存在問題。
文檔編號(hào)G06F17/30GK102207940SQ20101013899
公開日2011年10月5日 申請(qǐng)日期2010年3月31日 優(yōu)先權(quán)日2010年3月31日
發(fā)明者傅曉靜, 李學(xué)朝, 辛新, 高雪峰 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司