專利名稱:用于數(shù)據(jù)質(zhì)量監(jiān)控的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及ETL(提取-轉(zhuǎn)換-加載)過程期間的數(shù)據(jù)剖析方法,更具體地說,涉及通過運(yùn)行數(shù)據(jù)質(zhì)量規(guī)則并對(duì)照先前的結(jié)果比較數(shù)據(jù)質(zhì)量規(guī)則來確定數(shù)據(jù)質(zhì)量是提高了還是降低了的數(shù)據(jù)質(zhì)量監(jiān)控。
背景技術(shù):
目前,在用于諸如主數(shù)據(jù)管理(MDM, master data management)、數(shù)據(jù)倉(cāng)儲(chǔ)(DW,data warehousing)、業(yè)務(wù)應(yīng)用整合等的數(shù)據(jù)集成項(xiàng)目中,利用ETL (提取-轉(zhuǎn)換-加載)過程中的數(shù)據(jù)剖析技術(shù)和/或數(shù)據(jù)清理方法來識(shí)別數(shù)據(jù)質(zhì)量問題,使得在這些系統(tǒng)的初始加載階段期間,只加載高質(zhì)量的數(shù)據(jù)。然而,在數(shù)據(jù)質(zhì)量問題正在變成企業(yè)的成本因素或者甚至完全中斷業(yè)務(wù)過程的業(yè)務(wù)應(yīng)用中,數(shù)據(jù)質(zhì)量退化。在這些應(yīng) 用系統(tǒng)中,利用數(shù)據(jù)質(zhì)量規(guī)則定期地測(cè)量數(shù)據(jù)質(zhì)量是檢測(cè)退化的速度或者數(shù)據(jù)質(zhì)量隨著時(shí)間的變化以及如果某些最低限度要求的數(shù)據(jù)質(zhì)量關(guān)鍵性能指標(biāo)(KPI)不再被滿足而采取行動(dòng)的動(dòng)機(jī)的唯一途徑。對(duì)于比如MDM的解決方案來說,除了 MDM系統(tǒng)的部署之外,還建立數(shù)據(jù)支配(DG,datagovernance)程序以控制主數(shù)據(jù)的創(chuàng)建、維護(hù)和使用以及在其整個(gè)生命周期內(nèi)的主數(shù)據(jù)質(zhì)量。在數(shù)據(jù)支配組織中工作的數(shù)據(jù)專員定期應(yīng)用數(shù)據(jù)剖析測(cè)量來控制與主數(shù)據(jù)的數(shù)據(jù)質(zhì)量KPI—致。測(cè)量通常是利用語(yǔ)義規(guī)則(多種數(shù)據(jù)剖析技術(shù)之一)來進(jìn)行的。定義數(shù)據(jù)質(zhì)量KPI、語(yǔ)義規(guī)則、創(chuàng)建初始加載期間的第一基線測(cè)量、定期執(zhí)行這些規(guī)則、以及對(duì)照基線結(jié)果進(jìn)行比較的步驟被稱為數(shù)據(jù)質(zhì)量監(jiān)控。數(shù)據(jù)剖析和數(shù)據(jù)質(zhì)量監(jiān)控是I/O密集操作,并且非常費(fèi)時(shí)。因此,對(duì)數(shù)據(jù)質(zhì)量剖析和數(shù)據(jù)質(zhì)量監(jiān)控來說,可選的是把數(shù)據(jù)提取到中轉(zhuǎn)區(qū)中,以避免由額外的I/o或者因?yàn)閼?yīng)用不允許不使用應(yīng)用專用機(jī)制(例如SAP)而直接訪問底層數(shù)據(jù)庫(kù)而引起的應(yīng)用性能退化。另一個(gè)原因是如果應(yīng)用和數(shù)據(jù)剖析工具所創(chuàng)建的SQL同時(shí)在應(yīng)用數(shù)據(jù)庫(kù)中運(yùn)行,那么避免由SQL語(yǔ)句并發(fā)問題引起的應(yīng)用的功能問題。諸如DW或業(yè)務(wù)應(yīng)用整合的項(xiàng)目中的初始完整數(shù)據(jù)提取通常需要整個(gè)周末,從而由于引起的1/0,在這樣的提取期間導(dǎo)致應(yīng)用的性能退化。對(duì)一些系統(tǒng)來說,可能能夠定期地獲得用于數(shù)據(jù)質(zhì)量監(jiān)控目的的跨周末的數(shù)據(jù)提取時(shí)段。對(duì)諸如持久運(yùn)行的電子商務(wù)系統(tǒng)或者其它關(guān)鍵系統(tǒng)的應(yīng)用來說,通常只能爭(zhēng)取用于數(shù)據(jù)集成的一次性提取的時(shí)段。因此,不能進(jìn)行數(shù)據(jù)質(zhì)量監(jiān)控,并且在業(yè)務(wù)過程中斷或者出現(xiàn)其它嚴(yán)重業(yè)務(wù)問題之前,數(shù)據(jù)質(zhì)量的退化一直未被檢測(cè)到。一方面,如果考慮目前已知的數(shù)據(jù)質(zhì)量監(jiān)控技術(shù)總是在進(jìn)行進(jìn)一步的測(cè)量的同時(shí),處理在基線測(cè)量的范圍內(nèi)的所有數(shù)據(jù),那么該問題會(huì)加劇。另一方面,數(shù)據(jù)量不斷增長(zhǎng),并且兩次測(cè)量之間的時(shí)間窗縮短。結(jié)果,當(dāng)下一次測(cè)量大概已開始時(shí),上一次測(cè)量可能還未完成,從而使一些情況下的數(shù)據(jù)質(zhì)量監(jiān)控甚至不再可行。目前,數(shù)據(jù)質(zhì)量監(jiān)控領(lǐng)域中缺少的是只處理自最后一次測(cè)量以來變化的數(shù)據(jù)、只重新執(zhí)行自最后一次測(cè)量以來變化的語(yǔ)義規(guī)則的各個(gè)部分或者它們的組合的能力。
US 2010/0010979A1提供了用于簡(jiǎn)量精度數(shù)據(jù)質(zhì)量信息清理反饋處理的方法和計(jì)
算機(jī)程序產(chǎn)品。US 2008/0027958A1提供了一種能夠在沒有人類交互的情況下修改數(shù)據(jù)記錄,響應(yīng)于來自各種數(shù)據(jù)質(zhì)量模塊的分析而修改數(shù)據(jù)記錄的數(shù)據(jù)清理工具。
發(fā)明內(nèi)容
本發(fā)明提供一種如權(quán)利要求中要求保護(hù)的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng)。本發(fā)明的實(shí)施例提供了一種系統(tǒng)和方法,通過對(duì)照基線結(jié)果比較當(dāng)前分析結(jié)果,隨時(shí)間利用預(yù)定的數(shù)據(jù)質(zhì)量度量來檢測(cè)和控制數(shù)據(jù)質(zhì)量。為了優(yōu)化運(yùn)算技術(shù),只對(duì)數(shù)據(jù)的增量變化、對(duì)質(zhì)量規(guī)則的增量變化和/或?qū)λ鼈兊慕M合進(jìn)行數(shù)據(jù)剖析分析。通過在增量加載期間利用交叉參照表,提出的數(shù)據(jù)質(zhì)量監(jiān)控方法基于變化數(shù)據(jù)捕獲(⑶c, change data capture)機(jī)制(比如基于事務(wù)日志的機(jī)制或者基于觸發(fā)的復(fù)制)。它使用列式存儲(chǔ)技術(shù),從而根據(jù)質(zhì)量規(guī)則的運(yùn)算 的區(qū)別,允許借助數(shù)據(jù)質(zhì)量規(guī)則的分解,最小化數(shù)據(jù)質(zhì)量規(guī)則對(duì)數(shù)據(jù)的執(zhí)行時(shí)間,以及借助高度壓縮和傳播策略,最小化額外的存儲(chǔ)。本發(fā)明的實(shí)施例在測(cè)量數(shù)據(jù)質(zhì)量KPI以及兩次運(yùn)行之間KPI的比較方面是有利的,從而提供了接近確定數(shù)據(jù)質(zhì)量是提高還是降低的可能性。本發(fā)明的實(shí)施例具有最小化對(duì)應(yīng)用系統(tǒng)性能的影響以及縮短進(jìn)行數(shù)據(jù)質(zhì)量監(jiān)控的必需時(shí)間的優(yōu)點(diǎn)。通過只對(duì)數(shù)據(jù)的增量變化、只對(duì)質(zhì)量規(guī)則的增量變化和/或?qū)λ鼈兊慕M合進(jìn)行數(shù)據(jù)質(zhì)量分析,本發(fā)明的系統(tǒng)和方法可克服本領(lǐng)域中目前存在的數(shù)據(jù)剖析/質(zhì)量監(jiān)控的問題。
包含在說明書中并構(gòu)成說明書的一部分的附解說明了本發(fā)明的幾個(gè)實(shí)施例,并且與下面的說明一起,用于解釋本發(fā)明的原理。參考附圖詳細(xì)說明本發(fā)明的實(shí)施例。圖I是示出按照本發(fā)明的例證解決方案架構(gòu)的方框圖。圖2是示出按照本發(fā)明的實(shí)施例的流程圖,其中,初始數(shù)據(jù)集的第一負(fù)載被從數(shù)據(jù)源中提取,并在被變換成主存儲(chǔ)器(RAM)中的列式格式之后,被加載到增量數(shù)據(jù)質(zhì)量監(jiān)控器(DDQM, delta data quality monitor)中,以測(cè)量初始數(shù)據(jù)質(zhì)量,從而生成數(shù)據(jù)質(zhì)量度量的基線簡(jiǎn)檔。圖3是示出按照本發(fā)明的實(shí)施例的流程圖,其中,相對(duì)于先前的負(fù)載,測(cè)量被提取并被變換的增量變化的數(shù)據(jù)質(zhì)量。圖4是示出按照本發(fā)明的實(shí)施例的示圖,其中,從數(shù)據(jù)源中提取的數(shù)據(jù)被變換成主存儲(chǔ)器(RAM)中的列式格式。圖5是示出按照本發(fā)明的實(shí)施例的示圖,其中,質(zhì)量規(guī)則被分解成它的各項(xiàng),從而生成分解樹。圖6是示出按照本發(fā)明的實(shí)施例的示圖,其中,質(zhì)量規(guī)則被分解成它的各項(xiàng),并被應(yīng)用于主存儲(chǔ)器(RAM)中的數(shù)據(jù)列。圖7是示出按照本發(fā)明的實(shí)施例的示圖,其中,質(zhì)量規(guī)則已被改變,表示只有已受到規(guī)則的數(shù)據(jù)變化影響的列式數(shù)據(jù)對(duì)象需要主存儲(chǔ)器(RAM)的更新或重新計(jì)算。圖8是示出按照本發(fā)明的實(shí)施例的示圖,其中,在提取的數(shù)據(jù)的數(shù)據(jù)變化之后,列式數(shù)據(jù)對(duì)象的更新僅僅通過與單獨(dú)的相關(guān)數(shù)據(jù)列具有相關(guān)性的中間列式數(shù)據(jù)對(duì)象傳播。
具體實(shí)施例方式圖I圖解說明了數(shù)據(jù)質(zhì)量監(jiān)控的例證系統(tǒng)的方框圖。如圖所示,系統(tǒng)包括數(shù)據(jù)源100,在初始提取過程102中,數(shù)據(jù)集從數(shù)據(jù)源100被提取到中轉(zhuǎn)區(qū)106中。在創(chuàng)建交叉參照表108之后,在初始加載過程110期間,變換后的數(shù)據(jù)集被加載到增量數(shù)據(jù)質(zhì)量監(jiān)控器(DDQM) 118中的主存儲(chǔ)器(RAM) 120中的列式結(jié)構(gòu)122中。存在兩組列式結(jié)構(gòu)第一組保持?jǐn)?shù)據(jù)(下面被稱為數(shù)據(jù)列),第二組保持?jǐn)?shù)據(jù)質(zhì)量監(jiān)控的中間結(jié)果(下面被稱為列高速緩存)。用戶利用客戶端應(yīng)用115連接到部署在應(yīng)用服務(wù)器116上的數(shù)據(jù)剖析應(yīng)用,以創(chuàng)建和維持由DDQM 118執(zhí)行的數(shù)據(jù)質(zhì)量規(guī)則。必需的元數(shù)據(jù)被保存在元數(shù)據(jù)倉(cāng)庫(kù)114中。數(shù)據(jù)集的提取、轉(zhuǎn)換和加載定義傳送由DDQM 118監(jiān)控的數(shù)據(jù)的ETL過程,DDQM 118傳送與本發(fā)明一致的質(zhì)量測(cè)量的中間結(jié)果。增量數(shù)據(jù)質(zhì)量監(jiān)控器118可視情況耦接到剖析集市124,在剖析集市124中,能夠獲得質(zhì)量測(cè)量的帶時(shí)間戳的中間結(jié)果,使得能夠?qū)崿F(xiàn)例如防備硬件故障的業(yè)務(wù)彈性,避免了重新運(yùn)行所有規(guī)則以便再次在主存儲(chǔ)器120中實(shí)例化列式結(jié)構(gòu)122的需要。 在數(shù)據(jù)源100和中轉(zhuǎn)區(qū)106之間工作的⑶C機(jī)制識(shí)別借助增量加載過程112加載的增量變化。在增量加載過程112中,應(yīng)用一組新的操作,以最小化對(duì)主存儲(chǔ)器120中的包含數(shù)據(jù)列和列高速緩存的列式結(jié)構(gòu)122的影響。通過利用部署在用戶所使用的應(yīng)用客戶端115所調(diào)用的應(yīng)用服務(wù)器116上的數(shù)據(jù)質(zhì)量監(jiān)控應(yīng)用,能夠可視化由用于DDQM 118的計(jì)算機(jī)程序產(chǎn)品執(zhí)行的增量質(zhì)量監(jiān)控的結(jié)果。在元數(shù)據(jù)倉(cāng)庫(kù)114中,還保存和版本管理應(yīng)用服務(wù)器116能夠在包含列式結(jié)構(gòu)122的主存儲(chǔ)器120上運(yùn)行的質(zhì)量規(guī)則,所述列式結(jié)構(gòu)122包含數(shù)據(jù)列和列高速緩存。在完全執(zhí)行質(zhì)量規(guī)則之后,可以保存質(zhì)量測(cè)量的結(jié)果用于剖析集市124中的以后數(shù)據(jù)趨勢(shì)分析研究。為了創(chuàng)建基本的關(guān)鍵數(shù)據(jù)質(zhì)量度量,如圖2中所示,通過從數(shù)據(jù)源中提取數(shù)據(jù)集來進(jìn)行第一次加載(步驟200)。在第一 ETL過程中,初始數(shù)據(jù)集被變換成數(shù)據(jù)列(步驟202),然后被放入主存儲(chǔ)器(RAM) 120中。質(zhì)量規(guī)則的各項(xiàng)被應(yīng)用于數(shù)據(jù)列(步驟204),從而產(chǎn)生可在數(shù)據(jù)剖析集市124中堅(jiān)持的數(shù)據(jù)質(zhì)量KPI的基線簡(jiǎn)檔(步驟206),所述數(shù)據(jù)剖析集市124由部署在應(yīng)用服務(wù)器116上的數(shù)據(jù)剖析應(yīng)用觸發(fā)。在第一次運(yùn)行對(duì)初始數(shù)據(jù)集執(zhí)行初始數(shù)據(jù)質(zhì)量監(jiān)控的數(shù)據(jù)規(guī)則之后,后續(xù)數(shù)據(jù)質(zhì)量監(jiān)控過程能夠?qū)φ栈€簡(jiǎn)檔比較后續(xù)測(cè)量結(jié)果(步驟208)。在后續(xù)增量加載中,如圖3中所示,只從數(shù)據(jù)源100中提取數(shù)據(jù)集的增量變化(步驟300)。由變化數(shù)據(jù)捕獲(O)C, change data capture)機(jī)制104來識(shí)別提取的數(shù)據(jù)的增量變化(步驟302)。通過更新數(shù)據(jù)列中的值、把值添加到數(shù)據(jù)列中和/或從數(shù)據(jù)列中刪除值,根據(jù)數(shù)據(jù)集的增量變化來更新數(shù)據(jù)列(步驟304)。通過只把質(zhì)量規(guī)則的各項(xiàng)應(yīng)用于已被提取的數(shù)據(jù)的增量變化影響的數(shù)據(jù)列,從而比較實(shí)際結(jié)果與先前數(shù)據(jù)加載的質(zhì)量,相對(duì)于初始獲得的數(shù)據(jù)質(zhì)量KPI的基線簡(jiǎn)檔,獲得數(shù)據(jù)的增量變化的數(shù)據(jù)質(zhì)量測(cè)量結(jié)果(步驟306)。后面的附解說明了按照本發(fā)明,關(guān)于變換成列式格式的加載數(shù)據(jù)評(píng)估質(zhì)量規(guī)則的方法的實(shí)施例的例子。圖4示出具有4列的數(shù)據(jù)集(步驟400),所述4列是在初始加載110中從數(shù)據(jù)源100中提取的。進(jìn)行初始數(shù)據(jù)集的變換,以通過按照包含整個(gè)數(shù)據(jù)集的包含在每一列中的所有相異值的分類列表的格式來單獨(dú)保存每一列,在DDQM 118的主存儲(chǔ)器120中創(chuàng)建數(shù)據(jù)列404、406、408、410(步驟402),其中,每個(gè)相異值與數(shù)據(jù)集中包含該值的行ID的列表相關(guān)聯(lián)。在另一個(gè)實(shí)施例中,如圖5中所示,可通過把每條質(zhì)量規(guī)則分解成其單個(gè)項(xiàng),隨后把所述單個(gè)項(xiàng)應(yīng)用于相關(guān)數(shù)據(jù)列,來執(zhí)行質(zhì)量管理。質(zhì)量規(guī)則的分解生成運(yùn)算樹,所述運(yùn)算可以是函數(shù)、算術(shù)運(yùn)算、測(cè)試和/或布爾運(yùn)算符。圖6圖解說明了其中在運(yùn)行三條規(guī)則之后,對(duì)相關(guān)數(shù)據(jù)列執(zhí)行所選質(zhì)量規(guī)則的每個(gè)單獨(dú)運(yùn)算的實(shí)施例,證明對(duì)于數(shù)據(jù)質(zhì)量管理的評(píng)估是對(duì)包含在數(shù)據(jù)列中的相異值進(jìn)行的,而不是對(duì)所有值進(jìn)行的。圖6示出了以下列式結(jié)構(gòu)(整個(gè)用附圖標(biāo)記122指示)數(shù)據(jù)列 404,406,408,410 和列高速緩存 506,508,510,512,514,516,600,602,604,606,608,610
O·一旦計(jì)算了運(yùn)算-例如,圖6中的’ Ucase(Coll)’506,那么按照與用于保存數(shù)據(jù)列本身的格式類似的格式,把運(yùn)算結(jié)果高速緩存到主存儲(chǔ)器(RAM)中的列高速緩存中。被高速緩存的運(yùn)算結(jié)果可在任何時(shí)間被刪除和被重新計(jì)算,而不會(huì)丟失數(shù)據(jù),并且它們可在所述相異值的列表中包含特殊的內(nèi)部’未知’值,用于保存由于一些數(shù)據(jù)值已改變,因而對(duì)其來說值目前未知的所有行ID。按照與其它運(yùn)算相似的方式,建立高速緩存的測(cè)試結(jié)果(例如,圖6中的’C013O1’514),但是,可能的相異值的列表限于’真’、’假’、’不適用’或者’未知’。在評(píng)估了所有質(zhì)量規(guī)則的所有運(yùn)算之后,主存儲(chǔ)器(RAM) 120包含包括數(shù)據(jù)列和列高速緩存的列式結(jié)構(gòu)122和列高速緩存之間的相關(guān)性,如圖6中所示。如果在不同的質(zhì)量規(guī)則或者在相同質(zhì)量規(guī)則的不同地方中使用質(zhì)量規(guī)則的相同運(yùn)算,那么該運(yùn)算只被計(jì)算一次并被標(biāo)記成具有若干相關(guān)列高速緩存(例如,對(duì)圖6中的’ ucase(col2)’508和’ C013+C014' 600來說,情況就是這樣)。如果相同的質(zhì)量規(guī)則被運(yùn)行若干次,而數(shù)據(jù)一直未改變,那么只有第一次運(yùn)行會(huì)花時(shí)間執(zhí)行,以便為質(zhì)量規(guī)則的運(yùn)行在主存儲(chǔ)器120中建立列高速緩存。如果數(shù)據(jù)和規(guī)則兩者都未改變,那么質(zhì)量規(guī)則的進(jìn)一步執(zhí)行將只返回高速緩存的結(jié)果(如果仍然可用),而沒有任何執(zhí)行延遲。注意,在現(xiàn)有技術(shù)中,這一直是不可能的,并且每次執(zhí)行時(shí),都會(huì)觸發(fā)完全執(zhí)行。所需資源和執(zhí)行時(shí)間的減少是顯而易見的。長(zhǎng)時(shí)間未使用的包含質(zhì)量規(guī)則的運(yùn)算的中間結(jié)果的列高速緩存(下面被稱為列高速緩存)可被自動(dòng)地從主存儲(chǔ)器120中刪除,以防止日益增長(zhǎng)的存儲(chǔ)器需求。這可通過時(shí)間閾值或者其它更復(fù)雜的老化算法來實(shí)現(xiàn)。圖7示出在質(zhì)量規(guī)則的各項(xiàng)的子集已被修改,而數(shù)據(jù)集未改變的情況下發(fā)生的事情。在圖7中所示的其中兩條質(zhì)量規(guī)則已被稍微修改(用粗體突出修改)的特定例子中,不必完全重新評(píng)估質(zhì)量規(guī)則,而只需要評(píng)估包含先前不是質(zhì)量規(guī)則的一部分的新運(yùn)算的項(xiàng)。在圖7中圖解說明的例子中,’Col3+Col4>0’602和’ (Col3+Col4)/2<0. 6,610是以前未使用的新測(cè)試,從而必須計(jì)算這些列高速緩存。這兩個(gè)測(cè)試可以仍然重新使用包含以前已被計(jì)算并且仍然真實(shí)的’ col3+Col4’ 600和’(Col3+Col4)/2’ 604的結(jié)果的列高速緩存,因?yàn)閿?shù)據(jù)一直未改變。本發(fā)明的實(shí)施例可提供一種通過只把質(zhì)量規(guī)則的修改項(xiàng)應(yīng)用于數(shù)據(jù)列,而不是評(píng)估整個(gè)質(zhì)量規(guī)則,來測(cè)量數(shù)據(jù)質(zhì)量的快速方法,因?yàn)橹恍枰匦掠?jì)算質(zhì)量規(guī)則的修改項(xiàng)以及它們的相關(guān)列高速緩存。圖8示出在對(duì)修改的數(shù)據(jù)集執(zhí)行相同質(zhì)量規(guī)則的情況下發(fā)生的事情,在該特定例子中,通過對(duì)源表400的更新操作,在行2中修改了 Coll 404和Col2 406的值。當(dāng)增量變化被輸入DDQM 118的主存儲(chǔ)器(RAM) 120中時(shí),Coll 404和Col2 406中的相異值被更新(圖8中用粗體突出所述修改),從而生成更新的數(shù)據(jù)列Coll 404a和Col2 406a。就Coll404a來說,由于行2的新值不是新的相異值,因此變化僅僅是行ID 2從值B到值C的重賦值。就Col2 406a來說,行2的新值不存在于先前的數(shù)據(jù)列中。在這種情況下,必須創(chuàng)建新的相異值,并把行ID 2賦值給它。DDQM 118保存數(shù)據(jù)列和包含質(zhì)量規(guī)則的運(yùn)算的列高速緩存之間的相依關(guān)系,從而保存關(guān)于作為對(duì)加載數(shù)據(jù)的修改的響應(yīng),哪些列高速緩存必須被更新或無效的信息。在諸如’ ucase(coll)’ 506和’ ucase (col2)' 508的標(biāo)量函數(shù)的情況下,只有列高速緩存的值被更新。只有新的相異值必須被應(yīng)用于質(zhì)量規(guī)則的各個(gè)單個(gè)項(xiàng),從而縮短了計(jì)算時(shí)間。對(duì) 于’ ucase (coll) ’ 506a和’ ucase (col2) ’ 508a的列高速緩存的修改傳播取決于它們的列高速緩存的修改或無效。在諸如’ ucase (coll)+ucase (col2)’510a的多列標(biāo)量運(yùn)算的情況下,行2的新值的計(jì)算可能比諸如前一步驟中對(duì)于簡(jiǎn)單標(biāo)量函數(shù)的計(jì)算更復(fù)雜,因?yàn)樵谀軌蛴?jì)算新的級(jí)聯(lián)值之前,必須在’ ucase (coll) ’ 506a和’ ucase (col2) ’ 508a中找到相同的行ID。在這種情況下,DDQM 118的主存儲(chǔ)器(RAM) 120可以簡(jiǎn)單地決定把行ID2重新分配給特殊值’未知’,指示質(zhì)量規(guī)則的下次執(zhí)行請(qǐng)求該列高速緩存,分配給’未知’值的所有行ID必須被重新計(jì)算。包含質(zhì)量規(guī)則的運(yùn)算的列高速緩存的更新/無效沿著由數(shù)據(jù)規(guī)則的分解樹給出的相關(guān)性路徑,傳播包含質(zhì)量規(guī)則的運(yùn)算的其它列高速緩存的其它更新/無效。在其中不可能發(fā)生相關(guān)列高速緩存的即時(shí)更新的一些情況下,只有修改的數(shù)據(jù)值被標(biāo)記為’未知’,而不是整個(gè)列高速緩存被標(biāo)記為’未知’。列高速緩存可以保持這種部分未知的狀態(tài),直到所選質(zhì)量規(guī)則的下次執(zhí)行需要這些列高速緩存之一。在這種情況下,只有被標(biāo)記為’未知’的行ID必須被重新計(jì)算,這與評(píng)估源數(shù)據(jù)集中的所有條目的值相比要快得多。在聚合運(yùn)算的情況下,一行的值的改變會(huì)導(dǎo)致重新計(jì)算包含該運(yùn)算的整個(gè)列高速緩存,質(zhì)量規(guī)則的下次執(zhí)行需要所述列高速緩存的相關(guān)從屬列高速緩存時(shí),必須完全重新計(jì)算所述相關(guān)從屬列高速緩存。注意,這在由于另一個(gè)規(guī)則變化而根本不再需要當(dāng)前形式的列高速緩存的情況下,仍然節(jié)省了計(jì)算時(shí)間。圖8用粗體示出了包含由數(shù)據(jù)列的更新引起的質(zhì)量規(guī)則的運(yùn)算的列高速緩存的所有修改。包含不取決于修改的數(shù)據(jù)列的數(shù)據(jù)質(zhì)量規(guī)則的各項(xiàng)的運(yùn)算的列高速緩存保持不變。用于更新數(shù)據(jù)列和列高速緩存的最小工作量策略的說明為了對(duì)數(shù)據(jù)列和列高速緩存實(shí)現(xiàn)最小更新策略,在一個(gè)實(shí)施例中,可以使用以下實(shí)現(xiàn)考慮如在前部分中所述,由于基本數(shù)據(jù)被改變而變得無效的高速緩存應(yīng)當(dāng)觸發(fā)所有相關(guān)高速緩存也變得無效。然而,遵循相關(guān)性圖并進(jìn)行該高速緩存及其所有后續(xù)高速緩存的重新計(jì)算是代價(jià)非常高并且時(shí)間密集的。此外,所有高速緩存的’被動(dòng)的’重新計(jì)算并不總是必需的,有時(shí)有可能更新該高速緩存。為了確定對(duì)高速緩存的更新是否可能或者是否需要完全的重新計(jì)算,必須區(qū)分運(yùn)算類別。對(duì)于以下考慮,假定所有表達(dá)式被分解,使得只保留原子表達(dá)式。例子coll+col2+col3=— (coll+col2) + (col 3)運(yùn)算類別及其范圍的概述
權(quán)利要求
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,通過相對(duì)于預(yù)定的數(shù)據(jù)質(zhì)量度量測(cè)量加載的數(shù)據(jù)的數(shù)據(jù)質(zhì)量來監(jiān)控?cái)?shù)據(jù)質(zhì)量,其中,通過把在質(zhì)量規(guī)則中定義的邏輯演算應(yīng)用于加載的數(shù)據(jù)來測(cè)量數(shù)據(jù)質(zhì)量,所述方法包括利用加載的數(shù)據(jù)的增量變化和/或質(zhì)量規(guī)則的增量變化來進(jìn)行數(shù)據(jù)質(zhì)量測(cè)量。
2.按照權(quán)利要求I所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,數(shù)據(jù)源(100)具有包含多個(gè)元素的數(shù)據(jù)集,所述方法包括提取(102,104)、加載(110,112)和把所述數(shù)據(jù)集變換(202)成具有數(shù)據(jù)集的每個(gè)元素一個(gè)單獨(dú)數(shù)據(jù)列(404,406, 408, 410, 404a, 406a)的列式格式(122)。
3.按照權(quán)利要求I或2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,質(zhì)量規(guī)則的增量變化包含至少一個(gè)數(shù)據(jù)質(zhì)量規(guī)則的至少一項(xiàng)的至少一種改變,所述至少一個(gè)數(shù)據(jù)質(zhì)量規(guī)則包含項(xiàng)的級(jí)聯(lián),通過把變化的項(xiàng)應(yīng)用(204,306)于加載的數(shù)據(jù)或者只應(yīng)用于加載的數(shù)據(jù)的增量變化來進(jìn)行質(zhì)量測(cè)量。
4.按照任意前述權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,響應(yīng)初始數(shù)據(jù)加載(110),或者在單個(gè)數(shù)據(jù)列的至少一個(gè)元素改變的情況下,響應(yīng)增量數(shù)據(jù)加載(306),進(jìn)行質(zhì)量規(guī)則的應(yīng)用(204),所述方法進(jìn)一步包括沿著通過把質(zhì)量規(guī)則分解成其各個(gè)項(xiàng)而獲得并體現(xiàn)成樹形結(jié)構(gòu)因而被定義為分解樹的相關(guān)性路徑,創(chuàng)建多個(gè)列式數(shù)據(jù)對(duì)象(122),每個(gè)列式數(shù)據(jù)對(duì)象(122)高速緩存把質(zhì)量規(guī)則的各個(gè)項(xiàng)應(yīng)用(204,306)于各個(gè)數(shù)據(jù)列(404,406,408,410,404a,406a)的中間結(jié)果,并因此被定義為中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)。
5.按照權(quán)利要求4所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中, -每一個(gè)單獨(dú)數(shù)據(jù)列的一個(gè)列高速緩存(404,406,408,410,404a,406a)被描述為葉節(jié)點(diǎn), -質(zhì)量規(guī)則的每一個(gè)單獨(dú)項(xiàng)的一個(gè)列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)被描述為枝節(jié)點(diǎn), -質(zhì)量規(guī)則的各個(gè)項(xiàng)的每個(gè)子集的一個(gè)列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)被描述為枝節(jié)點(diǎn), -用于表示應(yīng)用的數(shù)據(jù)質(zhì)量規(guī)則的總體結(jié)果的一個(gè)列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)被描述為根節(jié)點(diǎn)。
6.按照權(quán)利要求4或5的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,數(shù)據(jù)列(404,406,408,410,404a, 406a)的更新只傳播到按照分解樹與各個(gè)相關(guān)數(shù)據(jù)列具有相關(guān)性的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)。
7.按照權(quán)利要求6的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,通過根據(jù)與相關(guān)性路徑相關(guān)聯(lián)的質(zhì)量規(guī)則中的運(yùn)算符的類型來應(yīng)用更新策略,最小化中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)的更新。
8.按照權(quán)利要求7的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,與相關(guān)性路徑相關(guān)聯(lián)的質(zhì)量規(guī)則至少包含以下之一標(biāo)量運(yùn)算、多列標(biāo)量運(yùn)算、聚合運(yùn)算、和多列多值運(yùn)算。
9.按照權(quán)利要求4-8任意之一所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,更新策略包含下列中的至少一個(gè) -與被更新的各個(gè)數(shù)據(jù)列具有相關(guān)性的各個(gè)中間列高速緩存的直接更新, -標(biāo)記各個(gè)中間列高速緩存的受影響的行,之后重新計(jì)算所述受影響的行, -各個(gè)中間列高速緩存的無效。
10.按照權(quán)利要求4-9任意之一所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,由所選質(zhì)量規(guī)則的各個(gè)項(xiàng)的應(yīng)用導(dǎo)致的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a)可以首先被壓縮,然后在不使用時(shí)間閾值的預(yù)置確定之后被刪除。
11.按照任意前述權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,利用質(zhì)量規(guī)則的增量變化來進(jìn)行數(shù)據(jù)質(zhì)量測(cè)量包含以下步驟a)_d),以便通過步驟a),利用分解樹結(jié)構(gòu)來進(jìn)行數(shù)據(jù)質(zhì)量測(cè)量 a)把所選質(zhì)量規(guī)則分解成其單個(gè)項(xiàng),并把它們投射到分解樹上,分解樹的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)于所選質(zhì)量規(guī)則的一個(gè)單獨(dú)項(xiàng),其中所述方法進(jìn)一步包括 b)把每個(gè)單獨(dú)數(shù)據(jù)列(404,406,408,410,404a,406a)應(yīng)用于所述樹,得到每個(gè)節(jié)點(diǎn)的包含所選運(yùn)算的中間結(jié)果的一個(gè)中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 60.6a, 608a), c)如果發(fā)生加載的數(shù)據(jù)的增量變化(112),只有在加載的數(shù)據(jù)的增量變化影響節(jié)點(diǎn)的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 5.10a, 512a, 516a, 602a, 606a, 608a)的內(nèi)容的情況下,才更新所述節(jié)點(diǎn)的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a, 606a, 608a),和 / 或 d)如果發(fā)生質(zhì)量規(guī)則的增量變化,只有在質(zhì)量規(guī)則的增量變量影響節(jié)點(diǎn)的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a, 516a, 602a,606a, 608a)的內(nèi)容的情況下,才更新具有改變的質(zhì)量規(guī)則的樹結(jié)構(gòu)并更新所述節(jié)點(diǎn)的中間列高速緩存(506,508,510,512,514,516,600,602,604,608,610,506a, 508a, 510a, 512a,.516a, 602a, 606a, 608a)。
12.按照任意前述權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,通過加載的數(shù)據(jù)的增量變化(112)來更新(304)各個(gè)數(shù)據(jù)列(404,406,408,410,404a,406a)的機(jī)制包含 -在加載的數(shù)據(jù)的增量變化(112)包含向數(shù)據(jù)源(100)中的數(shù)據(jù)集中加入值的情況下,識(shí)別在列式變換之后受到影響的各個(gè)數(shù)據(jù)列(404,406, 408, 410, 404a, 406a),然后把所述值加入識(shí)別的各個(gè)數(shù)據(jù)列(404,406,408,410,404a,406a)中, -在加載的數(shù)據(jù)的增量變化(112)包含從數(shù)據(jù)源(100)中的數(shù)據(jù)集中刪除值的情況下,識(shí)別在列式變換之后受到影響的各個(gè)數(shù)據(jù)列(404,406, 408, 410, 404a, 406a),然后從識(shí)別的各個(gè)數(shù)據(jù)列(404,406,408,410,404a, 406a)中刪除所述值, -在加載的數(shù)據(jù)的增量變化(112)包含更新數(shù)據(jù)源(100)中的數(shù)據(jù)集中的值的情況下,識(shí)別在列式變換之后受到影響的各個(gè)數(shù)據(jù)列(404,406,408,410,404a, 406a),然后直接更新識(shí)別的各個(gè)數(shù)據(jù)列(404,406,408,410,404a,406a)中的值。
13.按照任意前述權(quán)利要求所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中,通過利用變化數(shù)據(jù)捕獲(CDC)機(jī)制(104,302)來識(shí)別加載的數(shù)據(jù)的增量變化(112)。
14.一種用于數(shù)據(jù)質(zhì)量監(jiān)控的計(jì)算機(jī)系統(tǒng),包括被配置成執(zhí)行按照權(quán)利要求1-13任意之一所述的方法中的步驟的裝置。
15.一種用于數(shù)據(jù)質(zhì)量監(jiān)控的計(jì)算 機(jī)系統(tǒng),所述系統(tǒng)在操作上耦接到包含加載的數(shù)據(jù)、預(yù)定的數(shù)據(jù)質(zhì)量度量和質(zhì)量規(guī)則的數(shù)據(jù)庫(kù),其中,所述系統(tǒng)適合于相對(duì)于預(yù)定數(shù)據(jù)質(zhì)量度量,測(cè)量加載的數(shù)據(jù)的數(shù)據(jù)質(zhì)量(208、306),其中,所述系統(tǒng)適合于通過把在質(zhì)量規(guī)則中定義的邏輯演算應(yīng)用于加載的數(shù)據(jù)(204),以及利用加載的數(shù)據(jù)的增量變化(112)和/或質(zhì)量規(guī)則的增量變化進(jìn)行數(shù)據(jù)質(zhì)量測(cè)量,來測(cè)量數(shù)據(jù)質(zhì)量。
全文摘要
本發(fā)明公開了用于數(shù)據(jù)質(zhì)量監(jiān)控的系統(tǒng)和方法。數(shù)據(jù)質(zhì)量監(jiān)控指的是相對(duì)于預(yù)定數(shù)據(jù)質(zhì)量度量來測(cè)量加載的數(shù)據(jù)的數(shù)據(jù)質(zhì)量。通過把在質(zhì)量規(guī)則中定義的邏輯演算應(yīng)用于加載的數(shù)據(jù)來測(cè)量數(shù)據(jù)質(zhì)量。利用以下至少之一來進(jìn)行數(shù)據(jù)質(zhì)量測(cè)量加載的數(shù)據(jù)的增量變化和質(zhì)量規(guī)則的增量變化。
文檔編號(hào)G06F11/30GK102855170SQ20121022574
公開日2013年1月2日 申請(qǐng)日期2012年6月29日 優(yōu)先權(quán)日2011年7月1日
發(fā)明者M·奧伯霍菲爾, J·塞弗特, Y·賽勒特, S·尼爾克 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司