專利名稱:利用聯(lián)機(jī)分析處理變型的預(yù)設(shè)高速緩存的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及高速緩存數(shù)據(jù),尤其涉及用于利用OLAP(聯(lián)機(jī)分析處理)變型預(yù)設(shè)地(proactively)高速緩存數(shù)據(jù)的系統(tǒng)和方法。
背景技術(shù):
計(jì)算和網(wǎng)絡(luò)技術(shù)已經(jīng)改變了現(xiàn)代生活的許多重要方面。計(jì)算機(jī)已經(jīng)不再是豪華的教育工具或娛樂中心而成為為家常用品,并向用戶提供管理和預(yù)報(bào)財(cái)務(wù)、控制象供暖氣、供冷氣、照明和安全等家常操作,并且把記錄和映像存儲在永久和可靠的媒體中。象因特網(wǎng)之類的網(wǎng)絡(luò)技術(shù)把對于遠(yuǎn)程系統(tǒng)、信息和相關(guān)聯(lián)的應(yīng)用程序?qū)嶋H上無限制的訪問提供給用戶。
在計(jì)算和網(wǎng)絡(luò)技術(shù)成為魯棒、安全和可靠的情況下,更多的消費(fèi)者、批發(fā)商、零售商人、企業(yè)家、教育機(jī)構(gòu)等等正在改換范例和使用諸如因特網(wǎng)之類的網(wǎng)絡(luò)代替?zhèn)鹘y(tǒng)的手段來執(zhí)行業(yè)務(wù)。例如,許多業(yè)務(wù)和消費(fèi)者正在提供Web網(wǎng)站或聯(lián)機(jī)服務(wù)。例如,今日的消費(fèi)者可以經(jīng)由因特網(wǎng)訪問他的/她的帳戶以及執(zhí)行數(shù)量增長的有效事務(wù),諸如結(jié)算詢問、資金匯兌以及帳單支付。
一般,網(wǎng)絡(luò)會話包括與客戶應(yīng)用程序?qū)拥挠脩襞c服務(wù)器進(jìn)行交互作用,所述服務(wù)器把信息存儲在對于客戶應(yīng)用程序是可訪問的數(shù)據(jù)庫中。例如,股市Web網(wǎng)站可以把檢索股票報(bào)價和購買股票的工具提供給用戶。用戶可以打入股票代號,并通過執(zhí)行鼠標(biāo)的點(diǎn)擊來激勵一個詢問而請求股票報(bào)價。客戶應(yīng)用程序查詢股票的數(shù)據(jù)庫表以及返回股票報(bào)價。
計(jì)算和網(wǎng)絡(luò)技術(shù)的缺點(diǎn)是有限的帶寬。一個用戶消耗一部分帶寬,從而其它用戶就不可使用所消耗的部分。因此,在越來越多的用戶使用網(wǎng)絡(luò)的情況下,可用的帶寬減少,這可能降低響應(yīng)時間和性能。計(jì)算和網(wǎng)絡(luò)技術(shù)的另一個缺點(diǎn)是相對于可用數(shù)據(jù)量的有限的可用數(shù)據(jù)傳送速率。例如,檢索大量數(shù)據(jù)(例如,分配在各個服務(wù)器上的數(shù)據(jù))的請求可能是時間強(qiáng)度大的,還可能使性能降低。
因此,發(fā)展了業(yè)務(wù)智能(BI)解決方案來輔助對于與大數(shù)據(jù)庫信息有關(guān)的訪問。近代的大多數(shù)業(yè)務(wù)已經(jīng)遷移到關(guān)系類型的數(shù)據(jù)庫。發(fā)展了數(shù)據(jù)倉庫來存儲戰(zhàn)術(shù)信息,以答復(fù)與所存儲的、涉及以前事件的數(shù)據(jù)有關(guān)“誰”和“什么”的問題。然而,由于數(shù)據(jù)倉庫只具有檢索歷史數(shù)據(jù)的能力這樣的事實(shí),這證明了限制。因此,開發(fā)了聯(lián)機(jī)分析處理(OLAP)系統(tǒng),不但可以答復(fù)“誰”和“什么”,而且可以答復(fù)數(shù)據(jù)的“如果...會怎樣”和“為什么”。OLAP系統(tǒng)是集合數(shù)據(jù)的多維視圖,它允許分析員、業(yè)務(wù)管理員以及執(zhí)行者通過快速的、可靠的、交互作用的過程來得到對于信息的內(nèi)涵。
包括OLAP工具的分析工具幫助減小對于極大量數(shù)據(jù)的訪問時間。通過利用這些工具,用戶可以詢問或“查詢”關(guān)于數(shù)據(jù)的一般的問題而不是檢索所有數(shù)據(jù)的字面。因此,“關(guān)系數(shù)據(jù)的數(shù)據(jù)”或元數(shù)據(jù)幫助促進(jìn)查詢過程和減少所需要的網(wǎng)絡(luò)帶寬。然而,如同業(yè)務(wù)環(huán)境中的一般情況,昨天是快的事物按今天的標(biāo)準(zhǔn)是慢的。雖然按指數(shù)方式來擴(kuò)展數(shù)據(jù)存儲器的大小,還是始終存在對于更快信息傳送的增漲的要求。
發(fā)明概要下面提供本發(fā)明的簡單的概要,以便提供對于本發(fā)明某些方面的基本理解。本概要不是本發(fā)明的多方面的概括。不是打算以此來確定本發(fā)明的關(guān)鍵的/決定性的單元或描繪本發(fā)明的范圍。主要的目的是以簡化的形式提供本發(fā)明的某些概念作為以后提供的更詳細(xì)說明的序言。
本發(fā)明一般涉及高速緩存數(shù)據(jù),尤其,涉及用于利用OLAP變型預(yù)設(shè)地高速緩存數(shù)據(jù)的系統(tǒng)和方法。使OLAP變型起杠桿作用以創(chuàng)建關(guān)系數(shù)據(jù)源的多個查詢源。通過根據(jù)數(shù)據(jù)源把多維對象轉(zhuǎn)換成OLAP變型高速緩存(諸如MOLAP(多維OLAP)高速緩存),用戶得到快速分析查詢的能力,并且還保持實(shí)時訪問據(jù)源的能力。按照何時利用變型,本發(fā)明還允許通過用戶的交互作用的參與而提供比使用非-預(yù)設(shè)高速緩存方案更快的和更多的面向用戶的查詢響應(yīng)。
本發(fā)明還通過部分地基于多維分析數(shù)據(jù)的高速緩存的應(yīng)用,使直接訪問大數(shù)據(jù)庫的必要性減少而促進(jìn)數(shù)據(jù)分析,擴(kuò)展了現(xiàn)有數(shù)據(jù)結(jié)構(gòu)的有用性,并且對極大數(shù)據(jù)庫提供快速和有效的分析。因?yàn)樗蠴LAP變型都有強(qiáng)點(diǎn)和弱點(diǎn),所以利用單個變型的一個系統(tǒng)一般不完全滿足用戶,返回陳舊的數(shù)據(jù)和/或響應(yīng)較慢。本發(fā)明徹底地減少查詢響應(yīng)時間,同時,使提取實(shí)時信息成為可能,允許用戶關(guān)于響應(yīng)查詢所利用的變型快速和適當(dāng)透明地接收數(shù)據(jù),使用戶友好性最大化,增加信息檢索速度以及提供可靠的信息而不管所使用的變型。
為了實(shí)現(xiàn)上述和相關(guān)的對象,這里聯(lián)系下面的說明和附圖來描述本發(fā)明的某些說明性方面。然而,這些方面表示不同的方法,但是是少數(shù)幾個不同的方法,本發(fā)明的原理可以應(yīng)用在這些方法中,并且打算使本發(fā)明包括所有如此的方面和它們的等價物。當(dāng)連同附圖一起考慮時,本發(fā)明的其它優(yōu)點(diǎn)和新穎特征可以從從下面本發(fā)明的詳細(xì)說明得以明白。
附圖簡述
圖1說明根據(jù)本發(fā)明的一個方面的一個示例預(yù)設(shè)高速緩存過程。
圖2是根據(jù)本發(fā)明的一個方面的數(shù)據(jù)庫服務(wù)系統(tǒng)的方框圖。
圖3是根據(jù)本發(fā)明的一個方面的另一個數(shù)據(jù)庫服務(wù)系統(tǒng)的方框圖。
圖4是根據(jù)本發(fā)明的一個方面的又一個數(shù)據(jù)庫服務(wù)系統(tǒng)的方框圖。
圖5是根據(jù)本發(fā)明的一個方面的高速緩存開發(fā)結(jié)構(gòu)的方框圖。
圖6是根據(jù)本發(fā)明的一個方面的另一個高速緩存開發(fā)結(jié)構(gòu)的方框圖。
圖7是根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)的方框圖。
圖8是根據(jù)本發(fā)明的一個方面的另一個預(yù)設(shè)高速緩存系統(tǒng)的方框圖。
圖9是根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)輸入的方框圖。
圖10是根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)參數(shù)的方框圖。
圖11是根據(jù)本發(fā)明的一個方面的又一個預(yù)設(shè)高速緩存系統(tǒng)的方框圖。
圖12是根據(jù)本發(fā)明的一個方面的流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖13是根據(jù)本發(fā)明的一個方面的另一個流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖14是根據(jù)本發(fā)明的一個方面的又一個流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖15是根據(jù)本發(fā)明的一個方面再一個流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖16是根據(jù)本發(fā)明的一個方面再一個流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖17是根據(jù)本發(fā)明的一個方面再一個流程圖,說明預(yù)設(shè)高速緩存的一種方法。
圖18說明本發(fā)明可以在其中起作用的一個示例操作環(huán)境。
圖19說明本發(fā)明可以在其中起作用的另一個示例操作環(huán)境。
圖20說明本發(fā)明可以在其中起作用的又一個示例操作環(huán)境。
本發(fā)明的詳細(xì)說明現(xiàn)在參考附圖來描述本發(fā)明,在所有附圖中,使用相同的標(biāo)號來表示相同的元件。在下面的說明中,為了說明的目的,規(guī)定許多特定的細(xì)節(jié)以便提供對于本發(fā)明的透徹的理解。然而,明顯地,可以實(shí)現(xiàn)本發(fā)明而無需這些特定的細(xì)節(jié)。在其它實(shí)例中,為了便于描述本發(fā)明,以方框圖的形式示出眾知的結(jié)構(gòu)和裝置。
如在本申請中所使用,指定術(shù)語“組件”是指與計(jì)算機(jī)有關(guān)的實(shí)體,在執(zhí)行中,可以是硬件、硬件和軟件的組合、或軟件。例如,組件可以是,但是不限于,運(yùn)行在處理器上的進(jìn)程、處理器、對象、可執(zhí)行的、執(zhí)行的線程、程序和/或計(jì)算機(jī)。作為說明,運(yùn)行在服務(wù)器上的應(yīng)用程序和服務(wù)器兩者都可以是計(jì)算機(jī)組件。一個或多個組件可以駐留在過程中和/或執(zhí)行的線程中,并且組件可以是一個計(jì)算機(jī)上的本地組件和/或分布在兩個或多個計(jì)算機(jī)之間的組件。“線程”是用于執(zhí)行的操作系統(tǒng)內(nèi)核調(diào)度的進(jìn)程中的實(shí)體。如本技術(shù)領(lǐng)域中所眾知,每個線程具有相關(guān)聯(lián)的“上下文”,它是與線程的執(zhí)行相關(guān)聯(lián)的易失性數(shù)據(jù)。線程的上下文包括系統(tǒng)寄存器的內(nèi)容和屬于線程的進(jìn)程的虛擬地址。因此,包括線程的上下文的實(shí)際數(shù)據(jù)在它執(zhí)行時改變。
由于無單個OLAP變型可以提供低等待時間和實(shí)時數(shù)據(jù)兩者,本發(fā)明通過作為后臺過程來構(gòu)造對象的MOLAP等價物而用杠桿作用影響ROLAP對象的MOLAP性能(維數(shù)、分段和集合)。當(dāng)完成后臺處理時,把對象使用切換到MOLAP查詢,使更快的查詢響應(yīng)時間成為可能。當(dāng)相關(guān)的關(guān)系對象(諸如定義OLAP對象的內(nèi)容的表)發(fā)生變化時,把OLAP對象切換回ROLAP模式,并且丟掉所有相關(guān)的高速緩存,同時,在后臺中,創(chuàng)建新的MOLAP等價物。因此,根據(jù)正被利用來處理查詢的模式,使用MOLAP等價物提供預(yù)設(shè)地受控制的高速緩存。這允許用戶得到立即瀏覽數(shù)據(jù)的好處(和/或始終反映關(guān)系數(shù)據(jù)庫的最新的映像)而無需支付查詢ROLAP對象的一般的性能價格。這允許用戶感知作為圍繞數(shù)據(jù)庫(諸如關(guān)系數(shù)據(jù)庫等)的元數(shù)據(jù)的補(bǔ)償層(shim layer)的本發(fā)明始終盡可能快地提供最新數(shù)據(jù)。用戶有各種選項(xiàng)以便得到最高全球性能,他們可以通過這些選項(xiàng)對預(yù)設(shè)高速緩存進(jìn)行細(xì)調(diào)諧,以及相對于在關(guān)系數(shù)據(jù)庫中的改變而影響它的性能(這些選項(xiàng)在下文詳述)。
如果用戶對觀看最新數(shù)據(jù)(實(shí)時OLAP)感興趣,但是不希望在瀏覽ROLAP數(shù)據(jù)中的固有延遲,則用戶可以命令系統(tǒng)在后臺事務(wù)中構(gòu)造等價MOLAP對象,并且“切換”查詢以使用MOLAP“映像”來代替。當(dāng)下層的關(guān)系對象發(fā)生改變時,一發(fā)生改變系統(tǒng)就自動地響應(yīng)于它們,并且打開使對象恢復(fù)到ROLAP模式的一個短事務(wù)。然后,系統(tǒng)將再打開后臺事務(wù)和重構(gòu)MOLAP映像。如果當(dāng)后臺事務(wù)正在進(jìn)行時發(fā)生更新,則取消MOLAP處理,并且再開始后臺事務(wù)。在由于后臺事務(wù)而用戶啟動的事務(wù)需要把對象鎖定在與對象的當(dāng)前鎖定模式不兼容的模式中的情況而可以取消這些后臺事務(wù)的意義上來說,這些后臺事務(wù)有些象“第二類公民”。
在圖1中,說明根據(jù)本發(fā)明的一個方面的示例預(yù)設(shè)高速緩存過程100。預(yù)設(shè)高速緩存過程100起動102,并且處理到MOLAP高速緩存104的ROLAP對象。除非接收到取消,否則完成106過程100,實(shí)行數(shù)據(jù)庫是否已經(jīng)改變108的一個檢查。如果數(shù)據(jù)庫沒有改變108,則完成106過程100。然而,如果數(shù)據(jù)庫已經(jīng)改變108,則再調(diào)度過程100,并且再起動102。在本發(fā)明的一般實(shí)例中,通過用戶110產(chǎn)生動作。這些動作110可以包括提交啟動過程100的ROLAP對象112的處理。用戶110產(chǎn)生的另一個動作可以包括起動ROLAP對象114上的另一個事務(wù),取消到MOLAP高速緩存進(jìn)程104的現(xiàn)有的ROLAP對象。系統(tǒng)還可以自動地檢測條件116,例如,諸如數(shù)據(jù)庫改變118等。一旦數(shù)據(jù)庫改變118已經(jīng)發(fā)生,就取消到MOLAP高速緩存過程104的現(xiàn)有ROLAP對象。
用戶還可以在起動構(gòu)造新MOLAP映像的后臺事務(wù)之前經(jīng)由“安靜時間延遲”指定“安靜時間”的最小持續(xù)期。這允許到OLTP(聯(lián)機(jī)事務(wù)處理)的多個交叉-事務(wù)的插入/更新(許多OLTP應(yīng)用通過在時間上的某個時刻個別地插入而如此地更新事務(wù)數(shù)據(jù))。這減少了OLAP服務(wù)器通過重復(fù)查詢而加在OLAP系統(tǒng)上的查詢應(yīng)力。通過對任何涉及的表的“最新更新”時間保持跟蹤的一個組件來實(shí)現(xiàn)安靜時間延遲。
相似于安靜時間延遲特征,任選的“延遲”觸發(fā)特征指定在后臺線程中跟蹤所有改變,所述線程處理每個指定時間周期(可配置的時間間隔)的經(jīng)累加的改變。在邏輯方案中,通過兩個線程之間的隊(duì)列實(shí)施來執(zhí)行這個特征,所有的調(diào)用都是通過這個隊(duì)列處理的。這個特征允許通過某些提供者提供的一種通知機(jī)構(gòu),用是否更新了表的詢問來防止OLTP過載。一般,這是在每服務(wù)器(不是每對象)的基礎(chǔ)上實(shí)現(xiàn)的,因?yàn)樗枋稣麄€預(yù)設(shè)高速緩存子系統(tǒng)的通知性能。
另一個特征允許經(jīng)由供用戶標(biāo)出某些表/視圖/ROLAP對象作為“臟的”的一種裝置來作出“人工”改變,人工地觸發(fā)上述過程。這一般通過可以通過正規(guī)的機(jī)構(gòu)(例如,XML/A(可擴(kuò)展的標(biāo)記語言/分析)等)發(fā)送到一個服務(wù)器的DDL(數(shù)據(jù)定義語言)語句來完成。在本發(fā)明的一個方面,可以存在兩類標(biāo)記關(guān)系對象標(biāo)記(可能潛在地影響多ROLAP對象)和/或ROLAP對象標(biāo)記(就關(guān)系到相關(guān)性而言,基本上引導(dǎo)關(guān)系層)。
又一個特征允許用于創(chuàng)建跟蹤表的列表的一種裝置。用戶可以標(biāo)出影響某個ROLAP對象的表。進(jìn)行這點(diǎn)的優(yōu)點(diǎn)包括如下。這個特征的一個優(yōu)點(diǎn)是如果對象所根據(jù)的某個表不是一個真實(shí)的表而是一幅視圖或DSV(數(shù)據(jù)組觀察器)視圖(命名的查詢),則對于跟蹤視圖是否改變這樣的事件是較困難的(一般通知機(jī)構(gòu)-SQL(結(jié)構(gòu)化查詢語言)通知和觸發(fā)對表和具體化的視圖上,而不是正規(guī)視圖和命名的查詢)。進(jìn)行操作在缺少這個特征時,跟蹤視圖的改變的僅有的適當(dāng)方法是分析它的SQL定義(但是,再次,可能基于通過它本身的其它視圖,并且分析SQL不是一個適當(dāng)?shù)姆椒?。另一個優(yōu)點(diǎn)涉及“人工”改變特征。通常,希望標(biāo)出作為臟的對象,甚至它對于某個表沒有制約除了該表被改變。
在本發(fā)明的一個方面,裝置具有在兩個地方中的至少一個地方列出表的能力1)在DSV中,提供用于預(yù)設(shè)高速緩存跟蹤的替代表的列表。因此,為了預(yù)設(shè)高速緩存的目的,當(dāng)ROLAP對象取決于這個表時,在實(shí)際上取決于替代表的情況下,它登記它自己。希望替代表是可跟蹤的關(guān)系對象(表和/或具體化視圖,不是一些視圖)。2)在ROLAP對象中,提供替代/附加表的列表,通過列表來跟蹤對象。對于一些對象這通常是必需的,這些對象對于在DSV中的關(guān)系對象(分段)沒有必需的制約。還希望這些表也是可跟蹤的對象(表和/或具體化的視圖)。
再又一個特征提供用于“有限的等待時間”的一種裝置。這個特征規(guī)定了在新MOLAP映像創(chuàng)建和老MOLAP映像的取消和轉(zhuǎn)換成ROLAP(如果有的話)之間的持續(xù)期。在本發(fā)明的一個方面,該持續(xù)期的缺省值是零(基本上,兩個事務(wù)-一個使對象退回到ROLAP,而一個開始構(gòu)造MOLAP引擎-并行地開始)。這個特征的優(yōu)點(diǎn)包括具有一個持續(xù)期,在該期持續(xù)期中,到ROLAP存儲器的查詢降低到最少,并且在構(gòu)造ROLAP預(yù)設(shè)高速緩存維數(shù)的MOLAP映像的結(jié)束處提供分析(在期滿時間間隔尚未過去的情況下)。如果改變確實(shí)是遞增的,則不影響預(yù)設(shè)高速緩存分段。如果改變影響了非-粒度(granularity)屬性,則它可以丟掉(恢復(fù)到ROLAP和再調(diào)度)可變通的集合并且不碰其它任何項(xiàng)目。否則,裝置把相關(guān)的分段/集合恢復(fù)到ROLAP。
“安靜時間復(fù)蓋(override)”特征提供一種裝置來規(guī)定是否在初始通知之后到達(dá)這個時間量,無條件地提供(kick in)MOLAP映像。然而,應(yīng)該注意,在本發(fā)明的一個方面,如果由于復(fù)蓋而已經(jīng)起動MOLAP成像以及如果另一個通知在正在進(jìn)行構(gòu)造時輸入,則通知不取消正在進(jìn)行的MOLAP成像。進(jìn)行記錄供正常處理(如果已經(jīng)使用“正?!甭窂介_始處理,則如果當(dāng)前存儲模式是ROLAP,則通知導(dǎo)致MOLAP映像的取消)。
“強(qiáng)迫再構(gòu)造”特征規(guī)定在已經(jīng)構(gòu)造刷新映像之后的這個時刻MOLAP成像無條件地起動。在本發(fā)明的一個方面,如果在這進(jìn)行的同時通知輸入,則使它們排隊(duì)進(jìn)行正常處理。
轉(zhuǎn)到圖2,示出根據(jù)本發(fā)明的一個方面的數(shù)據(jù)庫服務(wù)系統(tǒng)200的方框圖。數(shù)據(jù)庫服務(wù)系統(tǒng)200包括預(yù)設(shè)高速緩存系統(tǒng)202、具有多維對象子集232的多維對象208(諸如“OLAP”對象等)、以及具有接收更新218的能力的數(shù)據(jù)庫210。預(yù)設(shè)高速緩存系統(tǒng)202包括分析組件204和具有高速緩存子集230的至少一個高速緩存206。系統(tǒng)200經(jīng)由預(yù)設(shè)高速緩存系統(tǒng)202把查詢分析和響應(yīng)提供給用戶。預(yù)設(shè)高速緩存系統(tǒng)202根據(jù)數(shù)據(jù)庫210對多維對象208起杠桿作用,以提供一種系統(tǒng),所述系統(tǒng)用于提供低等待時間響應(yīng)和/或?qū)崟r響應(yīng),同時對用戶保持適宜的透明。
在本發(fā)明的這個方面,分析組件204具有用于更新通知等的輸入,包括查詢輸入220、用戶輸入212、系統(tǒng)輸入214和數(shù)據(jù)庫輸入216。在本發(fā)明的其它實(shí)例中,數(shù)據(jù)庫輸入216是系統(tǒng)輸入214的一部分。分析組件204具有高速緩存接口222以及多維對象接口224。這些接口222、224根據(jù)所要求的查詢響應(yīng)(即,預(yù)設(shè)地尋找用于適當(dāng)?shù)捻憫?yīng)的適當(dāng)?shù)母咚倬彺?提供從分析組件204到高速緩存206和/或多維對象208的訪問。在本發(fā)明的其它方面,分析組件具有到高速緩存子集230的高速緩存子集接口226以及到多維對象子集232的多維對象子集接口228。在正在更新高速緩存206和/或多維對象208的其它部分的同時,子集接口226、228提供到高速緩存206和多維對象208的子集的訪問。高速緩存206包括從多維對象208得到的信息。多維對象208是基于數(shù)據(jù)庫210的。
在本發(fā)明的一個實(shí)例中,用于高速緩存信息的系統(tǒng)包括提供從數(shù)據(jù)庫210得到的動態(tài)多維分析數(shù)據(jù)的至少一個多維對象208、從至少一個多維對象208提供動態(tài)多維分析數(shù)據(jù)的至少一個高速緩存206以及耦合到多維對象208和高速緩存206用于預(yù)設(shè)地控制到多維對象208和高速緩存206的訪問的至少一個分析組件204。在本發(fā)明的其它實(shí)例中,多維對象208包括諸如ROLAP對象以及等等的OLAP對象。在本發(fā)明的又一個實(shí)例中,分析組件204包括UDM(統(tǒng)一維數(shù)模型)。在本發(fā)明的再又一個實(shí)例中,高速緩存206包括MOLAP高速緩存等。本發(fā)明的其它實(shí)例包括,但是不限于,包括實(shí)時訪問分析數(shù)據(jù)的多維對象208以及包括快速訪問分析數(shù)據(jù)的高速緩存206。甚至本發(fā)明的其它實(shí)例包括數(shù)據(jù)庫210,該數(shù)據(jù)庫210包含關(guān)系數(shù)據(jù)庫。
本發(fā)明的另外的實(shí)例還包括預(yù)設(shè)高速緩存系統(tǒng)202,該系統(tǒng)包括分析組件204、高速緩存206以及允許訪問至少一個多維對象208的多維對象接口224。分析組件有能力控制到多維對象208和高速緩存206的訪問。因此,多維對象208不必須是預(yù)設(shè)高速緩存系統(tǒng)202的一部分。多維對象208可以是數(shù)據(jù)庫管理系統(tǒng)的一部分。因此,本發(fā)明通過具有利用現(xiàn)有數(shù)據(jù)庫管理系統(tǒng)的能力而允許它的使用方面的靈活性。這增強(qiáng)了現(xiàn)有系統(tǒng),在提高它們的性能的同時,使它們的實(shí)用性最大。
本發(fā)明的進(jìn)一步的實(shí)例附加地包括預(yù)設(shè)高速緩存系統(tǒng)202,該預(yù)設(shè)高速緩存系統(tǒng)202包括分析組件204、允許訪問和控制高速緩存206的高速緩存接口222以及允許訪問至少一個多維對象208的多維對象接口224。因此,高速緩存206可以駐留在預(yù)設(shè)高速緩存系統(tǒng)202的外面。這甚至允許在具有已經(jīng)可供利用的高速緩存資源的現(xiàn)有平臺上實(shí)施本發(fā)明的靈活性更大。
參考圖3,描繪根據(jù)本發(fā)明的一個方面的數(shù)據(jù)庫服務(wù)系統(tǒng)300的另一個方框圖。數(shù)據(jù)庫服務(wù)系統(tǒng)300包括預(yù)設(shè)高速緩存系統(tǒng)302、諸如OLAP對象等的多維對象308以及具有接收更新318的能力的數(shù)據(jù)庫310。預(yù)設(shè)高速緩存系統(tǒng)302包括分析組件304和高速緩存306。在本發(fā)明的這個方面,分析組件304具有用于更新通知等的輸入,包括查詢輸入330、用戶輸入312、系統(tǒng)輸入314以及數(shù)據(jù)庫輸入316。在本發(fā)明的其它實(shí)例中,數(shù)據(jù)庫316是系統(tǒng)輸入314的一部分。分析組件304具有多維對象接口322。在本發(fā)明的這個方面,正在后臺操作中根據(jù)多維對象308構(gòu)造高速緩存306。因此,在這個特定的時刻,分析組件304沒有與高速緩存306活動地對接以響應(yīng)于查詢。因此,分析組件304只通過訪問多維對象308而響應(yīng)查詢輸入320。
轉(zhuǎn)到圖4,說明根據(jù)本發(fā)明的一個方面的數(shù)據(jù)庫服務(wù)系統(tǒng)400的又一個方框圖。數(shù)據(jù)庫服務(wù)系統(tǒng)400包括預(yù)設(shè)高速緩存系統(tǒng)402、諸如OLAP對象等的多維對象408以及具有把更新418接收到數(shù)據(jù)庫表426中的能力的數(shù)據(jù)庫410。預(yù)設(shè)高速緩存系統(tǒng)402包括分析組件404和新高速緩存406。在本發(fā)明的這個方面,分析組件404具有用于更新通知等的輸入,包括查詢輸入420、用戶輸入412、系統(tǒng)輸入414以及數(shù)據(jù)庫輸入416。在本發(fā)明的其它實(shí)例中,數(shù)據(jù)庫416是系統(tǒng)輸入414的一部分。分析組件404具有多維對象接口422。在本發(fā)明的這個方面,正在后臺操作中從多維對象408構(gòu)造新高速緩存406。因此,在這個特定的時刻,分析組件404沒有與新高速緩存406活動地對接以響應(yīng)于查詢。因此,分析組件404只通過訪問多維對象408而響應(yīng)查詢輸入420。此外,接收到影響數(shù)據(jù)庫表426的更新418。在本發(fā)明的一個方面的這個例子中,在數(shù)據(jù)庫表426中的改變還影響查詢輸入420作為響應(yīng)來依賴的多維對象408。因此,除去根據(jù)更新418以前的數(shù)據(jù)庫的老的高速緩存424,并且在預(yù)設(shè)高速緩存系統(tǒng)402的后臺過程中構(gòu)造新高速緩存406,以便反映最新的數(shù)據(jù)庫數(shù)據(jù)更新。在本發(fā)明的其它實(shí)例中,可以通過用戶輸入412和/或系統(tǒng)輸入414來除去老高速緩存424。
轉(zhuǎn)到圖5,示出根據(jù)本發(fā)明的一個方面的高速緩存開發(fā)結(jié)構(gòu)500的一個方框圖。結(jié)構(gòu)500包括包含數(shù)據(jù)庫表510的數(shù)據(jù)庫502、元數(shù)據(jù)集504、維數(shù)模型(諸如“OLAP對象”等的維數(shù)對象)506以及高速緩存508。一般,把與從數(shù)據(jù)庫502來的數(shù)據(jù)有關(guān)的信息編譯到元數(shù)據(jù)集504中。從元數(shù)據(jù)集504構(gòu)造元數(shù)據(jù)對象以形成維數(shù)模型506。維數(shù)模型506通常包括維數(shù)、立方體和量度等。這允許OLAP管理樹訪問維數(shù)模型506中的元數(shù)據(jù)對象。如此,可以從維數(shù)模型506構(gòu)成高速緩存508,該高速緩存508具有從根據(jù)關(guān)系數(shù)據(jù)庫的多維對象得到的動態(tài)維數(shù)分析數(shù)據(jù)。
繼續(xù)參考圖6,示出根據(jù)本發(fā)明的一個方面的高速緩存開發(fā)結(jié)構(gòu)600的另一個方框圖。在本發(fā)明的這個實(shí)例中,結(jié)構(gòu)600包括包含關(guān)系數(shù)據(jù)庫表610的關(guān)系數(shù)據(jù)庫602、元數(shù)據(jù)集604、ROLAP對象606以及MOLAP高速緩存608。在這個例子中,一般,由從元數(shù)據(jù)集604和關(guān)系數(shù)據(jù)庫610得到的ROLAP對象構(gòu)造MOLAP高速緩存608。可得到兩個不同的OLAP數(shù)據(jù)集變型(例如,ROLAP和MOLAP變型等),允許預(yù)設(shè)地訪問適當(dāng)?shù)臄?shù)據(jù)集以按用戶和/或系統(tǒng)要求的方式透明地傳送查詢響應(yīng)。
在圖7中,說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)700的方框圖。預(yù)設(shè)高速緩存系統(tǒng)700包括分析組件702、具有高速緩存子集720的高速緩存704以及諸如OLAP對象等具有多維對象子集722的多維對象706。在本發(fā)明的一個方面,分析組件702包括查詢解釋器710、短等待時間終端714以及實(shí)時終端712。分析組件702可以接收輸入(諸如用戶輸入716、系統(tǒng)輸入718、以及查詢輸入708等)。在本發(fā)明的一個方面,查詢解釋器710可以分析或分解復(fù)雜的查詢使之成為“部分”,以及根據(jù)查詢輸入708的內(nèi)容預(yù)設(shè)地判定終端712、714中哪個是適當(dāng)?shù)?。例如,可以?biāo)出部分#1為“時間敏感數(shù)據(jù)”,并引導(dǎo)到短等待時間終端714,以便訪問高速緩存704,尤其是,高速緩存子集720。同樣,可以標(biāo)出部分#2為“最新數(shù)據(jù)”,并引導(dǎo)到實(shí)時終端712,以便訪問多維對象706,尤其是,多維對象子集722。按相似的方式,可以標(biāo)出部分#n(其中“n”表示從1到無窮大的整數(shù))為上述類別中的每一個,并引導(dǎo)到高速緩存706或多維對象708。在本發(fā)明的又一個方面,可以根據(jù)用戶輸入716和/或系統(tǒng)輸入718(包括數(shù)據(jù)庫狀態(tài)等)來分析查詢輸入708。雖然把“短等待時間”和“實(shí)時”描述成“終端”,但是事實(shí)上它們可以是分析組件的一部分,并且不需要成為如圖7中描繪的獨(dú)立的實(shí)體。因此,可以包括這些作為查詢解釋器710的一部分,作為如同控制進(jìn)入數(shù)據(jù)的嵌入式濾波器這樣的高速緩存706和/或多維對象704的一部分和/或作為外部濾波器的一部分。
參考圖8,示出根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)800的另一個方框圖。預(yù)設(shè)高速緩存系統(tǒng)800包括分析組件802、高速緩存804以及諸如OLAP對象等的多維對象806。在本發(fā)明的一個方面,分析組件802包括查詢解釋器816、短等待時間終端818以及實(shí)時終端820。查詢解釋器816處理多個查詢輸入808。這可以包括任何數(shù)量的輸入,但是為了簡單說明起見,示出三個輸入。這些輸入包括用戶#1輸入810、用戶#2輸入812以及用戶#3輸入814。每個用戶輸入構(gòu)成查詢解釋器816分析的至少一個查詢。例如,如果第一用戶#1輸入包含查詢#1,它具有“產(chǎn)品信息”的維數(shù)和相對于該“數(shù)據(jù)庫穩(wěn)定”的信息的數(shù)據(jù)庫狀態(tài),則查詢解釋器816可以把該訪問引導(dǎo)到短等待時間終端818進(jìn)行對高速緩存804的訪問。高速緩存804可以是具有快響應(yīng)時間等的多維OLAP高速緩存。如果第二用戶#2輸入包含查詢#2,它具有“演示圖形”的維數(shù)和相對于該“數(shù)據(jù)庫更新”的信息的數(shù)據(jù)庫狀態(tài),則查詢解釋器816可以把該訪問引導(dǎo)到實(shí)時終端820進(jìn)行多維對象806的訪問。多維對象的特征可以包括實(shí)時數(shù)據(jù)訪問等。同樣,如果第三用戶#3輸入具有“財(cái)務(wù)數(shù)據(jù)”的維數(shù)和相對于該“數(shù)據(jù)庫更新”的信息的狀態(tài),則查詢解釋器816可以把該訪問引導(dǎo)到實(shí)時終端820進(jìn)行多維對象806的訪問。按這種方式,預(yù)設(shè)高速緩存系統(tǒng)向用戶提供所需要的響應(yīng)而無需關(guān)于要使用哪個高速緩存的活動用戶輸入。然而,本發(fā)明不預(yù)先排除利用用戶和/或系統(tǒng)輸入來判定如何和/或何時進(jìn)行預(yù)設(shè)高速緩存。
轉(zhuǎn)到圖9,說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)輸入900的方框圖。如前所述,分析組件902可以具有多個輸入。這些包括,但是不限于,查詢輸入904、用戶輸入906以及系統(tǒng)輸入908。用戶輸入906包括,但是不限于,安靜時間延遲910、安靜時間延遲復(fù)蓋912、強(qiáng)制刷新時間914、用戶啟動部分高速緩存再構(gòu)造916以及用戶輸入“n”918(其中“n”表示任何無限數(shù)和/或輸入類型)等。系統(tǒng)輸入908包括,但是不限于,最新數(shù)據(jù)庫更新跟蹤器920、影響OLAP對象表922、相關(guān)OLAP對象數(shù)據(jù)源跟蹤器924以及系統(tǒng)輸入“n”926(其中“n”表示任何無限數(shù)和/或輸入類型)等。
安靜時間延遲910包括一種裝置,該裝置對于一數(shù)據(jù)庫相對于某個相關(guān)的信息更新以來已經(jīng)過去了多少時間保持跟蹤。該相關(guān)信息可以是實(shí)際數(shù)據(jù)表輸入項(xiàng)和/或OLAP對象。安靜時間復(fù)蓋912包括系統(tǒng)和/或用戶確定的一種裝置,以使高速緩存復(fù)蓋以及再構(gòu)造,即使尚未符合安靜時間延遲910。這防止高速緩存由于偶爾發(fā)生而從來不更新,而是對于一個數(shù)據(jù)庫頻繁地更新,始終發(fā)生在正好達(dá)到安靜時間延遲910之前。強(qiáng)制刷新時間914包括一種裝置,以在給定時間間隔強(qiáng)制刷新高速緩存。這防止高速緩存包含陳舊數(shù)據(jù),盡管事實(shí)上數(shù)據(jù)庫未曾報(bào)告強(qiáng)制刷新時間914中的任何更新。這還保證即使在數(shù)據(jù)庫不能夠發(fā)送狀態(tài)數(shù)據(jù)的情況下,也可以更新高速緩存。用戶啟動部分高速緩存再構(gòu)造916包括一種裝置,以允許用戶控制什么部分和/或何時再構(gòu)造該部分高速緩存。例如,這允許用戶選擇地判定是否應(yīng)該再構(gòu)造特定的子集而同時保持其它數(shù)據(jù)的快速可訪問性。用戶輸入“n”918包括用于通過分析組件902輔助預(yù)設(shè)高速緩存的任何裝置。熟悉本技術(shù)領(lǐng)域的人員會理解,用戶可以輸入許多不同的定時參數(shù)和/或數(shù)據(jù)參數(shù)來幫助更有效地利用預(yù)設(shè)高速緩存。例如,一種如此的裝置包括在要求更新的情況下允許用戶輸入人工改變來對某些表/視圖/0LAP對象作出標(biāo)記。
最新數(shù)據(jù)庫更新跟蹤器920包括一種裝置,以跟蹤最近更新數(shù)據(jù)庫是在何時。可以與其它輸入一起利用這個輸入來確定高速緩存數(shù)據(jù)等的陳舊性。影響OLAP對象的表922包括一種裝置,以跟蹤/列出涉及高速緩存所根據(jù)的OLAP對象的數(shù)據(jù)庫表數(shù)據(jù)。這允許濾除高速緩存更新來防止當(dāng)數(shù)據(jù)庫具有不相關(guān)的表更新時對高速緩存進(jìn)行更新。相關(guān)OLAP對象數(shù)據(jù)源跟蹤器924包括一種裝置,以跟蹤高速緩存數(shù)據(jù)對特定OLAP對象的相關(guān)性。這還允許濾除高速緩存更新以防止當(dāng)不相關(guān)的OLAP對象改變時對高速緩存進(jìn)行更新。系統(tǒng)輸入“n”926包括用于通過分析組件902輔助預(yù)設(shè)高速緩存的任何裝置。熟悉本技術(shù)領(lǐng)域的人員會理解,用戶可以輸入許多不同的定時參數(shù)和/或數(shù)據(jù)參數(shù)來幫助更有效地利用預(yù)設(shè)高速緩存。這包括,但是不限于,數(shù)據(jù)庫更新通知等。
重要的是要注意,雖然是作為進(jìn)入到分析組件902來說明上述輸入?yún)?shù),但是分析組件902本身可以包括子組件,該子組件提供功能,以執(zhí)行利用上述輸入所需要的功能。還可能由分析組件920的外部組件來提供所需要的某些和/或全部功能。
在圖10中,示出根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)參數(shù)1000的方框圖。在本發(fā)明的一個實(shí)例中,預(yù)設(shè)高速緩存系統(tǒng)參數(shù)1000包括操作模式1002和觸發(fā)1010等。操作模式包括ROLAP模式1004、MOLAP模式1006、以及MOLAP/ROLAP模式1008等。ROLAP模式1004的觸發(fā)1010包括安靜時間延遲符合1012、安靜時間延遲復(fù)蓋符合1014、強(qiáng)制刷新時間符合1016、以及數(shù)據(jù)庫更新1018等。MOLAP模式1006的觸發(fā)1010包括等效的MOLAP和ROLAP數(shù)據(jù)集1020以及對于實(shí)時數(shù)據(jù)等需求的快速查詢響應(yīng)1022的用戶要求。MOLAP/ROLAP模式的觸發(fā)1010包括何時需要1024短等待時間和實(shí)時查詢兩者以及何時需要1026部分重構(gòu)MOLAP高速緩存。
ROLAP模式1004只允許為查詢而訪問ROLAP數(shù)據(jù)。這一般是具有實(shí)時數(shù)據(jù)訪問的較慢的模式。MOLAP模式1006只允許為查詢而訪問MOLAP數(shù)據(jù),由于它的快速性能,所以一般是缺省模式。為了保證數(shù)據(jù)的完整性和提高性能,在MOLAP數(shù)據(jù)等于ROLAP數(shù)據(jù)的任何時間都可以使用MOLAP模式。這通過利用較快的裝置而保證沒有損失數(shù)據(jù)準(zhǔn)確度。這也可以由對于實(shí)時數(shù)據(jù)等(其它用戶輸入)要求快速訪問的用戶使用。MOLAP/ROLAP模式1008是一種混合模式,它允許訪問MOLAP和ROLAP兩種數(shù)據(jù)。這允許用戶和/或系統(tǒng)檢索所要求的任何等待時間類型需要的任何數(shù)據(jù)類型。它還允許用ROLAP對象(為在構(gòu)造的該部分MOLAP高速緩存提供信息)部分重構(gòu)MOLAP高速緩存。
熟悉本技術(shù)領(lǐng)域的人員會理解,上述觸發(fā)和操作模式無論如何也不是無遺漏的列表。圖10表示一例子,該例子僅為本發(fā)明的一個方面。還可以使用附加的模式和觸發(fā),并且也在本發(fā)明的范圍內(nèi)。
參看圖11,說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)1100的又一個方框圖。預(yù)設(shè)高速緩存系統(tǒng)包括分析組件1102、MOLAP高速緩存1104以及OLAP對象1106。分析組件1102包括自適應(yīng)調(diào)諧組件1110、第一會話1114以及第二會話1116。自適應(yīng)調(diào)諧組件1110包括查詢解釋器1112、性能最優(yōu)化器1118以及結(jié)果比較器1120。把一般的查詢1108輸入到查詢解釋器1112。在本發(fā)明的這個方面,查詢解釋器1112是自適應(yīng)調(diào)諧組件1110的一部分。因此,對于性能調(diào)諧,查詢解釋器1112用相同的查詢1108建立雙會話。因此,經(jīng)由會話#11114把查詢1108發(fā)送到MOLAP高速緩存1104以及經(jīng)由會話#21116到OLAP對象1106。每個會話1114、1116產(chǎn)生一個響應(yīng),把所述響應(yīng)發(fā)送到結(jié)果比較器1120。結(jié)果比較器1120依次判定兩個會話1114、1116之間的任何差異。如果有差異的話,向性能最優(yōu)化器1118報(bào)告這些差異。性能最優(yōu)化器1118跟蹤差異,并且自適應(yīng)地改變查詢解釋器1112如何對將來的查詢起作用。熟悉本技術(shù)領(lǐng)域的人員會理解,不是所有查詢都需要經(jīng)由會話1114、1116連續(xù)地處理。一旦已經(jīng)使特定的查詢最優(yōu)化,偶然的取樣就是全部所需要的?!芭既坏摹笨梢允敲棵?、小時、天、月和/或年等,取決于查詢該數(shù)據(jù)的頻率。例如,不管經(jīng)由會話#11114還是經(jīng)由會話#21116,一年前的以前的銷售記錄可以導(dǎo)致相同的結(jié)果。因此,當(dāng)查詢有關(guān)相同時間周期的銷售記錄時,性能最優(yōu)化器1118命令查詢解釋器1112只利用快速響應(yīng)的MOLAP高速緩存1104。性能最優(yōu)化器1118可以跟蹤數(shù)據(jù)、用法和相關(guān)聯(lián)的參數(shù)來提供自適應(yīng)調(diào)諧,甚至對于用戶設(shè)置,可能向用戶提供性能建議。
由于所示的示例系統(tǒng)和上面的描述,將參考圖12-17的流程圖來較好地理解可以根據(jù)本發(fā)明實(shí)施的方法。同時,為了簡化說明的目的,用一系列方框示出和描述方法,要理解和意識到本發(fā)明不受到方框的次序的限制,根據(jù)本發(fā)明,某些方框可以按不同次序存在和/或與這里示出和描述的其它方框同時存在。此外,實(shí)施根據(jù)本發(fā)明的方法可能不需要所說明的所有方框。
在一般情況中可以以諸如通過一個或多個組件執(zhí)行的程序模塊的計(jì)算機(jī)可執(zhí)行指令來描述本發(fā)明。一般,程序模塊包括執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例行程序、程序、對象、數(shù)據(jù)結(jié)構(gòu)等。一般,在各個實(shí)施例中可以按要求組合或分配程序模塊功能。
轉(zhuǎn)到圖12,描繪說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1200的流程圖。方法1200通過在后臺過程1204中開始構(gòu)造ROLAP對象的MOLAP高速緩存等價物而開始1202。然后作出確定以檢測何時完成1206 MOLAP高速緩存。當(dāng)完成時,切換操作模式而利用MOLAP模式1208。然后使用MOLAP高速緩存來處理查詢1210。然后作出ROLAP對象是否存在任何相關(guān)的改變的確定1212。這也可以包括任何基礎(chǔ)數(shù)據(jù)的任何相關(guān)的改變。如果沒有發(fā)生相關(guān)的改變,則繼續(xù)查詢,以利用MOLAP高速緩存進(jìn)行處理1210。然而,如果存在改變,則把操作模式切換到ROLAP模式1214。然后丟掉所有相關(guān)的高速緩存1216,結(jié)束流程1218。可以無限地重復(fù)這個循環(huán),以便在盡管任何相關(guān)數(shù)據(jù)庫改變的情況下仍保持MOLAP高速緩存的刷新。
轉(zhuǎn)到圖13,示出說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1300的另一個流程圖。通過提供用戶輸入1304而開始1302方法1300。作出關(guān)于是否提出MOLAP模式請求的確定1306。如果沒有,則繼續(xù)查詢,以利用ROLAP模式進(jìn)行處理1322,結(jié)束流程1316。然而,如果提出了MOLAP模式請求,則作為后臺過程1308來構(gòu)造ROLAP對象的MOLAP等價物。然后作出關(guān)于是否已經(jīng)發(fā)生相關(guān)于ROLAP對象的改變的確定1310。如果已經(jīng)發(fā)生改變,則取消MOLAP等價物構(gòu)造1318,把操作模式切換到ROLAP模式1320,并且再次構(gòu)造ROLAP對象的MOLAP等價物1308。然而,如果在完成MOLAP高速緩存的構(gòu)造之后沒有發(fā)生相關(guān)的改變,則把操作模式切換到MOLAP模式1312,并且利用MOLAP高速緩存處理查詢1314,結(jié)束流程1316。
參考圖14,說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1400的又一個流程圖。用所提供的安靜時間延遲用戶輸入1404開始1402方法1400。在后臺過程1406中構(gòu)造ROLAP對象的MOLAP等價物。然后作出關(guān)于ROLAP對象1410是否已經(jīng)發(fā)生任何相關(guān)改變的確定。如果未曾發(fā)生改變,則利用MOLAP高速緩存1410處理查詢,結(jié)束流程1412。然而,如果已經(jīng)發(fā)生ROLAP對象的改變,則作出關(guān)于是否已經(jīng)符合安靜時間延遲的確定1414。如果沒有,則作出是否已經(jīng)符合安靜時間延遲復(fù)蓋的確定1418。如果未曾符合安靜時間延遲復(fù)蓋,則使用MOLAP高速緩存1410處理查詢,結(jié)束流程1412。然而,如果已經(jīng)符合安靜時間延遲復(fù)蓋,則把操作模式切換到ROLAP模式,并且再次構(gòu)造MOLAP高速緩存1406。然而,如果在檢測對ROLAP對象的相關(guān)改變之后已經(jīng)符合安靜時間延遲,則把操作模式切換到ROLAP模式1416,并且在后臺過程1406中構(gòu)造MOLAP高速緩存,繼續(xù)該周期。
轉(zhuǎn)到圖15,示出說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1500的再又一個流程圖。通過提供人工用戶輸入1504而開始1502方法1500。人工用戶輸入包括一些參數(shù),這些參數(shù)允許用戶指定某些表/視圖/對象等作為“臟的”(即,如果需要訪問它們的話,則必須更新)。作出關(guān)于ROLAP對象是否已經(jīng)發(fā)生相關(guān)改變的確定1506。這考慮了臟的輸入可能改變與高速緩存數(shù)據(jù)相關(guān)的數(shù)據(jù)。如果未曾發(fā)生相關(guān)的改變,則使用MOLAP高速緩存處理查詢1514,結(jié)束流程1516。一般,由于較高的性能增益,使用MOLAP高速緩存是預(yù)設(shè)高速緩存系統(tǒng)的一個缺省條件,除非用戶和/或系統(tǒng)另行指定,否則就按缺省條件執(zhí)行。然而,如果已經(jīng)發(fā)生ROLAP對象的相關(guān)的改變1506(由于臟的輸入和/或數(shù)據(jù)庫更新等),則把操作模式切換到ROLAP模式1508。然后在后臺過程中重構(gòu)MOLAP高速緩存1510,并當(dāng)完成高速緩存時再次把操作模式切換到MOLAP模式1512。然后繼續(xù)使用MOLAP高速緩存處理查詢1514,結(jié)束流程1516。
在圖16中,示出說明根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1600的流程圖。通過用戶提供有關(guān)的ROLAP對象數(shù)據(jù)輸入1604而開始1602方法1600。然后把輸入數(shù)據(jù)鏈接到相關(guān)的、合適的ROLAP對象1606。如此,甚至在沒有從這個數(shù)據(jù)特定地得到的情況下,用戶也可以相對于高速緩存數(shù)據(jù)對數(shù)據(jù)作出標(biāo)記。然后作出關(guān)于ROLAP對象是否已經(jīng)發(fā)生任何相關(guān)的改變的確定。這檢查是否已經(jīng)建立從ROLAP對象到已經(jīng)改變的數(shù)據(jù)的新數(shù)據(jù)鏈路。如果沒有發(fā)現(xiàn)改變,則使用MOLAP高速緩存處理查詢1616,結(jié)束流程1618。由于性能增益,考慮MOLAP模式為缺省模式。然而,如果已經(jīng)作出相對于ROLAP對象的改變1608,則把操作模式切換到ROLAP模式1610。然后在后臺過程中從ROLAP對象重構(gòu)MOLAP高速緩存。一旦完成,就把MOLAP模式切換到MOLAP模式1614,并再次使用MOLAP高速緩存處理查詢1616,結(jié)束流程1618。
參看圖17,描繪根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存的方法1700的再又一個流程圖。從用戶提供強(qiáng)制刷新率輸入1704開始1702方法1700。然后作出關(guān)于是否已經(jīng)符合這個輸入的確定1706。如果沒有符合,則利用MOLAP高速緩存處理查詢1714,結(jié)束流程1716。由于性能增益,考慮MOLAP模式為缺省模式。然而,如果已經(jīng)符合強(qiáng)制刷新率輸入1706,則把操作模式切換到ROLAP模式1708。然后作為后臺過程重構(gòu)MOLAP高速緩存1710。一旦完成,就把操作模式切換回MOLAP模式1712,并使用MOLAP高速緩存1714處理查詢,結(jié)束流程1716。
上述流程意味著代表本發(fā)明的各種方法的流程。它們無論如何都不包括本發(fā)明范圍內(nèi)的每種重復(fù)和變型。熟悉本技術(shù)領(lǐng)域的人員可以理解,方法可以結(jié)合修改,并且仍保持在本發(fā)明的范圍內(nèi)。
為了提供實(shí)施本發(fā)明的各種方面的附加情況,打算以圖18和下面的討論來提供對于可以實(shí)施本發(fā)明的各個方面的合適的計(jì)算環(huán)境1800的簡單的、一般的說明。當(dāng)已經(jīng)在上面按運(yùn)行在本地計(jì)算機(jī)和/或遠(yuǎn)程計(jì)算機(jī)上的計(jì)算機(jī)程序的計(jì)算機(jī)可執(zhí)行指令的一般情況描述本發(fā)明時,熟悉本技術(shù)領(lǐng)域的人員會理解,還可以與其它程序模塊組合而實(shí)施本發(fā)明。一般,程序模塊包括執(zhí)行特定任務(wù)和/或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型的例行程序、程序、組件、數(shù)據(jù)結(jié)構(gòu)等。此外,熟悉本技術(shù)領(lǐng)域的人員會理解,可以用其它計(jì)算機(jī)系統(tǒng)來實(shí)施本發(fā)明的方法,這些計(jì)算機(jī)系統(tǒng)配置包括單個處理器與多處理器計(jì)算機(jī)系統(tǒng)、小型計(jì)算機(jī)、主計(jì)算機(jī)以及個人計(jì)算機(jī)、手持計(jì)算設(shè)備、基于微處理器的和/或可編程的消費(fèi)電子產(chǎn)品等,它們中的每一個都可以與一個或多個相關(guān)聯(lián)的裝置可操作地進(jìn)行通信。還可以在分布式計(jì)算環(huán)境(其中由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備執(zhí)行某些任務(wù))中實(shí)施本發(fā)明所說明的方面。然而,如果不是在獨(dú)立的計(jì)算機(jī)上實(shí)施本發(fā)明的全部方面,則可以在獨(dú)立的計(jì)算機(jī)上實(shí)施本發(fā)明的某些方面。
如在本申請中所使用,指定術(shù)語“元件”是指與計(jì)算機(jī)有關(guān)的實(shí)體,在執(zhí)行中,可以是硬件、硬件和軟件的組合、或軟件。例如,組件可以是,但是不限于,運(yùn)行在處理器上的過程、處理器、對象、可執(zhí)行的、執(zhí)行的線程、程序和/或計(jì)算機(jī)。作為說明,運(yùn)行在一個服務(wù)器上的應(yīng)用程序和/或該服務(wù)器可以是組件。此外,組件可以包括一個或多個子組件。
參考圖18,實(shí)施本發(fā)明的各個方面的示例系統(tǒng)環(huán)境1800包括傳統(tǒng)計(jì)算機(jī)1802,該計(jì)算機(jī)包括處理單元1804、系統(tǒng)存儲器1806、以及把包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合到處理單元1804的系統(tǒng)總線1808。處理單元1804可以是任何可商業(yè)上可購得的或?qū)S?proprietary)的處理器。此外,可以實(shí)施處理單元作為不止一個處理器(諸如可以并行連接的處理器)形成的多處理器。
系統(tǒng)總線1808可以是數(shù)種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器,外圍總線以及使用多種傳統(tǒng)總線結(jié)構(gòu)(舉幾個例子,諸如PCI、VESA、Microchannel、ISA以及EISA)中任何總線結(jié)構(gòu)的局部總線。系統(tǒng)存儲器1806包括只讀存儲器(ROM)1810和隨機(jī)存取存儲器(RAM)1812。把基本輸入/輸出系統(tǒng)(BIOS)1814(它包含諸如在啟動期間幫助在計(jì)算機(jī)1802中的單元之間傳送信息的基本例行程序)存儲在ROM 1810中。
例如,計(jì)算機(jī)1802還可以包括硬盤驅(qū)動器1816、磁盤驅(qū)動器1818(例如,從可換磁盤1820讀出或?qū)懭肟蓳Q磁盤1820)以及光盤驅(qū)動器1822(例如,從CD-ROM盤1824或其它光學(xué)媒體讀出或?qū)懭隒D-ROM盤1824或其它光學(xué)媒體)。分別通過硬盤驅(qū)動器接口1826、磁盤驅(qū)動器接口1828以及光盤驅(qū)動器接口1830把硬盤驅(qū)動器1816、磁盤驅(qū)動器1818以及光盤驅(qū)動器1822鏈接到系統(tǒng)總線1808。驅(qū)動器1816-1822以及它們相關(guān)聯(lián)的計(jì)算機(jī)可讀出媒體提供用于計(jì)算機(jī)1802的數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)可執(zhí)行指令等的非易失性存儲。雖然上面的計(jì)算機(jī)可讀出媒體的說明涉及硬盤、可移動磁盤和CD,但是熟悉本技術(shù)領(lǐng)域的人員應(yīng)理解,還可以在示例操作環(huán)境1800中使用計(jì)算機(jī)可讀出的其它類型的媒體,諸如盒式磁帶、快閃存儲卡、數(shù)字視頻盤、Bernoulli磁帶盒等,此外,任何如此的媒體可以包括用于執(zhí)行本發(fā)明的方法的計(jì)算機(jī)可執(zhí)行指令。
可以把許多程序模塊存儲在驅(qū)動器1816-1822和RAM 1812中,包括操作系統(tǒng)1832、一個或多個應(yīng)用程序1834、其它程序模塊1836以及程序數(shù)據(jù)1838。操作系統(tǒng)1832可以是任何合適的操作系統(tǒng)或操作系統(tǒng)的組合。作為例子,應(yīng)用程序1834和程序模塊1836可以包括利用根據(jù)本發(fā)明的一個方面的數(shù)據(jù)的數(shù)據(jù)庫服務(wù)系統(tǒng)和/或預(yù)設(shè)高速緩存系統(tǒng)。此外,程序數(shù)據(jù)1838可以包括用于控制和/或偏置根據(jù)本發(fā)明的一個方面的預(yù)設(shè)高速緩存系統(tǒng)的輸入數(shù)據(jù)。
用戶可以通過一個或多個用戶輸入設(shè)備(諸如鍵盤1840和指針設(shè)備(例如,鼠標(biāo)1842))把命令和信息輸入到計(jì)算機(jī)1802。其它輸入設(shè)備(未示出)可以包括話筒、搖桿、游戲小鍵盤、衛(wèi)星盤、無線遠(yuǎn)程、掃描器等。通常通過耦合到系統(tǒng)總線1808的串行端口接口1844把這些和其它輸入設(shè)備鏈接到處理單元1804,但是也可以通過其它接口連接,諸如并行端口、游戲端口或通用串行總線(USB)。還經(jīng)由諸如視頻適配器1848之類的接口把監(jiān)視器1846或其它類型顯示設(shè)備鏈接到系統(tǒng)總線1808。除了監(jiān)視器1846之外,計(jì)算機(jī)1802還可以包括其它外圍輸出設(shè)備(未示出),諸如揚(yáng)聲器、打印機(jī)等。
可以理解,計(jì)算機(jī)1802可以使用到一個或多個遠(yuǎn)程計(jì)算機(jī)1860的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)1860可以是工作站、服務(wù)器計(jì)算機(jī)、路由器、對等設(shè)備或其它公共網(wǎng)絡(luò)節(jié)點(diǎn),以及一般包括相對于計(jì)算機(jī)1802描述的許多或所有單元,雖然為了簡短的目的,在圖18中只說明一個存儲器存儲裝置1862。在圖18中描繪的邏輯連接可以包括局域網(wǎng)(LAN)1864和廣域網(wǎng)(WAN)1866。這種網(wǎng)絡(luò)環(huán)境是辦公室、全企業(yè)的計(jì)算機(jī)網(wǎng)絡(luò)、企業(yè)內(nèi)部網(wǎng)以及因特網(wǎng)中的公用地方。
例如,當(dāng)在LAN網(wǎng)絡(luò)環(huán)境中使用時,通過網(wǎng)絡(luò)接口或適配器1868把計(jì)算機(jī)1802鏈接到局域網(wǎng)1864。當(dāng)在WAN網(wǎng)絡(luò)環(huán)境中使用時,計(jì)算機(jī)1802一般包括調(diào)制解調(diào)器(例如,電話、DSL、電纜等)1870,或連接到LAN上的通信服務(wù)器,或具有在WAN 1866上建立通信的其它裝置,諸如因特網(wǎng)。經(jīng)由串行端口接口1844把相對于計(jì)算機(jī)1802可以是內(nèi)部或外部的調(diào)制解調(diào)器1870連接到系統(tǒng)總線1808。在網(wǎng)絡(luò)化的環(huán)境中,可以把程序模塊(包括應(yīng)用程序1834)和/或程序數(shù)據(jù)1838存儲在遠(yuǎn)程存儲器存儲裝置1862中。應(yīng)該理解,所示出的網(wǎng)絡(luò)連接是作為例子的,當(dāng)執(zhí)行本發(fā)明的一個方面時,可以使用建立計(jì)算機(jī)1802和1860之間的通信鏈路的其它裝置(例如,有線的或無線的)。
根據(jù)熟悉計(jì)算機(jī)編程技術(shù)領(lǐng)域的人員的實(shí)踐,已經(jīng)參考通過計(jì)算機(jī)(諸如計(jì)算機(jī)1802或遠(yuǎn)程計(jì)算機(jī)1860,除非另行表示)執(zhí)行的動作和操作的符號表示來描述本發(fā)明。有時把這種動作和操作稱為是計(jì)算機(jī)-執(zhí)行的??梢岳斫?,動作和由符號表示的操作包括通過表示數(shù)據(jù)位的電信號的處理單元1804的操作,所述數(shù)據(jù)位引起所產(chǎn)生的電信號表示的變換或減少,在存儲器系統(tǒng)(包括系統(tǒng)存儲器1806、硬盤驅(qū)動器1816、軟盤驅(qū)動器1820、CD-ROM 1824以及遠(yuǎn)程存儲器1862)中的存儲器存儲單元處保存數(shù)據(jù)位,從而再配置或否則改變計(jì)算機(jī)系統(tǒng)的操作,以及信號的其它處理。保存這種數(shù)據(jù)位的存儲器存儲單元是物理位置,它具有相對于數(shù)據(jù)位的特定的電、磁或光學(xué)特性。
圖19是示例計(jì)算環(huán)境1900的另一個方框圖,本發(fā)明可以與該計(jì)算環(huán)境交互作用。系統(tǒng)1900進(jìn)一步說明包括一個或多個客戶1902的系統(tǒng)??蛻?902可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。系統(tǒng)1900還包括一個或多個服務(wù)器1904。服務(wù)器1904也可以是硬件和/或軟件(例如,線程、進(jìn)程、計(jì)算設(shè)備)。例如,服務(wù)器1904可以容納線程,以通過使用本發(fā)明執(zhí)行變換??蛻?902和服務(wù)器1904之間一種可能的通信可以按適合于在兩個或多個計(jì)算機(jī)過程之間發(fā)送的數(shù)據(jù)分組的形式。系統(tǒng)1900包括通信框架1908,可以使用它來促進(jìn)客戶1902和服務(wù)器1904之間的通信。把客戶1902可操作地連接到一個或多個客戶數(shù)據(jù)存儲器1910,可以用該存儲器來存儲客戶1902的本地信息。相似地,把服務(wù)器1904可操作地連接到一個或多個服務(wù)器數(shù)據(jù)存儲器1906,可以用該存儲器來存儲服務(wù)器1904的本地信息。
轉(zhuǎn)到圖20,示出本發(fā)明可以在其中起作用的操作環(huán)境2000的一個例子。這個一般的環(huán)境2000包括鏈接到數(shù)據(jù)源2010和用戶接口2012的分析服務(wù)組件2002。用戶接口2012包括OLAP瀏覽器、報(bào)告工具以及其它BI(商務(wù)智能)應(yīng)用程序等。分析服務(wù)組件2002一般具有經(jīng)由接口2008(象XML/A(擴(kuò)展標(biāo)記語言/分析)和MDX(多維交換語言)等)的帶有用戶接口2012的接口2014。分析服務(wù)組件2002包括UDM(統(tǒng)一維數(shù)模型)組件2004和高速緩存2006。在這個例子中,經(jīng)由UDM組件2004和高速緩存2006在分析服務(wù)組件2002中使用本發(fā)明。UDM組件可以預(yù)設(shè)地訪問高速緩存2006和/或直接訪問數(shù)據(jù)。
上面所描述的包括本發(fā)明的例子。當(dāng)然,為了描述本發(fā)明,不可能描述組件或方法的每個想得到的組合,但是熟悉本技術(shù)領(lǐng)域的人員會理解,本發(fā)明的許多進(jìn)一步的組合和更動都是可能的。因此,打算使本發(fā)明包括落在所附的權(quán)利要求書的精神和范圍內(nèi)的所有如此的改變、修改和變型。此外,就在詳細(xì)說明和權(quán)利要求書中都使用了術(shù)語“包括(includes)”來說,打算按與術(shù)語包括(comprising)在權(quán)利要求書中作為過渡詞時解釋“comprising”的相似的方式來包括如此的術(shù)語。
權(quán)利要求
1.用于高速緩存信息的一種系統(tǒng),包括多維對象接口,它允許訪問提供從數(shù)據(jù)庫得到的動態(tài)多維分析數(shù)據(jù)的至少一個多維對象;高速緩存接口,它允許訪問和控制提供從多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù)的至少一個高速緩存;以及耦合到多維對象和高速緩存的至少一個分析組件,用于預(yù)設(shè)地控制對多維對象和高速緩存的訪問。
2.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫。
3.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述多維對象包括ROLAP對象。
4.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述高速緩存包括MOLAP高速緩存。
5.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述多維對象包括實(shí)時訪問分析數(shù)據(jù)以及所述高速緩存包括快速訪問分析數(shù)據(jù)。
6.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述分析組件包括統(tǒng)一維數(shù)模型(UDM)。
7.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述分析組件包括至少一個輸入,用于確定何時預(yù)設(shè)地控制高速緩存;以及查詢解釋器,用于根據(jù)輸入接收和審定查詢。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述輸入包括從由用戶輸入和系統(tǒng)輸入組成的組中選擇的至少一個輸入,用于預(yù)設(shè)地控制高速緩存。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)輸入包括數(shù)據(jù)庫更新通知。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述用戶輸入包括從由安靜時間延遲、安靜時間延遲復(fù)蓋、強(qiáng)制刷新時間的組中選擇的至少一個輸入,以及用戶啟動部分高速緩存的重構(gòu)。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述系統(tǒng)輸入包括從由最新數(shù)據(jù)庫更新跟蹤器、影響OLAP對象的表以及相關(guān)OLAP對象數(shù)據(jù)源跟蹤器組成的組中選擇的至少一個輸入。
12.如權(quán)利要求1所述的系統(tǒng),其特征在于,具有預(yù)設(shè)高速緩存操作模式的所述分析組件包括從由ROLAP模式、MOLAP模式以及MOLAP/ROLAP模式組成的組中選擇的至少一種模式。
13.如權(quán)利要求12所述的系統(tǒng),其特征在于,通過從由安靜時間延遲符合、安靜時間延遲復(fù)蓋符合、強(qiáng)制刷新時間符合組成的組中選擇的至少一個來可操作地觸發(fā)ROLAP模式,以及更新數(shù)據(jù)庫。
14.如權(quán)利要求12所述的系統(tǒng),其特征在于,從所述組中所選擇的至少一個可操作地觸發(fā)的MOLAP模式的組成包括MOLAP高速緩存和ROLAP對象兩者可得到的等價物查詢數(shù)據(jù);以及用戶要求。
15.如權(quán)利要求12所述的系統(tǒng),其特征在于,從由所要求的實(shí)時和短等待時間查詢兩者以及所要求的MOLAP高速緩存的部分的構(gòu)造組成的組中選擇的至少一個來可操作地觸發(fā)所述MOLAP/ROLAP模式。
16.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述分析組件具有處理多個查詢的能力,所述多個查詢的每一個要求不同的預(yù)設(shè)高速緩存處理。
17.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述分析組件具有處理經(jīng)分析的查詢的能力,所述經(jīng)分析的查詢的每個部分要求不同的預(yù)設(shè)高速緩存處理。
18.如權(quán)利要求1所述的系統(tǒng),其特征在于,所述分析組件包括用于使分析組件最優(yōu)化的自適應(yīng)調(diào)諧組件。
19.如權(quán)利要求18所述的系統(tǒng),其特征在于,所述自適應(yīng)調(diào)諧組件包括查詢解釋器,用于處理查詢和啟動(instigating)與多維對象和高速緩存的查詢會話;可操作地連接到所述查詢解釋器的結(jié)果比較器,用于確定多維對象和高速緩存的各查詢會話之間的差異;以及可操作地連接到所述結(jié)果比較器的性能最優(yōu)化器,用于根據(jù)由所述結(jié)果比較器確定的差異而使所述查詢解釋器最優(yōu)化。
20.數(shù)據(jù)庫服務(wù)的一種方法包括可操作地耦合到從至少一個數(shù)據(jù)庫得到的至少一個所述多維對象以及耦合到包括從所述多維對象得到的動態(tài)多維分析數(shù)據(jù)的至少一個所述高速緩存;以及響應(yīng)于查詢預(yù)設(shè)地控制對所述多維對象和所述高速緩存的訪問。
21.如權(quán)利要求20所述的方法,其特征在于,所述多維對象包括ROLAP對象。
22.如權(quán)利要求20所述的方法,其特征在于,所述數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫。
23.如權(quán)利要求20所述的方法,其特征在于,所述高速緩存包括MOLAP高速緩存。
24.如權(quán)利要求24所述的方法,進(jìn)一步包括處理所述多維對象以產(chǎn)生所述高速緩存。
25.如權(quán)利要求24所述的方法,其特征在于,所述處理包括后臺事務(wù)。
26.如權(quán)利要求24所述的方法,進(jìn)一步包括監(jiān)測所述數(shù)據(jù)庫的相關(guān)改變;以及當(dāng)發(fā)生相關(guān)的改變時,再處理所述多維對象以產(chǎn)生經(jīng)更新的高速緩存。
27.如權(quán)利要求24所述的方法,進(jìn)一步包括當(dāng)從所檢測的自動條件和所檢測的用戶啟動動作組成的組中選擇的至少一個發(fā)生時,取消所述多維對象的處理。
28.如權(quán)利要求27所述的設(shè)備,其特征在于,所述所檢測的自動條件包括數(shù)據(jù)庫改變。
29.如權(quán)利要求27所述的方法,其特征在于,所述所檢測的用戶啟動動作包括從所述多維對象的提交處理和起動所述多維對象的另一個事務(wù)組成的組中選擇的至少一個動作。
30.用于高速緩存信息的一種系統(tǒng)包括第一裝置,用于提供從數(shù)據(jù)庫導(dǎo)出的動態(tài)多維分析數(shù)據(jù);第二裝置,用于提供從所述第一裝置導(dǎo)出的動態(tài)多維分析數(shù)據(jù);以及用于耦合第一裝置和第二裝置的第三裝置,用于預(yù)設(shè)地控制對第一和第二裝置的訪問,以提供關(guān)于所述數(shù)據(jù)庫的所要求的查詢響應(yīng)。
31.高速緩存數(shù)據(jù)的一種方法包括提供至少一個多維對象,所述多維對象提供從數(shù)據(jù)庫導(dǎo)出的動態(tài)多維分析數(shù)據(jù);構(gòu)造提供從至少一個多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù)的至少一個高速緩存;切換分析組件的操作模式,只為查詢分析而訪問高速緩存;以及利用高速緩存分析查詢。
32.如權(quán)利要求31所述的方法,進(jìn)一步包括確定是否已經(jīng)發(fā)生相關(guān)多維對象的任何改變;以及當(dāng)已經(jīng)發(fā)生相關(guān)改變時切換分析組件操作模式以訪問所述多維對象。
33.如權(quán)利要求32所述的方法,進(jìn)一步包括除去與相關(guān)改變有關(guān)的所有高速緩存;以及根據(jù)所述改變的多維對象再構(gòu)造高速緩存。
34.如權(quán)利要求31所述的方法,進(jìn)一步包括確定查詢是否需要從短等待時間數(shù)據(jù)和實(shí)時數(shù)據(jù)的組中選擇的至少一個數(shù)據(jù)。
35.如權(quán)利要求34所述的方法,進(jìn)一步包括當(dāng)需要短等待時間和實(shí)時數(shù)據(jù)兩者時把分析組件切換到MOLAP/ROLAP操作模式。
36.如權(quán)利要求31所述的方法,其特征在于,所述多維對象包括ROLAP對象。
37.如權(quán)利要求31所述的方法,其特征在于,所述數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫。
38.如權(quán)利要求31所述的方法,其特征在于,所述高速緩存包括MOLAP高速緩存。
39.如權(quán)利要求31所述的方法,其特征在于,所述分析組件包括DUM。
40.如權(quán)利要求31所述的方法,其特征在于,所述分析組件具有多個操作模式,所述操作模式包括從MOLAP模式、ROLAP模式和MOLAP/ROLAP模式組成的組中選擇的至少一個模式。
41.預(yù)設(shè)高速緩存的一種方法包括;提供與判定操作模式有關(guān)的一個輸入;至少部分地根據(jù)所述輸入判定操作模式;提供至少一個多維對象,所述多維對象提供從數(shù)據(jù)庫導(dǎo)出的動態(tài)多維分析數(shù)據(jù);構(gòu)造至少一個高速緩存,所述高速緩存提供從至少一個多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù);把具有操作模式的分析組件切換到所確定的操作模式;以及利用所確定的操作模式經(jīng)由分析組件處理查詢。
42.如權(quán)利要求41所述的方法,進(jìn)一步包括確定是否已經(jīng)發(fā)生相關(guān)多維對象的任何改變;以及當(dāng)已經(jīng)發(fā)生相關(guān)改變時切換所述分析組件以訪問所述多維對象。
43.如權(quán)利要求42所述的方法,進(jìn)一步包括移去與相關(guān)改變有關(guān)的所有高速緩存;以及根據(jù)所述改變的多維對象重構(gòu)高速緩存。
44.如權(quán)利要求41所述的方法,進(jìn)一步包括在構(gòu)造所述高速緩存期間確定相關(guān)改變;以及當(dāng)發(fā)生相關(guān)改變時取消所述高速緩存的構(gòu)造。
45.如權(quán)利要求41所述的方法,其特征在于,所述輸入包括從至少一個用戶輸入和至少一個系統(tǒng)輸入組成的組中選擇的至少一個輸入。
46.如權(quán)利要求45所述的方法,其特征在于,所述用戶輸入包括從短等待時間查詢請求和實(shí)時查詢請求組成的組中選擇的至少一個輸入。
47.預(yù)設(shè)高速緩存的一種方法包括提供至少一個多維對象,所述多維對象提供從數(shù)據(jù)庫導(dǎo)出的動態(tài)多維分析數(shù)據(jù);構(gòu)造至少一個高速緩存,所述高速緩存提供從至少一個多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù);提供指定數(shù)據(jù)的一個輸入;確定是否已經(jīng)發(fā)生相關(guān)多維對象的任何改變;當(dāng)已經(jīng)發(fā)生相關(guān)改變時切換分析組件操作模式以訪問多維對象;以及根據(jù)改變的相關(guān)多維對象重構(gòu)高速緩存。
48.如權(quán)利要求47所述的方法,其特征在于,所述輸入包括要求被更新的數(shù)據(jù)。
49.如權(quán)利要求48所述的方法,其特征在于,相關(guān)多維對象的所述改變包括要求被更新的數(shù)據(jù)。
50.如權(quán)利要求47所述的方法,其特征在于,所述輸入包括把數(shù)據(jù)鏈接到所述相關(guān)多維對象的信息。
51.如權(quán)利要求50所述的方法,進(jìn)一步包括把所述分析組件切換到一個操作模式,以只在重構(gòu)高速緩存之后才訪問高速緩存;以及利用所述高速緩存經(jīng)由所述分析組件處理查詢。
52.預(yù)設(shè)高速緩存的一種方法包括提供至少一個多維對象,所述多維對象提供從數(shù)據(jù)庫導(dǎo)出的動態(tài)多維分析數(shù)據(jù);構(gòu)造至少一個高速緩存,所述高速緩存提供從至少一個多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù);提供一個輸入,用于確定高速緩存重構(gòu)參數(shù);確定是否已經(jīng)滿足高速緩存重構(gòu)參數(shù);當(dāng)已經(jīng)滿足高速緩存重構(gòu)參數(shù)時切換分析組件操作模式以訪問多維對象;以及根據(jù)相關(guān)多維對象重構(gòu)高速緩存。
53.如權(quán)利要求52所述的方法,其特征在于,所述高速緩存重構(gòu)參數(shù)包括從強(qiáng)制刷新率、安靜時間延遲和安靜時間延遲復(fù)蓋組成的組中選擇的至少一個參數(shù)。
54.使預(yù)設(shè)高速緩存最優(yōu)化的一種方法包括把查詢輸入到查詢解釋器;把查詢裝載到至少兩個會話中,每個會話訪問從不同的數(shù)據(jù)庫導(dǎo)出的數(shù)據(jù)源。比較來自會話的結(jié)果數(shù)據(jù),以經(jīng)由結(jié)果比較器確定差異;以及分析會話的差異,以通過查詢解釋器使預(yù)設(shè)高速緩存自適應(yīng)地最優(yōu)化。
55.在便于數(shù)據(jù)分析的兩個或多個計(jì)算機(jī)組件之間發(fā)送的數(shù)據(jù)分組,所述數(shù)據(jù)分組包括部分地基于預(yù)設(shè)高速緩存結(jié)構(gòu)的動態(tài)多維分析數(shù)據(jù)。
56.如權(quán)利要求55所述的數(shù)據(jù)分組,其特征在于,所述動態(tài)多維分析數(shù)據(jù)包括從從數(shù)據(jù)庫導(dǎo)出的多維對象數(shù)據(jù)和從至少一個多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù)組成的組中選擇的至少一個數(shù)據(jù)。
57.如權(quán)利要求56所述的數(shù)據(jù)分組,其特征在于,從所述至少一個多維對象導(dǎo)出的所述動態(tài)多維分析數(shù)據(jù)包括來自MOLAP高速緩存的數(shù)據(jù)。
58.如權(quán)利要求56所述的數(shù)據(jù)分組,其特征在于,所述多維對象數(shù)據(jù)包括來自O(shè)LAP對象的數(shù)據(jù)。
59.如權(quán)利要求58所述的數(shù)據(jù)分組,其特征在于,所述OLAP對象包括ROLAP對象。
60.如權(quán)利要求56所述的數(shù)據(jù)分組,其特征在于,所述數(shù)據(jù)庫包括關(guān)系數(shù)據(jù)庫。
61.一種計(jì)算機(jī)可讀出媒體,它存儲用于便于數(shù)據(jù)分析的一個系統(tǒng)的計(jì)算機(jī)可執(zhí)行組件,所述計(jì)算機(jī)可讀出媒體包括預(yù)設(shè)高速緩存系統(tǒng),所述預(yù)設(shè)高速緩存系統(tǒng)至少部分地根據(jù)至少一個OLAP對象變型高速緩存提供與數(shù)據(jù)集相關(guān)聯(lián)的信息。
62.如權(quán)利要求61所述的媒體,其特征在于,所述OLAP對象變型高速緩存包括MOLAP高速緩存。
63.如權(quán)利要求61所述的媒體,其特征在于,所述預(yù)設(shè)高速緩存系統(tǒng)包括至少一個分析組件,它能夠預(yù)設(shè)地耦合到多維對象和包括從多維對象導(dǎo)出的動態(tài)多維分析數(shù)據(jù)的高速緩存,預(yù)設(shè)地控制對于多維對象和高速緩存的訪問。
64.使用權(quán)利要求1的系統(tǒng)的一種裝置包括從計(jì)算機(jī)、服務(wù)器以及手持電子裝置組成的組中選擇的至少一個裝置。
全文摘要
通過在后臺構(gòu)造ROLAP對象的MOLAP等價物,本發(fā)明對該對象的MOLAP性能(維數(shù)、分段以及集合)起杠桿作用。當(dāng)后臺處理完成時,把查詢從ROLAP查詢切換到MOLAP查詢。當(dāng)相關(guān)關(guān)系對象(諸如定義OLAP對象的內(nèi)容的表)發(fā)生改變時,把OLAP對象切換回ROLAP模式,并且丟掉所有相關(guān)的高速緩存,同時作為后臺過程而創(chuàng)建新的MOLAP等價物。
文檔編號G06F7/00GK1551014SQ20041003226
公開日2004年12月1日 申請日期2004年3月26日 優(yōu)先權(quán)日2003年3月28日
發(fā)明者C·培特庫萊斯庫, C 培特庫萊斯庫, A·耐茨, 克恩龍, T·P·克恩龍 申請人:微軟公司