專利名稱:用于在日志監(jiān)視器結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系 ...的制作方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及數(shù)據(jù)庫對象抽取,尤其涉及一種系統(tǒng)和方法,用于在日志監(jiān)視器結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯(businesslogic)的情況下保持大粒度(large-grained)數(shù)據(jù)庫并發(fā)。
背景技術(shù):
目前,公司的數(shù)據(jù)庫管理系統(tǒng)分為兩類生產(chǎn)和信息。包含了操作數(shù)據(jù)存儲(chǔ)器的生產(chǎn)數(shù)據(jù)庫充當(dāng)儲(chǔ)存庫,用于保存那些在制造、生產(chǎn)及事務(wù)系統(tǒng)的操作中產(chǎn)生或使用的實(shí)時(shí)或接近實(shí)時(shí)的數(shù)據(jù)。與此相反,信息數(shù)據(jù)庫對那些從生產(chǎn)數(shù)據(jù)庫中周期性獲取的數(shù)據(jù)加以保存,以供決策支持和聯(lián)機(jī)分析處理系統(tǒng)使用。信息數(shù)據(jù)庫包含了通常構(gòu)造為企業(yè)數(shù)據(jù)庫和數(shù)據(jù)集市(datamart)的數(shù)據(jù)倉庫。
通常,數(shù)據(jù)倉庫保存了那些描述數(shù)據(jù)庫結(jié)構(gòu)的信息數(shù)據(jù)和元數(shù)據(jù)。信息數(shù)據(jù)庫至少需要與生產(chǎn)數(shù)據(jù)庫中保存的數(shù)據(jù)保持大粒度數(shù)據(jù)并發(fā),以便進(jìn)行趨勢分析和數(shù)據(jù)推導(dǎo)。
聯(lián)機(jī)事務(wù)處理系統(tǒng)是生產(chǎn)數(shù)據(jù)的主要制造者。聯(lián)機(jī)事務(wù)處理系統(tǒng)需要一個(gè)具有不間斷可用性的最小保證響應(yīng)時(shí)間,尤其是在電子商務(wù)(e-commerce)系統(tǒng)中。高數(shù)據(jù)量以及對高可用性的需要要求使用事務(wù)服務(wù)器而不是較慢的數(shù)據(jù)庫服務(wù)器。
生產(chǎn)數(shù)據(jù)為決策支持以及聯(lián)機(jī)分析處理系統(tǒng)提供了原始谷物(raw grist)。這些系統(tǒng)對數(shù)據(jù)進(jìn)行分析并且生成報(bào)告,以便在公司的計(jì)劃和戰(zhàn)略操作中使用。原始生產(chǎn)數(shù)據(jù)由數(shù)據(jù)挖掘、復(fù)制以及凈化工具轉(zhuǎn)換成信息數(shù)據(jù)。決策支持與聯(lián)機(jī)分析處理系統(tǒng)可以忍受較慢的響應(yīng)時(shí)間。盡管如此,這些系統(tǒng)的數(shù)據(jù)需要必須與生產(chǎn)系統(tǒng)所需要的自治保持平衡。
頻繁更新信息數(shù)據(jù)庫有可能會(huì)對生產(chǎn)系統(tǒng)的運(yùn)行產(chǎn)生不利影響。聯(lián)機(jī)事務(wù)處理系統(tǒng)在接近總的硬件容量或是處于總的硬件容量的狀態(tài)下運(yùn)行。舉例來說,典型的電子商務(wù)站點(diǎn)每秒可以接收500個(gè)以上的事務(wù)或是“點(diǎn)擊”。通過中斷生產(chǎn)系統(tǒng)的運(yùn)行來更新信息數(shù)據(jù)庫,這會(huì)加劇保持必要可用性及響應(yīng)性等級的問題。
在數(shù)據(jù)檢索處理過程中,生產(chǎn)數(shù)據(jù)必須通過在數(shù)據(jù)檢索過程中商業(yè)邏輯應(yīng)用而被周期性轉(zhuǎn)換為信息數(shù)據(jù)。通常,檢索和轉(zhuǎn)換生產(chǎn)數(shù)據(jù)所需要的商業(yè)邏輯非常復(fù)雜,所述商業(yè)邏輯在計(jì)算上也是非常密集的。同樣,商業(yè)邏輯相對比較固定和靜態(tài)。這些因素有可能進(jìn)一步影響到系統(tǒng)響應(yīng)性。
現(xiàn)有技術(shù)中已經(jīng)提出了兩種用于對信息數(shù)據(jù)庫進(jìn)行更新的解決方案。一種解決方案給出了一個(gè)數(shù)據(jù)復(fù)制管理器,其在轉(zhuǎn)換數(shù)據(jù)的同時(shí)周期性拷貝生產(chǎn)數(shù)據(jù)。不幸的是,這種解決方案將會(huì)導(dǎo)致大量的數(shù)據(jù)復(fù)制并且有可能是非常耗時(shí)的。
另一種現(xiàn)有技術(shù)的解決方案引入了一個(gè)周期性更新的多層數(shù)據(jù)庫架構(gòu)。商業(yè)邏輯是在針對生產(chǎn)數(shù)據(jù)庫所執(zhí)行的查詢中實(shí)現(xiàn)的。第二層商業(yè)邏輯可以使用檢索到的信息來填充和更新那些使用了部門特有的查詢的數(shù)據(jù)集市。在一個(gè)快速變化的環(huán)境中,過多更新可能會(huì)強(qiáng)烈干擾生產(chǎn)系統(tǒng)的運(yùn)行。
因此,需要一種能以高頻率和低開銷而對信息數(shù)據(jù)庫進(jìn)行更新的數(shù)據(jù)管理器。這種方法實(shí)質(zhì)上免除了數(shù)據(jù)復(fù)制和無效的數(shù)據(jù)檢索,由此將資源消耗減至最少。
進(jìn)一步需要一種方法來對那些具有可動(dòng)態(tài)再定義的參數(shù)的信息數(shù)據(jù)進(jìn)行檢索。這種方法允許對商業(yè)邏輯進(jìn)行靈活的再定義,以便用一種特定(ad hoc)方式來選擇數(shù)據(jù)。
此外還需要一種方法來對信息數(shù)據(jù)庫進(jìn)行無干擾更新。這種方法將會(huì)對生產(chǎn)系統(tǒng)的運(yùn)行產(chǎn)生最小影響并顧及自主操作。
發(fā)明內(nèi)容
本發(fā)明提供了一種使用間接檢索自源數(shù)據(jù)庫的數(shù)據(jù)來對目的數(shù)據(jù)庫進(jìn)行更新的系統(tǒng)和方法,所述間接檢索是經(jīng)由基于日志的監(jiān)視來進(jìn)行的。事務(wù)日志文件是作為事務(wù)服務(wù)器提交到源數(shù)據(jù)庫的事務(wù)的副產(chǎn)品而產(chǎn)生的。日志文件受到監(jiān)視,并且日志文件是相對于一個(gè)動(dòng)態(tài)規(guī)則集來進(jìn)行評估的,所述規(guī)則集規(guī)定了執(zhí)行商業(yè)邏輯的選擇標(biāo)準(zhǔn)。通過使用描述目的數(shù)據(jù)庫模式的元數(shù)據(jù)而將那些滿足選擇標(biāo)準(zhǔn)的日志條目轉(zhuǎn)換成更新記錄。并且可以使用一個(gè)數(shù)據(jù)庫建立工具來動(dòng)態(tài)地重新定義規(guī)則集以及元數(shù)據(jù)。日志監(jiān)視器自動(dòng)修改選擇標(biāo)準(zhǔn)以及生成記錄的操作。在數(shù)據(jù)檢索過程中,日志監(jiān)視器使用每個(gè)日志條目中保存的信息來間接推導(dǎo)那些對事務(wù)服務(wù)器運(yùn)行具有最小影響的信息數(shù)據(jù)。
本發(fā)明的一個(gè)實(shí)施例是一種經(jīng)由基于日志的事務(wù)監(jiān)視來對一個(gè)信息數(shù)據(jù)庫進(jìn)行刷新的系統(tǒng)和方法。一個(gè)生產(chǎn)數(shù)據(jù)庫被保持,其中包含了一個(gè)或多個(gè)表。每個(gè)表都存儲(chǔ)了由事務(wù)處理系統(tǒng)產(chǎn)生的生產(chǎn)數(shù)據(jù)的記錄。日志條目周期性存入一個(gè)日志文件。對于提交到生產(chǎn)數(shù)據(jù)庫的每個(gè)事務(wù)而言,將會(huì)為其產(chǎn)生至少一個(gè)日志條目。一個(gè)信息數(shù)據(jù)庫被保持,其中包含了一個(gè)或多個(gè)表。每個(gè)表都存儲(chǔ)了供決策支持系統(tǒng)使用的信息數(shù)據(jù)的記錄。通過使用一個(gè)規(guī)定數(shù)據(jù)選擇標(biāo)準(zhǔn)的規(guī)則集,對存入日志文件的日志條目進(jìn)行動(dòng)態(tài)分析。而從滿足數(shù)據(jù)選擇標(biāo)準(zhǔn)的生產(chǎn)數(shù)據(jù)中產(chǎn)生的更新記錄將會(huì)保存在信息數(shù)據(jù)庫中。
另一個(gè)實(shí)施例是一種在日志監(jiān)視器結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)和方法。以一種數(shù)據(jù)操縱語言來進(jìn)行表述的操作是針對一個(gè)源數(shù)據(jù)庫而執(zhí)行的。至少一個(gè)操作構(gòu)成了完成每個(gè)數(shù)據(jù)庫事務(wù)的提交操作。并且一個(gè)當(dāng)前規(guī)則集將被定義。每個(gè)規(guī)則都包含商業(yè)邏輯,所述商業(yè)邏輯指定了關(guān)于源數(shù)據(jù)庫所保存記錄的一個(gè)數(shù)據(jù)選擇標(biāo)準(zhǔn)。在日志中,為每個(gè)提交到源數(shù)據(jù)庫的事務(wù)周期性產(chǎn)生一個(gè)日志條目。每個(gè)日志條目都對一個(gè)受影響的記錄進(jìn)行識別并且包含了事務(wù)數(shù)據(jù)。在每個(gè)日志條目中識別的事務(wù)都是針對當(dāng)前規(guī)則集中指定的數(shù)據(jù)選擇標(biāo)準(zhǔn)來進(jìn)行評估的。根據(jù)那些對一個(gè)目的數(shù)據(jù)庫進(jìn)行描述的元數(shù)據(jù)建立一個(gè)新記錄。這個(gè)新記錄包括從滿足選擇標(biāo)準(zhǔn)的每個(gè)事務(wù)的日志條目中選擇事務(wù)數(shù)據(jù)。新記錄將會(huì)存入目的數(shù)據(jù)庫。目的數(shù)據(jù)庫中保存的數(shù)據(jù)包括源數(shù)據(jù)庫的至少一個(gè)部分子集。
本發(fā)明的一個(gè)優(yōu)點(diǎn)是能夠動(dòng)態(tài)地重新定義那些按照事務(wù)日志監(jiān)視器所解釋的規(guī)則來執(zhí)行的商業(yè)邏輯。另一個(gè)優(yōu)點(diǎn)是利用數(shù)據(jù)倉庫所固有的元數(shù)據(jù)來智能填充一個(gè)數(shù)據(jù)庫,并且允許對于數(shù)據(jù)庫結(jié)構(gòu)中的改變擁有附加的響應(yīng)性等級。
對本領(lǐng)域技術(shù)人員來說,本發(fā)明的其他實(shí)施例將通過以下詳細(xì)描述而變得顯而易見,其中通過圖解說明預(yù)期用于實(shí)施本發(fā)明的最佳模式而對本發(fā)明的實(shí)施例進(jìn)行了描述。正如將要了解的那樣,本發(fā)明能夠提供其他的不同實(shí)施例,并且可以在許多非常明顯的方面對本發(fā)明的若干細(xì)節(jié)進(jìn)行修改,所有這些都不會(huì)脫離本發(fā)明的實(shí)質(zhì)和范圍。因此,事實(shí)上把附圖和詳細(xì)描述看作是說明性的,它們并不具有限制性。
圖1是顯示根據(jù)本發(fā)明的分布式計(jì)算機(jī)環(huán)境的框圖,包括一個(gè)在日志監(jiān)視器結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)。
圖2是顯示現(xiàn)有技術(shù)中的多層數(shù)據(jù)庫結(jié)構(gòu)的功能性框圖。
圖3是顯示用于維持圖1的大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)的框圖。
圖4是顯示圖3系統(tǒng)所用日志條目的數(shù)據(jù)結(jié)構(gòu)圖。
圖5是顯示通過基于日志的事務(wù)監(jiān)視而進(jìn)行的信息數(shù)據(jù)庫更新的處理流程圖。
圖6是顯示圖3系統(tǒng)軟件模塊的功能性框圖。
圖7是顯示規(guī)則條目的數(shù)據(jù)結(jié)構(gòu)圖。
圖8是顯示根據(jù)本發(fā)明在日志監(jiān)視器結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯的情況下保持大粒度數(shù)據(jù)庫并發(fā)的方法的流程圖。
具體實(shí)施例方式
圖1是一個(gè)顯示了根據(jù)本發(fā)明的分布計(jì)算環(huán)境10的框圖,包括一個(gè)用于在日志監(jiān)視器結(jié)合了可以動(dòng)態(tài)再定義的商業(yè)邏輯的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)。一個(gè)操作數(shù)據(jù)存儲(chǔ)器(ODS)11保存了生產(chǎn)系統(tǒng)12產(chǎn)生的生產(chǎn)數(shù)據(jù)。生產(chǎn)系統(tǒng)12可以構(gòu)成一個(gè)聯(lián)機(jī)事務(wù)處理系統(tǒng)來辦理電子商務(wù)(e-commerce),預(yù)約、銷售點(diǎn)事務(wù)、庫存控制、工廠及制造操作、以及相似類型的行為。出于效率方面的考慮,生產(chǎn)系統(tǒng)12保持了一個(gè)本地生產(chǎn)數(shù)據(jù)庫13,在其內(nèi)部保存了生產(chǎn)數(shù)據(jù)。
為了保持高等級的響應(yīng)性和可用性,操作數(shù)據(jù)存儲(chǔ)器11與專用事務(wù)服務(wù)器14相耦合,該服務(wù)器向操作數(shù)據(jù)存儲(chǔ)器11提供一個(gè)高吞吐量的接口。如本領(lǐng)域已知的那樣,生產(chǎn)系統(tǒng)12與事務(wù)服務(wù)器14經(jīng)由網(wǎng)絡(luò)15相互連接,其中所述網(wǎng)絡(luò)可以是一個(gè)互連網(wǎng)絡(luò)或內(nèi)部網(wǎng)絡(luò)。
操作數(shù)據(jù)存儲(chǔ)器11中保存的生產(chǎn)數(shù)據(jù)周期性復(fù)制到企業(yè)數(shù)據(jù)倉庫16。與僅僅包含生產(chǎn)數(shù)據(jù)的操作數(shù)據(jù)存儲(chǔ)器11不同,企業(yè)數(shù)據(jù)倉庫16包含了直接得到的數(shù)據(jù)值以及推導(dǎo)得出的數(shù)據(jù)值,這些數(shù)據(jù)值稱為信息數(shù)據(jù),它們是供決策支持和聯(lián)機(jī)分析處理系統(tǒng)使用的。數(shù)據(jù)庫服務(wù)器17與企業(yè)數(shù)據(jù)倉庫16相耦合,用于對企業(yè)數(shù)據(jù)倉庫16執(zhí)行數(shù)據(jù)操縱語言(DML)查詢。數(shù)據(jù)庫服務(wù)器17經(jīng)由網(wǎng)絡(luò)15而與另一個(gè)系統(tǒng)相互連接。
可以結(jié)合諸如工作組數(shù)據(jù)集市18這樣的輔助數(shù)據(jù)庫來分層構(gòu)造企業(yè)數(shù)據(jù)倉庫16。雖然企業(yè)數(shù)據(jù)倉庫16包含了從屬于公司活動(dòng)所有方面的信息數(shù)據(jù),但是每個(gè)工作組數(shù)據(jù)集市18都是一個(gè)為特定主題范圍給出信息數(shù)據(jù)專用視圖的子集,其中特定主題范圍可以是雇員記錄、銷售收入圖表等等。在一個(gè)局部網(wǎng)絡(luò)環(huán)境中,可以將工作組數(shù)據(jù)集市18與一個(gè)專用的本地?cái)?shù)據(jù)庫服務(wù)器19構(gòu)造在一起,其中本地?cái)?shù)據(jù)庫服務(wù)器19經(jīng)由局部網(wǎng)絡(luò)21而與多個(gè)客戶機(jī)20相連。局部網(wǎng)絡(luò)21轉(zhuǎn)而經(jīng)由一系列集線器22而與公司網(wǎng)絡(luò)15相互連接。
最終,舉例來說,遠(yuǎn)端客戶機(jī)23可以經(jīng)由一個(gè)互連網(wǎng)絡(luò)24來遠(yuǎn)程訪問企業(yè)數(shù)據(jù)倉庫16以及工作組數(shù)據(jù)集市18,其中互聯(lián)網(wǎng)絡(luò)經(jīng)由網(wǎng)關(guān)25而與公司網(wǎng)絡(luò)15相耦合,所述互聯(lián)網(wǎng)絡(luò)可以是互聯(lián)網(wǎng)。
操作數(shù)據(jù)存儲(chǔ)器11的特點(diǎn)是在可用性為100%并確保響應(yīng)時(shí)間(response times)的情況下具有高度易變性和變化。相反,響應(yīng)于不同客戶機(jī)20以及遠(yuǎn)端客戶機(jī)23提出的特定(ad hoc)查詢,企業(yè)數(shù)據(jù)倉庫16將會(huì)執(zhí)行靈活的操作。
企業(yè)數(shù)據(jù)倉庫16保存的信息數(shù)據(jù)必須由檢索自操作數(shù)據(jù)存儲(chǔ)器11的生產(chǎn)數(shù)據(jù)周期性刷新。根據(jù)操作數(shù)據(jù)存儲(chǔ)器11上的系統(tǒng)負(fù)載,在峰值運(yùn)行時(shí)間檢索生產(chǎn)數(shù)據(jù)很可能是不切實(shí)際的,并且最多只能在非高峰時(shí)間允許對生產(chǎn)數(shù)據(jù)進(jìn)行檢索。因此,日志監(jiān)視器26可以間接更新信息數(shù)據(jù),由此在操作數(shù)據(jù)存儲(chǔ)器11與企業(yè)數(shù)據(jù)倉庫16之間提供大粒度數(shù)據(jù)庫的并發(fā)。
日志監(jiān)視器26讀取由事務(wù)服務(wù)器14產(chǎn)生并作為事務(wù)處理副產(chǎn)品的日志條目。如下文參考圖3進(jìn)一步描述的那樣,通過把執(zhí)行商業(yè)邏輯的選擇標(biāo)準(zhǔn)應(yīng)用于一個(gè)可以動(dòng)態(tài)再定義的規(guī)則集而對單獨(dú)的日志條目進(jìn)行檢索和分析。更新記錄是從那些滿足選擇標(biāo)準(zhǔn)以便對企業(yè)數(shù)據(jù)倉庫16中的信息數(shù)據(jù)進(jìn)行更新的日志條目中產(chǎn)生的。
雖然,涉及已描述的實(shí)施例的包含操作數(shù)據(jù)存儲(chǔ)器11、企業(yè)數(shù)據(jù)倉庫16以及工作組數(shù)據(jù)集市18的數(shù)據(jù)庫特定形式而被參考的,但是本領(lǐng)域技術(shù)人員將會(huì)了解,其他形式的結(jié)構(gòu)化數(shù)據(jù)庫也可用在這里所概述的通用參數(shù)和特性以內(nèi)。此外還可以使用其他網(wǎng)狀拓?fù)浣Y(jié)構(gòu)和系統(tǒng)配置。
單獨(dú)的計(jì)算機(jī)系統(tǒng)包括生產(chǎn)系統(tǒng)12、事務(wù)服務(wù)器14、數(shù)據(jù)庫服務(wù)器17、本地?cái)?shù)據(jù)庫服務(wù)器19、客戶機(jī)20以及遠(yuǎn)端客戶機(jī)23,這些計(jì)算機(jī)系統(tǒng)是通用的程序化數(shù)字計(jì)算設(shè)備,所述設(shè)備包括一個(gè)中央處理器(CPU)、隨機(jī)存取存儲(chǔ)器(RAM)、諸如硬盤或CD-ROM驅(qū)動(dòng)器這樣的非易失輔助存儲(chǔ)器、網(wǎng)絡(luò)接口以及外圍設(shè)備,其中包括諸如鍵盤及顯示器這樣的用戶接口裝置。包含軟件程序的程序代碼以及數(shù)據(jù)被加載到RAM中,以便由CPU執(zhí)行和處理,并且將會(huì)產(chǎn)生結(jié)果,以便進(jìn)行顯示、輸出、傳送或存儲(chǔ)。
圖2是顯示現(xiàn)有技術(shù)中的多層數(shù)據(jù)庫結(jié)構(gòu)30的功能性框圖。如John Wiley & Sons公司出版并由R.Orfali著述的“Client/ServerSurvival Guide”(1999年第三版)一書中的第12-13章所描述的那樣,生產(chǎn)和信息數(shù)據(jù)庫被構(gòu)造成幾個(gè)層,以便分配數(shù)據(jù)庫更新和檢索的工作量,其中該書的內(nèi)容在此引入作為參考。事務(wù)服務(wù)器14服務(wù)于多個(gè)生產(chǎn)數(shù)據(jù)庫13。在具有最大可用性的情況下,通過使用事務(wù)服務(wù)器14而將生產(chǎn)數(shù)據(jù)大量存入操作數(shù)據(jù)存儲(chǔ)器11并從操作數(shù)據(jù)存儲(chǔ)器中大量檢索生產(chǎn)數(shù)據(jù)(步驟31)。
數(shù)據(jù)庫服務(wù)器17周期性地“分接(tap)”那些來源于操作數(shù)據(jù)存儲(chǔ)器11(步驟32)的信息數(shù)據(jù)。原始生產(chǎn)數(shù)據(jù)經(jīng)過拷貝、提純、凈化而被轉(zhuǎn)換成企業(yè)數(shù)據(jù)倉庫16保持的信息數(shù)據(jù)。從操作數(shù)據(jù)存儲(chǔ)器11中檢索生產(chǎn)數(shù)據(jù)是通過一個(gè)周期性喚醒而把來源于操作數(shù)據(jù)存儲(chǔ)器11的生產(chǎn)數(shù)據(jù)刷新到企業(yè)數(shù)據(jù)倉庫16之中的預(yù)定循環(huán)處理來完成的,其中所述預(yù)定循環(huán)處理可以是一個(gè)計(jì)時(shí)程序(cronjob)。
將生產(chǎn)數(shù)據(jù)下載到企業(yè)數(shù)據(jù)倉庫16的處理是非平凡性的,該處理需要負(fù)擔(dān)計(jì)算、存儲(chǔ)以及網(wǎng)絡(luò)接口連接的資源。信息數(shù)據(jù)檢索和轉(zhuǎn)換執(zhí)行了用于從操作數(shù)據(jù)存儲(chǔ)器11中選擇恰當(dāng)數(shù)據(jù)值的商業(yè)邏輯。每個(gè)更新都有可能涉及大量的復(fù)制信息。
為了減輕操作數(shù)據(jù)存儲(chǔ)器11上的負(fù)載,一系列專用數(shù)據(jù)集市是作為企業(yè)數(shù)據(jù)倉庫16的一個(gè)子集來創(chuàng)建的(步驟33),舉例來說,所述專用數(shù)據(jù)集市可以包括獎(jiǎng)勵(lì)數(shù)據(jù)集市(promotional datamart)34、關(guān)聯(lián)數(shù)據(jù)集市(affinity datamart)35以及購物籃數(shù)據(jù)集市36。與企業(yè)數(shù)據(jù)倉庫16相似,數(shù)據(jù)集市34-36必須由本地?cái)?shù)據(jù)服務(wù)器19使用信息數(shù)據(jù)來進(jìn)行周期性刷新。通過使用本地?cái)?shù)據(jù)庫服務(wù)器19,清除了一部分專用商務(wù)邏輯,其中所述商務(wù)邏輯是把信息數(shù)據(jù)進(jìn)一步提煉成可以由決策支持及聯(lián)機(jī)事務(wù)處理系統(tǒng)(未示出)使用的格式所必需的。
現(xiàn)有技術(shù)的方法通過分配和清除數(shù)據(jù)復(fù)制及處理操作而使決策支持及聯(lián)機(jī)分析處理系統(tǒng)的需要與生產(chǎn)系統(tǒng)的自治運(yùn)行保持平衡。然而,多層架構(gòu)30對每個(gè)專用數(shù)據(jù)庫需要的信息進(jìn)行復(fù)制。此外,多層商業(yè)邏輯的實(shí)施需要對信息數(shù)據(jù)進(jìn)行刷新和更新。這些層可能會(huì)包含重復(fù)查詢。因此需要一種較少進(jìn)行復(fù)制的解決方案。
圖3是顯示用于保持圖1大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)50的框圖。該系統(tǒng)的核心功能是由日志監(jiān)視器26執(zhí)行的。源數(shù)據(jù)庫51通常是一個(gè)操作數(shù)據(jù)存儲(chǔ)器11(如圖2所示)、也可以是一個(gè)企業(yè)數(shù)據(jù)倉庫16或者工作組數(shù)據(jù)集市18,該數(shù)據(jù)庫保存生產(chǎn)(或信息)數(shù)據(jù)。在把事務(wù)提交到源數(shù)據(jù)庫51的時(shí)候,存儲(chǔ)數(shù)據(jù)值將會(huì)發(fā)生變化。一旦提交,日志寫入器53會(huì)產(chǎn)生一個(gè)日志條目并將其寫入事務(wù)日志54,以便記錄(journal)所處理的事件。如下文參考圖4而進(jìn)一步描述的那樣,每個(gè)日志條目都包含事務(wù)數(shù)據(jù),該數(shù)據(jù)識別了表、記錄以及所執(zhí)行的操作。日志寫入器53“刷新”連續(xù)產(chǎn)生的一系列正在運(yùn)行的事務(wù)日志52(TL)。
當(dāng)日志寫入器53將日志條目寫入日志54時(shí),日志監(jiān)視器26把引入商業(yè)邏輯的選擇標(biāo)準(zhǔn)應(yīng)用于順序記錄的日志條目。
對于滿足選擇標(biāo)準(zhǔn)的每個(gè)日志條目而言,日志監(jiān)視器26對來自源數(shù)據(jù)庫51的生產(chǎn)(信息)數(shù)據(jù)進(jìn)行檢索,以便為目的數(shù)據(jù)庫58產(chǎn)生更新記錄57。由日志監(jiān)視器26使用的選擇標(biāo)準(zhǔn)是作為一個(gè)規(guī)則集58來執(zhí)行的。該規(guī)則集把那些用于對影響到所關(guān)注生產(chǎn)數(shù)據(jù)的事務(wù)進(jìn)行選擇的商業(yè)邏輯引入一個(gè)決策支持或聯(lián)機(jī)分析處理系統(tǒng)。此外,日志監(jiān)視器26使用了描述目的數(shù)據(jù)庫58所用模式的元數(shù)據(jù)56。
可以使用數(shù)據(jù)庫建立工具59來動(dòng)態(tài)地重新定義規(guī)則集55以及元數(shù)據(jù)56。適于在本發(fā)明中使用的一個(gè)數(shù)據(jù)庫建立工具59的實(shí)例是Oracle Warehouse Builder產(chǎn)品,其是由加利福尼亞RedwoodShores的Oracle公司發(fā)放許可的。用戶可以使用數(shù)據(jù)庫建立工具59來重新定義商業(yè)邏輯和元數(shù)據(jù)。重新定義被定期轉(zhuǎn)發(fā)到日志監(jiān)視器26。規(guī)則集58中的單獨(dú)規(guī)則將商業(yè)邏輯作為數(shù)據(jù)操縱語言(DML)的操作來加以執(zhí)行。日志監(jiān)視器26使用元數(shù)據(jù)56,以便將更新記錄57構(gòu)造成一種由目的數(shù)據(jù)庫58中保存的表使用的格式。以下參考圖7來對規(guī)則集55的結(jié)構(gòu)進(jìn)行更進(jìn)一步的描述。
如下所述,元數(shù)據(jù)56優(yōu)選包含四個(gè)成分。首先,元數(shù)據(jù)56描述了源數(shù)據(jù)庫51和目的數(shù)據(jù)庫58的架構(gòu)。元數(shù)據(jù)56還包括了描述數(shù)據(jù)庫鏈路及其他網(wǎng)絡(luò)別名的網(wǎng)絡(luò)信息。日志54還可以記載那些對在邏輯上加入的數(shù)據(jù)庫而執(zhí)行的事務(wù),例如分布式數(shù)據(jù)庫環(huán)境。此外,元數(shù)據(jù)56包含了作業(yè)控制及調(diào)度信息,該信息規(guī)定了所執(zhí)行的商業(yè)邏輯相對于所記錄的事務(wù)條目的執(zhí)行頻率。在所描述的實(shí)施例中,作業(yè)控制信息是在一種名為PL/SQL的更高級的數(shù)據(jù)庫操縱語言中規(guī)定的。最后,元數(shù)據(jù)56包含了用于執(zhí)行選擇標(biāo)準(zhǔn)分析的實(shí)際源代碼。對于生產(chǎn)(或信息)數(shù)據(jù)檢索或恢復(fù)的其他形式的元數(shù)據(jù)也是可以使用的。
作為一種性能優(yōu)化,日志監(jiān)視器26還可以包含一個(gè)用于暫存(staging)信息的緩存區(qū)60,其所述信息包括日志條目和更新記錄57。在所描述的實(shí)施例中,日志監(jiān)視器26是作為一個(gè)與事務(wù)服務(wù)器14以及數(shù)據(jù)庫服務(wù)器17、19分離的處理來執(zhí)行的(如圖1所示)。日志監(jiān)視器26是根據(jù)一個(gè)處理步驟序列來運(yùn)行的,以下將會(huì)參考圖8而對此進(jìn)行進(jìn)一步的描述。
圖4是顯示圖3系統(tǒng)50所使用的日志條目70的數(shù)據(jù)結(jié)構(gòu)圖。舉例來說,每個(gè)日志條目70包含5個(gè)信息字段。時(shí)戳71記錄了將相關(guān)事務(wù)提交到源數(shù)據(jù)庫51的日期與時(shí)間。表格標(biāo)識符72以及記錄標(biāo)識符73指明了事務(wù)提交所針對的源表及一個(gè)或多個(gè)記錄條目。操作類型74標(biāo)識了所提交的事務(wù)。最后,撤銷(Undo)信息75可選地描述了應(yīng)用于數(shù)據(jù)的實(shí)際改變,其中所述數(shù)據(jù)處于一種允許顯示(unroll)所提交事務(wù)的格式。在所描述的實(shí)施例中,撤銷信息75識別了相關(guān)記錄的表空間內(nèi)容與存儲(chǔ)位置。在使用撤銷信息75的情況下,所提交的事務(wù)可以顯示,并且原始記錄條目將會(huì)恢復(fù)。日志監(jiān)視器26(如圖3所示)還可以使用撤銷信息75來確定相對于當(dāng)前日志條目70而言,是否滿足了規(guī)則集55中的選擇標(biāo)準(zhǔn)。
圖5是一個(gè)顯示經(jīng)由基于日志的事務(wù)監(jiān)視而進(jìn)行的信息數(shù)據(jù)庫更新的處理流程圖。當(dāng)來自源數(shù)據(jù)庫51的更新記錄57進(jìn)入目的數(shù)據(jù)庫58時(shí),數(shù)據(jù)將被更新。事務(wù)服務(wù)器92將所提交的事務(wù)91存入源數(shù)據(jù)庫51。一旦提交了每個(gè)事務(wù)91,那么將會(huì)產(chǎn)生一個(gè)日志條目93,并且所述日志條目由一個(gè)日志寫入器53(如圖3所示)存入日志54。如在規(guī)則集55中執(zhí)行的那樣,日志監(jiān)視器26將會(huì)應(yīng)用商業(yè)邏輯94。滿足選擇標(biāo)準(zhǔn)的每個(gè)日志條目93都被用于產(chǎn)生一個(gè)更新記錄95,該記錄由數(shù)據(jù)庫服務(wù)器96存入目的數(shù)據(jù)庫58。
與現(xiàn)有技術(shù)中的多層數(shù)據(jù)庫結(jié)構(gòu)30(如圖2所示)所使用的信息數(shù)據(jù)更新方法不同,本方法使用日志條目93來間接導(dǎo)出信息數(shù)據(jù),從而產(chǎn)生更新記錄95。日志條目93是作為事務(wù)服務(wù)器92的副產(chǎn)品而產(chǎn)生的。因此,更新記錄95是以最小成本產(chǎn)生到事務(wù)服務(wù)器92的,由此消除了現(xiàn)有技術(shù)中的多層數(shù)據(jù)庫層次所固有的數(shù)據(jù)和商業(yè)邏輯的重復(fù)。
圖6是顯示圖3系統(tǒng)50的軟件模塊110的功能性框圖。日志監(jiān)視器26包含兩個(gè)主模塊一個(gè)評價(jià)模塊111和一個(gè)記錄生成模塊112。評價(jià)模塊111將日志53中的日志條目作為輸入而進(jìn)行接收。每個(gè)日志條目70(如圖4所示)包含的事務(wù)數(shù)據(jù)是針對規(guī)則集55給出的選擇標(biāo)準(zhǔn)來進(jìn)行評估的。這些滿足選擇標(biāo)準(zhǔn)的日志條目113轉(zhuǎn)發(fā)到記錄生成模塊112。在使用元數(shù)據(jù)56所保存的目的數(shù)據(jù)庫58的模式描述的情況下,記錄生成模塊112創(chuàng)建更新記錄57來更新目的數(shù)據(jù)庫58。
在所描述的實(shí)施例中,更新記錄57是經(jīng)由文件傳輸處理來發(fā)送的,所述文件傳輸處理可以根據(jù)文件傳送協(xié)議(FTP)或是相似的網(wǎng)絡(luò)傳輸協(xié)議。如本領(lǐng)域已知的那樣,日志監(jiān)視器的每個(gè)模塊都是一個(gè)計(jì)算機(jī)程序、進(jìn)程或模塊。其中源代碼是以一種常規(guī)的程序設(shè)計(jì)語言來編寫的,例如C++程序設(shè)計(jì)語言,并且每個(gè)模塊都作為對象或字節(jié)代碼而給出,以供CPU執(zhí)行。源代碼、對象以及字節(jié)代碼的不同實(shí)施可以保存在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,也可以包含在載波中的傳輸介質(zhì)上。
圖7是顯示規(guī)則條目130的數(shù)據(jù)結(jié)構(gòu)圖。舉例來說,每個(gè)規(guī)則130至少識別了選擇標(biāo)準(zhǔn)所要應(yīng)用的源數(shù)據(jù)庫51內(nèi)部的表格131。一組數(shù)據(jù)操縱語言(DML)語句132執(zhí)行商業(yè)邏輯,由此表述選擇標(biāo)準(zhǔn)。同樣也可以包含一個(gè)閾值133,以使日志監(jiān)視器26(如圖3所示)能夠基于預(yù)定約束條件來快速有效地過濾日志條目。并且其它規(guī)則格式也是可行的。
圖8是根據(jù)本發(fā)明來保持大粒度數(shù)據(jù)庫并發(fā)的方法150的流程圖,其中日志監(jiān)視器26結(jié)合了可以動(dòng)態(tài)再定義的商業(yè)邏輯。在應(yīng)用商業(yè)邏輯之前,日志監(jiān)視器26預(yù)先打開日志文件54(方框151)。然后如下所述重復(fù)處理每個(gè)日志條目(如圖4所示)。
在每個(gè)重復(fù)過程中,每個(gè)日志條目70首先由日志監(jiān)視器26讀取(方框152)。日志條目70將被評估,以便確定該條目是否描述了一個(gè)已提交事務(wù)91(如圖5所示),其中所述事務(wù)對選擇標(biāo)準(zhǔn)所應(yīng)用的表格131(如圖7所示)產(chǎn)生了影響(方框153)。如果日志條目70應(yīng)用于一個(gè)所列舉出的表格131(方框153),那么如在數(shù)據(jù)操縱語言程序132中執(zhí)行的那樣,該規(guī)則將被評估(方框154)。如果滿足了該規(guī)則的選擇標(biāo)準(zhǔn)(方框155),那么日志監(jiān)視器26將會(huì)使用元數(shù)據(jù)56來產(chǎn)生一個(gè)更新記錄57(方框156),并且這個(gè)更新記錄將會(huì)發(fā)送到數(shù)據(jù)庫58(方框157)。在存在更多日志條目70(方框158)的時(shí)候,重復(fù)的處理將會(huì)繼續(xù)(方框152-158)。一旦處理了最后一個(gè)日志條目70(方框158),那么日志文件54將被關(guān)閉(方框159),程序?qū)?huì)終止。
雖然已經(jīng)參考本發(fā)明實(shí)施例而特別顯示了本發(fā)明并對其進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員將會(huì)理解,可以對本發(fā)明進(jìn)行形式和細(xì)節(jié)上的前述及其他改變,而不脫離本發(fā)明的實(shí)質(zhì)和范圍。
權(quán)利要求
1.一種通過基于日志的事務(wù)監(jiān)視來刷新信息數(shù)據(jù)庫的系統(tǒng)(10),包括生產(chǎn)數(shù)據(jù)庫(13),包括一個(gè)或多個(gè)表,每個(gè)表都保存了由事務(wù)處理系統(tǒng)(14)產(chǎn)生的生產(chǎn)數(shù)據(jù)的記錄;日志寫入器(53),其周期性的將日志條目(70)存入一個(gè)日志文件(54),其中至少一個(gè)日志條目(70)是為提交到所述生產(chǎn)數(shù)據(jù)庫(13)的每個(gè)事務(wù)而產(chǎn)生的;信息數(shù)據(jù)庫(58),包括一個(gè)或多個(gè)表,每個(gè)表都保存了信息數(shù)據(jù)記錄,以供一個(gè)決策支持系統(tǒng)使用;以及日志監(jiān)視器(26),其使用一個(gè)指定一種數(shù)據(jù)選擇標(biāo)準(zhǔn)的規(guī)則集(55)來動(dòng)態(tài)分析那些存入日志文件(54)的日志條目(70),并且把滿足數(shù)據(jù)選擇標(biāo)準(zhǔn)的生產(chǎn)數(shù)據(jù)所產(chǎn)生的更新記錄(57)存入信息數(shù)據(jù)庫(58)。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括信息數(shù)據(jù)庫(58)還包括描述信息數(shù)據(jù)庫(58)結(jié)構(gòu)的元數(shù)據(jù)(56);以及日志監(jiān)視器(26),根據(jù)信息數(shù)據(jù)庫的元數(shù)據(jù)(56)而將生產(chǎn)數(shù)據(jù)轉(zhuǎn)換成更新記錄(57)。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),還包括數(shù)據(jù)庫構(gòu)造器(59),其產(chǎn)生元數(shù)據(jù)(56)并從數(shù)據(jù)選擇標(biāo)準(zhǔn)中定義規(guī)則集(55),其中所述數(shù)據(jù)選擇標(biāo)準(zhǔn)是依照元數(shù)據(jù)(56)提供的結(jié)構(gòu)來構(gòu)造的。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中所述元數(shù)據(jù)(56)包括從以下組中選出的至少一個(gè)參數(shù),所述組包括生產(chǎn)數(shù)據(jù)庫(13)以及信息數(shù)據(jù)庫(58)的架構(gòu),網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,作業(yè)控制信息以及用于執(zhí)行數(shù)據(jù)選擇的程序代碼。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括日志監(jiān)視器(26),其在充分連續(xù)的基礎(chǔ)之上將更新記錄(57)存入信息數(shù)據(jù)庫(58),以此作為生產(chǎn)數(shù)據(jù)庫(13)的一致數(shù)據(jù)集。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括日志監(jiān)視器(26),其創(chuàng)建選自信息數(shù)據(jù)庫(58)的至少一個(gè)記錄表的復(fù)制品。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括日志監(jiān)視器(26),其在每次刷新信息數(shù)據(jù)庫(58)時(shí)都使用更新記錄(57)來執(zhí)行作業(yè)控制。
8.根據(jù)權(quán)利要求1所述的系統(tǒng),還包括日志監(jiān)視器緩存區(qū)(60),其把日志監(jiān)視(26)產(chǎn)生的更新記錄(57)暫存為與信息數(shù)據(jù)庫(58)共享的瞬態(tài)數(shù)據(jù)集。
9.一種通過基于日志的事務(wù)監(jiān)視用于刷新信息數(shù)據(jù)庫(58)的方法(150),包括保持一個(gè)包含了一個(gè)或多個(gè)表的生產(chǎn)數(shù)據(jù)庫(13),其中每個(gè)表都保存了由事務(wù)處理系統(tǒng)(14)所產(chǎn)生的生產(chǎn)數(shù)據(jù)的記錄;周期性的將日志條目(70)存入一個(gè)日志文件(54),其中至少一個(gè)日志條目(70)是為提交到生產(chǎn)數(shù)據(jù)庫(13)的每個(gè)事務(wù)產(chǎn)生的;保持一個(gè)包括了一個(gè)或多個(gè)表的信息數(shù)據(jù)庫(58),其中每個(gè)表都保存了信息數(shù)據(jù)記錄,以供一個(gè)決策支持系統(tǒng)使用;以及使用一個(gè)指定一種數(shù)據(jù)選擇標(biāo)準(zhǔn)的規(guī)則集(55)來動(dòng)態(tài)分析那些存入日志文件(54)的日志條目(70),并且將那些由滿足數(shù)據(jù)選擇標(biāo)準(zhǔn)的生產(chǎn)數(shù)據(jù)產(chǎn)生的更新記錄(57)存入信息數(shù)據(jù)庫(58)。
10.根據(jù)權(quán)利要求9所述的方法,還包括將描述信息數(shù)據(jù)庫(58)結(jié)構(gòu)的元數(shù)據(jù)(56)存入信息數(shù)據(jù)庫;以及根據(jù)關(guān)于信息數(shù)據(jù)庫的元數(shù)據(jù)(56)而將生產(chǎn)數(shù)據(jù)轉(zhuǎn)換成更新記錄(57)。
11.根據(jù)權(quán)利要求10所述的方法,還包括產(chǎn)生元數(shù)據(jù)(56)并從數(shù)據(jù)選擇標(biāo)準(zhǔn)中定義規(guī)則集(55),其中所述數(shù)據(jù)選擇標(biāo)準(zhǔn)是依照元數(shù)據(jù)(56)提供的結(jié)構(gòu)來構(gòu)造的。
12.根據(jù)權(quán)利要求11所述的方法,其中所述元數(shù)據(jù)(56)包括從以下組中選出的至少一個(gè)參數(shù),所述組包括生產(chǎn)數(shù)據(jù)庫(13)以及信息數(shù)據(jù)庫(58)的架構(gòu),網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息,作業(yè)控制信息以及用于執(zhí)行數(shù)據(jù)選擇的程序代碼。
13.根據(jù)權(quán)利要求9所述的方法,還包括在充分連續(xù)的基礎(chǔ)之上將更新記錄(57)存入信息數(shù)據(jù)庫(58),以此作為生產(chǎn)數(shù)據(jù)庫(13)的一致數(shù)據(jù)集。
14.根據(jù)權(quán)利要求9所述的方法,還包括創(chuàng)建選自信息數(shù)據(jù)庫(58)的至少一個(gè)記錄表的復(fù)制品。
15.根據(jù)權(quán)利要求9所述的方法,還包括在每次刷新信息數(shù)據(jù)庫(58)時(shí)都使用更新記錄(57)來執(zhí)行作業(yè)控制。
16.根據(jù)權(quán)利要求9所述的方法,還包括把日志監(jiān)視器(26)產(chǎn)生的更新記錄(57)暫存為與信息數(shù)據(jù)庫(58)共享的瞬態(tài)數(shù)據(jù)集。
17.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有用于執(zhí)行權(quán)利要求9的方法的代碼。
18.一種用于在日志監(jiān)視(26)裝置結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯(94)的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng),包括源數(shù)據(jù)庫引擎(12),其對一個(gè)源數(shù)據(jù)庫(51)執(zhí)行那些以一種數(shù)據(jù)操縱語言來進(jìn)行表述的操作,其中至少一個(gè)操作構(gòu)成了一個(gè)完成每個(gè)數(shù)據(jù)庫事務(wù)的提交操作;數(shù)據(jù)庫構(gòu)造器(59),其定義了一個(gè)當(dāng)前規(guī)則集(55),其中每個(gè)規(guī)則都包括商業(yè)邏輯(94),所述商業(yè)邏輯指定了源數(shù)據(jù)庫所保存記錄的一個(gè)數(shù)據(jù)選擇標(biāo)準(zhǔn);用于在日志(54)中為每個(gè)提交到源數(shù)據(jù)庫的事務(wù)周期性產(chǎn)生一個(gè)日志條目(70)的裝置(53),每個(gè)日志條目(70)都標(biāo)識了一個(gè)受到影響的記錄并包括事務(wù)數(shù)據(jù);用于監(jiān)視日志的裝置(26),包括評估模塊(111),其按照當(dāng)前規(guī)則集(55)中規(guī)定的數(shù)據(jù)選擇標(biāo)準(zhǔn)來對每個(gè)日志條目(70)所識別的事務(wù)進(jìn)行評估;以及記錄生成模塊(112),其根據(jù)描述目的數(shù)據(jù)庫(58)的元數(shù)據(jù)(56)來構(gòu)造一個(gè)新記錄(57),并且包括從滿足選擇標(biāo)準(zhǔn)的每個(gè)事務(wù)的日志條目(70)中選擇事務(wù)數(shù)據(jù);以及目的數(shù)據(jù)庫引擎(96),其把新記錄(57)存入目的數(shù)據(jù)庫(58),其中目的數(shù)據(jù)庫(58)中保存的數(shù)據(jù)包括源數(shù)據(jù)庫(51)的至少一個(gè)局部子集。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),還包括數(shù)據(jù)庫構(gòu)造器(59),其動(dòng)態(tài)地凈化當(dāng)前規(guī)則集(55),所述規(guī)則集包含商業(yè)邏輯(94),以便規(guī)定一個(gè)經(jīng)過修訂的數(shù)據(jù)選擇標(biāo)準(zhǔn)。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),還包括目的數(shù)據(jù)庫引擎創(chuàng)建一個(gè)由元數(shù)據(jù)(56)所規(guī)定的新的源數(shù)據(jù)庫(51)。
21.根據(jù)權(quán)利要求18所述的系統(tǒng),還包括一個(gè)臨時(shí)數(shù)據(jù)存儲(chǔ)器(60)緩存每個(gè)新記錄。
22.根據(jù)權(quán)利要求18所述的系統(tǒng),其中所述事務(wù)數(shù)據(jù)包括從以下組中選出的信息,所述組包括時(shí)戳(71),表標(biāo)識符(72),記錄標(biāo)識符(73),操作類型(74)以及撤銷信息(75)。
23.一種用于在日志監(jiān)視器(26)結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯(94)的情況下保持大粒度數(shù)據(jù)庫并發(fā)的方法,包括對一個(gè)源數(shù)據(jù)庫(51)執(zhí)行以一種數(shù)據(jù)操縱語言來進(jìn)行表述的操作,其中至少一個(gè)操作構(gòu)成了一個(gè)完成每個(gè)數(shù)據(jù)庫事務(wù)的提交操作;定義了一個(gè)當(dāng)前規(guī)則集(55),其中每個(gè)規(guī)則都包括商業(yè)邏輯(94),所述商業(yè)邏輯指定了關(guān)于源數(shù)據(jù)庫所保存記錄的一個(gè)數(shù)據(jù)選擇標(biāo)準(zhǔn);在日志(54)中為每個(gè)提交到源數(shù)據(jù)庫的事務(wù)周期性產(chǎn)生一個(gè)日志條目(70),每個(gè)日志條目(70)標(biāo)識了一個(gè)受到影響的記錄(73)并包括事務(wù)數(shù)據(jù);依照當(dāng)前規(guī)則集(55)中規(guī)定的數(shù)據(jù)選擇標(biāo)準(zhǔn)來對每個(gè)日志條目(70)所標(biāo)識的事務(wù)進(jìn)行評估;根據(jù)描述目的數(shù)據(jù)庫(58)的元數(shù)據(jù)(56)來構(gòu)造一個(gè)新記錄(57),包括從滿足選擇標(biāo)準(zhǔn)的每個(gè)事務(wù)的日志條目(70)中選擇事務(wù)數(shù)據(jù);以及把新記錄(57)存入目的數(shù)據(jù)庫(58),所述目的數(shù)據(jù)庫(58)中保存的數(shù)據(jù)包括源數(shù)據(jù)庫(51)的至少一個(gè)局部子集。
24.根據(jù)權(quán)利要求23所述的方法,還包括動(dòng)態(tài)地凈化當(dāng)前規(guī)則集(55),所述規(guī)則集包含商業(yè)邏輯(94),以便規(guī)定一個(gè)經(jīng)過修訂的數(shù)據(jù)選擇標(biāo)準(zhǔn)。
25.根據(jù)權(quán)利要求23所述的方法,還包括創(chuàng)建一個(gè)元數(shù)據(jù)(56)規(guī)定的新源數(shù)據(jù)庫(51)。
26.根據(jù)權(quán)利要求23所述的方法,還包括在一個(gè)臨時(shí)數(shù)據(jù)存儲(chǔ)器中緩存每個(gè)新記錄(57)。
27.根據(jù)權(quán)利要求23所述的方法,其中所述事務(wù)數(shù)據(jù)包括從以下組中選出的信息,所述組包括時(shí)戳(71),表標(biāo)識符(72),記錄標(biāo)識符(73),操作類型(74)以及撤銷信息(75)。
28.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有用于執(zhí)行權(quán)利要求23的方法的代碼。
全文摘要
描述了一種在日志監(jiān)視器(26)結(jié)合了可動(dòng)態(tài)再定義的商業(yè)邏輯(94)的情況下保持大粒度數(shù)據(jù)庫并發(fā)的系統(tǒng)(10)和方法(150)。以一種數(shù)據(jù)操縱語言表述的操作是針對一個(gè)源數(shù)據(jù)庫(51)執(zhí)行的。至少一個(gè)操作構(gòu)成了完成每個(gè)數(shù)據(jù)庫事務(wù)的提交操作。一個(gè)當(dāng)前規(guī)則集(55)被定義。每個(gè)規(guī)則都包含商業(yè)邏輯(94),所述商業(yè)邏輯指定了源數(shù)據(jù)庫所保存記錄的數(shù)據(jù)選擇標(biāo)準(zhǔn)。在日志(54)中為每個(gè)提交到源數(shù)據(jù)庫(51)的事務(wù)周期性產(chǎn)生一個(gè)日志條目(70)。每個(gè)日志條目(70)都對一個(gè)受影響的記錄進(jìn)行標(biāo)識并包含事務(wù)數(shù)據(jù)。每個(gè)日志條目(70)所標(biāo)識的事務(wù)是依照當(dāng)前規(guī)則集(55)指定的數(shù)據(jù)選擇標(biāo)準(zhǔn)來進(jìn)行評估的。根據(jù)那些對一個(gè)目的數(shù)據(jù)庫(58)進(jìn)行描述的元數(shù)據(jù)(56)來建立一個(gè)新記錄(57)。這個(gè)新記錄(57)包括從滿足選擇標(biāo)準(zhǔn)的每個(gè)事務(wù)的日志條目(70)中選擇事務(wù)數(shù)據(jù)。新記錄(57)將會(huì)存入目的數(shù)據(jù)庫(58)。目的數(shù)據(jù)庫(58)中保存的數(shù)據(jù)包括源數(shù)據(jù)庫(51)的至少一個(gè)部分子集。
文檔編號G06F17/30GK1535434SQ02806284
公開日2004年10月6日 申請日期2002年2月25日 優(yōu)先權(quán)日2001年3月9日
發(fā)明者大衛(wèi)·雷德, 大衛(wèi) 雷德 申請人:甲骨文國際公司