專利名稱:用于進行數(shù)據(jù)倉儲的設備和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機系統(tǒng),更具體地說,涉及數(shù)據(jù)倉儲系統(tǒng)的實現(xiàn)。
背景技術(shù):
隨著企業(yè)內(nèi)的商業(yè)機能數(shù)量的增加,企業(yè)所產(chǎn)生的數(shù)據(jù)量也相應 地增加了。這種數(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ù)據(jù)倉儲系統(tǒng)利用被配置成提供所需分析性能的高端計算 機系統(tǒng)來支持對非常大量的數(shù)據(jù)的存儲和查詢。然而,非常適合于特 定數(shù)據(jù)倉儲應用的高端系統(tǒng)的采購和維護費用可能是高昂的,并且可 能無法隨著企業(yè)的數(shù)據(jù)倉儲需求的增長而擴縮。如果例如由于昂貴而 只提供單個數(shù)據(jù)倉儲系統(tǒng),那么在該單個倉庫發(fā)生故障時會損害數(shù)據(jù) 可用性。另一方面,如果提供多個數(shù)據(jù)倉儲系統(tǒng),那么分析應用會喪 失采用單個、經(jīng)匯集的數(shù)據(jù)源的簡單性。例如,可能需要將分析應用 配置成對多個數(shù)據(jù)倉庫內(nèi)的期望數(shù)據(jù)的位置進行跟蹤。
發(fā)明內(nèi)容
公開了用于實現(xiàn)數(shù)據(jù)倉儲系統(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ù)集合的每個相應副 本被存儲到對應的一個另外數(shù)據(jù)倉庫之前允許由所述多個數(shù)據(jù)倉庫中 的一個數(shù)據(jù)倉庫對依賴于所述數(shù)據(jù)集合的查詢進行評估。類似地,所 述數(shù)據(jù)倉庫管理器還可以被配置成在已將所述數(shù)據(jù)集合的修改復制到 對應的另外數(shù)據(jù)倉庫之前允許由所述多個數(shù)據(jù)倉庫中的 一個數(shù)據(jù)倉庫 對依賴于所述數(shù)據(jù)集合的查詢進行評估。
還構(gòu)思了 一種方法,根據(jù)一個實施例,該方法可以包括以下步驟 從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在一個或更多個數(shù)據(jù)倉庫 中;將第 一數(shù)據(jù)集合的相應副本存儲在包括兩個或更多個數(shù)據(jù)倉庫的 第一子集中的每個數(shù)據(jù)倉庫中;以及在所述第一數(shù)據(jù)集合的每個相應 副本被存儲到所述第 一子集中的對應數(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ù)倉庫管理器還可以被配置成響應于接收到來自所 述客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù)據(jù)倉庫所存 儲的數(shù)據(jù)集合的查詢的接收,對所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾?詢進行評估的一個特定數(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ù)集合的位置對于所述客戶機來說可以是透明 的。響應于對來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫中的 一個或 更多個數(shù)據(jù)倉庫所存儲的數(shù)據(jù)集合的查詢的接收,該方法還可以包括
以下步驟對所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估的一個
評估。在給定時刻,、由第一數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供 所述客戶機進行查詢的第 一數(shù)據(jù)集合可能與由笫二數(shù)據(jù)倉庫存儲的并 且在所述給定時刻可供所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
圖l是例示了數(shù)據(jù)倉儲系統(tǒng)的一個實施例的框圖。 圖2是例示了跨越多個數(shù)據(jù)倉庫的數(shù)據(jù)集合復制處理的一個實施 例的框圖。
圖3是例示了利用粗同步將所提取的數(shù)據(jù)存儲在數(shù)據(jù)倉庫中的方 法的一個實施例的流程圖。
圖4是例示了利用粗同步對由數(shù)據(jù)倉庫存儲的數(shù)據(jù)進行查詢的方 法的一個實施例的流程圖。
圖5A是例示了在粗同步下在數(shù)據(jù)集合更新與查詢之間的關(guān)系的 一個實施例的時序圖。
圖5B到5D是例示了利用粗同步而復制的數(shù)據(jù)集合的一個示例 性實施例的框圖。
圖6是例示了將數(shù)據(jù)倉庫可視化給客戶的方法的 一個實施例的流程圖。
圖7是例示了數(shù)據(jù)倉庫計算集群的一個實施例的框圖。 圖8是例示了計算機系統(tǒng)的示例性實施例的框圖。 盡管本發(fā)明容許各種修改和另選形式,但是在附圖中以示例的方 式示出了其特定實施例,在此將對這些具體實施例進行詳細描述。然 而,應當理解,附圖及其詳細描述并不旨在將本發(fā)明局限于所公開的具體形式,而是相反,旨在覆蓋落在如所附權(quán)利要求所限定的本發(fā)明 的精神和范圍內(nèi)的所有變型例、等同物以及另選例。
具體實施方式
數(shù)據(jù)倉儲系統(tǒng)的概述
在某些復雜的企業(yè)計算環(huán)境中,各種數(shù)據(jù)源可能分布在整個企業(yè) 內(nèi)。例如,企業(yè)可能對于不同的商業(yè)機能(如會計、財務、電子商務、 人力資源、采購、制造、分發(fā)等)實現(xiàn)多個獨立的計算機系統(tǒng)和/或應 用。此外,這種系統(tǒng)和/或應用可能在地理上是分散的和重復的,例如 在各分發(fā)地點處提供有分發(fā)管理系統(tǒng)。在某些這種企業(yè)中,數(shù)據(jù)庫或 其他數(shù)據(jù)存儲體以及分析工具和其他應用可能對于一地點或機能來說 是專用的,并且可以外部地與其他機能或地點的系統(tǒng)相交互。
為特定商業(yè)機能或地點只提供其執(zhí)行其大部分任務所需要的數(shù) 據(jù)和資源可以避免在企業(yè)內(nèi)對過度或冗余資源進行分配。然而,在某 些情況下,可能需要對來自整個企業(yè)的數(shù)據(jù)作為整體進行分析。例如, 對企業(yè)范圍的財務或生產(chǎn)趨勢的分析可能依賴于在多個不同地點處或 跨越不同部門所產(chǎn)生和保持的數(shù)據(jù)。在某些情況下,可以將數(shù)據(jù)分析 工具配置成對跨越多個商業(yè)機能的復雜相互關(guān)系進行檢測,這種相互 關(guān)系不能直接通過對孤立的單個機能的分析辨別出。例如,在員工經(jīng) 驗與培訓(由人力資源來跟蹤)、分發(fā)生產(chǎn)率與財務業(yè)績(例如,由 于分發(fā)錯誤而導致的產(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ù)庫 或其他應用。通常,存儲在數(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。圖l所例示 的數(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服務接口 150與數(shù)據(jù)倉庫管理器110相交互。 在某些實施例中,可以將數(shù)據(jù)倉庫管理器IIO配置成經(jīng)由web服務接 口 (未示出)與某些數(shù)據(jù)源160相交互。
在某些實施例中,數(shù)據(jù)倉庫120a到120d可以包括相應的關(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ù)庫提交如下查詢,該查詢 指定對于自特定日期和/或時間起具有未運送定單的所有客戶標識符 的選擇。作為響應,該數(shù)據(jù)庫可以對其內(nèi)容進行檢查并返回那些滿足 該查詢的約束條件的數(shù)據(jù)記錄。需要指出的是,在某些實施例中,不同的數(shù)據(jù)倉庫120可以位于不同的物理位置或地點處,這與如下所述 的數(shù)據(jù)集合復制結(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)信息,并將第三列定義成存儲定單費用。那么該表的各行可以對應 于特定定單記錄,因而,存儲在一行的第一列中的任何數(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"存儲為"〈custjd〉smitlK/custjd〉,,,其中元數(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導出的數(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ù)項進行擴縮或四舍五入,或 者可以施加任何其他合適的變換。在某些實施例中,也可以將管理器 IIO稱為提取、變換和加栽(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可以包括被配置成例如通過在客戶應用編程接口 (API) 中定義的過程調(diào)用而與管理器IIO進行交互的客戶軟件應用。以下結(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ù)工作。可以采用任何合
適類型的故障轉(zhuǎn)移機制來降低數(shù)據(jù)倉庫系統(tǒng)IOO對管理器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)的成本或復雜度。例如,這種分離可以使得便于 利用商品計算機系統(tǒng)和/或數(shù)據(jù)庫軟件來實現(xiàn)管理器110和操作數(shù)據(jù)庫 130的控制功能。這種分離還可以使得便于通過能夠與數(shù)據(jù)倉庫硬件 分離地對控制硬件進行升級,來擴縮數(shù)據(jù)倉庫系統(tǒng)100。在某些實施 例中,這種分離還可以增強數(shù)據(jù)倉庫系統(tǒng)100的整體可用性并縮短故 障恢復時間。例如,如果一個數(shù)據(jù)倉庫120萬一發(fā)生故障,那么在對 該故障倉庫進行恢復的同時,操作數(shù)據(jù)庫130和管理器110可以繼續(xù) 加載其他數(shù)據(jù)倉庫120。類似的是,如果操作數(shù)據(jù)庫130萬一發(fā)生故 障,則可能無需對任何數(shù)據(jù)倉庫120進行恢復,由此縮短了總體故障 恢復時間。
客戶機140通??梢园ū慌渲贸稍L問數(shù)據(jù)倉庫系統(tǒng)100的任何 軟件應用或其他實體。例如,在一個實施例中,客戶機140可以包括 被配置成(例如通過查詢來)檢索數(shù)據(jù)的應用。這種應用可能包括數(shù) 據(jù)分析應用、決策支持系統(tǒng)、數(shù)據(jù)查看應用或任何其他合適的應用。 客戶機140還可以包括可以對數(shù)據(jù)倉庫系統(tǒng)100的操作進行配置的管 理應用或?qū)嵱贸绦?。例如,?shù)據(jù)分析員或管理員可以確定應當由數(shù)據(jù) 倉庫系統(tǒng)100對來自多個數(shù)據(jù)源160的特定集合的數(shù)據(jù)項的組合進行 匯集以供將來分析。該分析員或管理員可以使用客戶機140來指示管 理器110例如一次性地或重復地從數(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)IOO相 交互。例如,可以通過客戶機-服務器系統(tǒng)(未示出)來實現(xiàn)客戶機 140,在該客戶機-服務器系統(tǒng)中,將服務器系統(tǒng)配置成對客戶機140與數(shù)據(jù)倉庫系統(tǒng)IOO之間的通信進行傳遞。
除了利用由管理器110提供的API直接進行通信以外,在某些實 施例中,可以將一些或所有客戶機140配置成經(jīng)由web服務接口 150 與管理器110進行通信。 一般來講,可以將web服務接口配置成提供 標準的、跨平臺API,以用于在請求執(zhí)行某些服務的客戶機與服務提 供方之間的通信。在某些實施例中,可以將web服務接口 150配置成 支持對包括有描述服務請求的信息的文檔進行交換并對該請求進行響 應??梢岳脴藴驶痺eb協(xié)議(如超文本傳輸協(xié)議(HTTP))來交 換這種文檔,并且可以按照與平臺無關(guān)的數(shù)據(jù)格式(如XML)對該文 檔進行格式化。通過采用該web服務模型,并且^^用標準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ù)庫以外的應用,如被配置成以文檔形式或以另 一形式來存儲數(shù)據(jù)的客戶或私有應用。在這種實施例中,可以將管理 器110配置成利用必要的協(xié)議(例如,由數(shù)據(jù)源的API定義的特定格 式的過程調(diào)用)與數(shù)據(jù)源160相通信以獲取數(shù)據(jù)。數(shù)據(jù)源160還可以 包括文檔的儲存庫,諸如對如下內(nèi)容的匯集或歸檔交易日志、電郵 通信、文字處理器/辦公應用文檔、圖像或多媒體文件、網(wǎng)頁文檔、XML 文檔、對電子商務站點的操作的量度,或者任何其他合適類型的文檔 或數(shù)據(jù)。例如,在一個實施例中,數(shù)據(jù)源160可以包括網(wǎng)絡附接的大 容量介質(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進行分析以導出對該數(shù)據(jù)內(nèi)容的恰 當?shù)牧慷然虮硎荆蛘弑慌渲贸烧{(diào)用另一應用來執(zhí)行這種分析。 數(shù)據(jù)倉庫復制、粗同歩以及虛擬化
在某些情況下,由數(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來恢復這些經(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的應 用(如分析應用)的主要輸出,因此無法簡單地通過從數(shù)據(jù)源160再 加栽該數(shù)據(jù)就可以恢復的。
為了減小數(shù)據(jù)損失和隨之產(chǎn)生的中斷的可能性,在一個實施例 中,可以將數(shù)據(jù)倉庫120的子集配置成對特定數(shù)據(jù)集合進行復制。即, 可以將兩個或更多個數(shù)據(jù)倉庫120配置成存儲一數(shù)據(jù)集合(如表或多 個記錄的集合)的相應副本。圖2例示了例示出這種復制處理的一個 實施例。在所例示的實施例中,將數(shù)據(jù)倉庫120a和120b均配置成存儲包含有客戶定單數(shù)據(jù)和客戶運貨數(shù)據(jù)的表的副本。應當指出的是,
在某些實施例中,可以由任意數(shù)量(從兩個直到數(shù)據(jù)倉庫系統(tǒng)100內(nèi) 的數(shù)據(jù)倉庫120的數(shù)量)個數(shù)據(jù)倉庫120來復制特定數(shù)據(jù)集合。另一 方面,在某些實施例中,可以根本不復制某些數(shù)據(jù)集合,或者可以將 某些數(shù)據(jù)集合復制在其他數(shù)據(jù)倉庫上。在所例示的實施例中,數(shù)據(jù)倉 庫120a和120b均包括未由其它數(shù)據(jù)倉庫復制的表(分別是財務報告 數(shù)據(jù)和會話跟蹤數(shù)據(jù))。應當指出的是,在某些實施例中,可以由數(shù) 據(jù)倉庫120利用不同的數(shù)據(jù)庫方案(例如,利用不同的數(shù)據(jù)字段定義 和/或結(jié)構(gòu))來存儲不同的數(shù)據(jù)集合。
在某些實施例中,由數(shù)據(jù)倉庫120存儲的數(shù)據(jù)集合可以對于許多 不同類型的企業(yè)是共有的。例如,在磚和漿企業(yè)與提供虛擬客戶界面 (例如,基于web的電子商務界面或電子商務界面)的企業(yè)內(nèi),客戶 定單和貨運數(shù)據(jù)可能是共同可用的數(shù)據(jù)集合。然而,在某些實施例中, 可以將支持電子商務界面的企業(yè)配置成甚至在發(fā)生銷售之前就收集并 存儲大量關(guān)于客戶與企業(yè)的交互的信息。在一個實施例中,可以將圖 2所例示的會話跟蹤數(shù)據(jù)集合配置成存儲關(guān)于客戶與電子商務界面的 交互的任何方面的數(shù)據(jù)。例如,可以將該會話跟蹤數(shù)據(jù)集合配置成存 儲表示客戶在訪問企業(yè)的網(wǎng)點期間所查看的特定項目的數(shù)據(jù)(例如, 會話)、以及該查看的持續(xù)時間、客戶在會話過程中導航的鏈接、客 戶所執(zhí)行的任何搜索,等等??梢詫⒎治鰬门渲贸蓪@些和其他類 型的跟蹤數(shù)據(jù)進行分析以分辨出客戶偏好、預測客戶定購各種貨品的 可能性、對呈現(xiàn)給客戶的電子商務界面進行定制,等等。
然而,需要指出的是,可以將數(shù)據(jù)倉儲和下述各種技術(shù)同樣地應 用于沒有基本電子商務組件的企業(yè)。例如,某些企業(yè)可能具有跨越許 多機能和地理分部的高度復雜的內(nèi)部處理,并且即使除了外部客戶的 活動之外也會在內(nèi)部產(chǎn)生可用于進行倉儲的巨大數(shù)據(jù)量。此外,在某 些實施例中,企業(yè)可能是足夠復雜的,它可能針對企業(yè)內(nèi)部的活動和 事務采用與上述面向電子商務的活動類似的信息收集策略。例如,企 業(yè)內(nèi)的不同的商業(yè)單位可能如類似于外部客戶的客戶那樣與其他商業(yè)單位進行交互,并且可能按類似的方式產(chǎn)生客戶數(shù)據(jù)。
在某些實施例中,可以將多個數(shù)據(jù)倉庫120的子集配置成以不同 的復制程度來存儲不同類型的數(shù)據(jù)。例如,在圖2的實施例中,如所 示出的那樣,可以將數(shù)據(jù)倉庫120a和120b配置成按復制方式來存儲 客戶定單和運貨數(shù)據(jù)。在類似的實施例中,可以將數(shù)據(jù)倉庫120c和 120d配置成按復制方式來存儲歷史會話跟蹤數(shù)據(jù)(例如,前15個月 的跟蹤數(shù)據(jù)的價值)(未示出)。在數(shù)據(jù)倉庫120的這種配置中,倉 庫120a和120b可以形成特別適合于進行涉及客戶定單和運貨數(shù)據(jù)的 分析的在功能上集群或分組的倉庫集合,而倉庫120c和120d可以形 成類似的特別適合于進行涉及會話跟蹤數(shù)據(jù)的分析的在功能上集群的 倉庫集合。在各情況下,可以對相對關(guān)鍵的數(shù)據(jù)進行復制,以幫助進 行保護以防數(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存儲的 集合),可以不復制由數(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的基礎的硬 件系統(tǒng)提供更多或更少的計算資源。然而,在其他實施例中,可以按 更均一的方式將數(shù)據(jù)集合分布在多個數(shù)據(jù)倉庫120中。例如,在一個 實施例中,每個數(shù)據(jù)倉庫120都可以包括大致相同的計算資源集合, 并且可以按不同復制程度將數(shù)據(jù)集合分布在大致等價的多個數(shù)據(jù)倉庫 120中。雖然在這種實施例中可以針對數(shù)據(jù)存儲和檢索活動對硬件資源進行次優(yōu)地調(diào)節(jié),但是例如通過根據(jù)處理增長的數(shù)據(jù)分析需求的需
要而添加附加的、類似配置的數(shù)據(jù)倉庫120,可以更容易地對相對均 勻的數(shù)據(jù)倉庫120進行擴縮。
如上所提及的,通過減小給定數(shù)據(jù)倉庫120的故障將導致數(shù)據(jù)損 失的可能性,跨越多個數(shù)據(jù)倉庫120進行數(shù)據(jù)集合的復制可以提高數(shù) 據(jù)的總體可靠性。通過增加例如可以響應于查詢而向客戶機提供經(jīng)復 制的數(shù)據(jù)集合的數(shù)據(jù)倉庫120的數(shù)量,這種復制還可以增加數(shù)據(jù)集合 的可用性。在圖1所例示的數(shù)據(jù)倉庫系統(tǒng)100的實施例中,可以將管 理器110配置成對將數(shù)據(jù)存儲到數(shù)據(jù)倉庫120的操作(包括在多個倉 庫120中對數(shù)據(jù)集合的任何復制)進行協(xié)調(diào)。由此,在所例示的實施 例中,是否復制了 一給定數(shù)據(jù)集合對于一特定數(shù)據(jù)倉庫120來說可能 是透明的。然而,在某些實施例中作出如下構(gòu)思在此被描述成管理 器110的功能的跨越多個數(shù)據(jù)倉庫120對數(shù)據(jù)集合的管理和復制可以 被協(xié)作地分布在多個數(shù)據(jù)倉庫120之中,或者由被配置成既用作數(shù)據(jù) 倉庫又用作管理器的特定數(shù)據(jù)倉庫120來實現(xiàn)。
在某些情況下由數(shù)據(jù)倉庫120存儲的各個數(shù)據(jù)集合可能相當大, 例如在幾百百兆字節(jié)(MB)或幾百千兆字節(jié)(GB)的量級上。此外, 即使由管理器110例如響應于從數(shù)據(jù)源160對新的可操作數(shù)據(jù)的定期 提取而對給定數(shù)據(jù)集合進行的部分更新也可能包括相當大量的待傳送 給一給定數(shù)據(jù)倉庫120的數(shù)據(jù)。如果跨越幾個數(shù)據(jù)倉庫120對數(shù)據(jù)集 合進行復制,最終會將包括該數(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ù)存儲處理也可能不是同時完成的。諸如不同的計算負荷(如,對 查詢的服務)以及基本資源配置之類的因素可能使得一個數(shù)據(jù)倉庫 120比另一個更快地完成存儲操作。因此,在這兩個數(shù)據(jù)倉庫120a和 120b上完成存儲操作之前的任何給定時刻,在數(shù)據(jù)倉庫120a和120b 上正在被存儲的數(shù)據(jù)集合的狀態(tài)可能不同。在此狀態(tài)下,也可以將該數(shù)據(jù)集合稱為不具同步性或不同步。對于試圖檢索數(shù)據(jù)的客戶機140來說,不同步數(shù)據(jù)可能會帶來問 題。例如,如果在管理器IIO接收到以給定的經(jīng)復制的數(shù)據(jù)集合為目 標的查詢時該給定數(shù)據(jù)集合在數(shù)據(jù)倉庫120a和120b上處于兩個不同 的狀態(tài),那么根據(jù)該給定數(shù)據(jù)集合在該查詢被指示以進行評估的特定 數(shù)據(jù)倉庫120中的狀態(tài),該查詢可能返回兩個不同的結(jié)果,這種不一 致可能會導致不一致的客戶機操作,尤其是如果在多個數(shù)據(jù)倉庫120 (或者更廣泛地說,數(shù)據(jù)倉庫系統(tǒng)100的總體結(jié)構(gòu))中對數(shù)據(jù)集合的 復制對于客戶機140來說是透明的話。一個防止由于對不同步數(shù)據(jù)的不受控制的訪問而產(chǎn)生的不一致的客戶機行為的方法可能包括當被復制的數(shù)據(jù)集合在多個數(shù)據(jù)倉庫 120之中是不同步的時,管理器IIO防止對該數(shù)據(jù)集合進行任何訪問。 例如,在一個實施例中,可以將管理器110配置成將對被復制數(shù)據(jù)集 合的更新實現(xiàn)為原子操作或事務操作。 一般來講,相對于其他操作來 說,將涉及跨多個實體的同步的原子操作或事務操作視為不可分的; 即,在允許進行以所涉及的實體為目標的另一操作之前,這種原子操 作或事務操作要么對于這些實體中的所有實體來說都完成了,要么對 于這些實體中的沒有一個實體來說完成了。由此,在一個實施例中, 管理器110可能不允許在完成了存儲在所有有關(guān)數(shù)據(jù)倉庫120上的所 有數(shù)據(jù)集合副本之前對正在被存儲或修改的被復制數(shù)據(jù)集合進行訪問 的嘗試,從而確保了客戶機在嘗試訪問被復制的數(shù)據(jù)集合時不會接收 到不一致的結(jié)果。然而,跨所有數(shù)據(jù)集合副本執(zhí)行原子或事務同步可能會顯著降低 數(shù)據(jù)倉庫系統(tǒng)100的性能。例如,在一給定的被復制數(shù)據(jù)集合4艮大的 情況下,在可以訪問該數(shù)據(jù)集合之前等待對所有數(shù)據(jù)集合副本的更新 都完成的過程中,可能出現(xiàn)顯著的等待時間。因此,在一個實施例中, 可以將管理器110配置成對跨多個數(shù)據(jù)倉庫120而復制的數(shù)據(jù)集合進 行粗同步。在一個實施例中,對數(shù)據(jù)集合的粗同步可以包括使對特 定數(shù)據(jù)倉庫120內(nèi)的被復制數(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的被復制客戶定單數(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ù)進行請求的查詢。同時,管理器IIO可能處于從許多客 戶履行地點(其中每一個都可以包括數(shù)據(jù)源160)提取前一天的客戶 運貨數(shù)據(jù)的過程中??梢詫⒐芾砥?10配置成利用任何適當?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進行的更新。即,盡管數(shù)據(jù)倉 庫120b內(nèi)的客戶貨運數(shù)據(jù)并不完全與數(shù)據(jù)倉庫120a內(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的實施例中,可以將管理器IIO 配置成利用操作數(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ù)表的每個拷貝相對應的相應記錄。對于圖2 所示的實施例,操作數(shù)據(jù)庫130可以存儲兩個這種記錄,其中每一個 都將相應的數(shù)據(jù)倉庫120a到120b標識為存儲有客戶貨運數(shù)據(jù)表的相 應副本。此外,每個記錄都可以包括表明該表在對應的數(shù)據(jù)倉庫120a 和120b內(nèi)的狀態(tài)的字段。參考在上一段中給出的示例,在管理器IIO 正在對數(shù)據(jù)倉庫120a內(nèi)的客戶貨運數(shù)據(jù)表的更新進行協(xié)調(diào)的同時,操 作數(shù)據(jù)庫130內(nèi)的對應記錄可以表明該副本正在被更新、不可用或者 其他合適的狀態(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)的復雜字段的范 圍。例如,在某些實施例中,與數(shù)據(jù)集合相對應的狀態(tài)信息可以表明 更新該數(shù)據(jù)集合的最后一次、用以執(zhí)行該更新的數(shù)據(jù)源160、該更新 的原因(例如,由于調(diào)度操作或手動操作),或者任何其他合適的狀態(tài)信息。在某些實施例中,(例如,在將管理器110配置成支持對數(shù) 據(jù)倉庫120的多個并發(fā)讀或?qū)懖僮鞯膶嵤├?可以將管理器110配 置成利用事務操作來讀取和/或修改操作數(shù)據(jù)庫130以確保操作狀態(tài)的 同步。在一個實施例中,管理器IIO可以利用由操作數(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配置成重復地(例 如每小時、每晚、每周)從一個或更多個數(shù)據(jù)源160 (如分布在整個 企業(yè)中的客戶履行地點)中提取諸如客戶貨運數(shù)據(jù)的數(shù)據(jù)集合。作為 另 一種選擇,用戶或應用可以經(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中的重復塊例示了這種并行性,可以對若干不同數(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的一子集復制 了所提取出的數(shù)據(jù)集合,那么管理器IIO可以隨機地選擇特定數(shù)據(jù)倉 庫120來開始進行更新。作為另一種選擇,管理器110可以選擇所述 子集中的最不繁忙的數(shù)據(jù)倉庫120,或者可以利用某些其他選擇準則。 在操作數(shù)據(jù)庫130對未處理數(shù)據(jù)集合讀操作進行跟蹤的某些實施例 中,如果當前正在讀取該數(shù)據(jù)集合(例如,通過查詢),那么可以不 選擇一數(shù)據(jù)倉庫120來進行數(shù)據(jù)集合更新。 一旦選擇了數(shù)據(jù)倉庫120, 在一個實施例中,管理器IIO可以對在操作數(shù)據(jù)庫130中存儲的與該 數(shù)據(jù)集合和所選擇的數(shù)據(jù)倉庫120相關(guān)聯(lián)的記錄中的狀態(tài)信息進行更 新,以表明在所選擇的數(shù)據(jù)倉庫中正在對該數(shù)據(jù)集合進行修改。如以 上指出的,在某些實施例中,管理器IIO可以利用事務操作來與操作 數(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ù)集合存儲到其對應的數(shù)據(jù)倉庫120中時不必對該數(shù)據(jù)集合進行緩沖。 在一個另選實施例中,管理器IIO在開始從數(shù)據(jù)源160進行數(shù)據(jù)提取 之前可以選擇數(shù)據(jù)倉庫120來進行更新。管理器110接著可以將所提 取的數(shù)據(jù)(施加適當?shù)淖儞Q)流式傳輸或者使得該數(shù)據(jù)被流式傳輸?shù)?所選擇的數(shù)據(jù)倉庫120,并且可以隨后使用更新后的數(shù)據(jù)倉庫120作 為用于對其他數(shù)據(jù)倉庫120進行更新的數(shù)據(jù)源。進一步作出如下構(gòu)思 在某些實施例中,可以同時(而不是順序地)對多個數(shù)據(jù)倉庫120進 行更新。例如,如果在3個數(shù)據(jù)倉庫120中復制有某個給定的數(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ù)進 行查詢的方法的一個實施例。共同地參照圖l到圖4,操作始于塊400, 在該塊中,接收到依賴于由多個數(shù)據(jù)倉庫120存儲的一個或更多個數(shù) 據(jù)集合的查詢操作。例如,在一個實施例中,可以將管理器110配置 成從客戶機140接收這種查詢,而不是直接或經(jīng)由web服務接口 150 來接收。隨后,管理器IIO對所接收到的查詢進行分析以確定該查詢的數(shù) 據(jù)集合依賴性(塊402)。在一個實施例中,對數(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的能力或資源(如其對某些 類型的查詢語言進行評估的能力或其可用于處理復雜查詢的計算資 源)有關(guān)的信息。在某些實施例中,可以將一個或更多個數(shù)據(jù)倉庫120配置成例如 通過對可以由給定數(shù)據(jù)倉庫120同時評估的查詢的數(shù)量進行限制來對 查詢評估資源進行管理。例如,可以將數(shù)據(jù)倉庫120配置成為查詢 的執(zhí)行提供一定數(shù)量的"作業(yè)時間片",并且可以在所有時間片都被占 用的情況下不可接受其他查詢。在某些實施例中,無論一給定查詢的 復雜度如何,該查詢都可以對應于一個可用作業(yè)時間片。在其他實施 例中,更復雜的查詢可以占用多個作業(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)腙?,直到諸如可以識別出足夠的數(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復制有該數(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)容。即,該查詢可能要求對在時刻Tl時開始的數(shù)據(jù)集 合更新中反映的數(shù)據(jù)進行正確的評估。在所例示的實施例中,該更新 在時刻T3時在數(shù)據(jù)倉庫120a處完成,而在時刻T4時在數(shù)據(jù)倉庫120b 處完成。相對應的,可以在時刻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)復制的數(shù)據(jù)集合更新到某些或所有對應 的數(shù)據(jù)倉庫120之后,任何更新后的數(shù)據(jù)倉庫120都可能能夠滿足對 經(jīng)復制的數(shù)據(jù)集合的查詢。
而且,需要指出的是,在采用用于鎖定數(shù)據(jù)集合的某些部分的細 粒度機制的某些實施例中,如上所述,容納有正在被更新的數(shù)據(jù)集合 的一給定數(shù)據(jù)倉庫120可能在該更新完成之前可用于對針對該數(shù)據(jù)集 合的查詢進行評估。例如,在某些實施例中,可以將管理器110和操 作數(shù)據(jù)庫130配置成跟蹤數(shù)據(jù)集合的多個部分的狀態(tài)(例如,表的各 行或多行的集合)。盡管針對給定數(shù)據(jù)倉庫120正在更新特定數(shù)據(jù)集合的一個部分,但是管理器IIO可以確定一給定查詢依賴于該特定數(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)地例示了利用粗同步 所復制的數(shù)據(jù)集合的一個實施例的具體示例。在圖5B到5D所示的實 施例中,將客戶定單數(shù)據(jù)集合配置成由數(shù)據(jù)倉庫120a和120b來復制。 圖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可以在 任意程度上自由地復制數(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ù)集合配置成復制同一數(shù)據(jù),但是可以在某個給定時刻由于如上所述 的粗同步的操作而不相似。在某些實施例中,在這些場景中的任一場 景下的多個數(shù)據(jù)集合都可供客戶機140查詢,并且可以將管理器110 配置成對如何按對于客戶機140透明的方式在數(shù)據(jù)倉庫系統(tǒng)100內(nèi)安 排和操縱這種數(shù)據(jù)集合的詳情進行管理。
對于客戶機140來說,可以與是否復制存儲在數(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ù)集合是否被復制等進行標識的其他信息 一起存儲在操作數(shù)據(jù)庫 130。
隨后,管理器IIO接收到以存儲在數(shù)據(jù)倉庫系統(tǒng)100內(nèi)的特定數(shù) 據(jù)集合為目標的查詢(塊602)。作為響應,管理器110對能夠評估 所接收到的查詢的特定數(shù)據(jù)倉庫120進行識別(塊604)。例如,可 以將管理器110配置成對該查詢進行分析以檢測如上所述的數(shù)據(jù)集合 和狀態(tài)依賴性,并查閱操作數(shù)據(jù)庫130以識別出可以評估該查詢的一個數(shù)據(jù)倉庫120 (或者一個以上,如果復制了該數(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透 明的。還要指出的是,在某些情況下,管理器IIO可以在不能立即識 別出用于進行評估的合適數(shù)據(jù)倉庫120的情況下將該查詢?nèi)腙?。此外?在某些情況下,例如如果一查詢有形式錯誤或者對數(shù)據(jù)倉庫120的等 待超時了 ,管理器110可以將錯誤情況返回給進行請求的客戶機140。
數(shù)據(jù)倉庫計算基礎設施
每個數(shù)據(jù)倉庫120都可以包括計算硬件以及被配置成實現(xiàn)數(shù)據(jù)倉 儲功能的操作系統(tǒng)軟件和數(shù)據(jù)倉儲軟件(例如數(shù)據(jù)庫軟件)的相應集 合。在某些實施例中,所使用的計算硬件可以包括專用、高端多處理 器計算機系統(tǒng),可以細致地將該計算機系統(tǒng)與專用于特定安裝的定制 的操作系統(tǒng)和數(shù)據(jù)倉儲軟件集成起來。然而,對于購買、管理以及維 護來說這種配置可能是昂貴的。因此,在某些實施例中,任意或所有 數(shù)據(jù)倉庫120均可以包括由運行廣泛發(fā)布的或開放源碼的操作系統(tǒng)和/ 或數(shù)據(jù)倉儲軟件的多個較不昂貴(例如商用)計算機系統(tǒng)所組裝成的 相應計算集群。
圖7例示了可以實現(xiàn)數(shù)據(jù)倉庫120的計算集群的一個實施例。在 所例示的實施例中,數(shù)據(jù)倉庫集群700 (或簡稱為集群700)包括多個 計算節(jié)點710 (或簡稱為節(jié)點710)。每個節(jié)點710都耦合到多個交換 機720中的每一個,并且每個交換機720都耦合到相應的多個存儲器 陣列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可以包括由包括Sun Microsystems、 Hewlett-Packard, IBM、戴爾或任何合適的系統(tǒng)制造商在內(nèi)的多個廠商中的任何廠商提 供的通用服務器、個人計算機或工作站系統(tǒng)。此外,可以將節(jié)點710 配置成執(zhí)行一個或更多個合適的操作系統(tǒng),如與Linux、 Microsoft Windows、 Solaris、 HP-UX、 AIX或任何其他合適的通用或?qū)S貌僮?系統(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)絡來將集群700的多個設 備互連。例如,在一個實施例中,作為互連技術(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可以包括其他類型的存儲裝置,如光學 介質(zhì)或磁帶。此外,作出如下構(gòu)思在某些實施例中,可以對各存儲 器陣列730進行相同的配置,而在其他實施例中,存儲器陣列730在 它們的配置和/或特征集合方面可以是不同種類的。
在某些實施例中,可以容易地對集群700進行擴縮以使其與給定 數(shù)據(jù)倉庫120的預期工作負荷相匹配。例如,如果數(shù)據(jù)倉庫120預期 要容納接收不頻繁或相對簡單的查詢的大量數(shù)據(jù),那么可以將存儲器 陣列730配備成存儲所預期量的數(shù)據(jù)(包括如上所述的任何期望的數(shù) 據(jù)集合復制),同時可以基于所預期的工作負荷獨立地配備節(jié)點710。 如果查詢工作負荷或存儲要求萬一增加了,那么隨后可以添加附加的 節(jié)點710、交換機720和/或存儲器陣列730。
作出如下構(gòu)思在某些實施例中,可以將上述任何方法或技術(shù)(例 如,管理器IIO或數(shù)據(jù)倉庫120的功能,或圖3、 4以及6所例示的方 法)實現(xiàn)為能夠經(jīng)由計算機可訪問的介質(zhì)來存儲或傳送的程序指令和 數(shù)據(jù)??梢詧?zhí)行這種程序指令以執(zhí)行特定計算功能,如數(shù)據(jù)倉儲和虛 擬化、存儲管理、查詢和數(shù)據(jù)集合分析、查詢評估、操作系統(tǒ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)絡接口 840 和SAN接口 850。需要指出的是,在某些實施例中,可以將計算機系統(tǒng)800的實例 配置成與集群700分開,并將該實例配置成執(zhí)行數(shù)據(jù)倉庫系統(tǒng)100內(nèi) 的其他應用或功能。例如,在一個實施例中,可以將計算機系統(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或MIPS ISA或任何其他合適的ISA)的通用或嵌入式處理器。在多處理器系 統(tǒng)中,每個處理器810都可以共同地但非必要地實現(xiàn)同一 ISA,
可以將系統(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/0接口 830配置成對處理器810、系 統(tǒng)存儲器820以及設備內(nèi)的任何外圍設備(包括網(wǎng)絡接口 840、 SAN 接口 850或其他外圍接口 )之間的I/O業(yè)務量進行協(xié)調(diào)。在某些實施 例中,1/0接口 830可以執(zhí)行任何必需的協(xié)議、定時或其他數(shù)據(jù)變換 以將來自一個組件(例如系統(tǒng)存儲器820)的數(shù)據(jù)信號轉(zhuǎn)換成適合于 由另一組件(例如處理器810)使用的格式。在某些實施例中,1/0接口 830可以包括對通過各種類型的外圍總線連接的設備的支持,如外 圍組件互連(PCI)總線標準或通用串行總線(USB)標準的變型。 在某些實施例中,可以將I/0接口 830的功能分成2個或更多個分開 的組件,如北橋和南橋。而且,在某些實施例中,可以將I/0接口 830 的某些或所有功能(如到系統(tǒng)存儲器820的接口 )直接并入處理器810 中。
可以將網(wǎng)絡接口 840配置成允許在計算機系統(tǒng)800與連接到網(wǎng)絡 的其他設備之間交換數(shù)據(jù)。例如,可以將管理器110配置成在集群700 的外部的計算機系統(tǒng)800上執(zhí)行,并且被配置成集群700內(nèi)的節(jié)點710 的特定計算機系統(tǒng)800可以經(jīng)由網(wǎng)絡接口 840與位于外部系統(tǒng)上的管 理器110相通信。在各種實施例中,網(wǎng)絡接口 840可以支持經(jīng)由以下 網(wǎng)絡進行通信有線或無線通用數(shù)據(jù)網(wǎng)絡,如任何合適類型的以太網(wǎng); 電信/電話網(wǎng)絡,如模擬話音網(wǎng)絡或數(shù)字光纖通信網(wǎng)絡;存儲器局域網(wǎng), 如光纖通道SAN;或任何其他合適類型的網(wǎng)絡和/或協(xié)議。
在一個實施例中,可以將SAN接口 850配置成允許經(jīng)由交換機 720在計算機系統(tǒng)800與存儲器陣列730之間交換數(shù)據(jù)。在某些實施 例中,如上所述,SAN接口 850可以包括光纖通道接口或另一合適的 接口。然而,作出如下構(gòu)思在某些實施例中,可以通過標準的網(wǎng)絡 接口來實現(xiàn)SAN連接性。在這種實施例中,計算機系統(tǒng)800可以提供 單個網(wǎng)絡接口 (例如網(wǎng)絡接口 840)以與存儲裝置和其他計算機系統(tǒng) 相通信,或者計算機系統(tǒng)800可以將存儲裝置和通用網(wǎng)絡通信均勻地 散布在幾個類似配置的網(wǎng)絡接口上。
在某些實施例中,系統(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-ROM,或經(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)絡和/或無線鏈接的通信介質(zhì)而傳送的諸如電、電磁或數(shù)字的信號, 使得可以經(jīng)由網(wǎng)絡接口 840或SAN接口 850來實現(xiàn)。
盡管詳細地描述了以上實施例,但是本領(lǐng)域的技術(shù)人員一旦全面 理解了以上公開內(nèi)容就將明了許多變型和修改。應當將以下權(quán)利要求 解釋成包括所有這種變型和修改。
權(quán)利要求
1、一種系統(tǒng),該系統(tǒng)包括多個數(shù)據(jù)倉庫;和數(shù)據(jù)倉庫管理器,其被配置成從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在所述多個數(shù)據(jù)倉庫中的一個或更多個中;其中包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的第一數(shù)據(jù)集合的相應副本;并且其中所述數(shù)據(jù)倉庫管理器還被配置成在所述第一數(shù)據(jù)集合的每個相應副本已被存儲到所述第一子集中的對應數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查詢進行評估。
2、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,在所述第一子集中的第 一數(shù)據(jù)倉庫對所述查詢進行評估的同時,所述第一子集中的另一數(shù)據(jù) 倉庫正在存儲所述第一數(shù)據(jù)集合。
3、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述數(shù)據(jù)倉庫管理器還 被配置成在所述第一數(shù)據(jù)集合已被存儲到任何給定數(shù)據(jù)倉庫之后允許 由所述第 一子集中的任何給定數(shù)據(jù)倉庫來評估所述查詢。
4、 根據(jù)權(quán)利要求1所述的系統(tǒng),至少部分同時地將所述第一數(shù) 據(jù)集合存儲到數(shù)據(jù)倉庫的所述第 一子集中的每個數(shù)據(jù)倉庫。
5、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的一 個給定數(shù)據(jù)倉庫被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的第二數(shù)據(jù) 集合,并且其中所述多個數(shù)據(jù)倉庫中的至少另 一數(shù)據(jù)倉庫不存儲所述 第二數(shù)據(jù)集合的任何副本。
6、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的每 一個都包括相應的關(guān)系數(shù)據(jù)庫。
7、 根據(jù)權(quán)利要求1所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被 配置成在操作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對應的標識信息。
8、 根據(jù)權(quán)利要求7所述的系統(tǒng),其中,對于所述第一數(shù)據(jù)集合, 所述標識信息包括數(shù)據(jù)倉庫的所述第一子集中每個數(shù)據(jù)倉庫的相應標 識符,以及表明是否已將所述第一數(shù)據(jù)集合存儲到數(shù)據(jù)倉庫的所述第 一子集中的一個對應數(shù)據(jù)倉庫中的相應狀態(tài)信息。
9、 根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還被 配置成根據(jù)所述相應狀態(tài)信息來確定數(shù)據(jù)倉庫的所述第一子集中的 一個給定數(shù)據(jù)倉庫具有足夠的數(shù)據(jù)來對所述查詢進行評估,并且被配 置成響應性地將所述查詢傳送給所述第一子集中的所述一個給定數(shù)據(jù) 倉庫以進行評估。
10、 根據(jù)權(quán)利要求l所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的至 少兩個位于不同的物理地點。
11、 根據(jù)權(quán)利要求l所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的每 一個都包括相應的計算集群,其中給定的相應計算集群包括經(jīng)由存儲 區(qū)域網(wǎng)耦合到多個存儲裝置的至少 一個計算節(jié)點。
12、 根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述至少一個計算節(jié)點 被配置成實施與一版本的Linux兼容的操作系統(tǒng)。
13、 根據(jù)權(quán)利要求l所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器被配 置成經(jīng)由web服務接口從進行請求的應用接收所述查詢。
14、 一種方法,該方法包括以下步驟從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在多個數(shù)據(jù)倉庫中 的一個或更多個中;將第 一數(shù)據(jù)集合的相應副本存儲在包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫中;以及在所述第 一數(shù)據(jù)集合的每個相應副本被存儲到所述第 一子集中 的對應數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉 庫對依賴于所述第 一數(shù)據(jù)集合的查詢進行評估。
15、 根據(jù)權(quán)利要求14所述的方法,該方法還包括以下步驟在 所述第一子集中的第一數(shù)據(jù)倉庫對所述查詢進行評估的同時,所述第一子集中的另 一數(shù)據(jù)倉庫正在存儲所述第一數(shù)據(jù)集合。
16、 根據(jù)權(quán)利要求14所述的方法,該方法還包括以下步驟在 所述第 一數(shù)據(jù)集合已被存儲到任何給定數(shù)據(jù)倉庫之后,允許由所述第 一子集中的任何給定數(shù)據(jù)倉庫來評估所述查詢。
17、 根據(jù)權(quán)利要求14所述的方法,該方法還包括以下步驟至 少部分同時地將所述第一數(shù)據(jù)集合存儲到數(shù)據(jù)倉庫的所述第一子集中 的每個數(shù)據(jù)倉庫。
18、 根據(jù)權(quán)利要求14所述的方法,其中所述多個數(shù)據(jù)倉庫中的 一個給定數(shù)據(jù)倉庫被配置成存儲由所述數(shù)據(jù)倉庫管理器提取的第二數(shù) 據(jù)集合,并且其中所述多個數(shù)據(jù)倉庫中的至少另 一數(shù)據(jù)倉庫不存儲所 述第二數(shù)據(jù)集合的任何副本。
19、 根據(jù)權(quán)利要求14所述的方法,其中所述多個數(shù)據(jù)倉庫中的 每一個都包括相應的關(guān)系數(shù)據(jù)庫。
20、 根據(jù)權(quán)利要求14所述的方法,該方法還包括以下步驟在 操作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對 應的標識信息。
21、 根據(jù)權(quán)利要求20所述的方法,其中,對于所述第一數(shù)據(jù)集 合,所述標識信息包括數(shù)據(jù)倉庫的所述第一子集中每個數(shù)據(jù)倉庫的相 應標識符,以及表明是否已將所述第一數(shù)據(jù)集合存儲到數(shù)據(jù)倉庫的所 述第一子集中的一個對應數(shù)據(jù)倉庫中的相應狀態(tài)信息。
22、 根據(jù)權(quán)利要求21所述的方法,該方法還包括以下步驟 根據(jù)所述相應狀態(tài)信息來確定數(shù)據(jù)倉庫的所述第一子集中的一個給定數(shù)據(jù)倉庫具有足夠的數(shù)據(jù)來對所述查詢進行評估;以及響應于所述確定將所述查詢傳送給所述第一子集中的所述一個給定數(shù)據(jù)倉庫以進行評估。
23、 根據(jù)權(quán)利要求14所述的方法,其中所述多個數(shù)據(jù)倉庫中的 至少兩個位于不同的物理地點。
24、 根據(jù)權(quán)利要求14所述的方法,其中所述多個數(shù)據(jù)倉庫中的 每一個都包括相應的計算集群,其中給定的相應計算集群包括經(jīng)由存儲區(qū)域網(wǎng)耦合到多個存儲裝置的至少 一個計算節(jié)點。
25、 根據(jù)權(quán)利要求24所述的方法,其中所述至少一個計算節(jié)點 被配置成實施與一版本的Linux兼容的操作系統(tǒng)。
26、 根據(jù)權(quán)利要求14所述的方法,該方法還包括以下步驟經(jīng) 由web服務接口從進行請求的應用接收所述查詢。
27、 一種包括有程序指令的計算機可訪問介質(zhì),其中可以由計算 機系統(tǒng)執(zhí)行所述程序指令以從一個或更多個數(shù)據(jù)源提取數(shù)據(jù)集合以存儲在多個數(shù)據(jù)倉庫中 的一個或更多個中;將第一數(shù)據(jù)集合的相應副本存儲在包括所述多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫中;以及在所述第 一數(shù)據(jù)集合的每一個相應副本被存儲到所述第 一子集 中的對應數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù) 倉庫對依賴于所述第 一數(shù)據(jù)集合的查詢進行評估。
28、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中,在所述 笫 一子集中的第一數(shù)據(jù)倉庫對所述查詢進行評估的同時,所述第 一子 集中的另 一數(shù)據(jù)倉庫正在存儲所述第 一數(shù)據(jù)集合。
29、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中所述程序 指令還可以執(zhí)行以在所述第一數(shù)據(jù)集合已被存儲到任何給定數(shù)據(jù)倉 庫之后,允許由所述第一子集中的任何給定數(shù)據(jù)倉庫來評估所述查詢。
30、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中至少部分 同時地將所述第一數(shù)據(jù)集合存儲到數(shù)據(jù)倉庫的所述第一子集中的每個 數(shù)據(jù)倉庫。
31、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中所述多個 數(shù)據(jù)倉庫中的每一個都包括相應的關(guān)系數(shù)據(jù)庫。
32、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中所述程序 指令還可以執(zhí)行以在操作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫 內(nèi)的每一個數(shù)據(jù)集合相對應的標識信息。
33、 根據(jù)權(quán)利要求32所述的計算機可訪問介質(zhì),其中,對于所述第一數(shù)據(jù)集合,所述標識信息包括數(shù)據(jù)倉庫的所述第一子集中每一 個數(shù)據(jù)倉庫的相應標識符,以及表明是否已將所述第一數(shù)據(jù)集合存儲 到數(shù)據(jù)倉庫的所述第一子集中的一個對應數(shù)據(jù)倉庫中的相應狀態(tài)信 息。
34、 根據(jù)權(quán)利要求33所述的計算機可訪問介質(zhì),其中所述程序 指令還可以執(zhí)行以根據(jù)所述相應狀態(tài)信息來確定數(shù)據(jù)倉庫的所述第一子集中的一 個給定數(shù)據(jù)倉庫具有足夠的數(shù)據(jù)來對所述查詢進行評估;以及響應于所述確定將所述查詢傳送給所述第一子集中的所述一個 給定數(shù)據(jù)倉庫以進行評估。
35、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中所述程序 指令還可以執(zhí)行以實施與一版本的Linux兼容的操作系統(tǒng)。
36、 根據(jù)權(quán)利要求27所述的計算機可訪問介質(zhì),其中所述程序 指令還可以執(zhí)行以經(jīng)由web服務接口從進行請求的應用接收所述查 詢。
37、 一種系統(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ù)集合不相似;并且其中,響應于接收到來自所述客戶機的針對由所述多個數(shù)據(jù)倉庫 中的一個或更多個數(shù)據(jù)倉庫存儲的數(shù)據(jù)集合的查詢,所述數(shù)據(jù)倉庫管 理器還被配置成識別所述多個數(shù)據(jù)倉庫中的能夠?qū)λ霾樵冞M行評估 的一個特定數(shù)據(jù)倉庫,并將所述查詢傳送給所述特定數(shù)據(jù)倉庫以進行評估。
38、 根據(jù)權(quán)利要求37所述的系統(tǒng),其中包括所述多個數(shù)據(jù)倉庫 中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成 存儲給定數(shù)據(jù)集合的相應副本。
39、 根據(jù)權(quán)利要求38所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還 被配置成在所述給定數(shù)據(jù)集合的每個相應副本已被存儲到所述第一 子集中的對應數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一子集中的一 個數(shù)據(jù)倉庫對依賴于所述給定數(shù)據(jù)集合的查詢進行評估。
40、 根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的 一個給定數(shù)據(jù)倉庫被配置成存儲第二數(shù)據(jù)集合,并且其中所述多個數(shù) 據(jù)倉庫中的至少另 一數(shù)據(jù)倉庫不存儲所述第二數(shù)據(jù)集合的任何副本。
41、 根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述多個數(shù)據(jù)倉庫中的 每一個都包括相應的關(guān)系數(shù)據(jù)庫。
42、 根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還 被配置成在操作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個 數(shù)據(jù)集合相對應的標識信息。
43、 根據(jù)權(quán)利要求42所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合, 所述標識信息包括存儲有或要存儲所述給定數(shù)據(jù)集合的所述一個或更 多個數(shù)據(jù)倉庫中每一個的相應標識符,并且其中所述標識信息還包括 表明是否已將所述給定數(shù)據(jù)集合存儲到對應數(shù)據(jù)倉庫的相應狀態(tài)信 息。
44、 根據(jù)權(quán)利要求43所述的系統(tǒng),其中,所述數(shù)據(jù)倉庫管理器 識別能夠?qū)λ霾樵冞M行評估的所述特定數(shù)據(jù)倉庫的操作還包括根據(jù)所述查詢進行評估。
45、 根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還 被配置成經(jīng)由web服務接口從進行請求的應用接收所述查詢。
46、 一種方法,該方法包括以下步驟從一個或更多個數(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ù)倉 庫中的能夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫,并將所述查詢 傳送給所述特定數(shù)據(jù)倉庫以進行評估,其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲 的并且在所述給定時刻可供所述客戶機進行查詢的第 一數(shù)據(jù)集合與由 所述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供 所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
47、 根據(jù)權(quán)利要求46所述的方法,其中包括所述多個數(shù)據(jù)倉庫 中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成 存儲給定數(shù)據(jù)集合的相應副本。
48、 根據(jù)權(quán)利要求47所述的方法,該方法還包括以下步驟在 所述給定數(shù)據(jù)集合的每個相應副本已被存儲到所述第 一子集中的對應 數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對 依賴于所述給定數(shù)據(jù)集合的查詢進行評估。
49、 根據(jù)權(quán)利要求46所述的方法,其中所述多個數(shù)據(jù)倉庫中的 一個給定數(shù)據(jù)倉庫被配置成存儲第二數(shù)據(jù)集合,并且其中所述多個數(shù) 據(jù)倉庫中的至少另 一數(shù)據(jù)倉庫不存儲所述第二數(shù)據(jù)集合的任何副本。
50、 根據(jù)權(quán)利要求46所述的方法,其中所述多個數(shù)據(jù)倉庫中的 每一個都包括相應的關(guān)系數(shù)據(jù)庫。
51、 根據(jù)權(quán)利要求46所述的方法,該方法還包括以下步驟在 操作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對 應的標識信息。
52、 根據(jù)權(quán)利要求51所述的方法,其中,對于給定數(shù)據(jù)集合, 所述標識信息包括存儲有或要存儲所述給定數(shù)據(jù)集合的所述一個或更多個數(shù)據(jù)倉庫中每一個的相應標識符,并且其中所述標識信息還包括 表明是否已將所述給定數(shù)據(jù)集合存儲到對應數(shù)據(jù)倉庫的相應狀態(tài)信 息。
53、 根據(jù)權(quán)利要求52所述的方法,其中,識別能夠?qū)λ霾樵?進行評估的所述特定數(shù)據(jù)倉庫的步驟還包括以下步驟根據(jù)所述相應 狀態(tài)信息來確定所述特定數(shù)據(jù)倉庫是否具有足夠的數(shù)據(jù)來對所述查詢 進行評估。
54、 根據(jù)權(quán)利要求46所述的方法,該方法還包括以下步驟經(jīng) 由web服務接口從進行請求的應用接收所述查詢,
55、 一種包括程序指令的計算機可訪問介質(zhì),其中所述程序指令 可以執(zhí)行以從一個或更多個數(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ù)倉 庫中的能夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫,并將所述查詢 傳送給所述特定數(shù)據(jù)倉庫以進行評估,其中,在給定時刻,由所述多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲 的并且在所述給定時刻可供所述客戶機進行查詢的第 一數(shù)據(jù)集合與由 所述多個數(shù)據(jù)倉庫中的第二數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供 所述客戶機進行查詢的第二數(shù)據(jù)集合不相似。
56、 根據(jù)權(quán)利要求55所述的計算機可訪問介質(zhì),其中包括所述 多個數(shù)據(jù)倉庫中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉 庫都被配置成存儲給定數(shù)據(jù)集合的相應副本。
57、 根據(jù)權(quán)利要求56所述的計算機可訪問介質(zhì),還包括在所 述給定數(shù)據(jù)集合的每個相應副本已被存儲到所述第一子集中的對應數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對依 賴于所述給定數(shù)據(jù)集合的查詢進行評估。
58、 根據(jù)權(quán)利要求55所述的計算機可訪問介質(zhì),其中所述多個 數(shù)據(jù)倉庫中的一個給定數(shù)據(jù)倉庫被配置成存儲第二數(shù)據(jù)集合,并且其 中所述多個數(shù)據(jù)倉庫中的至少另 一數(shù)據(jù)倉庫不存儲所述第二數(shù)據(jù)集合 的任何副本。
59、 根據(jù)權(quán)利要求55所述的計算機可訪問介質(zhì),其中所述多個 數(shù)據(jù)倉庫中的每一個都包括相應的關(guān)系數(shù)據(jù)庫。
60、 根據(jù)權(quán)利要求55所述的計算機可訪問介質(zhì),還包括在操 作數(shù)據(jù)庫中存儲與存儲在所述多個數(shù)據(jù)倉庫內(nèi)的每個數(shù)據(jù)集合相對應 的標識信息。
61、 根據(jù)權(quán)利要求60所述的計算機可訪問介質(zhì),其中,對于給 定數(shù)據(jù)集合,所述標識信息包括存儲有或要存儲所述給定數(shù)據(jù)集合的 所述一個或更多個數(shù)據(jù)倉庫中每一個的相應標識符,并且其中所述標 識信息還包括表明是否已將所述給定數(shù)據(jù)集合存儲到對應數(shù)據(jù)倉庫的 相應狀態(tài)信息。
62、 根據(jù)權(quán)利要求61所述的計算機可訪問介質(zhì),其中,識別能 夠?qū)λ霾樵冞M行評估的所述特定數(shù)據(jù)倉庫的操作還包括根據(jù)所述 相應狀態(tài)信息來確定所述特定數(shù)據(jù)倉庫是否具有足夠的數(shù)據(jù)來對所述 查詢進行評估。
63、 根據(jù)權(quán)利要求55所述的計算機可訪問介質(zhì),還包括經(jīng)由web 服務接口從進行請求的應用接收所述查詢。
64、 一種系統(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)信息,其中,響應于接收到來自多個客戶機中的一個給定客戶機的針對由所述多個數(shù)據(jù)倉庫中的一個或更多個數(shù)據(jù)倉庫所存儲的數(shù)據(jù)集合的 查詢,所述數(shù)據(jù)倉庫管理器還被配置成識別所述多個數(shù)據(jù)倉庫中的能 夠?qū)λ霾樵冞M行評估的一個特定數(shù)據(jù)倉庫,并將所述查詢傳送給所 述特定數(shù)據(jù)倉庫以進行評估,其中所述識別操作依賴于所述數(shù)據(jù)倉庫 狀態(tài)信息。
65、 根據(jù)權(quán)利要求64所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合, 與所述給定數(shù)據(jù)集合相關(guān)聯(lián)的所述數(shù)據(jù)倉庫狀態(tài)信息包括對被配置成 存儲所述給定數(shù)據(jù)集合的所述多個數(shù)據(jù)倉庫中的一個或更多個進行標 識的信息。
66、 根據(jù)權(quán)利要求64所述的系統(tǒng),其中,對于給定數(shù)據(jù)集合, 與所述給定數(shù)據(jù)集合相關(guān)聯(lián)的所述數(shù)據(jù)倉庫狀態(tài)信息包括針對修改所 述給定數(shù)據(jù)集合的內(nèi)容的操作而標識所述給定數(shù)據(jù)集合的狀態(tài)的信 息。
67、 根據(jù)權(quán)利要求64所述的系統(tǒng),其中包括所述多個數(shù)據(jù)倉庫 中的兩個或更多個數(shù)據(jù)倉庫的第一子集中的每個數(shù)據(jù)倉庫都被配置成 存儲由所述數(shù)據(jù)倉庫管理器提取的第一數(shù)據(jù)集合的相應副本,并且其 中所述數(shù)據(jù)倉庫管理器還被配置成在所述第一數(shù)據(jù)集合的每個相應 副本已被存儲到所述第一子集中的對應數(shù)據(jù)倉庫之前,允許由數(shù)據(jù)倉 庫的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查 詢進行評估。
68、 根據(jù)權(quán)利要求64所述的系統(tǒng),其中所述數(shù)據(jù)倉庫管理器還 被配置成將所述多個數(shù)據(jù)倉庫作為單個數(shù)據(jù)倉庫呈現(xiàn)給所述給定客戶 機,其中所述多個數(shù)據(jù)倉庫內(nèi)的所述數(shù)據(jù)集合的位置對于所述給定客 戶機是透明的。
69、 根據(jù)權(quán)利要求68所述的系統(tǒng),其中,在給定時刻,由所述 多個數(shù)據(jù)倉庫中的第一數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供所述 給定客戶機進行查詢的第 一數(shù)據(jù)集合與由所述多個數(shù)據(jù)倉庫中的第二 數(shù)據(jù)倉庫存儲的并且在所述給定時刻可供所述給定客戶機進行查詢的 第二數(shù)據(jù)集合不相似
全文摘要
一種用于實現(xiàn)數(shù)據(jù)倉儲系統(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ù)集合的相應副本。此外,所述數(shù)據(jù)倉庫管理器還可以被配置成在所述第一數(shù)據(jù)集合的每個相應副本被存儲到所述第一子集中的對應數(shù)據(jù)倉庫之前允許由數(shù)據(jù)倉庫的所述第一子集中的一個數(shù)據(jù)倉庫對依賴于所述第一數(shù)據(jù)集合的查詢進行評估。
文檔編號G06F17/30GK101305365SQ200580047505
公開日2008年11月12日 申請日期2005年12月14日 優(yōu)先權(quán)日2004年12月17日
發(fā)明者保羅·J·博得, 克里斯托弗·R·貝爾, 馬克·E·鄧拉普 申請人:亞馬遜科技公司