專利名稱:用于進行數(shù)據(jù)倉儲的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng),更具體地說,涉及數(shù)據(jù)倉儲系統(tǒng)的實現(xiàn)。
背景技術(shù):
隨著企業(yè)內(nèi)的商業(yè)機能數(shù)量的增加,企業(yè)所產(chǎn)生的數(shù)據(jù)量也相應(yīng)地增加了。這種 數(shù)據(jù)可能分布在整個企業(yè)內(nèi),例如在由不同部門或地理單元實現(xiàn)的數(shù)據(jù)庫系統(tǒng)和其他類型 的系統(tǒng)內(nèi)。在某些情況下,可以跨越現(xiàn)有系統(tǒng)或位置之間的自然邊界對企業(yè)數(shù)據(jù)進行有用 分析。為了便于進行這種分析,可以采用數(shù)據(jù)倉儲系統(tǒng)將來自多個不同系統(tǒng)或位置的數(shù)據(jù) 匯集在單個系統(tǒng)內(nèi),如單個數(shù)據(jù)庫內(nèi)。隨后,分析工具可以將該單個、經(jīng)匯集的系統(tǒng)而不是 各種分布式數(shù)據(jù)源作為目標,這可以簡化分析工具的設(shè)計并改進分析性能。通常,數(shù)據(jù)倉儲系統(tǒng)利用被配置成提供所需分析性能的高端計算機系統(tǒng)來支持對 非常大量的數(shù)據(jù)的存儲和查詢。然而,非常適合于特定數(shù)據(jù)倉儲應(yīng)用的高端系統(tǒng)的采購和 維護費用可能是高昂的,并且可能無法隨著企業(yè)的數(shù)據(jù)倉儲需求的增長而擴縮。如果例如 由于昂貴而只提供單個數(shù)據(jù)倉儲系統(tǒng),那么在該單個倉庫發(fā)生故障時會損害數(shù)據(jù)可用性。 另一方面,如果提供多個數(shù)據(jù)倉儲系統(tǒng),那么分析應(yīng)用會喪失采用單個、經(jīng)匯集的數(shù)據(jù)源的 簡單性。例如,可能需要將分析應(yīng)用配置成對多個數(shù)據(jù)倉庫內(nèi)的期望數(shù)據(jù)的位置進行跟蹤。
發(fā)明內(nèi)容
公開了用于實現(xiàn)數(shù)據(jù)倉儲系統(tǒng)的設(shè)備和方法的各種實施例。根據(jù)一個實施例,一 種系統(tǒng)可以包括若干數(shù)據(jù)倉庫;和數(shù)據(jù)倉庫管理器,其被配置成從一個或更多個數(shù)據(jù)源 提取數(shù)據(jù)集合以存儲在所述多個數(shù)據(jù)倉庫中的一個或更多個中。兩個或更多個數(shù)據(jù)倉庫中 的每一個都可被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的數(shù)據(jù)集合的相應(yīng)副本。此外,所 述數(shù)據(jù)倉庫管理器可以被配置成在所述數(shù)據(jù)集合的每個相應(yīng)副本被存儲到對應(yīng)的一個另 外數(shù)據(jù)倉庫之前允許由所述多個數(shù)據(jù)倉庫中的一個數(shù)據(jù)倉庫對依賴于所述數(shù)據(jù)集合的查 詢進行評估。類似地,所述數(shù)據(jù)倉庫管理器還可以被配置成在已將所述數(shù)據(jù)集合的修改復(fù) 制到對應(yīng)的另外數(shù)據(jù)倉庫之前允許由所述多個數(shù)據(jù)倉庫中的一個數(shù)據(jù)倉庫對依賴于所述 數(shù)據(jù)集合的查詢進行評估。還構(gòu)思了一種方法,根據(jù)一個實施例,該方法可以包括以下步驟從一個或更多個 數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在一個或更多個數(shù)據(jù)倉庫中;將第一數(shù)據(jù)集合的相應(yīng)副本存儲 在包括兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫中;以及在所述第一數(shù)據(jù)集合 的每個相應(yīng)副本被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第 一子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查詢進行評估。根據(jù)第二實施例,一種系統(tǒng)可以包括多個數(shù)據(jù)倉庫,其被配置成存儲從一個或更多個數(shù)據(jù)源提取的數(shù)據(jù)集合;和數(shù)據(jù)倉庫管理器,其被配置成將所述多個數(shù)據(jù)倉庫作為單 個數(shù)據(jù)倉庫呈現(xiàn)給客戶機。所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集合的位置對于所述客戶機來 說可以是透明的。而且,在給定時刻,由第一數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供所述 客戶機進行查詢的第一數(shù)據(jù)集合可能與由第二數(shù)據(jù)倉庫存儲的并且在所述給定時刻也可 供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。所述數(shù)據(jù)倉庫管理器還可以被配置成響應(yīng) 于接收到來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù)據(jù)倉庫所存儲 的數(shù)據(jù)集合的查詢的接收,對所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估的一個特定 數(shù)據(jù)倉庫進行識別并將所述查詢傳送給所述特定數(shù)據(jù)倉庫以進行評估。還構(gòu)思了一種方法,根據(jù)一個實施例,該方法可以包括以下步驟從一個或更多個 數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在一個或更多個數(shù)據(jù)倉庫中,并將所述多個數(shù)據(jù)倉庫作為單個 數(shù)據(jù)倉庫呈現(xiàn)給客戶機。所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集合的位置對于所述客戶機來說 可以是透明的。響應(yīng)于對來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù) 據(jù)倉庫所存儲的數(shù)據(jù)集合的查詢的接收,該方法還可以包括以下步驟對所述多個數(shù)據(jù)倉 庫中的能夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫進行識別并將所述查詢傳送給所述 特定數(shù)據(jù)倉庫以進行評估。在給定時刻,由第一數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供 所述客戶機進行查詢的第一數(shù)據(jù)集合可能與由第二數(shù)據(jù)倉庫存儲的并且在所述給定時刻 可供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
圖1是例示了數(shù)據(jù)倉儲系統(tǒng)的一個實施例的框圖。圖2是例示了跨越多個數(shù)據(jù)倉庫的數(shù)據(jù)集合復(fù)制處理的一個實施例的框圖。圖3是例示了利用粗同步將所提取的數(shù)據(jù)存儲在數(shù)據(jù)倉庫中的方法的一個實施 例的流程圖。圖4是例示了利用粗同步對由數(shù)據(jù)倉庫存儲的數(shù)據(jù)進行查詢的方法的一個實施 例的流程圖。圖5A是例示了在粗同步下在數(shù)據(jù)集合更新與查詢之間的關(guān)系的一個實施例的時 序圖。圖5B到5D是例示了利用粗同步而復(fù)制的數(shù)據(jù)集合的一個示例性實施例的框圖。圖6是例示了將數(shù)據(jù)倉庫可視化給客戶的方法的一個實施例的流程圖。圖7是例示了數(shù)據(jù)倉庫計算集群的一個實施例的框圖。圖8是例示了計算機系統(tǒng)的示例性實施例的框圖。盡管本發(fā)明容許各種修改和另選形式,但是在附圖中以示例的方式示出了其特定 實施例,在此將對這些具體實施例進行詳細描述。然而,應(yīng)當理解,附圖及其詳細描述并不 旨在將本發(fā)明局限于所公開的具體形式,而是相反,旨在覆蓋落在如所附權(quán)利要求所限定 的本發(fā)明的精神和范圍內(nèi)的所有變型例、等同物以及另選例。
具體實施例方式數(shù)據(jù)倉儲系統(tǒng)的概述在某些復(fù)雜的企業(yè)計算環(huán)境中,各種數(shù)據(jù)源可能分布在整個企業(yè)內(nèi)。例如,企業(yè)可
7能對于不同的商業(yè)機能(如會計、財務(wù)、電子商務(wù)、人力資源、采購、制造、分發(fā)等)實現(xiàn)多個 獨立的計算機系統(tǒng)和/或應(yīng)用。此外,這種系統(tǒng)和/或應(yīng)用可能在地理上是分散的和重復(fù) 的,例如在各分發(fā)地點處提供有分發(fā)管理系統(tǒng)。在某些這種企業(yè)中,數(shù)據(jù)庫或其他數(shù)據(jù)存儲 體以及分析工具和其他應(yīng)用可能對于一地點或機能來說是專用的,并且可以外部地與其他 機能或地點的系統(tǒng)相交互。為特定商業(yè)機能或地點只提供其執(zhí)行其大部分任務(wù)所需要的數(shù)據(jù)和資源可以避 免在企業(yè)內(nèi)對過度或冗余資源進行分配。然而,在某些情況下,可能需要對來自整個企業(yè)的 數(shù)據(jù)作為整體進行分析。例如,對企業(yè)范圍的財務(wù)或生產(chǎn)趨勢的分析可能依賴于在多個不 同地點處或跨越不同部門所產(chǎn)生和保持的數(shù)據(jù)。在某些情況下,可以將數(shù)據(jù)分析工具配置 成對跨越多個商業(yè)機能的復(fù)雜相互關(guān)系進行檢測,這種相互關(guān)系不能直接通過對孤立的單 個機能的分析辨別出。例如,在員工經(jīng)驗與培訓(xùn)(由人力資源來跟蹤)、分發(fā)生產(chǎn)率與財務(wù) 業(yè)績(例如,由于分發(fā)錯誤而導(dǎo)致的產(chǎn)品回報額的減少)之間可能存在關(guān)系??梢酝ㄟ^對 來自這些機能中的每一個的數(shù)據(jù)集體地針對互相關(guān)性進行檢查來識別這種關(guān)系。在某些實施例中,企業(yè)可以提供集中化數(shù)據(jù)倉儲系統(tǒng)以便于對企業(yè)范圍的數(shù)據(jù)進 行處理和分析。一般來講,數(shù)據(jù)倉庫可以包括被配置成將存儲在一個或更多個數(shù)據(jù)源中的 數(shù)據(jù)匯集起來的數(shù)據(jù)庫或其他數(shù)據(jù)儲存庫。數(shù)據(jù)源自身可以是企業(yè)內(nèi)的存儲或產(chǎn)生數(shù)據(jù)的 其他數(shù)據(jù)庫或其他應(yīng)用。通常,存儲在數(shù)據(jù)倉庫內(nèi)的數(shù)據(jù)是存儲在企業(yè)內(nèi)的其他地方的數(shù) 據(jù)的衍生物。然而,在某些情況下,也可以將數(shù)據(jù)倉庫配置成用作針對某些數(shù)據(jù)(如企業(yè)范 圍的分析數(shù)據(jù),或者甚至企業(yè)機能或地點數(shù)據(jù))的主儲存器。在圖1中例示了數(shù)據(jù)倉庫系統(tǒng)的一個實施例。在所例示的實施例中,數(shù)據(jù)倉庫系 統(tǒng)100包括被配置成與由圖1中的數(shù)據(jù)倉庫120a到120d表示的多個數(shù)據(jù)倉庫相交互的數(shù) 據(jù)倉庫管理器110。圖1所例示的數(shù)據(jù)倉庫120a到120d的數(shù)量只是例示性的,其可以在 其他實施例中不同。也可以將數(shù)據(jù)倉庫管理器110配置成與操作數(shù)據(jù)庫130相交互。還將 數(shù)據(jù)倉庫管理器110配置成與一個或更多個客戶機140和數(shù)據(jù)源160相交互,這些客戶機 140和數(shù)據(jù)源160可以位于數(shù)據(jù)倉庫系統(tǒng)100的外部(例如,分布在整個企業(yè)中、或者分布 在多個企業(yè)間、分布在不同邏輯或物理地點處)。在某些實施例中,可以將某些客戶機140 配置成經(jīng)由web服務(wù)接口 150與數(shù)據(jù)倉庫管理器110相交互。在某些實施例中,可以將數(shù) 據(jù)倉庫管理器110配置成經(jīng)由web服務(wù)接口(未示出)與某些數(shù)據(jù)源160相交互。在某些實施例中,數(shù)據(jù)倉庫120a到120d可以包括相應(yīng)的關(guān)系數(shù)據(jù)庫。例如,一給 定數(shù)據(jù)倉庫120可以包括諸如Oracle、DB2、Sybase、Informix, Adabas或任何其他私有或 開放源碼數(shù)據(jù)庫之類的數(shù)據(jù)庫。在某些實施例中,不同的數(shù)據(jù)倉庫120可以實現(xiàn)來自不同 廠商的不同類型的數(shù)據(jù)庫軟件。一般來講,關(guān)系數(shù)據(jù)庫可以將多個數(shù)據(jù)項的集合組織到一 個或更多個規(guī)則結(jié)構(gòu)(如包括多行和多列的表)中,盡管也可以構(gòu)思多維關(guān)系數(shù)據(jù)庫結(jié)構(gòu)。 此外,在許多實施例中,可以將關(guān)系數(shù)據(jù)庫配置成評估對于存儲在數(shù)據(jù)庫內(nèi)的數(shù)據(jù)的查詢, 以選擇滿足給定查詢的數(shù)據(jù)子集。例如,可以將數(shù)據(jù)庫配置成存儲客戶定單信息,可以將該 客戶定單信息組織成包括諸如客戶標識符、定單標識符、貨運狀態(tài)信息、定單費用等之類的 數(shù)據(jù)的一個或幾個表。試圖識別正在等待未付貨運的所有客戶的用戶可以向數(shù)據(jù)庫提交如 下查詢,該查詢指定對于自特定日期和/或時間起具有未運送定單的所有客戶標識符的選 擇。作為響應(yīng),該數(shù)據(jù)庫可以對其內(nèi)容進行檢查并返回那些滿足該查詢的約束條件的數(shù)據(jù)記錄。需要指出的是,在某些實施例中,不同的數(shù)據(jù)倉庫120可以位于不同的物理位置或地 點處,這與如下所述的數(shù)據(jù)集合復(fù)制結(jié)合在一起,可以通過減小由于單個地點處的故障而 損害整個數(shù)據(jù)倉庫120的可能性來增強數(shù)據(jù)集合的可靠性和可用性。需要指出的是,盡管數(shù)據(jù)倉庫120通??赡馨P(guān)系數(shù)據(jù)庫,但是在某些實施例 中給定數(shù)據(jù)倉庫120可以包括非關(guān)系數(shù)據(jù)庫。通常,在關(guān)系數(shù)據(jù)庫中,一特定數(shù)據(jù)項的含義 隱式地由該數(shù)據(jù)項在表內(nèi)的位置或其他關(guān)系數(shù)據(jù)結(jié)構(gòu)來描述。例如,在特定二維關(guān)系數(shù)據(jù) 庫表中,可以將一列定義成存儲客戶標識符,可以將另一列定義成存儲運貨狀態(tài)信息,并將 第三列定義成存儲定單費用。那么該表的各行可以對應(yīng)于特定定單記錄,因而,存儲在一行 的第一列中的任何數(shù)據(jù)項因其位置可被解釋成客戶標識符。作為對照,在一個實施例中,非 關(guān)系數(shù)據(jù)庫可以存儲這樣的數(shù)據(jù)項由與給定數(shù)據(jù)項相關(guān)聯(lián)的顯式元數(shù)據(jù),而不是由該數(shù) 據(jù)項在所定義數(shù)據(jù)結(jié)構(gòu)內(nèi)的位置,來控制對該數(shù)據(jù)項的解釋。例如,在一個實施例中,可以 將數(shù)據(jù)倉庫120配置成將數(shù)據(jù)項存儲成由一版本的可擴展標記語言(XML)來界定的記錄。 在一個這種實施例中,可以由標識了諸如客戶標識符之類的一給定數(shù)據(jù)項的類型的元數(shù)據(jù) 字段或標簽來界定該給定數(shù)據(jù)項。例如,可以將客戶標識符“smith”存儲為“< cust_id > smith </Cust_id> ”,其中元數(shù)據(jù)標簽custjd表示可以由該標簽界定的數(shù)據(jù)可以被解釋 成客戶標識符。通常,可以在記錄內(nèi)按任何順序來存儲非關(guān)系數(shù)據(jù)庫內(nèi)的多個記錄的數(shù)據(jù) 項,因為一給定數(shù)據(jù)項的含義被連同該數(shù)據(jù)項一起顯式地存儲,而不是通過該數(shù)據(jù)項的位 置而被隱式地存儲。如先前已提及的,在某些實施例中,可以將數(shù)據(jù)倉庫120配置成將存儲在企業(yè)內(nèi) 的其他地方(如數(shù)據(jù)源160)的數(shù)據(jù)匯集起來。在一個實施例中,如以下更詳細地描述的, 由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)量可以相當大,例如在幾百萬兆字節(jié)(TB)的量級上。在所例示 的實施例中,可以將數(shù)據(jù)倉庫管理器110配置成對如何在數(shù)據(jù)倉庫120之間檢索和存儲數(shù) 據(jù)進行協(xié)調(diào),以及對諸如客戶機140之類的客戶機對數(shù)據(jù)倉庫120的訪問進行協(xié)調(diào)。具體 來說,在一個實施例中,可以將數(shù)據(jù)倉庫管理器110(或者簡稱為管理器110)配置成從一個 或更多個數(shù)據(jù)源160提取數(shù)據(jù),并對所提取的數(shù)據(jù)在一個或更多個數(shù)據(jù)倉庫120中的存儲 進行協(xié)調(diào)。在某些情況下,管理器110可以在所提取的數(shù)據(jù)被存儲之前附加地對其進行變 換。例如,在一個實施例中,給定數(shù)據(jù)倉庫120可以存儲包括有從若干不同的數(shù)據(jù)源160導(dǎo) 出的數(shù)據(jù)的表。在這種實施例中,可以將管理器110配置成將從不同數(shù)據(jù)源160抽取的各 個數(shù)據(jù)項變換成給定數(shù)據(jù)倉庫120所要求的格式。在某些實施例中,與對數(shù)據(jù)進行重排或 改變數(shù)據(jù)的格式相反,對數(shù)據(jù)的變換可以包括對數(shù)據(jù)本身的修改。例如,在某些實施例中, 可以將管理器110配置成在將特定數(shù)據(jù)項存儲在數(shù)據(jù)倉庫120中之前對這些數(shù)據(jù)項進行擴 縮或四舍五入,或者可以施加任何其他合適的變換。在某些實施例中,也可以將管理器110 稱為提取、變換和加載(ETL)管理器。在所例示的實施例中,可以將操作數(shù)據(jù)庫130配置成對與數(shù)據(jù)倉庫系統(tǒng)100的操 作狀態(tài)有關(guān)的信息進行存儲和跟蹤,該信息可以包括與數(shù)據(jù)倉庫120內(nèi)的數(shù)據(jù)項或數(shù)據(jù)集 合(如表或單個記錄)的位置有關(guān)的信息,以及相對于用于對數(shù)據(jù)倉庫120內(nèi)的數(shù)據(jù)進行 修改的未處理操作而言的數(shù)據(jù)項或數(shù)據(jù)集合的狀態(tài)。在某些實施例中,操作數(shù)據(jù)庫130可 以包括與上述那些數(shù)據(jù)庫類似的關(guān)系或非關(guān)系數(shù)據(jù)庫(其包括用于對其內(nèi)容進行訪問和修改的查詢接口),而在其他實施例中操作數(shù)據(jù)庫130可以包括被配置成例如通過在客戶 應(yīng)用編程接口(API)中定義的過程調(diào)用而與管理器110進行交互的客戶軟件應(yīng)用。以下結(jié) 合圖3到6的描述對在各種實施例中管理器110與操作數(shù)據(jù)庫130 —起對數(shù)據(jù)倉庫120進 行加載和將數(shù)據(jù)倉庫120的呈現(xiàn)可視化給客戶機140的操作進行更詳細的描述。在某些實施例中,作出如下構(gòu)思可以通過健壯、容錯系統(tǒng)來實現(xiàn)管理器110和/ 或操作數(shù)據(jù)庫130。例如,通過采用冗余(例如熱備份(hot standby))或集群計算機系統(tǒng), 可以提高管理器110和/或操作數(shù)據(jù)庫130的總體可靠性和可用性,以使得管理器或數(shù)據(jù) 庫操作可以在一個或更多個系統(tǒng)發(fā)生故障的情況下繼續(xù)工作??梢圆捎萌魏魏线m類型的故 障轉(zhuǎn)移機制來降低數(shù)據(jù)倉庫系統(tǒng)100對管理器110或操作數(shù)據(jù)庫130的故障的敏感度。而且,在某些實施例中,作出如下構(gòu)思將管理器110和/或操作數(shù)據(jù)庫130的實 現(xiàn)與數(shù)據(jù)倉庫120的實現(xiàn)進行分離可以降低與數(shù)據(jù)倉庫系統(tǒng)100相關(guān)聯(lián)的成本或復(fù)雜度。 例如,這種分離可以使得便于利用商品計算機系統(tǒng)和/或數(shù)據(jù)庫軟件來實現(xiàn)管理器110和 操作數(shù)據(jù)庫130的控制功能。這種分離還可以使得便于通過能夠與數(shù)據(jù)倉庫硬件分離地對 控制硬件進行升級,來擴縮數(shù)據(jù)倉庫系統(tǒng)100。在某些實施例中,這種分離還可以增強數(shù)據(jù) 倉庫系統(tǒng)100的整體可用性并縮短故障恢復(fù)時間。例如,如果一個數(shù)據(jù)倉庫120萬一發(fā)生 故障,那么在對該故障倉庫進行恢復(fù)的同時,操作數(shù)據(jù)庫130和管理器110可以繼續(xù)加載其 他數(shù)據(jù)倉庫120。類似的是,如果操作數(shù)據(jù)庫130萬一發(fā)生故障,則可能無需對任何數(shù)據(jù)倉 庫120進行恢復(fù),由此縮短了總體故障恢復(fù)時間。客戶機140通??梢园ū慌渲贸稍L問數(shù)據(jù)倉庫系統(tǒng)100的任何軟件應(yīng)用或其他 實體。例如,在一個實施例中,客戶機140可以包括被配置成(例如通過查詢來)檢索數(shù)據(jù) 的應(yīng)用。這種應(yīng)用可能包括數(shù)據(jù)分析應(yīng)用、決策支持系統(tǒng)、數(shù)據(jù)查看應(yīng)用或任何其他合適的 應(yīng)用。客戶機140還可以包括可以對數(shù)據(jù)倉庫系統(tǒng)100的操作進行配置的管理應(yīng)用或?qū)?用程序。例如,數(shù)據(jù)分析員或管理員可以確定應(yīng)當由數(shù)據(jù)倉庫系統(tǒng)100對來自多個數(shù)據(jù)源 160的特定集合的數(shù)據(jù)項的組合進行匯集以供將來分析。該分析員或管理員可以使用客戶 機140來指示管理器110例如一次性地或重復(fù)地從數(shù)據(jù)源160提取有關(guān)數(shù)據(jù)集合。在各種 實施例中,可以將客戶機140配置成例如在任何合適類型的系統(tǒng)(如通用計算機系統(tǒng)、手持 系統(tǒng)或嵌入式系統(tǒng))上運行。在某些實施例中,可以將客戶機140配置成經(jīng)由中間系統(tǒng)與 數(shù)據(jù)倉庫系統(tǒng)100相交互。例如,可以通過客戶機-服務(wù)器系統(tǒng)(未示出)來實現(xiàn)客戶機 140,在該客戶機-服務(wù)器系統(tǒng)中,將服務(wù)器系統(tǒng)配置成對客戶機140與數(shù)據(jù)倉庫系統(tǒng)100 之間的通信進行傳遞。除了利用由管理器110提供的API直接進行通信以外,在某些實施例中,可以將一 些或所有客戶機140配置成經(jīng)由web服務(wù)接口 150與管理器110進行通信。一般來講,可 以將web服務(wù)接口配置成提供標準的、跨平臺API,以用于在請求執(zhí)行某些服務(wù)的客戶機與 服務(wù)提供方之間的通信。在某些實施例中,可以將web服務(wù)接口 150配置成支持對包括有 描述服務(wù)請求的信息的文檔進行交換并對該請求進行響應(yīng)??梢岳脴藴驶痺eb協(xié)議(如 超文本傳輸協(xié)議(HTTP))來交換這種文檔,并且可以按照與平臺無關(guān)的數(shù)據(jù)格式(如XML) 對該文檔進行格式化。通過采用該web服務(wù)模型,并且使用標準web協(xié)議和以及獨立于平臺 的文檔格式化,可以減少管理器110需要支持的接口類型的數(shù)量,并且可以改進客戶機140 和管理器110的跨平臺互操作性。
在某些實施例中,數(shù)據(jù)源160本身可以包括關(guān)系或非關(guān)系數(shù)據(jù)庫,并且可以分布 在整個企業(yè)中。這種數(shù)據(jù)庫可以是也可以不是與數(shù)據(jù)倉庫120的數(shù)據(jù)庫相同的類型(如廠 商或格式)。在其他實施例中,數(shù)據(jù)源160可以是除數(shù)據(jù)庫以外的應(yīng)用,如被配置成以文檔 形式或以另一形式來存儲數(shù)據(jù)的客戶或私有應(yīng)用。在這種實施例中,可以將管理器110配 置成利用必要的協(xié)議(例如,由數(shù)據(jù)源的API定義的特定格式的過程調(diào)用)與數(shù)據(jù)源160 相通信以獲取數(shù)據(jù)。數(shù)據(jù)源160還可以包括文檔的儲存庫,諸如對如下內(nèi)容的匯集或歸檔 交易日志、電郵通信、文字處理器/辦公應(yīng)用文檔、圖像或多媒體文件、網(wǎng)頁文檔、XML文檔、 對電子商務(wù)站點的操作的量度,或者任何其他合適類型的文檔或數(shù)據(jù)。例如,在一個實施例 中,數(shù)據(jù)源160可以包括網(wǎng)絡(luò)附接的大容量介質(zhì)存儲裝置,如獨立盤陣列或通過存儲區(qū)域 網(wǎng)(SAN)連接的存儲裝置。無論數(shù)據(jù)源160的具體類型如何,都可以將管理器110配置成執(zhí)行合適的操作以 從其中提取期望的數(shù)據(jù)集合、施加任何必要的變換以將數(shù)據(jù)轉(zhuǎn)換成適合于存儲在數(shù)據(jù)倉庫 120中的格式、以及將所提取出的數(shù)據(jù)加載到一個或更多個數(shù)據(jù)倉庫120。如果特定數(shù)據(jù)源 160的數(shù)據(jù)內(nèi)容在格式上與由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)高度不相似,那么可以將管理器110 配置成對數(shù)據(jù)源160進行分析以導(dǎo)出對該數(shù)據(jù)內(nèi)容的恰當?shù)牧慷然虮硎?,或者被配置成調(diào) 用另一應(yīng)用來執(zhí)行這種分析。數(shù)據(jù)倉庫復(fù)制、耜同步以及虛擬化在某些情況下,由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)可能對于企業(yè)的運行來說是關(guān)鍵的。 例如,在某些實施例中,可以將分析軟件配置成對所倉儲的數(shù)據(jù)進行操作以生成報告并且/ 或者識別出趨勢,這進而會影響運行決策,如定購/采購決策、人員配備決策等。例如,在企 業(yè)范圍內(nèi)對一天的生產(chǎn)量度進行的分析可能影響如下決策在企業(yè)內(nèi)對資源的轉(zhuǎn)移、對下 一天的生產(chǎn)的再調(diào)度、加急進料或庫存采購,等等。萬一丟失或破壞了數(shù)據(jù)倉庫120內(nèi)的要 對其執(zhí)行相關(guān)分析的數(shù)據(jù),就會嚴重損害運行或戰(zhàn)略決策制定過程,或者在某些情況下會 使得完全不能進行這種運行或戰(zhàn)略決策制定過程。如上所述,某些經(jīng)倉儲的數(shù)據(jù)可能是由數(shù)據(jù)源160存儲的數(shù)據(jù)的衍生物,并且在 原則上可以通過將相關(guān)數(shù)據(jù)從這些數(shù)據(jù)源160再加載到數(shù)據(jù)倉庫120來恢復(fù)這些經(jīng)倉儲的 數(shù)據(jù)。然而,例如,如果所丟失或破壞的數(shù)據(jù)量很大,或者如果數(shù)據(jù)源160必須訪問較慢的 數(shù)據(jù)存儲介質(zhì)(如磁帶或離線介質(zhì))以檢索所請求的數(shù)據(jù),那么這種再加載處理可能會耗 費相當大的時間量來完成??赡軣o法在對依賴于經(jīng)倉儲數(shù)據(jù)的處理產(chǎn)生最小中斷的時限內(nèi) 再加載所需數(shù)據(jù)。再者,在某些情況下,存儲在數(shù)據(jù)倉庫120上的數(shù)據(jù)可能是利用數(shù)據(jù)倉庫 系統(tǒng)100的應(yīng)用(如分析應(yīng)用)的主要輸出,因此無法簡單地通過從數(shù)據(jù)源160再加載該 數(shù)據(jù)就可以恢復(fù)的。為了減小數(shù)據(jù)損失和隨之產(chǎn)生的中斷的可能性,在一個實施例中,可以將數(shù)據(jù)倉 庫120的子集配置成對特定數(shù)據(jù)集合進行復(fù)制。即,可以將兩個或更多個數(shù)據(jù)倉庫120配 置成存儲一數(shù)據(jù)集合(如表或多個記錄的集合)的相應(yīng)副本。圖2例示了例示出這種復(fù)制 處理的一個實施例。在所例示的實施例中,將數(shù)據(jù)倉庫120a和120b均配置成存儲包含有 客戶定單數(shù)據(jù)和客戶運貨數(shù)據(jù)的表的副本。應(yīng)當指出的是,在某些實施例中,可以由任意數(shù) 量(從兩個直到數(shù)據(jù)倉庫系統(tǒng)100內(nèi)的數(shù)據(jù)倉庫120的數(shù)量)個數(shù)據(jù)倉庫120來復(fù)制特定 數(shù)據(jù)集合。另一方面,在某些實施例中,可以根本不復(fù)制某些數(shù)據(jù)集合,或者可以將某些數(shù)據(jù)集合復(fù)制在其他數(shù)據(jù)倉庫上。在所例示的實施例中,數(shù)據(jù)倉庫120a和120b均包括未由 其它數(shù)據(jù)倉庫復(fù)制的表(分別是財務(wù)報告數(shù)據(jù)和會話跟蹤數(shù)據(jù))。應(yīng)當指出的是,在某些實 施例中,可以由數(shù)據(jù)倉庫120利用不同的數(shù)據(jù)庫方案(例如,利用不同的數(shù)據(jù)字段定義和/ 或結(jié)構(gòu))來存儲不同的數(shù)據(jù)集合。在某些實施例中,由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)集合可以對于許多不同類型的企業(yè) 是共有的。例如,在磚和漿企業(yè)與提供虛擬客戶界面(例如,基于web的電子商務(wù)界面或電 子商務(wù)界面)的企業(yè)內(nèi),客戶定單和貨運數(shù)據(jù)可能是共同可用的數(shù)據(jù)集合。然而,在某些 實施例中,可以將支持電子商務(wù)界面的企業(yè)配置成甚至在發(fā)生銷售之前就收集并存儲大量 關(guān)于客戶與企業(yè)的交互的信息。在一個實施例中,可以將圖2所例示的會話跟蹤數(shù)據(jù)集合 配置成存儲關(guān)于客戶與電子商務(wù)界面的交互的任何方面的數(shù)據(jù)。例如,可以將該會話跟蹤 數(shù)據(jù)集合配置成存儲表示客戶在訪問企業(yè)的網(wǎng)點期間所查看的特定項目的數(shù)據(jù)(例如, 會話)、以及該查看的持續(xù)時間、客戶在會話過程中導(dǎo)航的鏈接、客戶所執(zhí)行的任何搜索,等 等??梢詫⒎治鰬?yīng)用配置成對這些和其他類型的跟蹤數(shù)據(jù)進行分析以分辨出客戶偏好、預(yù) 測客戶定購各種貨品的可能性、對呈現(xiàn)給客戶的電子商務(wù)界面進行定制,等等。然而,需要指出的是,可以將數(shù)據(jù)倉儲和下述各種技術(shù)同樣地應(yīng)用于沒有基本電 子商務(wù)組件的企業(yè)。例如,某些企業(yè)可能具有跨越許多機能和地理分部的高度復(fù)雜的內(nèi)部 處理,并且即使除了外部客戶的活動之外也會在內(nèi)部產(chǎn)生可用于進行倉儲的巨大數(shù)據(jù)量。 此外,在某些實施例中,企業(yè)可能是足夠復(fù)雜的,它可能針對企業(yè)內(nèi)部的活動和事務(wù)采用與 上述面向電子商務(wù)的活動類似的信息收集策略。例如,企業(yè)內(nèi)的不同的商業(yè)單位可能如類 似于外部客戶的客戶那樣與其他商業(yè)單位進行交互,并且可能按類似的方式產(chǎn)生客戶數(shù) 據(jù)。在某些實施例中,可以將多個數(shù)據(jù)倉庫120的子集配置成以不同的復(fù)制程度來存 儲不同類型的數(shù)據(jù)。例如,在圖2的實施例中,如所示出的那樣,可以將數(shù)據(jù)倉庫120a和 120b配置成按復(fù)制方式來存儲客戶定單和運貨數(shù)據(jù)。在類似的實施例中,可以將數(shù)據(jù)倉庫 120c和120d配置成按復(fù)制方式來存儲歷史會話跟蹤數(shù)據(jù)(例如,前15個月的跟蹤數(shù)據(jù)的 價值)(未示出)。在數(shù)據(jù)倉庫120的這種配置中,倉庫120a和120b可以形成特別適合于 進行涉及客戶定單和運貨數(shù)據(jù)的分析的在功能上集群或分組的倉庫集合,而倉庫120c和 120d可以形成類似的特別適合于進行涉及會話跟蹤數(shù)據(jù)的分析的在功能上集群的倉庫集 合。在各情況下,可以對相對關(guān)鍵的數(shù)據(jù)進行復(fù)制,以幫助進行保護以防數(shù)據(jù)丟失。在數(shù) 據(jù)倉庫120a到120d的這種配置中,對客戶數(shù)據(jù)的分析驅(qū)動查詢也可能常常以最近的會話 跟蹤數(shù)據(jù)為目標。例如,對客戶定貨和貨運模式的分析可能試圖將這些模式關(guān)聯(lián)于最近的 會話跟蹤數(shù)據(jù)(例如,前90天的跟蹤數(shù)據(jù)的價值)。由此,在圖2的實施例中,將數(shù)據(jù)倉庫 120b配置成存儲會話跟蹤數(shù)據(jù)的集合。然而,考慮到將數(shù)據(jù)倉庫120c和120d配置成冗余 地存儲更大的會話跟蹤數(shù)據(jù)集合(如果需要的話,可以從該集合重構(gòu)出由數(shù)據(jù)倉庫120b存 儲的集合),可以不復(fù)制由數(shù)據(jù)倉庫120b存儲的會話跟蹤數(shù)據(jù)。針對某些數(shù)據(jù)集合對多個數(shù)據(jù)倉庫120進行集群或分組,使得可以針對不同類型 的查詢來優(yōu)化不同的數(shù)據(jù)倉庫120組,這可以使得數(shù)據(jù)倉庫系統(tǒng)100被針對期望的使用模 式而更佳地調(diào)整。例如,如以下結(jié)合圖7的描述更詳細地描述的那樣,根據(jù)期望數(shù)據(jù)倉庫 120的某個給定集群要處理的活動的程度,可以為作為數(shù)據(jù)倉庫120的基礎(chǔ)的硬件系統(tǒng)提供更多或更少的計算資源。然而,在其他實施例中,可以按更均一的方式將數(shù)據(jù)集合分布在 多個數(shù)據(jù)倉庫120中。例如,在一個實施例中,每個數(shù)據(jù)倉庫120都可以包括大致相同的 計算資源集合,并且可以按不同復(fù)制程度將數(shù)據(jù)集合分布在大致等價的多個數(shù)據(jù)倉庫120 中。雖然在這種實施例中可以針對數(shù)據(jù)存儲和檢索活動對硬件資源進行次優(yōu)地調(diào)節(jié),但是 例如通過根據(jù)處理增長的數(shù)據(jù)分析需求的需要而添加附加的、類似配置的數(shù)據(jù)倉庫120,可 以更容易地對相對均勻的數(shù)據(jù)倉庫120進行擴縮。如上所提及的,通過減小給定數(shù)據(jù)倉庫120的故障將導(dǎo)致數(shù)據(jù)損失的可能性,跨 越多個數(shù)據(jù)倉庫120進行數(shù)據(jù)集合的復(fù)制可以提高數(shù)據(jù)的總體可靠性。通過增加例如可以 響應(yīng)于查詢而向客戶機提供經(jīng)復(fù)制的數(shù)據(jù)集合的數(shù)據(jù)倉庫120的數(shù)量,這種復(fù)制還可以增 加數(shù)據(jù)集合的可用性。在圖1所例示的數(shù)據(jù)倉庫系統(tǒng)100的實施例中,可以將管理器110 配置成對將數(shù)據(jù)存儲到數(shù)據(jù)倉庫120的操作(包括在多個倉庫120中對數(shù)據(jù)集合的任何復(fù) 制)進行協(xié)調(diào)。由此,在所例示的實施例中,是否復(fù)制了一給定數(shù)據(jù)集合對于一特定數(shù)據(jù)倉 庫120來說可能是透明的。然而,在某些實施例中作出如下構(gòu)思在此被描述成管理器110 的功能的跨越多個數(shù)據(jù)倉庫120對數(shù)據(jù)集合的管理和復(fù)制可以被協(xié)作地分布在多個數(shù)據(jù) 倉庫120之中,或者由被配置成既用作數(shù)據(jù)倉庫又用作管理器的特定數(shù)據(jù)倉庫120來實現(xiàn)。在某些情況下由數(shù)據(jù)倉庫120存儲的各個數(shù)據(jù)集合可能相當大,例如在幾百百兆 字節(jié)(MB)或幾百千兆字節(jié)(GB)的量級上。此外,即使由管理器110例如響應(yīng)于從數(shù)據(jù)源 160對新的可操作數(shù)據(jù)的定期提取而對給定數(shù)據(jù)集合進行的部分更新也可能包括相當大量 的待傳送給一給定數(shù)據(jù)倉庫120的數(shù)據(jù)。如果跨越幾個數(shù)據(jù)倉庫120對數(shù)據(jù)集合進行復(fù) 制,最終會將包括該數(shù)據(jù)集合在內(nèi)的數(shù)據(jù)以及對該數(shù)據(jù)正在進行的更新存儲在這幾個數(shù)據(jù) 倉庫120之中。然而,這種存儲處理可能不是同時發(fā)生的。例如,即使管理器110同時開始 將相同的數(shù)據(jù)存儲到數(shù)據(jù)倉庫120a和120b中,在這兩個數(shù)據(jù)倉庫120a和120b中該數(shù)據(jù) 存儲處理也可能不是同時完成的。諸如不同的計算負荷(如,對查詢的服務(wù))以及基本資 源配置之類的因素可能使得一個數(shù)據(jù)倉庫120比另一個更快地完成存儲操作。因此,在這 兩個數(shù)據(jù)倉庫120a和120b上完成存儲操作之前的任何給定時刻,在數(shù)據(jù)倉庫120a和120b 上正在被存儲的數(shù)據(jù)集合的狀態(tài)可能不同。在此狀態(tài)下,也可以將該數(shù)據(jù)集合稱為不具同 步性或不同步。對于試圖檢索數(shù)據(jù)的客戶機140來說,不同步數(shù)據(jù)可能會帶來問題。例如,如果在 管理器110接收到以給定的經(jīng)復(fù)制的數(shù)據(jù)集合為目標的查詢時該給定數(shù)據(jù)集合在數(shù)據(jù)倉 庫120a和120b上處于兩個不同的狀態(tài),那么根據(jù)該給定數(shù)據(jù)集合在該查詢被指示以進行 評估的特定數(shù)據(jù)倉庫120中的狀態(tài),該查詢可能返回兩個不同的結(jié)果。這種不一致可能會 導(dǎo)致不一致的客戶機操作,尤其是如果在多個數(shù)據(jù)倉庫120(或者更廣泛地說,數(shù)據(jù)倉庫系 統(tǒng)100的總體結(jié)構(gòu))中對數(shù)據(jù)集合的復(fù)制對于客戶機140來說是透明的話?!獋€防止由于對不同步數(shù)據(jù)的不受控制的訪問而產(chǎn)生的不一致的客戶機行為的 方法可能包括當被復(fù)制的數(shù)據(jù)集合在多個數(shù)據(jù)倉庫120之中是不同步的時,管理器110防 止對該數(shù)據(jù)集合進行任何訪問。例如,在一個實施例中,可以將管理器110配置成將對被復(fù) 制數(shù)據(jù)集合的更新實現(xiàn)為原子操作或事務(wù)操作。一般來講,相對于其他操作來說,將涉及 跨多個實體的同步的原子操作或事務(wù)操作視為不可分的;即,在允許進行以所涉及的實體 為目標的另一操作之前,這種原子操作或事務(wù)操作要么對于這些實體中的所有實體來說都完成了,要么對于這些實體中的沒有一個實體來說完成了。由此,在一個實施例中,管理器 110可能不允許在完成了存儲在所有有關(guān)數(shù)據(jù)倉庫120上的所有數(shù)據(jù)集合副本之前對正在 被存儲或修改的被復(fù)制數(shù)據(jù)集合進行訪問的嘗試,從而確保了客戶機在嘗試訪問被復(fù)制的 數(shù)據(jù)集合時不會接收到不一致的結(jié)果。然而,跨所有數(shù)據(jù)集合副本執(zhí)行原子或事務(wù)同步可能會顯著降低數(shù)據(jù)倉庫系統(tǒng) 100的性能。例如,在一給定的被復(fù)制數(shù)據(jù)集合很大的情況下,在可以訪問該數(shù)據(jù)集合之前 等待對所有數(shù)據(jù)集合副本的更新都完成的過程中,可能出現(xiàn)顯著的等待時間。因此,在一個 實施例中,可以將管理器110配置成對跨多個數(shù)據(jù)倉庫120而復(fù)制的數(shù)據(jù)集合進行粗同步。 在一個實施例中,對數(shù)據(jù)集合的粗同步可以包括使對特定數(shù)據(jù)倉庫120內(nèi)的被復(fù)制數(shù)據(jù) 集合的更新原子地同步,而同時允許訪問由其他數(shù)據(jù)倉庫120存儲的該數(shù)據(jù)集合的其他副 本。即,在一個實施例中,管理器110可以在對特定數(shù)據(jù)倉庫120的特定表(如圖2所示的 數(shù)據(jù)倉庫120a的客戶定單數(shù)據(jù)表)進行更新的同時針對其他讀或?qū)懺L問原子地鎖定該特 定表。同時,管理器110可以有條件地允許訪問該特定的被鎖定表在另一數(shù)據(jù)倉庫120上 的副本(例如,數(shù)據(jù)倉庫120b的被復(fù)制客戶定單數(shù)據(jù)表)。在另選實施例中,管理器110在 對存儲在數(shù)據(jù)倉庫120中的數(shù)據(jù)集合進行更新的同時可以原子地鎖定整個數(shù)據(jù)倉庫120, 或者可以只鎖定正在被更新的數(shù)據(jù)集合的一部分(如表內(nèi)的一行);作出如下構(gòu)思可以由 管理器110采用任何合適的鎖定粒度。作出如下附加的構(gòu)思在某些實施例中,可以將管理 器110配置成鎖定給定數(shù)據(jù)倉庫120上的正在被更新的數(shù)據(jù)集合的一部分,而允許分開地 訪問該給定數(shù)據(jù)倉庫120上的同一數(shù)據(jù)集合的未鎖定部分以進行讀取或更新。在一個實施例中,管理器110可以有條件地允許在對一數(shù)據(jù)集合副本進行更新的 同時,如果對另一數(shù)據(jù)集合副本的訪問不依賴于該數(shù)據(jù)更新的話,有條件地訪問所述另一 數(shù)據(jù)集合副本。例如,客戶機140可能提交對于前一整個日歷季度(例如,排除當前日歷季 度)的所有客戶運貨數(shù)據(jù)進行請求的查詢。同時,管理器110可能處于從許多客戶履行地 點(其中每一個都可以包括數(shù)據(jù)源160)提取前一天的客戶運貨數(shù)據(jù)的過程中。可以將管 理器110配置成利用任何適當?shù)逆i定方案以確保在多個數(shù)據(jù)倉庫120內(nèi)的同步,來對由這 些數(shù)據(jù)倉庫120存儲的客戶運貨數(shù)據(jù)表進行更新。在對倉庫120a進行更新的同時,可以不 允許針對其客戶貨運數(shù)據(jù)的副本的查詢(或者,在某些實施例中,不允許針對倉庫120a內(nèi) 的任何數(shù)據(jù)的查詢)。然而,可以將管理器110配置成檢測到所提交的針對前一日歷季度 的客戶運貨數(shù)據(jù)的查詢并不依賴于當前正在對數(shù)據(jù)倉庫120a進行的更新。S卩,盡管數(shù)據(jù)倉 庫120b內(nèi)的客戶貨運數(shù)據(jù)并不完全與數(shù)據(jù)倉庫內(nèi)的副本相同步,但是滿足所述查詢 所必需的所有數(shù)據(jù)都可能存在于數(shù)據(jù)倉庫120b內(nèi)。因此,在已將客戶貨運數(shù)據(jù)更新存儲于 數(shù)據(jù)倉庫120b之前,管理器110可以允許由數(shù)據(jù)倉庫120b對所述查詢進行評估。在該示 例中,所討論的數(shù)據(jù)集合在數(shù)據(jù)倉庫120a到120b之間并不是完全同步的,而是粗略地同步 的,在此情況下允許具有用于對一查詢進行評估的足夠數(shù)據(jù)的數(shù)據(jù)倉庫120對該查詢進行 評估,即使它們不具有所討論的數(shù)據(jù)集合的最新版本。在圖1所示的數(shù)據(jù)倉庫系統(tǒng)100的實施例中,可以將管理器110配置成利用操作 數(shù)據(jù)庫130來保持與由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)集合有關(guān)的信息,如標識了存儲有給定數(shù) 據(jù)集合的位置(例如,具有該給定數(shù)據(jù)集合的唯一拷貝或副本的特定數(shù)據(jù)倉庫120)的信 息,以及針對任何正在進行的更新活動而標識了數(shù)據(jù)集合的每個拷貝的狀態(tài)的信息。例如,在一個實施例中,操作數(shù)據(jù)庫130可以包括與由數(shù)據(jù)倉庫120存儲的客戶貨運數(shù)據(jù)表的每 個拷貝相對應(yīng)的相應(yīng)記錄。對于圖2所示的實施例,操作數(shù)據(jù)庫130可以存儲兩個這種記 錄,其中每一個都將相應(yīng)的數(shù)據(jù)倉庫120a到120b標識為存儲有客戶貨運數(shù)據(jù)表的相應(yīng)副 本。此外,每個記錄都可以包括表明該表在對應(yīng)的數(shù)據(jù)倉庫120a和120b內(nèi)的狀態(tài)的字段。 參考在上一段中給出的示例,在管理器110正在對數(shù)據(jù)倉庫120a內(nèi)的客戶貨運數(shù)據(jù)表的更 新進行協(xié)調(diào)的同時,操作數(shù)據(jù)庫130內(nèi)的對應(yīng)記錄可以表明該副本正在被更新、不可用或 者其他合適的狀態(tài)。與之對照的是,針對由數(shù)據(jù)倉庫120b存儲的客戶貨運數(shù)據(jù)副本的記錄 可以表明該副本不是正在被更新或已完成對該副本的更新。在各種實施例中,可以將操作數(shù)據(jù)庫130配置成存儲對數(shù)據(jù)集合的位置和狀態(tài)進 行標識的不同類型的數(shù)據(jù)。例如,位置標識數(shù)據(jù)可以包括數(shù)據(jù)倉庫120的唯一標識符,如系 統(tǒng)名稱、網(wǎng)際協(xié)議(IP)地址、或其他合適的標識符。狀態(tài)信息可以涵蓋從表明是否正在更 新某個給定數(shù)據(jù)集合的簡單信號到表征給定數(shù)據(jù)集合的狀態(tài)的復(fù)雜字段的范圍。例如,在 某些實施例中,與數(shù)據(jù)集合相對應(yīng)的狀態(tài)信息可以表明更新該數(shù)據(jù)集合的最后一次、用以 執(zhí)行該更新的數(shù)據(jù)源160、該更新的原因(例如,由于調(diào)度操作或手動操作),或者任何其他 合適的狀態(tài)信息。在某些實施例中,(例如,在將管理器110配置成支持對數(shù)據(jù)倉庫120的 多個并發(fā)讀或?qū)懖僮鞯膶嵤├?可以將管理器110配置成利用事務(wù)操作來讀取和/或修 改操作數(shù)據(jù)庫130以確保操作狀態(tài)的同步。在一個實施例中,管理器110可以利用由操作數(shù)據(jù)庫130存儲的位置和狀態(tài)信息 來實現(xiàn)由多個數(shù)據(jù)倉庫120存儲的數(shù)據(jù)的粗同步。即,可以將管理器110配置成在從數(shù)據(jù) 倉庫120提取數(shù)據(jù)并向數(shù)據(jù)倉庫120存儲數(shù)據(jù)時以及在接收到檢索所存儲的數(shù)據(jù)的操作 (例如,查詢)時查閱操作數(shù)據(jù)庫130。圖3例示了利用粗同步將所提取的數(shù)據(jù)存儲在數(shù)據(jù) 倉庫120中的方法的一個實施例。共同地參照圖1到圖3,操作始于塊300,在該塊中,開始 從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合的操作。例如,在一個實施例中,可以將管理器110配 置成重復(fù)地(例如每小時、每晚、每周)從一個或更多個數(shù)據(jù)源160(如分布在整個企業(yè)中 的客戶履行地點)中提取諸如客戶貨運數(shù)據(jù)的數(shù)據(jù)集合。作為另一種選擇,用戶或應(yīng)用可 以經(jīng)由客戶機140請求提取和存儲數(shù)據(jù)集合。在某些實施例中,作出如下構(gòu)思可以從數(shù)據(jù) 源160同時提取多個數(shù)據(jù)集合并在一個或更多個數(shù)據(jù)倉庫120內(nèi)對它們進行更新。例如, 作為批作業(yè)或批處理,如調(diào)度批作業(yè),可以同時提取并存儲多個數(shù)據(jù)集合;或者可以從數(shù)據(jù) 源160動態(tài)地流式傳輸多個數(shù)據(jù)集合并在數(shù)據(jù)倉庫120內(nèi)對它們進行更新。隨后,管理器110例如通過向數(shù)據(jù)源160發(fā)出查詢或其他命令來檢索所提取的數(shù) 據(jù)以抽出數(shù)據(jù)(塊302)。如果有必要的話,可以對所提取的數(shù)據(jù)進行變換(塊304)。例 如,如上所述,可能需要改變所提取的數(shù)據(jù)的格式,或者根據(jù)數(shù)據(jù)倉庫120的數(shù)據(jù)存儲要求 而需要修改數(shù)據(jù)本身。管理器110接著確定哪個數(shù)據(jù)倉庫120容納有所提取的數(shù)據(jù)集合(塊306)。例如, 在一個實施例中,管理器110可以查閱操作數(shù)據(jù)庫130以根據(jù)其中存儲的記錄來確定所提 取的數(shù)據(jù)集合所在的位置。管理器110接著選擇要使用所提取的數(shù)據(jù)集合來進行更新的特 定數(shù)據(jù)倉庫120,并更新與該數(shù)據(jù)集合相關(guān)聯(lián)的狀態(tài)信息以表明發(fā)生了所述更新(塊308)。 在某些實施例中,可以將管理器110配置成按并行或交疊方式對容納有所提取的數(shù)據(jù)集合 的每個數(shù)據(jù)倉庫120進行更新,盡管這些更新可以在不同的時間開始或結(jié)束。在圖3中針對塊308到312中的重復(fù)塊例示了這種并行性,可以對若干不同數(shù)據(jù)集合或數(shù)據(jù)集合副本 中的每一個并行地執(zhí)行這些塊。例如,可以將管理器110配置成在若干不同數(shù)據(jù)倉庫120 上同時開始對所提取的數(shù)據(jù)集合進行更新;或者可以交錯進行這些更新,使得它們在時間 上部分地交疊。而且,需要指出的是,在某些實施例中,可以在多個不同數(shù)據(jù)倉庫120內(nèi)同 時更新多個不同數(shù)據(jù)集合。在其他實施例中,可以將管理器110配置成按串行或有條件的方式對數(shù)據(jù)倉庫 120進行更新。例如,如果數(shù)據(jù)倉庫120的一子集復(fù)制了所提取出的數(shù)據(jù)集合,那么管理器 110可以隨機地選擇特定數(shù)據(jù)倉庫120來開始進行更新。作為另一種選擇,管理器110可以 選擇所述子集中的最不繁忙的數(shù)據(jù)倉庫120,或者可以利用某些其他選擇準則。在操作數(shù)據(jù) 庫130對未處理數(shù)據(jù)集合讀操作進行跟蹤的某些實施例中,如果當前正在讀取該數(shù)據(jù)集合 (例如,通過查詢),那么可以不選擇一數(shù)據(jù)倉庫120來進行數(shù)據(jù)集合更新。一旦選擇了數(shù) 據(jù)倉庫120,在一個實施例中,管理器110可以對在操作數(shù)據(jù)庫130中存儲的與該數(shù)據(jù)集合 和所選擇的數(shù)據(jù)倉庫120相關(guān)聯(lián)的記錄中的狀態(tài)信息進行更新,以表明在所選擇的數(shù)據(jù)倉 庫中正在對該數(shù)據(jù)集合進行修改。如以上指出的,在某些實施例中,管理器110可以利用事 務(wù)操作來與操作數(shù)據(jù)庫130相交互,以例如確保多個并發(fā)操作的適當排序。接著將所提取出的數(shù)據(jù)集合存儲于所選擇的數(shù)據(jù)倉庫120(塊310)。需要指出的 是,可以經(jīng)由其他數(shù)據(jù)倉庫120對該數(shù)據(jù)集合的其他副本進行訪問和/或更新,同時對所選 擇的數(shù)據(jù)倉庫120的更新繼續(xù)進行。一旦完成了該更新,管理器110就對與該數(shù)據(jù)集合相 關(guān)聯(lián)的狀態(tài)信息進行更新以表明完成了該更新(塊312)。作出如下構(gòu)思在某些實施例中,管理器110在將所提取的數(shù)據(jù)集合存儲到其對 應(yīng)的數(shù)據(jù)倉庫120中時不必對該數(shù)據(jù)集合進行緩沖。在一個另選實施例中,管理器110在 開始從數(shù)據(jù)源160進行數(shù)據(jù)提取之前可以選擇數(shù)據(jù)倉庫120來進行更新。管理器110接著 可以將所提取的數(shù)據(jù)(施加適當?shù)淖儞Q)流式傳輸或者使得該數(shù)據(jù)被流式傳輸?shù)剿x擇的 數(shù)據(jù)倉庫120,并且可以隨后使用更新后的數(shù)據(jù)倉庫120作為用于對其他數(shù)據(jù)倉庫120進行 更新的數(shù)據(jù)源。進一步作出如下構(gòu)思在某些實施例中,可以同時(而不是順序地)對多個 數(shù)據(jù)倉庫120進行更新。例如,如果在3個數(shù)據(jù)倉庫120中復(fù)制有某個給定的數(shù)據(jù)集合,則 可以同時對這些數(shù)據(jù)倉庫中的2個進行更新,而留下第3個數(shù)據(jù)倉庫以供對該給定數(shù)據(jù)集 合進行查詢。最后,在某些實施例中,通過同時對所有數(shù)據(jù)倉庫120(或其選定子集)進行 更新,在操作數(shù)據(jù)庫130中適當?shù)乇硎境鰻顟B(tài),可以實現(xiàn)(與粗同步相對的)完全同步。在圖4中例示了利用粗同步對由多個數(shù)據(jù)倉庫120存儲的數(shù)據(jù)進行查詢的方法的 一個實施例。共同地參照圖1到圖4,操作始于塊400,在該塊中,接收到依賴于由多個數(shù)據(jù) 倉庫120存儲的一個或更多個數(shù)據(jù)集合的查詢操作。例如,在一個實施例中,可以將管理器 110配置成從客戶機140接收這種查詢,而不是直接或經(jīng)由web服務(wù)接口 150來接收。隨后,管理器110對所接收到的查詢進行分析以確定該查詢的數(shù)據(jù)集合依賴性 (塊40幻。在一個實施例中,對數(shù)據(jù)集合依賴性的確定可以包括對由該查詢引用的特定數(shù) 據(jù)集合的確定,以及對與所依賴的這些數(shù)據(jù)集合有關(guān)的任何附加狀態(tài)信息的確定。例如,在 一個實施例中,管理器110可能確定一特定查詢依賴于圖2所例示的客戶貨運數(shù)據(jù)表,進而 確定所依賴的數(shù)據(jù)是前一日歷季度的數(shù)據(jù)。管理器110接著確定所依賴的數(shù)據(jù)集合在數(shù)據(jù)倉庫120內(nèi)的位置,和與所存儲的數(shù)據(jù)集合相關(guān)聯(lián)的當前狀態(tài)信息(塊404)。例如,管理器110可以查閱操作數(shù)據(jù)庫130, 以針對所依賴的每個數(shù)據(jù)集合來確定哪個數(shù)據(jù)倉庫120容納有該數(shù)據(jù)集合的拷貝,以及與 該拷貝相關(guān)聯(lián)的狀態(tài)信息(例如,當前正在被更新、自某個日期起是最新的、由于維護而離 線,等等)?;诠芾砥?10對所接收到的查詢對數(shù)據(jù)集合依賴性以及與數(shù)據(jù)集合在數(shù)據(jù)倉 庫120內(nèi)的位置和狀態(tài)有關(guān)的信息的分析,管理器110確定是否任何數(shù)據(jù)倉庫120具有用 以對所接收到的查詢進行評估的足夠數(shù)據(jù)(塊406)。例如,在一個實施例中,如果一數(shù)據(jù)倉 庫120具有某個給定查詢所依賴的每個數(shù)據(jù)集合的拷貝,如果不是正在更新所依賴的每個 數(shù)據(jù)集合(例如,通過諸如圖3所例示的那樣的提取和存儲操作),并且如果所依賴的每個 數(shù)據(jù)集合都滿足該查詢的狀態(tài)要求(例如,每個數(shù)據(jù)集合都至少與由該查詢所指定的任何 日期范圍一樣新),那么管理器110可以確定該數(shù)據(jù)倉庫120具有足夠數(shù)據(jù)來對該查詢進行 評估。在其他實施例中,管理器110可以采用不同或附加的準則來確定一給定數(shù)據(jù)倉庫120 對于給定查詢是否具備數(shù)據(jù)充足性。例如,這種準則可以包括與數(shù)據(jù)倉庫120的能力或資 源(如其對某些類型的查詢語言進行評估的能力或其可用于處理復(fù)雜查詢的計算資源)有 關(guān)的信息。在某些實施例中,可以將一個或更多個數(shù)據(jù)倉庫120配置成例如通過對可以由給 定數(shù)據(jù)倉庫120同時評估的查詢的數(shù)量進行限制來對查詢評估資源進行管理。例如,可以 將數(shù)據(jù)倉庫120配置成為查詢的執(zhí)行提供一定數(shù)量的“作業(yè)時間片”,并且可以在所有時 間片都被占用的情況下不可接受其他查詢。在某些實施例中,無論一給定查詢的復(fù)雜度如 何,該查詢都可以對應(yīng)于一個可用作業(yè)時間片。在其他實施例中,更復(fù)雜的查詢可以占用多 個作業(yè)時間片,或者數(shù)據(jù)倉庫120可以采用其他類型的負載平衡策略。在某些實施例中,管 理器110在確定給定數(shù)據(jù)倉庫120是否具有用以對給定查詢進行評估的足夠數(shù)據(jù)時還可以 考慮該給定數(shù)據(jù)倉庫120的可用查詢評估資源。例如,在一個實施例中,管理器110可以不 選擇具有用以對查詢進行評估的足夠數(shù)據(jù)但是沒有用于進行查詢評估的可用資源的數(shù)據(jù) 倉庫120。如果沒有數(shù)據(jù)倉庫120具有用以對所接收到的查詢進行評估的足夠數(shù)據(jù)(或者, 在某些實施例中,如果沒有數(shù)據(jù)倉庫120具有用以對所接收到的查詢進行評估的足夠的可 用資源),那么管理器110可以將該查詢?nèi)腙牐钡街T如可以識別出足夠的數(shù)據(jù)倉庫120的 時間為止(塊408)。例如,在一個實施例中,管理器110可能識別出所接收到的查詢依賴于 當前正在被更新到特定數(shù)據(jù)倉庫120中的數(shù)據(jù)集合,并且在完成了該更新時可以在該特定 數(shù)據(jù)倉庫120上對要評估的該查詢進行調(diào)度。作為另一種選擇,管理器110有時可以對已 入隊的查詢進行再評估,以確定是否有數(shù)據(jù)倉庫120已變得可用于對查詢進行評估。在某 些實施例中,為了避免客戶機死鎖,管理器110可以對查詢可以保持入隊狀態(tài)的時間長度 加以限制,并且可以在其查詢超過了入隊時間限制的情況下向客戶機返回錯誤情況。如果識別出足以對所接收到的查詢進行評估的數(shù)據(jù)倉庫120,那么管理器110將 所接收到的查詢傳送給該數(shù)據(jù)倉庫120以進行評估(塊410)。需要指出的是,在粗同步下, 可以在由一個數(shù)據(jù)倉庫120對以特定數(shù)據(jù)集合為目標的查詢進行評估的同時,在另一數(shù)據(jù) 倉庫120上對該特定數(shù)據(jù)集合的副本進行更新。圖5A示出了例示出在粗同步下對數(shù)據(jù)集合的更新與對數(shù)據(jù)集合的查詢之間的關(guān)系的一個實施例的時序圖。在所例示的時序圖中,管理器110在時刻Tl處開始對特定數(shù)據(jù) 集合進行更新,此時數(shù)據(jù)倉庫120a和120b復(fù)制有該數(shù)據(jù)集合。隨后,在時刻T2處由管理 器110接收到以正在被更新的數(shù)據(jù)集合為目標的查詢。在比T2晚的時刻T3時在數(shù)據(jù)倉庫 120a處完成了該數(shù)據(jù)集合更新,而在比T3晚的時刻T4時在數(shù)據(jù)倉庫120b處完成了該數(shù)據(jù)
集合更新。在所例示的實施例中,示出了對所接收到的查詢進行評估的3個可能的時段。在 第一情況下,該查詢可以由正在被更新的數(shù)據(jù)集合的更新前的內(nèi)容來滿足。例如,管理器 110連同操作數(shù)據(jù)庫130 —起可以確定對該查詢進行評估所必需的數(shù)據(jù)并不依賴于當前的 更新。在此情況下,在時刻T2之后可以由容納了有關(guān)數(shù)據(jù)集合的任何可用數(shù)據(jù)倉庫120來 評估該查詢。即,在接收到該查詢之后一旦可以實施就可以對其進行評估,在某些情況下這 可能會引起延時。例如,在某些實施例中,如以上指出的,可能不允許針對當前正在被更新 的數(shù)據(jù)倉庫120,對查詢進行評估。此外,在某些情況下,數(shù)據(jù)倉庫120可能太繁忙,以至于 不能立即接受該查詢。然而,在某些實施例中,在該查詢依賴于更新前的數(shù)據(jù)的情況下,不 必對在時刻T2之后何時可以執(zhí)行該查詢進行與任何更新有關(guān)的時間限制。在第二和第三情況下,該查詢可能依賴于正在被更新的數(shù)據(jù)集合的更新后的內(nèi) 容。S卩,該查詢可能要求對在時刻Tl時開始的數(shù)據(jù)集合更新中反映的數(shù)據(jù)進行正確的評 估。在所例示的實施例中,該更新在時刻T3時在數(shù)據(jù)倉庫120a處完成,而在時刻T4時在 數(shù)據(jù)倉庫120b處完成。相對應(yīng)的,可以在時刻T3之后的任何時刻由數(shù)據(jù)倉庫120a對該查 詢進行評估,而在時刻T4之后的任何時刻由數(shù)據(jù)倉庫120b對該查詢進行評估。如先前指 出的并且如圖5A所例示的,在粗同步下,可以在已更新了被一查詢作為目標的數(shù)據(jù)集合的 所有副本之前由特定數(shù)據(jù)倉庫120對該查詢進行評估,而在某些情況下(例如,在該查詢依 賴于更新前的數(shù)據(jù)的情況下)可以在已更新了該數(shù)據(jù)集合在該特定數(shù)據(jù)倉庫120上的副本 之前對該查詢進行評估。如以上指出的,在某些實施例中,可以在由一個數(shù)據(jù)倉庫120對以 特定數(shù)據(jù)集合為目標的查詢進行評估的同時,將該特定數(shù)據(jù)集合存儲到另一數(shù)據(jù)倉庫120。 此外,在某些實施例中,在已將該特定數(shù)據(jù)集合存儲到任意給定數(shù)據(jù)倉庫120之后,該給定 數(shù)據(jù)倉庫120可以對針對該特定數(shù)據(jù)集合的查詢進行評估。例如,在已將經(jīng)復(fù)制的數(shù)據(jù)集 合更新到某些或所有對應(yīng)的數(shù)據(jù)倉庫120之后,任何更新后的數(shù)據(jù)倉庫120都可能能夠滿 足對經(jīng)復(fù)制的數(shù)據(jù)集合的查詢。而且,需要指出的是,在采用用于鎖定數(shù)據(jù)集合的某些部分的細粒度機制的某些 實施例中,如上所述,容納有正在被更新的數(shù)據(jù)集合的一給定數(shù)據(jù)倉庫120可能在該更新 完成之前可用于對針對該數(shù)據(jù)集合的查詢進行評估。例如,在某些實施例中,可以將管理器 110和操作數(shù)據(jù)庫130配置成跟蹤數(shù)據(jù)集合的多個部分的狀態(tài)(例如,表的各行或多行的集 合)。盡管針對給定數(shù)據(jù)倉庫120正在更新特定數(shù)據(jù)集合的一個部分,但是管理器110可以 確定一給定查詢依賴于該特定數(shù)據(jù)集合的當前沒有被更新的部分,因此可以允許由該給定 數(shù)據(jù)倉庫120對該查詢進行評估。在這種實施例中,可以在功能上將針對數(shù)據(jù)集合中的不 在進行更新的部分的查詢處理成好像該查詢依賴于與正在被更新的數(shù)據(jù)集合無關(guān)的數(shù)據(jù) 集合一樣,并且可以允許與該更新無關(guān)地對其進行評估。在圖5A的環(huán)境下,可以在不與時 刻T3和T4處的更新完成點同步的情況下允許在時刻T2時接收到該查詢之后的任何時間 對這種查詢進行評估。
圖5B到5D與圖5A所示的各種時間點相關(guān)地例示了利用粗同步所復(fù)制的數(shù)據(jù)集 合的一個實施例的具體示例。在圖5B到5D所示的實施例中,將客戶定單數(shù)據(jù)集合配置成 由數(shù)據(jù)倉庫120a和120b來復(fù)制。圖5B例示了在更新開始之前的時刻(例如,在圖5A所 示的時刻Tl之前的時刻)時該客戶定單數(shù)據(jù)集合的副本。在圖5B中,按更新前的狀態(tài)示 出客戶定單數(shù)據(jù)集合的兩個副本。圖5C例示了在已更新了數(shù)據(jù)倉庫120a的副本之后但是在更新了數(shù)據(jù)倉庫12b0 的副本之前(例如,在圖5A所示的時刻T3與T4之間的時刻)時該客戶定單數(shù)據(jù)集合的副 本。如圖5C所示,客戶定單數(shù)據(jù)集合的這兩個副本處于不相似的狀態(tài)。最后,圖5D例示了 在已更新了所述兩個副本之后的時刻(例如,在圖5A所示的時刻T4之后的時刻)時該客戶 定單數(shù)據(jù)集合的副本。如上所述,對客戶定單數(shù)據(jù)集合的查詢可能在對該數(shù)據(jù)集合的更新 開始之后的任何時刻發(fā)生。根據(jù)其數(shù)據(jù)集合要求,可以允許在完成了對兩個數(shù)據(jù)倉庫120a 和120b的更新之前(包括在這兩個數(shù)據(jù)集合副本具有不相似的內(nèi)容(例如,如圖5C所示) 時的時刻)針對數(shù)據(jù)倉庫120a和120b中的任一個執(zhí)行特定查詢。需要指出的是,在某些實施例中,數(shù)據(jù)倉庫系統(tǒng)100的組織可能對于被配置成與 系統(tǒng)100相交互的客戶機140來說是完全透明的。即,在某些實施例中,客戶機140可能不 具有數(shù)據(jù)倉庫120內(nèi)的給定數(shù)據(jù)集合的位置或狀態(tài)的直接知識。在某些這種實施例中,可 以將管理器110配置成將多個數(shù)據(jù)倉庫120呈現(xiàn)為當從客戶機140的觀點來看是單個虛擬 數(shù)據(jù)倉庫(例如,可以將管理器110配置成對多個數(shù)據(jù)倉庫120進行虛擬化)。由此,在某 些這種實施例中,管理器110可以在任意程度上自由地復(fù)制數(shù)據(jù)集合,重新確定數(shù)據(jù)集合 在多個數(shù)據(jù)倉庫120之中的位置,或者改變存儲在系統(tǒng)100內(nèi)的數(shù)據(jù)的組織結(jié)構(gòu),同時將單 個、穩(wěn)定的界面(如查詢界面)呈現(xiàn)給客戶機140。在一個實施例中,在任意給定時刻,由數(shù)據(jù)倉庫120存儲的多個數(shù)據(jù)集合可供給 定客戶機140來進行查詢,并且在任意給定的時刻所存儲的多個數(shù)據(jù)集合中的一個可能與 所存儲的多個數(shù)據(jù)集合中的另一個不相似。例如,所存儲的兩個數(shù)據(jù)集合可能由于它們被 定義成存儲不同類型的數(shù)據(jù)而不相似。作為另一種選擇,可以將所存儲的兩個數(shù)據(jù)集合配 置成復(fù)制同一數(shù)據(jù),但是可以在某個給定時刻由于如上所述的粗同步的操作而不相似。在 某些實施例中,在這些場景中的任一場景下的多個數(shù)據(jù)集合都可供客戶機140查詢,并且 可以將管理器110配置成對如何按對于客戶機140透明的方式在數(shù)據(jù)倉庫系統(tǒng)100內(nèi)安排 和操縱這種數(shù)據(jù)集合的詳情進行管理。對于客戶機140來說,可以與是否復(fù)制存儲在數(shù)據(jù)倉庫120內(nèi)的數(shù)據(jù)集合無關(guān)地 進行數(shù)據(jù)倉庫120的虛擬化。圖6例示了對于客戶機140將數(shù)據(jù)倉庫120虛擬化成單個數(shù) 據(jù)倉庫的方法的一個實施例。共同地參照圖1到圖6,操作始于塊600,在該塊中,管理器110 存儲與數(shù)據(jù)倉庫120中的數(shù)據(jù)集合有關(guān)的位置信息。例如,在一個實施例中,管理器110可 以將每個數(shù)據(jù)集合的位置信息連同對數(shù)據(jù)集合的狀態(tài)、數(shù)據(jù)集合是否被復(fù)制等進行標識的 其他信息一起存儲在操作數(shù)據(jù)庫130。隨后,管理器110接收到以存儲在數(shù)據(jù)倉庫系統(tǒng)100內(nèi)的特定數(shù)據(jù)集合為目標的 查詢(塊60幻。作為響應(yīng),管理器110對能夠評估所接收到的查詢的特定數(shù)據(jù)倉庫120進 行識別(塊604)。例如,可以將管理器110配置成對該查詢進行分析以檢測如上所述的 數(shù)據(jù)集合和狀態(tài)依賴性,并查閱操作數(shù)據(jù)庫130以識別出可以評估該查詢的一個數(shù)據(jù)倉庫120 (或者一個以上,如果復(fù)制了該數(shù)據(jù)集合的話)。諸如正在進行的數(shù)據(jù)集合更新、數(shù)據(jù)倉 庫工作負荷等之類的其他因素也會影響對用于進行查詢評估的合適數(shù)據(jù)倉庫120的識別。一旦識別出用以評估所接收到的查詢的數(shù)據(jù)倉庫120,管理器110就將該查詢傳 送給所選擇的數(shù)據(jù)倉庫120以進行評估(塊606)。接著對該查詢進行評估(塊608),然后 經(jīng)由管理器110將結(jié)果返回給進行請求的客戶機140 (塊610)。需要指出的是,在某些實施 例中,在提交查詢與接收查詢結(jié)果之間的所有步驟都可以是對客戶機140透明的。還要指 出的是,在某些情況下,管理器110可以在不能立即識別出用于進行評估的合適數(shù)據(jù)倉庫 120的情況下將該查詢?nèi)腙?。此外,在某些情況下,例如如果一查詢有形式錯誤或者對數(shù)據(jù) 倉庫120的等待超時了,管理器110可以將錯誤情況返回給進行請求的客戶機140。數(shù)據(jù)倉庫計算基礎(chǔ)設(shè)施每個數(shù)據(jù)倉庫120都可以包括計算硬件以及被配置成實現(xiàn)數(shù)據(jù)倉儲功能的操作 系統(tǒng)軟件和數(shù)據(jù)倉儲軟件(例如數(shù)據(jù)庫軟件)的相應(yīng)集合。在某些實施例中,所使用的計 算硬件可以包括專用、高端多處理器計算機系統(tǒng),可以細致地將該計算機系統(tǒng)與專用于特 定安裝的定制的操作系統(tǒng)和數(shù)據(jù)倉儲軟件集成起來。然而,對于購買、管理以及維護來說這 種配置可能是昂貴的。因此,在某些實施例中,任意或所有數(shù)據(jù)倉庫120均可以包括由運行 廣泛發(fā)布的或開放源碼的操作系統(tǒng)和/或數(shù)據(jù)倉儲軟件的多個較不昂貴(例如商用)計算 機系統(tǒng)所組裝成的相應(yīng)計算集群。圖7例示了可以實現(xiàn)數(shù)據(jù)倉庫120的計算集群的一個實施例。在所例示的實施 例中,數(shù)據(jù)倉庫集群700(或簡稱為集群700)包括多個計算節(jié)點710(或簡稱為節(jié)點710)。 每個節(jié)點710都耦合到多個交換機720中的每一個,并且每個交換機720都耦合到相應(yīng)的 多個存儲器陣列730。由此,在所例示的實施例中,每個節(jié)點710都可以通過合適的交換機 720來訪問任一存儲器陣列730。在一個實施例中,集群700可以包括16個節(jié)點710、8個 交換機720以及64個存儲器陣列730。然而,需要指出的是,在各種實施例中,可以采用任 意多個節(jié)點710、交換機720以及存儲器陣列730,以及用于將這些組成要素互連的各種拓 撲結(jié)構(gòu)。在一個實施例中,如以下結(jié)合圖8的描述更詳細地描述的,每個節(jié)點710都可以 包括單處理器或多處理器計算機系統(tǒng)。在某些實施例中,節(jié)點710可以包括由包括Sim Microsystems、Hewlett-Packard、IBM、戴爾或任何合適的系統(tǒng)制造商在內(nèi)的多個廠商中的 任何廠商提供的通用服務(wù)器、個人計算機或工作站系統(tǒng)。此外,可以將節(jié)點710配置成執(zhí)行 一個或更多個合適的操作系統(tǒng),如與Linux、Microsoft Windows、Solaris、HP_UX、AIX或任 何其他合適的通用或?qū)S貌僮飨到y(tǒng)的某個版本兼容的操作系統(tǒng)。—般來講,每個節(jié)點710都可以進行操作以針對可以經(jīng)由存儲器陣列730存儲的 數(shù)據(jù)集合對經(jīng)由管理器110接收到的查詢以及其他數(shù)據(jù)倉庫操作進行評估,同時交換機 730提供節(jié)點710與存儲器陣列730之間的互連性。由此,在所例示的實施例中,在特定節(jié) 點710上被評估的查詢可以均勻地訪問存儲在任何存儲器陣列730上的數(shù)據(jù)集合。在其他 實施例中,可以將數(shù)據(jù)集合不均勻地提供給節(jié)點710。例如,可以將給定節(jié)點710映射到包 括某些數(shù)據(jù)集合但是不包括其他數(shù)據(jù)集合的特定一個或更多個存儲器陣列730。在這種實 施例中,根據(jù)特定查詢所依賴的數(shù)據(jù)集合如何分布在多個存儲器陣列730上,多個節(jié)點710 可能需要參與對該特定查詢的評估。
在某些實施例中,交換機720和存儲器陣列730可以包括存儲區(qū)域網(wǎng)(SAN)。例 如,可以利用光纖信道互連或其他合適的SAN互連和管理技術(shù)將交換機720耦合到節(jié)點710 和存儲器陣列730。然而,作出如下構(gòu)思可以使用任何合適類型的網(wǎng)絡(luò)來將集群700的多 個設(shè)備互連。例如,在一個實施例中,作為互連技術(shù),可以采用吉比特以太網(wǎng)或10吉比特以 太網(wǎng)。每個存儲器陣列730都可以包括一個或更多個大容量存儲裝置,如固定磁盤裝 置。例如,在一個實施例中,每個存儲器陣列730都可以包括被配置成獨立盤冗余陣列 (RAID陣列)的相同數(shù)量個SCSI (小型計算機系統(tǒng)接口)硬盤驅(qū)動器??梢杂纱鎯ζ麝嚵?730自身來管理由存儲器陣列730支持的各種存儲特征,如盤分段(disk striping)、鏡像 以及數(shù)據(jù)奇偶校驗。例如,除了大容量存儲裝置以外,存儲器陣列730還可以包括被配置成 對這些裝置進行管理的附加硬件。作為另一種選擇,存儲器陣列730可以是相對被動的,可 以由智能交換機720來管理其存儲特征。作出如下構(gòu)思除了磁盤以外或者作為磁盤的替 代物,一給定存儲器陣列730可以包括其他類型的存儲裝置,如光學(xué)介質(zhì)或磁帶。此外,作 出如下構(gòu)思在某些實施例中,可以對各存儲器陣列730進行相同的配置,而在其他實施例 中,存儲器陣列730在它們的配置和/或特征集合方面可以是不同種類的。在某些實施例中,可以容易地對集群700進行擴縮以使其與給定數(shù)據(jù)倉庫120的 預(yù)期工作負荷相匹配。例如,如果數(shù)據(jù)倉庫120預(yù)期要容納接收不頻繁或相對簡單的查詢 的大量數(shù)據(jù),那么可以將存儲器陣列730配備成存儲所預(yù)期量的數(shù)據(jù)(包括如上所述的任 何期望的數(shù)據(jù)集合復(fù)制),同時可以基于所預(yù)期的工作負荷獨立地配備節(jié)點710。如果查詢 工作負荷或存儲要求萬一增加了,那么隨后可以添加附加的節(jié)點710、交換機720和/或存 儲器陣列730。作出如下構(gòu)思在某些實施例中,可以將上述任何方法或技術(shù)(例如,管理器110 或數(shù)據(jù)倉庫120的功能,或圖3、4以及6所例示的方法)實現(xiàn)為能夠經(jīng)由計算機可訪問的 介質(zhì)來存儲或傳送的程序指令和數(shù)據(jù)??梢詧?zhí)行這種程序指令以執(zhí)行特定計算功能,如數(shù) 據(jù)倉儲和虛擬化、存儲管理、查詢和數(shù)據(jù)集合分析、查詢評估、操作系統(tǒng)功能、應(yīng)用、和/或 任何其他合適的功能。在一個實施例中,節(jié)點710可以包括計算機可訪問介質(zhì)。圖8例示 了可以作為給定節(jié)點710的例示的計算機系統(tǒng)的一個實施例。在所例示的實施例中,計算 機系統(tǒng)800包括經(jīng)由輸入/輸出(I/O)接口 830耦合到系統(tǒng)存儲器820的一個或更多個處 理器810。節(jié)點710還包括均耦合到I/O接口 830的網(wǎng)絡(luò)接口 840和SAN接口 850。需要指出的是,在某些實施例中,可以將計算機系統(tǒng)800的實例配置成與集群700 分開,并將該實例配置成執(zhí)行數(shù)據(jù)倉庫系統(tǒng)100內(nèi)的其他應(yīng)用或功能。例如,在一個實施例 中,可以將計算機系統(tǒng)800的一個或更多個實例配備在集群700的外部,并配置成執(zhí)行可以 經(jīng)由計算機可訪問介質(zhì)來存儲或傳送的程序指令和數(shù)據(jù)并配置成實現(xiàn)管理器110。在某些 這種實施例中,被配置成實現(xiàn)管理器110的計算機系統(tǒng)800的實例的配置可以與圖8所示 的配置不同。例如,在某些實施例中,計算機系統(tǒng)800的這種實例可以包括更多個或更少個 處理器810。此外,盡管在某些實施例中這種實例可以保留SAN接口 850,但是也可以略去 該接口。如以上指出的,在各種實施例中,計算機系統(tǒng)800可以是包括一個處理器810的單 處理器系統(tǒng)或包括若干個(如2、4、8或其他合適的數(shù)量)處理器810的多處理器系統(tǒng)。處理器810可以是能夠執(zhí)行指令的任何合適的處理器。例如,在各種實施例中,處理器810可 以是實現(xiàn)任何不同指令集架構(gòu)(ISA)(如x86、PowerPC、SPARC或MIPSISA或任何其他合適 的ISA)的通用或嵌入式處理器。在多處理器系統(tǒng)中,每個處理器810都可以共同地但非必 要地實現(xiàn)同一 ISA??梢詫⑾到y(tǒng)存儲器820配置成存儲可由處理器810訪問的指令和數(shù)據(jù)。在各 種實施例中,可以采用任何合適的存儲器技術(shù),如靜態(tài)隨機存取存儲器(SRAM)、同步動態(tài) RAM(SDRAM)、非易失性/閃速型存儲器或任何其他類型的存儲器,來實現(xiàn)系統(tǒng)存儲器820。 在所例示的實施例中,將實現(xiàn)期望功能(如上述那些功能)的程序指令和數(shù)據(jù)示出為作為 代碼825存儲在系統(tǒng)存儲器820內(nèi)。在一個實施例中,可以將I/O接口 830配置成對處理器810、系統(tǒng)存儲器820以及 設(shè)備內(nèi)的任何外圍設(shè)備(包括網(wǎng)絡(luò)接口 840、SAN接口 850或其他外圍接口)之間的I/O業(yè) 務(wù)量進行協(xié)調(diào)。在某些實施例中,I/O接口 830可以執(zhí)行任何必需的協(xié)議、定時或其他數(shù)據(jù) 變換以將來自一個組件(例如系統(tǒng)存儲器820)的數(shù)據(jù)信號轉(zhuǎn)換成適合于由另一組件(例 如處理器810)使用的格式。在某些實施例中,I/O接口 830可以包括對通過各種類型的外 圍總線連接的設(shè)備的支持,如外圍組件互連(PCI)總線標準或通用串行總線(USB)標準的 變型。在某些實施例中,可以將I/O接口 830的功能分成2個或更多個分開的組件,如北橋 和南橋。而且,在某些實施例中,可以將I/O接口 830的某些或所有功能(如到系統(tǒng)存儲器 820的接口 )直接并入處理器810中。可以將網(wǎng)絡(luò)接口 840配置成允許在計算機系統(tǒng)800與連接到網(wǎng)絡(luò)的其他設(shè)備之間 交換數(shù)據(jù)。例如,可以將管理器Iio配置成在集群700的外部的計算機系統(tǒng)800上執(zhí)行,并 且被配置成集群700內(nèi)的節(jié)點710的特定計算機系統(tǒng)800可以經(jīng)由網(wǎng)絡(luò)接口 840與位于外 部系統(tǒng)上的管理器110相通信。在各種實施例中,網(wǎng)絡(luò)接口 840可以支持經(jīng)由以下網(wǎng)絡(luò)進 行通信有線或無線通用數(shù)據(jù)網(wǎng)絡(luò),如任何合適類型的以太網(wǎng);電信/電話網(wǎng)絡(luò),如模擬話 音網(wǎng)絡(luò)或數(shù)字光纖通信網(wǎng)絡(luò);存儲器局域網(wǎng),如光纖通道SAN ;或任何其他合適類型的網(wǎng)絡(luò) 和/或協(xié)議。在一個實施例中,可以將SAN接口 850配置成允許經(jīng)由交換機720在計算機系統(tǒng) 800與存儲器陣列730之間交換數(shù)據(jù)。在某些實施例中,如上所述,SAN接口 850可以包括 光纖通道接口或另一合適的接口。然而,作出如下構(gòu)思在某些實施例中,可以通過標準的 網(wǎng)絡(luò)接口來實現(xiàn)SAN連接性。在這種實施例中,計算機系統(tǒng)800可以提供單個網(wǎng)絡(luò)接口(例 如網(wǎng)絡(luò)接口 840)以與存儲裝置和其他計算機系統(tǒng)相通信,或者計算機系統(tǒng)800可以將存儲 裝置和通用網(wǎng)絡(luò)通信均勻地散布在幾個類似配置的網(wǎng)絡(luò)接口上。在某些實施例中,系統(tǒng)存儲器820可以是被配置成存儲如上所述的程序指令和數(shù) 據(jù)的計算機可訪問介質(zhì)的一個實施例。然而,在其他實施例中,可以接收、發(fā)送或在不同類 型的計算機可訪問介質(zhì)上存儲程序指令和/或數(shù)據(jù)。一般來講,計算機可訪問介質(zhì)可以包 括諸如磁或光介質(zhì)之類的存儲介質(zhì)或存儲器介質(zhì),例如,經(jīng)由I/O接口 830耦合到計算機系 統(tǒng)800的盤、CD-ROM或DVD-R0M,或經(jīng)由SAN接口 850耦合到計算機系統(tǒng)800的存儲器陣 列730。計算機可訪問介質(zhì)還可以包括可以作為系統(tǒng)存儲器820或另一類型的存儲器而包 括在某些實施例的計算機系統(tǒng)800中的任何易失性或非易失性介質(zhì),如RAM(例如SDRAM、 DDR SDRAM、RDRAM、SRAM等)、ROM等。此外,計算機可訪問介質(zhì)可以包括傳輸介質(zhì)或信號,該信號例如是經(jīng)由諸如網(wǎng)絡(luò)和/或無線鏈接的通信介質(zhì)而傳送的諸如電、電磁或數(shù)字的信 號,使得可以經(jīng)由網(wǎng)絡(luò)接口 840或SAN接口 850來實現(xiàn)。 盡管詳細地描述了以上實施例,但是本領(lǐng)域的技術(shù)人員一旦全面理解了以上公開 內(nèi)容就將明了許多變型和修改。應(yīng)當將以下權(quán)利要求解釋成包括所有這種變型和修改。
權(quán)利要求
1.一種系統(tǒng),該系統(tǒng)包括多個數(shù)據(jù)倉庫,其被配置成存儲從一個或更多個數(shù)據(jù)源提取的數(shù)據(jù)集合;以及數(shù)據(jù)倉庫管理器,其被配置成將所述多個數(shù)據(jù)倉庫作為單個數(shù)據(jù)倉庫呈現(xiàn)給客戶機, 其中所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集合的位置對于所述客戶機是透明的;其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲的并且在所述給定時 刻可供所述客戶機進行查詢的第一數(shù)據(jù)集合與由所述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存 儲的并且在所述給定時刻可供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似;并且其中,響應(yīng)于接收到來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù) 據(jù)倉庫存儲的數(shù)據(jù)集合的查詢,所述數(shù)據(jù)倉庫管理器還被配置成識別所述多個數(shù)據(jù)倉庫中 的能夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫,并將所述查詢傳送給所述特定數(shù)據(jù)倉庫 以進行評估。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉 庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲給定數(shù)據(jù)集合的相應(yīng)副本。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被配置成在所述給定數(shù) 據(jù)集合的每個相應(yīng)副本已被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫 的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述給定數(shù)據(jù)集合的查詢進行評估。
4.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的一個給定數(shù)據(jù)倉庫被配置 成存儲第二數(shù)據(jù)集合,并且其中所述多個數(shù)據(jù)倉庫中的至少另一數(shù)據(jù)倉庫不存儲所述第二 數(shù)據(jù)集合的任何副本。
5.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的每一個都包括相應(yīng)的關(guān)系 數(shù)據(jù)庫。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被配置成在操作數(shù)據(jù)庫 中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對應(yīng)的標識信息。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合,所述標識信息包括存儲有或 要存儲所述給定數(shù)據(jù)集合的所述一個或更多個數(shù)據(jù)倉庫中每一個的相應(yīng)標識符,并且其中 所述標識信息還包括表明是否已將所述給定數(shù)據(jù)集合存儲到對應(yīng)數(shù)據(jù)倉庫的相應(yīng)狀態(tài)信 肩、ο
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述數(shù)據(jù)倉庫管理器識別能夠?qū)λ霾樵冞M行 評估的所述特定數(shù)據(jù)倉庫的操作還包括根據(jù)所述相應(yīng)狀態(tài)信息來確定所述特定數(shù)據(jù)倉庫 是否具有足夠的數(shù)據(jù)來對所述查詢進行評估。
9.根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被配置成經(jīng)由web服務(wù)接 口從進行請求的應(yīng)用接收所述查詢。
10.一種方法,該方法包括以下步驟從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在多個數(shù)據(jù)倉庫中的一個或更多個中;將所述多個數(shù)據(jù)倉庫作為單個數(shù)據(jù)倉庫呈現(xiàn)給客戶機,其中所述多個數(shù)據(jù)倉庫內(nèi)的所 述數(shù)據(jù)集合的位置對于所述客戶機是透明的;以及響應(yīng)于接收到來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù)據(jù)倉 庫存儲的數(shù)據(jù)集合的查詢,識別所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估的一個特 定數(shù)據(jù)倉庫,并將所述查詢傳送給所述特定數(shù)據(jù)倉庫以進行評估,其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲的并且在所述給定時 刻可供所述客戶機進行查詢的第一數(shù)據(jù)集合與由所述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存 儲的并且在所述給定時刻可供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
11.根據(jù)權(quán)利要求10所述的方法,其中包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù) 倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲給定數(shù)據(jù)集合的相應(yīng)副本。
12.根據(jù)權(quán)利要求11所述的方法,該方法還包括以下步驟在所述給定數(shù)據(jù)集合的每 個相應(yīng)副本已被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一 子集中的一個數(shù)據(jù)倉庫對依賴于所述給定數(shù)據(jù)集合的查詢進行評估。
13.根據(jù)權(quán)利要求10所述的方法,其中所述多個數(shù)據(jù)倉庫中的一個給定數(shù)據(jù)倉庫被配 置成存儲第二數(shù)據(jù)集合,并且其中所述多個數(shù)據(jù)倉庫中的至少另一數(shù)據(jù)倉庫不存儲所述第 二數(shù)據(jù)集合的任何副本。
14.根據(jù)權(quán)利要求10所述的方法,其中所述多個數(shù)據(jù)倉庫中的每一個都包括相應(yīng)的關(guān) 系數(shù)據(jù)庫。
15.根據(jù)權(quán)利要求10所述的方法,該方法還包括以下步驟在操作數(shù)據(jù)庫中存儲與存 儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對應(yīng)的標識信息。
16.根據(jù)權(quán)利要求15所述的方法,其中,對于給定數(shù)據(jù)集合,所述標識信息包括存儲有 或要存儲所述給定數(shù)據(jù)集合的所述一個或更多個數(shù)據(jù)倉庫中每一個的相應(yīng)標識符,并且其 中所述標識信息還包括表明是否已將所述給定數(shù)據(jù)集合存儲到對應(yīng)數(shù)據(jù)倉庫的相應(yīng)狀態(tài) fn息ο
17.根據(jù)權(quán)利要求16所述的方法,其中,識別能夠?qū)λ霾樵冞M行評估的所述特定數(shù) 據(jù)倉庫的步驟還包括以下步驟根據(jù)所述相應(yīng)狀態(tài)信息來確定所述特定數(shù)據(jù)倉庫是否具有 足夠的數(shù)據(jù)來對所述查詢進行評估。
18.根據(jù)權(quán)利要求10所述的方法,該方法還包括以下步驟經(jīng)由web服務(wù)接口從進行 請求的應(yīng)用接收所述查詢。
19.一種包括程序指令的計算機可訪問介質(zhì),其中所述程序指令可以執(zhí)行以從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在多個數(shù)據(jù)倉庫中的一個或更多個中;將所述多個數(shù)據(jù)倉庫作為單個數(shù)據(jù)倉庫呈現(xiàn)給客戶機,其中所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集合的位置對于所述客戶機是透明的;以及響應(yīng)于接收到來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù)據(jù)倉 庫存儲的數(shù)據(jù)集合的查詢,識別所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估的一個特 定數(shù)據(jù)倉庫,并將所述查詢傳送給所述特定數(shù)據(jù)倉庫以進行評估,其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲的并且在所述給定時 刻可供所述客戶機進行查詢的第一數(shù)據(jù)集合與由所述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存 儲的并且在所述給定時刻可供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
20.根據(jù)權(quán)利要求19所述的計算機可訪問介質(zhì),其中包括所述多個數(shù)據(jù)倉庫中的兩個 或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲給定數(shù)據(jù)集合的相應(yīng)副 本。
21.根據(jù)權(quán)利要求20所述的計算機可訪問介質(zhì),還包括在所述給定數(shù)據(jù)集合的每個 相應(yīng)副本已被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述給定數(shù)據(jù)集合的查詢進行評估。
22.根據(jù)權(quán)利要求19所述的計算機可訪問介質(zhì),其中所述多個數(shù)據(jù)倉庫中的一個給定 數(shù)據(jù)倉庫被配置成存儲第二數(shù)據(jù)集合,并且其中所述多個數(shù)據(jù)倉庫中的至少另一數(shù)據(jù)倉庫 不存儲所述第二數(shù)據(jù)集合的任何副本。
23.根據(jù)權(quán)利要求19所述的計算機可訪問介質(zhì),其中所述多個數(shù)據(jù)倉庫中的每一個都 包括相應(yīng)的關(guān)系數(shù)據(jù)庫。
24.根據(jù)權(quán)利要求19所述的計算機可訪問介質(zhì),還包括在操作數(shù)據(jù)庫中存儲與存儲 在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對應(yīng)的標識信息。
25.根據(jù)權(quán)利要求M所述的計算機可訪問介質(zhì),其中,對于給定數(shù)據(jù)集合,所述標識信 息包括存儲有或要存儲所述給定數(shù)據(jù)集合的所述一個或更多個數(shù)據(jù)倉庫中每一個的相應(yīng) 標識符,并且其中所述標識信息還包括表明是否已將所述給定數(shù)據(jù)集合存儲到對應(yīng)數(shù)據(jù)倉 庫的相應(yīng)狀態(tài)信息。
26.根據(jù)權(quán)利要求25所述的計算機可訪問介質(zhì),其中,識別能夠?qū)λ霾樵冞M行評估 的所述特定數(shù)據(jù)倉庫的操作還包括根據(jù)所述相應(yīng)狀態(tài)信息來確定所述特定數(shù)據(jù)倉庫是否 具有足夠的數(shù)據(jù)來對所述查詢進行評估。
27.根據(jù)權(quán)利要求19所述的計算機可訪問介質(zhì),還包括經(jīng)由web服務(wù)接口從進行請求 的應(yīng)用接收所述查詢。
28.—種系統(tǒng),該系統(tǒng)包括多個數(shù)據(jù)倉庫;和數(shù)據(jù)倉庫管理器,其被配置成從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在所述多個 數(shù)據(jù)倉庫中的一個或更多個中;以及操作數(shù)據(jù)庫,其被配置成與所述數(shù)據(jù)倉庫管理器相交互并且存儲與所述數(shù)據(jù)集合相關(guān) 聯(lián)的數(shù)據(jù)倉庫狀態(tài)信息,其中,響應(yīng)于接收到來自多個客戶機中的一個給定客戶機的針對由所述多個數(shù)據(jù)倉庫 中的一個或更多個數(shù)據(jù)倉庫所存儲的數(shù)據(jù)集合的查詢,所述數(shù)據(jù)倉庫管理器還被配置成識 別所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫,并將所述查詢傳 送給所述特定數(shù)據(jù)倉庫以進行評估,其中所述識別操作依賴于所述數(shù)據(jù)倉庫狀態(tài)信息。
29.根據(jù)權(quán)利要求觀所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合,與所述給定數(shù)據(jù)集合相關(guān) 聯(lián)的所述數(shù)據(jù)倉庫狀態(tài)信息包括對被配置成存儲所述給定數(shù)據(jù)集合的所述多個數(shù)據(jù)倉庫 中的一個或更多個進行標識的信息。
30.根據(jù)權(quán)利要求觀所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合,與所述給定數(shù)據(jù)集合相關(guān) 聯(lián)的所述數(shù)據(jù)倉庫狀態(tài)信息包括針對修改所述給定數(shù)據(jù)集合的內(nèi)容的操作而標識所述給 定數(shù)據(jù)集合的狀態(tài)的信息。
31.根據(jù)權(quán)利要求觀所述的系統(tǒng),其中包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù) 倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的第一數(shù) 據(jù)集合的相應(yīng)副本,并且其中所述數(shù)據(jù)倉庫管理器還被配置成在所述第一數(shù)據(jù)集合的每 個相應(yīng)副本已被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一 子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查詢進行評估。
32.根據(jù)權(quán)利要求28所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被配置成將所述多個數(shù)據(jù)倉庫作為單個數(shù)據(jù)倉庫呈現(xiàn)給所述給定客戶機,其中所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集 合的位置對于所述給定客戶機是透明的。
33.根據(jù)權(quán)利要求32所述的系統(tǒng),其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù) 據(jù)倉庫存儲的并且在所述給定時刻可供所述給定客戶機進行查詢的第一數(shù)據(jù)集合與由所 述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供所述給定客戶機進行 查詢的第二數(shù)據(jù)集合不相似。
全文摘要
一種用于實現(xiàn)數(shù)據(jù)倉儲系統(tǒng)的系統(tǒng)和方法。根據(jù)第一實施例,一種系統(tǒng)可以包括多個數(shù)據(jù)倉庫;和數(shù)據(jù)倉庫管理器,其被配置成從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在所述多個數(shù)據(jù)倉庫中的一個或更多個中。包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的第一數(shù)據(jù)集合的相應(yīng)副本。此外,所述數(shù)據(jù)倉庫管理器還可以被配置成在所述第一數(shù)據(jù)集合的每個相應(yīng)副本被存儲到所述第一子集中的對應(yīng)數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查詢進行評估。
文檔編號G06F17/30GK102142039SQ20111012232
公開日2011年8月3日 申請日期2005年12月14日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者保羅·J·博得, 克里斯托弗·R·貝爾, 馬克·E·鄧拉普 申請人:亞馬遜科技公司