新四季網

用於進行數據倉儲的設備和方法

2023-08-01 07:22:56 2

專利名稱:用於進行數據倉儲的設備和方法
技術領域:
本發明涉及計算機系統,更具體地說,涉及數據倉儲系統的實現。
背景技術:
隨著企業內的商業機能數量的增加,企業所產生的數據量也相應 地增加了。這種數據可能分布在整個企業內,例如在由不同部門或地 理單元實現的資料庫系統和其他類型的系統內。在某些情況下,可以 跨越現有系統或位置之間的自然邊界對企業數據進行有用分析。為了 便於進行這種分析,可以採用數據倉儲系統將來自多個不同系統或位 置的數據匯集在單個系統內,如單個資料庫內。隨後,分析工具可以 將該單個、經匯集的系統而不是各種分布式數據源作為目標,這可以 簡化分析工具的設計並改進分析性能。
通常,數據倉儲系統利用被配置成提供所需分析性能的高端計算 機系統來支持對非常大量的數據的存儲和查詢。然而,非常適合於特 定數據倉儲應用的高端系統的採購和維護費用可能是高昂的,並且可 能無法隨著企業的數據倉儲需求的增長而擴縮。如果例如由於昂貴而 只提供單個數據倉儲系統,那麼在該單個倉庫發生故障時會損害數據 可用性。另一方面,如果提供多個數據倉儲系統,那麼分析應用會喪 失採用單個、經匯集的數據源的簡單性。例如,可能需要將分析應用 配置成對多個數據倉庫內的期望數據的位置進行跟蹤。

發明內容
公開了用於實現數據倉儲系統的設備和方法的各種實施例。根據
一個實施例, 一種系統可以包括若干數據倉庫;和數據倉庫管理器, 其被配置成從一個或更多個數據源提取數據集合以存儲在所述多個數據倉庫中的一個或更多個中。兩個或更多個數據倉庫中的每一個都可 被配置成存儲由所迷數據倉庫管理器提取的數據集合的相應副本。此 外,所述數據倉庫管理器可以被配置成在所述數據集合的每個相應副 本被存儲到對應的一個另外數據倉庫之前允許由所述多個數據倉庫中 的一個數據倉庫對依賴於所述數據集合的查詢進行評估。類似地,所 述數據倉庫管理器還可以被配置成在已將所述數據集合的修改複製到 對應的另外數據倉庫之前允許由所述多個數據倉庫中的 一個數據倉庫 對依賴於所述數據集合的查詢進行評估。
還構思了 一種方法,根據一個實施例,該方法可以包括以下步驟 從一個或更多個數據源提取數據集合以存儲在一個或更多個數據倉庫 中;將第 一數據集合的相應副本存儲在包括兩個或更多個數據倉庫的 第一子集中的每個數據倉庫中;以及在所述第一數據集合的每個相應 副本被存儲到所述第 一子集中的對應數據倉庫之前允許由數據倉庫的 所述第 一子集中的一個數據倉庫對依賴於所述第 一數據集合的查詢進 行評估。
根據第二實施例, 一種系統可以包括多個數據倉庫,其被配置 成存儲從一個或更多個數據源提取的數據集合;和數據倉庫管理器, 其被配置成將所述多個數據倉庫作為單個數據倉庫呈現給客戶機。所 述多個數據倉庫內的所述數據集合的位置對於所述客戶機來說可以是 透明的。而且,在給定時刻,由第一數據倉庫存儲的並且在所述給定 時刻可供所述客戶機進行查詢的第 一數據集合可能與由第二數據倉庫 存儲的並且在所述給定時刻也可供所述客戶機進行查詢的第二數據集 合不相似。所述數據倉庫管理器還可以被配置成響應於接收到來自所 述客戶機的針對由所述多個數據倉庫中的一個或更多個數據倉庫所存 儲的數據集合的查詢的接收,對所述多個數據倉庫中的能夠對所述查 詢進行評估的一個特定數據倉庫進行識別並將所述查詢傳送給所述特 定數據倉庫以進行評估。
還構思了一種方法,根據一個實施例,該方法可以包括以下步驟 從一個或更多個數據源提取數據集合以存儲在一個或更多個數據倉庫中,並將所述多個數據倉庫作為單個數據倉庫呈現給客戶機。所述多 個數據倉庫內的所述數據集合的位置對於所述客戶機來說可以是透明 的。響應於對來自所述客戶機的針對由所述多個數據倉庫中的 一個或 更多個數據倉庫所存儲的數據集合的查詢的接收,該方法還可以包括
以下步驟對所述多個數據倉庫中的能夠對所述查詢進行評估的一個
評估。在給定時刻,、由第一數據倉庫存儲的並且在所述給定時刻可供 所述客戶機進行查詢的第 一數據集合可能與由笫二數據倉庫存儲的並 且在所述給定時刻可供所述客戶機進行查詢的第二數據集合不相似。


圖l是例示了數據倉儲系統的一個實施例的框圖。 圖2是例示了跨越多個數據倉庫的數據集合複製處理的一個實施 例的框圖。
圖3是例示了利用粗同步將所提取的數據存儲在數據倉庫中的方 法的一個實施例的流程圖。
圖4是例示了利用粗同步對由數據倉庫存儲的數據進行查詢的方 法的一個實施例的流程圖。
圖5A是例示了在粗同步下在數據集合更新與查詢之間的關係的 一個實施例的時序圖。
圖5B到5D是例示了利用粗同步而複製的數據集合的一個示例 性實施例的框圖。
圖6是例示了將數據倉庫可視化給客戶的方法的 一個實施例的流程圖。
圖7是例示了數據倉庫計算集群的一個實施例的框圖。 圖8是例示了計算機系統的示例性實施例的框圖。 儘管本發明容許各種修改和另選形式,但是在附圖中以示例的方 式示出了其特定實施例,在此將對這些具體實施例進行詳細描述。然 而,應當理解,附圖及其詳細描述並不旨在將本發明局限於所公開的具體形式,而是相反,旨在覆蓋落在如所附權利要求所限定的本發明 的精神和範圍內的所有變型例、等同物以及另選例。
具體實施方式
數據倉儲系統的概述
在某些複雜的企業計算環境中,各種數據源可能分布在整個企業 內。例如,企業可能對於不同的商業機能(如會計、財務、電子商務、 人力資源、採購、製造、分發等)實現多個獨立的計算機系統和/或應 用。此外,這種系統和/或應用可能在地理上是分散的和重複的,例如 在各分發地點處提供有分發管理系統。在某些這種企業中,資料庫或 其他數據存儲體以及分析工具和其他應用可能對於一地點或機能來說 是專用的,並且可以外部地與其他機能或地點的系統相交互。
為特定商業機能或地點只提供其執行其大部分任務所需要的數 據和資源可以避免在企業內對過度或冗餘資源進行分配。然而,在某 些情況下,可能需要對來自整個企業的數據作為整體進行分析。例如, 對企業範圍的財務或生產趨勢的分析可能依賴於在多個不同地點處或 跨越不同部門所產生和保持的數據。在某些情況下,可以將數據分析 工具配置成對跨越多個商業機能的複雜相互關係進行檢測,這種相互 關係不能直接通過對孤立的單個機能的分析辨別出。例如,在員工經 驗與培訓(由人力資源來跟蹤)、分發生產率與財務業績(例如,由 於分發錯誤而導致的產品回報額的減少)之間可能存在關係。可以通 過對來自這些機能中的每一個的數據集體地針對互相關性進行檢查來 識別這種關係。
在某些實施例中,企業可以提供集中化數據倉儲系統以便於對企 業範圍的數據進行處理和分析。 一般來講,數據倉庫可以包括被配置 成將存儲在一個或更多個數據源中的數據匯集起來的資料庫或其他數 據儲存庫。數據源自身可以是企業內的存儲或產生數據的其他資料庫 或其他應用。通常,存儲在數據倉庫內的數據是存儲在企業內的其他 地方的數據的衍生物。然而,在某些情況下,也可以將數據倉庫配置成用作針對某些數據(如企業範圍的分析數據,或者甚至企業機能或 地點數據)的主儲存器。
在圖1中例示了數據倉庫系統的一個實施例。在所例示的實施例
中,數據倉庫系統100包括被配置成與由圖1中的數據倉庫120a到 120d表示的多個數據倉庫相交互的數據倉庫管理器110。圖l所例示 的數據倉庫120a到120d的數量只是例示性的,其可以在其他實施例 中不同。也可以將數據倉庫管理器110配置成與操作資料庫130相交 互。還將數據倉庫管理器110配置成與一個或更多個客戶機140和數 據源160相交互,這些客戶機140和數據源160可以位於數據倉庫系 統100的外部(例如,分布在整個企業中、或者分布在多個企業間、 分布在不同邏輯或物理地點處)。在某些實施例中,可以將某些客戶 機140配置成經由web服務接口 150與數據倉庫管理器110相交互。 在某些實施例中,可以將數據倉庫管理器IIO配置成經由web服務接 口 (未示出)與某些數據源160相交互。
在某些實施例中,數據倉庫120a到120d可以包括相應的關係數 據庫。例如, 一給定數據倉庫120可以包括諸如Oracle、 DB2、 Sybase、 Informix、 Adabas或任何其他私有或開放源碼資料庫之類的資料庫。 在某些實施例中,不同的數據倉庫120可以實現來自不同廠商的不同 類型的資料庫軟體。 一般來講,關係資料庫可以將多個數據項的集合 組織到一個或更多個規則結構(如包括多行和多列的表)中,儘管也 可以構思多維關係資料庫結構。此外,在許多實施例中,可以將關係 資料庫配置成評估對於存儲在資料庫內的數據的查詢,以選擇滿足給 定查詢的數據子集。例如,可以將資料庫配置成存儲客戶定單信息, 可以將該客戶定單信息組織成包括諸如客戶標識符、定單標識符、貨 運狀態信息、定單費用等之類的數據的一個或幾個表。試圖識別正在
等待未付貨運的所有客戶的用戶可以向資料庫提交如下查詢,該查詢 指定對於自特定日期和/或時間起具有未運送定單的所有客戶標識符 的選擇。作為響應,該資料庫可以對其內容進行檢查並返回那些滿足 該查詢的約束條件的數據記錄。需要指出的是,在某些實施例中,不同的數據倉庫120可以位於不同的物理位置或地點處,這與如下所述 的數據集合複製結合在一起,可以通過減小由於單個地點處的故障而 損害整個數據倉庫120的可能性來增強數據集合的可靠性和可用性。
需要指出的是,儘管數據倉庫120通常可能包括關係資料庫,但 是在某些實施例中給定數據倉庫120可以包括非關係資料庫。通常, 在關係資料庫中, 一特定數據項的含義隱式地由該數據項在表內的位 置或其他關係數據結構來描述。例如,在特定二維關係資料庫表中, 可以將一列定義成存儲客戶標識符,可以將另一列定義成存儲運貨狀 態信息,並將第三列定義成存儲定單費用。那麼該表的各行可以對應 於特定定單記錄,因而,存儲在一行的第一列中的任何數據項因其位 置可被解釋成客戶標識符。作為對照,在一個實施例中,非關係數據 庫可以存儲這樣的數據項由與給定數據項相關聯的顯式元數據,而 不是由該數據項在所定義數據結構內的位置,來控制對該數據項的解 釋。例如,在一個實施例中,可以將數據倉庫120配置成將數據項存 儲成由一版本的可擴展標記語言(XML)來界定的記錄。在一個這種 實施例中,可以由標識了諸如客戶標識符之類的一給定數據項的類型 的元數據欄位或標籤來界定該給定數據項。例如,可以將客戶標識符 "smith"存儲為"〈custjd〉smitlK/custjd〉,,,其中元數據標籤custjd 表示可以由該標籤界定的數據可以被解釋成客戶標識符。通常,可以 在記錄內按任何順序來存儲非關係資料庫內的多個記錄的數據項,因 為一給定數據項的含義被連同該數據項一起顯式地存儲,而不是通過 該數據項的位置而被隱式地存儲。
如先前已提及的,在某些實施例中,可以將數據倉庫120配置成 將存儲在企業內的其他地方(如數據源160)的數據匯集起來。在一 個實施例中,如以下更詳細地描述的,由數據倉庫120存儲的數據量 可以相當大,例如在幾百萬兆字節(TB)的量級上。在所例示的實施 例中,可以將數據倉庫管理器110配置成對如何在數據倉庫120之間 檢索和存儲數據進行協調,以及對諸如客戶機140之類的客戶機對數 據倉庫120的訪問進行協調。具體來說,在一個實施例中,可以將數據倉庫管理器110 (或者簡稱為管理器110 )配置成從一個或更多個數 據源160提取數據,並對所提取的數據在一個或更多個數據倉庫120 中的存儲進行協調。
在某些情況下,管理器110可以在所提取的數據被存儲之前附加 地對其進行變換。例如,在一個實施例中,給定數據倉庫120可以存 儲包括有從若干不同的數據源160導出的數據的表。在這種實施例中, 可以將管理器110配置成將從不同數據源160抽取的各個數據項變換 成給定數據倉庫120所要求的格式。在某些實施例中,與對數據進行 重排或改變數據的格式相反,對數據的變換可以包括對數據本身的修 改。例如,在某些實施例中,可以將管理器110配置成在將特定數據 項存儲在數據倉庫120中之前對這些數據項進行擴縮或四捨五入,或 者可以施加任何其他合適的變換。在某些實施例中,也可以將管理器 IIO稱為提取、變換和加栽(ETL)管理器。
在所例示的實施例中,可以將操作資料庫130配置成對與數據倉 庫系統100的操作狀態有關的信息進行存儲和跟蹤,該信息可以包括 與數據倉庫120內的數據項或數據集合(如表或單個記錄)的位置有 關的信息,以及相對於用於對數據倉庫120內的數據進行修改的未處 理操作而言的數據項或數據集合的狀態。在某些實施例中,操作數據 庫130可以包括與上述那些資料庫類似的關係或非關係資料庫(其包 括用於對其內容進行訪問和修改的查詢接口),而在其他實施例中操 作資料庫130可以包括被配置成例如通過在客戶應用編程接口 (API) 中定義的過程調用而與管理器IIO進行交互的客戶軟體應用。以下結 合圖3到6的描述對在各種實施例中管理器110與操作資料庫130 一 起對數據倉庫120進行加栽和將數據倉庫120的呈現可視化給客戶機 140的操作進行更詳細的描述。
在某些實施例中,作出如下構思可以通過健壯、容錯系統來實 現管理器110和/或操作資料庫130。例如,通過採用冗餘(例如熱備 份(hot standby ))或集群計算機系統,可以提高管理器110和/或操 作資料庫130的總體可靠性和可用性,以使得管理器或資料庫操作可以在一個或更多個系統發生故障的情況下繼續工作。可以採用任何合
適類型的故障轉移機制來降低數據倉庫系統IOO對管理器110或操作 資料庫130的故障的敏感度。
而且,在某些實施例中,作出如下構思將管理器110和/或操 作資料庫130的實現與數據倉庫120的實現進行分離可以降低與數據 倉庫系統100相關聯的成本或複雜度。例如,這種分離可以使得便於 利用商品計算機系統和/或資料庫軟體來實現管理器110和操作資料庫 130的控制功能。這種分離還可以使得便於通過能夠與數據倉庫硬體 分離地對控制硬體進行升級,來擴縮數據倉庫系統100。在某些實施 例中,這種分離還可以增強數據倉庫系統100的整體可用性並縮短故 障恢復時間。例如,如果一個數據倉庫120萬一發生故障,那麼在對 該故障倉庫進行恢復的同時,操作資料庫130和管理器110可以繼續 加載其他數據倉庫120。類似的是,如果操作資料庫130萬一發生故 障,則可能無需對任何數據倉庫120進行恢復,由此縮短了總體故障 恢復時間。
客戶機140通常可以包括被配置成訪問數據倉庫系統100的任何 軟體應用或其他實體。例如,在一個實施例中,客戶機140可以包括 被配置成(例如通過查詢來)檢索數據的應用。這種應用可能包括數 據分析應用、決策支持系統、數據查看應用或任何其他合適的應用。 客戶機140還可以包括可以對數據倉庫系統100的操作進行配置的管 理應用或實用程序。例如,數據分析員或管理員可以確定應當由數據 倉庫系統100對來自多個數據源160的特定集合的數據項的組合進行 匯集以供將來分析。該分析員或管理員可以使用客戶機140來指示管 理器110例如一次性地或重複地從數據源160提取有關數據集合。在 各種實施例中,可以將客戶機140配置成例如在任何合適類型的系統 (如通用計算機系統、手持系統或嵌入式系統)上運行。在某些實施 例中,可以將客戶機140配置成經由中間系統與數據倉庫系統IOO相 交互。例如,可以通過客戶機-伺服器系統(未示出)來實現客戶機 140,在該客戶機-伺服器系統中,將伺服器系統配置成對客戶機140與數據倉庫系統IOO之間的通信進行傳遞。
除了利用由管理器110提供的API直接進行通信以外,在某些實 施例中,可以將一些或所有客戶機140配置成經由web服務接口 150 與管理器110進行通信。 一般來講,可以將web服務接口配置成提供 標準的、跨平臺API,以用於在請求執行某些服務的客戶機與服務提 供方之間的通信。在某些實施例中,可以將web服務接口 150配置成 支持對包括有描述服務請求的信息的文檔進行交換並對該請求進行響 應。可以利用標準化web協議(如超文本傳輸協議(HTTP))來交 換這種文檔,並且可以按照與平臺無關的數據格式(如XML)對該文 檔進行格式化。通過採用該web服務模型,並且^^用標準web協議和 以及獨立於平臺的文檔格式化,可以減少管理器110需要支持的接口 類型的數量,並且可以改進客戶機140和管理器110的跨平臺互操作 性。
在某些實施例中,數據源160本身可以包括關係或非關係資料庫, 並且可以分布在整個企業中。這種資料庫可以是也可以不是與數據倉 庫120的資料庫相同的類型(如廠商或格式)。在其他實施例中,數 據源160可以是除資料庫以外的應用,如被配置成以文檔形式或以另 一形式來存儲數據的客戶或私有應用。在這種實施例中,可以將管理 器110配置成利用必要的協議(例如,由數據源的API定義的特定格 式的過程調用)與數據源160相通信以獲取數據。數據源160還可以 包括文檔的儲存庫,諸如對如下內容的匯集或歸檔交易日誌、電郵 通信、文字處理器/辦公應用文檔、圖像或多媒體文件、網頁文檔、XML 文檔、對電子商務站點的操作的量度,或者任何其他合適類型的文檔 或數據。例如,在一個實施例中,數據源160可以包括網絡附接的大 容量介質存儲裝置,如獨立盤陣列或通過存儲區域網(SAN)連接的 存儲裝置。
無論數據源160的具體類型如何,都可以將管理器110配置成執 行合適的操作以從其中提取期望的數據集合、施加任何必要的變換以 將數據轉換成適合於存儲在數據倉庫120中的格式、以及將所提取出的數據加載到一個或更多個數據倉庫120。如果特定數據源160的數 據內容在格式上與由數據倉庫120存儲的數據高度不相似,那麼可以 將管理器110配置成對數據源160進行分析以導出對該數據內容的恰 當的量度或表示,或者被配置成調用另一應用來執行這種分析。 數據倉庫複製、粗同歩以及虛擬化
在某些情況下,由數據倉庫120存儲的數據可能對於企業的運行 來說是關鍵的。例如,在某些實施例中,可以將分析軟體配置成對所 倉儲的數據進行操作以生成淨艮告並且/或者識別出趨勢,這進而會影響 運行決策,如定購/採購決策、人員配備決策等。例如,在企業範圍內 對一天的生產量度進行的分析可能影響如下決策在企業內對資源的 轉移、對下一天的生產的再調度、加急進料或庫存採購,等等。萬一 丟失或破壞了數據倉庫120內的要對其執行相關分析的數據,就會嚴 重損害運行或戰略決策制定過程,或者在某些情況下會使得完全不能 進行這種運行或戰略決策制定過程。
如上所述,某些經倉儲的數據可能是由數據源160存儲的數據的 衍生物,並且在原則上可以通過將相關數據從這些數據源160再加載 到數據倉庫120來恢復這些經倉儲的數據。然而,例如,如果所丟失 或破壞的數據量很大,或者如果數據源160必須訪問較慢的數據存儲 介質(如磁帶或離線介質)以檢索所請求的數據,那麼這種再加載處 理可能會耗費相當大的時間量來完成。可能無法在對依賴於經倉儲數 據的處理產生最小中斷的時限內再加載所需數據。再者,在某些情況 下,存儲在數據倉庫120上的數據可能是利用數據倉庫系統100的應 用(如分析應用)的主要輸出,因此無法簡單地通過從數據源160再 加栽該數據就可以恢復的。
為了減小數據損失和隨之產生的中斷的可能性,在一個實施例 中,可以將數據倉庫120的子集配置成對特定數據集合進行複製。即, 可以將兩個或更多個數據倉庫120配置成存儲一數據集合(如表或多 個記錄的集合)的相應副本。圖2例示了例示出這種複製處理的一個 實施例。在所例示的實施例中,將數據倉庫120a和120b均配置成存儲包含有客戶定單數據和客戶運貨數據的表的副本。應當指出的是,
在某些實施例中,可以由任意數量(從兩個直到數據倉庫系統100內 的數據倉庫120的數量)個數據倉庫120來複製特定數據集合。另一 方面,在某些實施例中,可以根本不複製某些數據集合,或者可以將 某些數據集合複製在其他數據倉庫上。在所例示的實施例中,數據倉 庫120a和120b均包括未由其它數據倉庫複製的表(分別是財務報告 數據和會話跟蹤數據)。應當指出的是,在某些實施例中,可以由數 據倉庫120利用不同的資料庫方案(例如,利用不同的數據欄位定義 和/或結構)來存儲不同的數據集合。
在某些實施例中,由數據倉庫120存儲的數據集合可以對於許多 不同類型的企業是共有的。例如,在磚和漿企業與提供虛擬客戶界面 (例如,基於web的電子商務界面或電子商務界面)的企業內,客戶 定單和貨運數據可能是共同可用的數據集合。然而,在某些實施例中, 可以將支持電子商務界面的企業配置成甚至在發生銷售之前就收集並 存儲大量關於客戶與企業的交互的信息。在一個實施例中,可以將圖 2所例示的會話跟蹤數據集合配置成存儲關於客戶與電子商務界面的 交互的任何方面的數據。例如,可以將該會話跟蹤數據集合配置成存 儲表示客戶在訪問企業的網點期間所查看的特定項目的數據(例如, 會話)、以及該查看的持續時間、客戶在會話過程中導航的連結、客 戶所執行的任何搜索,等等。可以將分析應用配置成對這些和其他類 型的跟蹤數據進行分析以分辨出客戶偏好、預測客戶定購各種貨品的 可能性、對呈現給客戶的電子商務界面進行定製,等等。
然而,需要指出的是,可以將數據倉儲和下述各種技術同樣地應 用於沒有基本電子商務組件的企業。例如,某些企業可能具有跨越許 多機能和地理分部的高度複雜的內部處理,並且即使除了外部客戶的 活動之外也會在內部產生可用於進行倉儲的巨大數據量。此外,在某 些實施例中,企業可能是足夠複雜的,它可能針對企業內部的活動和 事務採用與上述面向電子商務的活動類似的信息收集策略。例如,企 業內的不同的商業單位可能如類似於外部客戶的客戶那樣與其他商業單位進行交互,並且可能按類似的方式產生客戶數據。
在某些實施例中,可以將多個數據倉庫120的子集配置成以不同 的複製程度來存儲不同類型的數據。例如,在圖2的實施例中,如所 示出的那樣,可以將數據倉庫120a和120b配置成按複製方式來存儲 客戶定單和運貨數據。在類似的實施例中,可以將數據倉庫120c和 120d配置成按複製方式來存儲歷史會話跟蹤數據(例如,前15個月 的跟蹤數據的價值)(未示出)。在數據倉庫120的這種配置中,倉 庫120a和120b可以形成特別適合於進行涉及客戶定單和運貨數據的 分析的在功能上集群或分組的倉庫集合,而倉庫120c和120d可以形 成類似的特別適合於進行涉及會話跟蹤數據的分析的在功能上集群的 倉庫集合。在各情況下,可以對相對關鍵的數據進行複製,以幫助進 行保護以防數據丟失。在數據倉庫120a到120d的這種配置中,對客 戶數據的分析驅動查詢也可能常常以最近的會話跟蹤數據為目標。例 如,對客戶定貨和貨運模式的分析可能試圖將這些模式關聯於最近的 會話跟蹤數據(例如,前90天的跟蹤數據的價值)。由此,在圖2 的實施例中,將數據倉庫120b配置成存儲會話跟蹤數據的集合。然而, 考慮到將數據倉庫120c和120d配置成冗餘地存儲更大的會話跟蹤數 據集合(如果需要的話,可以從該集合重構出由數據倉庫120b存儲的 集合),可以不複製由數據倉庫120b存儲的會話跟蹤數據。
針對某些數據集合對多個數據倉庫120進行集群或分組,使得可 以針對不同類型的查詢來優化不同的數據倉庫120組,這可以使得數 據倉庫系統100被針對期望的使用模式而更佳地調整。例如,如以下 結合圖7的描述更詳細地描述的那樣,根據期望數據倉庫120的某個 給定集群要處理的活動的程度,可以為作為數據倉庫120的基礎的硬 件系統提供更多或更少的計算資源。然而,在其他實施例中,可以按 更均一的方式將數據集合分布在多個數據倉庫120中。例如,在一個 實施例中,每個數據倉庫120都可以包括大致相同的計算資源集合, 並且可以按不同複製程度將數據集合分布在大致等價的多個數據倉庫 120中。雖然在這種實施例中可以針對數據存儲和檢索活動對硬體資源進行次優地調節,但是例如通過根據處理增長的數據分析需求的需
要而添加附加的、類似配置的數據倉庫120,可以更容易地對相對均 勻的數據倉庫120進行擴縮。
如上所提及的,通過減小給定數據倉庫120的故障將導致數據損 失的可能性,跨越多個數據倉庫120進行數據集合的複製可以提高數 據的總體可靠性。通過增加例如可以響應於查詢而向客戶機提供經復 制的數據集合的數據倉庫120的數量,這種複製還可以增加數據集合 的可用性。在圖1所例示的數據倉庫系統100的實施例中,可以將管 理器110配置成對將數據存儲到數據倉庫120的操作(包括在多個倉 庫120中對數據集合的任何複製)進行協調。由此,在所例示的實施 例中,是否複製了 一給定數據集合對於一特定數據倉庫120來說可能 是透明的。然而,在某些實施例中作出如下構思在此被描述成管理 器110的功能的跨越多個數據倉庫120對數據集合的管理和複製可以 被協作地分布在多個數據倉庫120之中,或者由被配置成既用作數據 倉庫又用作管理器的特定數據倉庫120來實現。
在某些情況下由數據倉庫120存儲的各個數據集合可能相當大, 例如在幾百百兆字節(MB)或幾百千兆字節(GB)的量級上。此外, 即使由管理器110例如響應於從數據源160對新的可操作數據的定期 提取而對給定數據集合進行的部分更新也可能包括相當大量的待傳送 給一給定數據倉庫120的數據。如果跨越幾個數據倉庫120對數據集 合進行複製,最終會將包括該數據集合在內的數據以及對該數據正在 進行的更新存儲在這幾個數據倉庫120之中。然而,這種存儲處理可 能不是同時發生的。例如,即使管理器110同時開始將相同的數據存 儲到數據倉庫120a和120b中,在這兩個數據倉庫120a和120b中該 數據存儲處理也可能不是同時完成的。諸如不同的計算負荷(如,對 查詢的服務)以及基本資源配置之類的因素可能使得一個數據倉庫 120比另一個更快地完成存儲操作。因此,在這兩個數據倉庫120a和 120b上完成存儲操作之前的任何給定時刻,在數據倉庫120a和120b 上正在被存儲的數據集合的狀態可能不同。在此狀態下,也可以將該數據集合稱為不具同步性或不同步。對於試圖檢索數據的客戶機140來說,不同步數據可能會帶來問 題。例如,如果在管理器IIO接收到以給定的經複製的數據集合為目 標的查詢時該給定數據集合在數據倉庫120a和120b上處於兩個不同 的狀態,那麼根據該給定數據集合在該查詢被指示以進行評估的特定 數據倉庫120中的狀態,該查詢可能返回兩個不同的結果,這種不一 致可能會導致不一致的客戶機操作,尤其是如果在多個數據倉庫120 (或者更廣泛地說,數據倉庫系統100的總體結構)中對數據集合的 複製對於客戶機140來說是透明的話。一個防止由於對不同步數據的不受控制的訪問而產生的不一致的客戶機行為的方法可能包括當被複製的數據集合在多個數據倉庫 120之中是不同步的時,管理器IIO防止對該數據集合進行任何訪問。 例如,在一個實施例中,可以將管理器110配置成將對被複製數據集 合的更新實現為原子操作或事務操作。 一般來講,相對於其他操作來 說,將涉及跨多個實體的同步的原子操作或事務操作視為不可分的; 即,在允許進行以所涉及的實體為目標的另一操作之前,這種原子操 作或事務操作要麼對於這些實體中的所有實體來說都完成了,要麼對 於這些實體中的沒有一個實體來說完成了。由此,在一個實施例中, 管理器110可能不允許在完成了存儲在所有有關數據倉庫120上的所 有數據集合副本之前對正在被存儲或修改的被複製數據集合進行訪問 的嘗試,從而確保了客戶機在嘗試訪問被複製的數據集合時不會接收 到不一致的結果。然而,跨所有數據集合副本執行原子或事務同步可能會顯著降低 數據倉庫系統100的性能。例如,在一給定的被複製數據集合4艮大的 情況下,在可以訪問該數據集合之前等待對所有數據集合副本的更新 都完成的過程中,可能出現顯著的等待時間。因此,在一個實施例中, 可以將管理器110配置成對跨多個數據倉庫120而複製的數據集合進 行粗同步。在一個實施例中,對數據集合的粗同步可以包括使對特 定數據倉庫120內的被複製數據集合的更新原子地同步,而同時允許訪問由其他數據倉庫120存儲的該數據集合的其他副本。即,在一個 實施例中,管理器110可以在對特定數據倉庫120的特定表(如圖2 所示的數據倉庫120a的客戶定單數據表)進行更新的同時針對其他讀 或寫訪問原子地鎖定該特定表。同時,管理器110可以有條件地允許 訪問該特定的被鎖定表在另一數據倉庫120上的副本(例如,數據倉 庫120b的被複製客戶定單數據表)。在另選實施例中,管理器110 在對存儲在數據倉庫120中的數據集合進行更新的同時可以原子地鎖 定整個數據倉庫120,或者可以只鎖定正在被更新的數據集合的一部 分(如表內的一行);作出如下構思可以由管理器110採用任何合 適的鎖定粒度。作出如下附加的構思在某些實施例中,可以將管理 器110配置成鎖定給定數據倉庫120上的正在被更新的數據集合的一 部分,而允許分開地訪問該給定數據倉庫120上的同一數據集合的未 鎖定部分以進行讀取或更新。在一個實施例中,管理器110可以有條件地允許在對一數據集合 副本進行更新的同時,如果對另一數據集合副本的訪問不依賴於該數 據更新的話,有條件地訪問所述另一數據集合副本。例如,客戶機140 可能提交對於前一整個日曆季度(例如,排除當前日曆季度)的所有 客戶運貨數據進行請求的查詢。同時,管理器IIO可能處於從許多客 戶履行地點(其中每一個都可以包括數據源160)提取前一天的客戶 運貨數據的過程中。可以將管理器110配置成利用任何適當的鎖定 方案以確保在多個數據倉庫120內的同步,來對由這些數據倉庫120 存儲的客戶運貨數據表進行更新。在對倉庫120a進行更新的同時,可 以不允許針對其客戶貨運數據的副本的查詢(或者,在某些實施例中, 不允許針對倉庫120a內的任何數據的查詢)。然而,可以將管理器 110配置成檢測到所提交的針對前一日曆季度的客戶運貨數據的查 詢並不依賴於當前正在對數據倉庫120a進行的更新。即,儘管數據倉 庫120b內的客戶貨運數據並不完全與數據倉庫120a內的副本相同步, 但是滿足所述查詢所必需的所有數據都可能存在於數據倉庫120b內。 因此,在已將客戶貨運數據更新存儲於數據倉庫120b之前,管理器110可以允許由數據倉庫120b對所述查詢進行評估。在該示例中,所 討論的數據集合在數據倉庫120a到120b之間並不是完全同步的,而 是粗略地同步的,在此情況下允許具有用於對一查詢進行評估的足夠 數據的數據倉庫120對該查詢進行評估,即使它們不具有所討論的數 據集合的最新版本。在圖1所示的數據倉庫系統100的實施例中,可以將管理器IIO 配置成利用操作資料庫130來保持與由數據倉庫120存儲的數據集合 有關的信息,如標識了存儲有給定數據集合的位置(例如,具有該給 定數據集合的唯一拷貝或副本的特定數據倉庫120)的信息,以及針 對任何正在進行的更新活動而標識了數據集合的每個拷貝的狀態的信 息。例如,在一個實施例中,操作資料庫130可以包括與由數據倉庫 120存儲的客戶貨運數據表的每個拷貝相對應的相應記錄。對於圖2 所示的實施例,操作資料庫130可以存儲兩個這種記錄,其中每一個 都將相應的數據倉庫120a到120b標識為存儲有客戶貨運數據表的相 應副本。此外,每個記錄都可以包括表明該表在對應的數據倉庫120a 和120b內的狀態的欄位。參考在上一段中給出的示例,在管理器IIO 正在對數據倉庫120a內的客戶貨運數據表的更新進行協調的同時,操 作資料庫130內的對應記錄可以表明該副本正在被更新、不可用或者 其他合適的狀態。與之對照的是,針對由數據倉庫120b存儲的客戶貨 運數據副本的記錄可以表明該副本不是正在被更新或已完成對該副本 的更新。在各種實施例中,可以將操作資料庫130配置成存儲對數據集合 的位置和狀態進行標識的不同類型的數據。例如,位置標識數據可以 包括數據倉庫120的唯一標識符,如系統名稱、網際協議(IP)地址、 或其他合適的標識符。狀態信息可以涵蓋從表明是否正在更新某個給 定數據集合的簡單信號到表徵給定數據集合的狀態的複雜欄位的範 圍。例如,在某些實施例中,與數據集合相對應的狀態信息可以表明 更新該數據集合的最後一次、用以執行該更新的數據源160、該更新 的原因(例如,由於調度操作或手動操作),或者任何其他合適的狀態信息。在某些實施例中,(例如,在將管理器110配置成支持對數 據倉庫120的多個並發讀或寫操作的實施例中)可以將管理器110配 置成利用事務操作來讀取和/或修改操作資料庫130以確保操作狀態的 同步。在一個實施例中,管理器IIO可以利用由操作資料庫130存儲的 位置和狀態信息來實現由多個數據倉庫120存儲的數據的粗同步。即, 可以將管理器110配置成在從數據倉庫120提取數據並向數據倉庫 120存儲數據時以及在接收到檢索所存儲的數據的操作(例如,查詢) 時查閱操作資料庫130。圖3例示了利用粗同步將所提取的數據存儲 在數據倉庫120中的方法的一個實施例。共同地參照圖1到圖3,操 作始於塊300,在該塊中,開始從一個或更多個數據源提取數據集合 的操作。例如,在一個實施例中,可以將管理器110配置成重複地(例 如每小時、每晚、每周)從一個或更多個數據源160 (如分布在整個 企業中的客戶履行地點)中提取諸如客戶貨運數據的數據集合。作為 另 一種選擇,用戶或應用可以經由客戶機140請求提取和存儲數據集 合。在某些實施例中,作出如下構思可以從數據源160同時提取多 個數據集合併在一個或更多個數據倉庫120內對它們進行更新。例如, 作為批作業或批處理,如調度批作業,可以同時提取並存儲多個數據 集合;或者可以從數據源160動態地流式傳輸多個數據集合併在數據 倉庫120內對它們進行更新。隨後,管理器110例如通過向數據源160發出查詢或其他命令來 檢索所提取的數據以抽出數據(塊302)。如果有必要的話,可以對 所提取的數據進行變換(塊304)。例如,如上所述,可能需要改變 所提取的數據的格式,或者根據數據倉庫120的數據存儲要求而需要 修改數據本身。管理器110接著確定哪個數據倉庫120容納有所提取的數據集合 (塊306)。例如,在一個實施例中,管理器110可以查閱操作數據 庫130以根據其中存儲的記錄來確定所提取的數據集合所在的位置。 管理器110接著選擇要使用所提取的數據集合來進行更新的特定數據倉庫120,並更新與該數據集合相關聯的狀態信息以表明發生了所述 更新(塊308)。在某些實施例中,可以將管理器110配置成按並行 或交疊方式對容納有所提取的數據集合的每個數據倉庫120進行更 新,儘管這些更新可以在不同的時間開始或結束。在圖3中針對塊308 到312中的重複塊例示了這種並行性,可以對若干不同數據集合或數 據集合副本中的每一個並行地執行這些塊。例如,可以將管理器110 配置成在若干不同數據倉庫120上同時開始對所提取的數據集合進 行更新;或者可以交錯進行這些更新,使得它們在時間上部分地交疊。 而且,需要指出的是,在某些實施例中,可以在多個不同數據倉庫120 內同時更新多個不同數據集合。在其他實施例中,可以將管理器110配置成按串行或有條件的方 式對數據倉庫120進行更新。例如,如果數據倉庫120的一子集複製 了所提取出的數據集合,那麼管理器IIO可以隨機地選擇特定數據倉 庫120來開始進行更新。作為另一種選擇,管理器110可以選擇所述 子集中的最不繁忙的數據倉庫120,或者可以利用某些其他選擇準則。 在操作資料庫130對未處理數據集合讀操作進行跟蹤的某些實施例 中,如果當前正在讀取該數據集合(例如,通過查詢),那麼可以不 選擇一數據倉庫120來進行數據集合更新。 一旦選擇了數據倉庫120, 在一個實施例中,管理器IIO可以對在操作資料庫130中存儲的與該 數據集合和所選擇的數據倉庫120相關聯的記錄中的狀態信息進行更 新,以表明在所選擇的數據倉庫中正在對該數據集合進行修改。如以 上指出的,在某些實施例中,管理器IIO可以利用事務操作來與操作 資料庫130相交互,以例如確保多個並發操作的適當排序。接著將所提取出的數據集合存儲於所選擇的數據倉庫120 (塊 310)。需要指出的是,可以經由其他數據倉庫120對該數據集合的其 他副本進行訪問和/或更新,同時對所選擇的數據倉庫120的更新繼續 進行。 一旦完成了該更新,管理器110就對與該數據集合相關聯的狀 態信息進行更新以表明完成了該更新(塊312)。作出如下構思在某些實施例中,管理器110在將所提取的數據集合存儲到其對應的數據倉庫120中時不必對該數據集合進行緩衝。 在一個另選實施例中,管理器IIO在開始從數據源160進行數據提取 之前可以選擇數據倉庫120來進行更新。管理器110接著可以將所提 取的數據(施加適當的變換)流式傳輸或者使得該數據被流式傳輸到 所選擇的數據倉庫120,並且可以隨後使用更新後的數據倉庫120作 為用於對其他數據倉庫120進行更新的數據源。進一步作出如下構思 在某些實施例中,可以同時(而不是順序地)對多個數據倉庫120進 行更新。例如,如果在3個數據倉庫120中複製有某個給定的數據集 合,則可以同時對這些數據倉庫中的2個進行更新,而留下第3個數 據倉庫以供對該給定數據集合進行查詢。最後,在某些實施例中,通 過同時對所有數據倉庫120 (或其選定子集)進行更新,在操作數據 庫130中適當地表示出狀態,可以實現(與粗同步相對的)完全同步。 在圖4中例示了利用粗同步對由多個數據倉庫120存儲的數據進 行查詢的方法的一個實施例。共同地參照圖l到圖4,操作始於塊400, 在該塊中,接收到依賴於由多個數據倉庫120存儲的一個或更多個數 據集合的查詢操作。例如,在一個實施例中,可以將管理器110配置 成從客戶機140接收這種查詢,而不是直接或經由web服務接口 150 來接收。隨後,管理器IIO對所接收到的查詢進行分析以確定該查詢的數 據集合依賴性(塊402)。在一個實施例中,對數據集合依賴性的確 定可以包括對由該查詢引用的特定數據集合的確定,以及對與所依賴 的這些數據集合有關的任何附加狀態信息的確定。例如,在一個實施 例中,管理器110可能確定一特定查詢依賴於圖2所例示的客戶貨運 數據表,進而確定所依賴的數據是前一日曆季度的數據。管理器110接著確定所依賴的數據集合在數據倉庫120內的位 置,和與所存儲的數據集合相關聯的當前狀態信息(塊404)。例如, 管理器110可以查閱操作資料庫130,以針對所依賴的每個數據集合 來確定哪個數據倉庫120容納有該數據集合的拷貝,以及與該拷貝相 關聯的狀態信息(例如,當前正在被更新、自某個日期起是最新的由於維護而離線,等等)。基於管理器110對所接收到的查詢對數據集合依賴性以及與數據 集合在數據倉庫120內的位置和狀態有關的信息的分析,管理器110 確定是否任何數據倉庫120具有用以對所接收到的查詢進行評估的足 夠數據(塊406)。例如,在一個實施例中,如果一數據倉庫120具 有某個給定查詢所依賴的每個數據集合的拷貝,如果不是正在更新所 依賴的每個數據集合(例如,通過諸如圖3所例示的那樣的提取和存 儲操作),並且如果所依賴的每個數據集合都滿足該查詢的狀態要求 (例如,每個數據集合都至少與由該查詢所指定的任何日期範圍一樣 新),那麼管理器110可以確定該數據倉庫120具有足夠數據來對該 查詢進行評估。在其他實施例中,管理器110可以採用不同或附加的 準則來確定一給定數據倉庫120對於給定查詢是否具備數據充足性。 例如,這種準則可以包括與數據倉庫120的能力或資源(如其對某些 類型的查詢語言進行評估的能力或其可用於處理複雜查詢的計算資 源)有關的信息。在某些實施例中,可以將一個或更多個數據倉庫120配置成例如 通過對可以由給定數據倉庫120同時評估的查詢的數量進行限制來對 查詢評估資源進行管理。例如,可以將數據倉庫120配置成為查詢 的執行提供一定數量的"作業時間片",並且可以在所有時間片都被佔 用的情況下不可接受其他查詢。在某些實施例中,無論一給定查詢的 複雜度如何,該查詢都可以對應於一個可用作業時間片。在其他實施 例中,更複雜的查詢可以佔用多個作業時間片,或者數據倉庫120可 以採用其他類型的負載平衡策略。在某些實施例中,管理器110在確 定給定數據倉庫120是否具有用以對給定查詢進行評估的足夠數據時 還可以考慮該給定數據倉庫120的可用查詢評估資源。例如,在一個 實施例中,管理器110可以不選擇具有用以對查詢進行評估的足夠數 據但是沒有用於進行查詢評估的可用資源的數據倉庫120。如果沒有數據倉庫120具有用以對所接收到的查詢進行評估的足 夠數據(或者,在某些實施例中,如果沒有數據倉庫120具有用以對所接收到的查詢進行評估的足夠的可用資源),那麼管理器110可以 將該查詢入隊,直到諸如可以識別出足夠的數據倉庫120的時間為止 (塊408)。例如,在一個實施例中,管理器110可能識別出所接收 到的查詢依賴於當前正在被更新到特定數據倉庫120中的數據集合, 並且在完成了該更新時可以在該特定數據倉庫120上對要評估的該查 詢進行調度。作為另一種選擇,管理器110有時可以對已入隊的查詢 進行再評估,以確定是否有數據倉庫120已變得可用於對查詢進行評 估。在某些實施例中,為了避免客戶機死鎖,管理器110可以對查詢 可以保持入隊狀態的時間長度加以限制,並且可以在其查詢超過了入 隊時間限制的情況下向客戶機返回錯誤情況。如果識別出足以對所接收到的查詢進行評估的數據倉庫120,那 麼管理器110將所接收到的查詢傳送給該數據倉庫120以進行評估(塊 410)。需要指出的是,在粗同步下,可以在由一個數據倉庫120對以 特定數據集合為目標的查詢進行評估的同時,在另一數據倉庫120上 對該特定數據集合的副本進行更新。圖5A示出了例示出在粗同步下對數據集合的更新與對數據集合 的查詢之間的關係的一個實施例的時序圖。在所例示的時序圖中,管 理器110在時刻Tl處開始對特定數據集合進行更新,此時數據倉庫 120a和120b複製有該數據集合。隨後,在時刻T2處由管理器110 接收到以正在被更新的數據集合為目標的查詢。在比T2晚的時刻T3 時在數據倉庫120a處完成了該數據集合更新,而在比T3晚的時刻 T4時在數據倉庫120b處完成了該數據集合更新。在所例示的實施例中,示出了對所接收到的查詢進行評估的3個 可能的時段。在第一情況下,該查詢可以由正在被更新的數據集合的 更新前的內容來滿足。例如,管理器110連同操作資料庫130—起可 以確定對該查詢進行評估所必需的數據並不依賴於當前的更新。在此 情況下,在時刻T2之後可以由容納了有關數據集合的任何可用數據 倉庫120來評估該查詢。即,在接收到該查詢之後一旦可以實施就可 以對其進行評估,在某些情況下這可能會引起延時。例如,在某些實施例中,如以上指出的,可能不允許針對當前正在被更新的數據倉庫
120,對查詢進行評估。此外,在某些情況下,數據倉庫120可能太繁 忙,以至於不能立即接受該查詢。然而,在某些實施例中,在該查詢 依賴於更新前的數據的情況下,不必對在時刻T2之後何時可以執行 該查詢進行與任何更新有關的時間限制。
在第二和第三情況下,該查詢可能依賴於正在被更新的數據集合 的更新後的內容。即,該查詢可能要求對在時刻Tl時開始的數據集 合更新中反映的數據進行正確的評估。在所例示的實施例中,該更新 在時刻T3時在數據倉庫120a處完成,而在時刻T4時在數據倉庫120b 處完成。相對應的,可以在時刻T3之後的任何時刻由數據倉庫120a 對該查詢進行評估,而在時刻T4之後的任何時刻由數據倉庫120b對 該查詢進行評估。如先前指出的並且如圖5A所例示的,在粗同步下, 可以在已更新了被一查詢作為目標的數據集合的所有副本之前由特定 數據倉庫120對該查詢進行評估,而在某些情況下(例如,在該查詢 依賴於更新前的數據的情況下)可以在已更新了該數據集合在該特定 數據倉庫120上的副本之前對該查詢進行評估。如以上指出的,在某 些實施例中,可以在由一個數據倉庫120對以特定數據集合為目標的 查詢進行評估的同時,將該特定數據集合存儲到另一數據倉庫120。 此外,在某些實施例中,在已將該特定數據集合存儲到任意給定數據 倉庫120之後,該給定數據倉庫120可以對針對該特定數據集合的查 詢進行評估。例如,在已將經複製的數據集合更新到某些或所有對應 的數據倉庫120之後,任何更新後的數據倉庫120都可能能夠滿足對 經複製的數據集合的查詢。
而且,需要指出的是,在採用用於鎖定數據集合的某些部分的細 粒度機制的某些實施例中,如上所述,容納有正在被更新的數據集合 的一給定數據倉庫120可能在該更新完成之前可用於對針對該數據集 合的查詢進行評估。例如,在某些實施例中,可以將管理器110和操 作資料庫130配置成跟蹤數據集合的多個部分的狀態(例如,表的各 行或多行的集合)。儘管針對給定數據倉庫120正在更新特定數據集合的一個部分,但是管理器IIO可以確定一給定查詢依賴於該特定數
據集合的當前沒有被更新的部分,因此可以允許由該給定數據倉庫
120對該查詢進行評估。在這種實施例中,可以在功能上將針對數據 集合中的不在進行更新的部分的查詢處理成好像該查詢依賴於與正在 被更新的數據集合無關的數據集合一樣,並且可以允許與該更新無關 地對其進行評估。在圖5A的環境下,可以在不與時刻T3和T4處的 更新完成點同步的情況下允許在時刻T2時接收到該查詢之後的任何 時間對這種查詢進行評估。
圖5B到5D與圖5A所示的各種時間點相關地例示了利用粗同步 所複製的數據集合的一個實施例的具體示例。在圖5B到5D所示的實 施例中,將客戶定單數據集合配置成由數據倉庫120a和120b來複製。 圖5B例示了在更新開始之前的時刻(例如,在圖5A所示的時刻Tl 之前的時刻)時該客戶定單數據集合的副本。在圖5B中,按更新前 的狀態示出客戶定單數據集合的兩個副本。
圖5C例示了在已更新了數據倉庫120a的副本之後但是在更新了 數據倉庫12b0的副本之前(例如,在圖5A所示的時刻T3與T4之 間的時刻)時該客戶定單數據集合的副本。如圖5C所示,客戶定單 數據集合的這兩個副本處於不相似的狀態。最後,圖5D例示了在已 更新了所述兩個副本之後的時刻(例如,在圖5A所示的時刻T4之後 的時刻)時該客戶定單數據集合的副本。如上所述,對客戶定單數據 集合的查詢可能在對該數據集合的更新開始之後的任何時刻發生。根 據其數據集合要求,可以允許在完成了對兩個數據倉庫120a和120b 的更新之前(包括在這兩個數據集合副本具有不相似的內容(例如, 如圖5C所示)時的時刻)針對數據倉庫120a和120b中的任一個執 行特定查詢。
需要指出的是,在某些實施例中,數據倉庫系統100的組織可能 對於被配置成與系統100相交互的客戶機140來說是完全透明的。即, 在某些實施例中,客戶機140可能不具有數據倉庫120內的給定數據 集合的位置或狀態的直接知識。在某些這種實施例中,可以將管理器110配置成將多個數據倉庫120呈現為當從客戶機140的觀點來看是 單個虛擬數據倉庫(例如,可以將管理器110配置成對多個數據倉庫 120進行虛擬化)。由此,在某些這種實施例中,管理器110可以在 任意程度上自由地複製數據集合,重新確定數據集合在多個數據倉庫 120之中的位置,或者改變存儲在系統100內的數據的組織結構,同 時將單個、穩定的界面(如查詢界面)呈現給客戶機140。
在一個實施例中,在任意給定時刻,由數據倉庫120存儲的多個 數據集合可供給定客戶機140來進行查詢,並且在任意給定的時刻所
存儲的多個數據集合中的一個可能與所存儲的多個數據集合中的另一 個不相似。例如,所存儲的兩個數據集合可能由於它們被定義成存儲 不同類型的數據而不相似。作為另一種選擇,可以將所存儲的兩個數 據集合配置成複製同一數據,但是可以在某個給定時刻由於如上所述 的粗同步的操作而不相似。在某些實施例中,在這些場景中的任一場 景下的多個數據集合都可供客戶機140查詢,並且可以將管理器110 配置成對如何按對於客戶機140透明的方式在數據倉庫系統100內安 排和操縱這種數據集合的詳情進行管理。
對於客戶機140來說,可以與是否複製存儲在數據倉庫120內的 數據集合無關地進行數據倉庫120的虛擬化。圖6例示了對於客戶機 140將數據倉庫120虛擬化成單個數據倉庫的方法的一個實施例。共 同地參照圖1到圖6,操作始於塊600,在該塊中,管理器110存儲與 數據倉庫120中的數據集合有關的位置信息。例如,在一個實施例中, 管理器110可以將每個數據集合的位置信息連同對數據集合的狀態、 數據集合是否被複製等進行標識的其他信息 一起存儲在操作資料庫 130。
隨後,管理器IIO接收到以存儲在數據倉庫系統100內的特定數 據集合為目標的查詢(塊602)。作為響應,管理器110對能夠評估 所接收到的查詢的特定數據倉庫120進行識別(塊604)。例如,可 以將管理器110配置成對該查詢進行分析以檢測如上所述的數據集合 和狀態依賴性,並查閱操作資料庫130以識別出可以評估該查詢的一個數據倉庫120 (或者一個以上,如果複製了該數據集合的話)。諸 如正在進行的數據集合更新、數據倉庫工作負荷等之類的其他因素也 會影響對用於進行查詢評估的合適數據倉庫120的識別。
一旦識別出用以評估所接收到的查詢的數據倉庫120,管理器110 就將該查詢傳送給所選擇的數據倉庫120以進行評估(塊606)。接 著對該查詢進行評估(塊608),然後經由管理器110將結果返回給 進行請求的客戶機140 (塊610)。需要指出的是,在某些實施例中, 在提交查詢與接收查詢結果之間的所有步驟都可以是對客戶機140透 明的。還要指出的是,在某些情況下,管理器IIO可以在不能立即識 別出用於進行評估的合適數據倉庫120的情況下將該查詢入隊。此外, 在某些情況下,例如如果一查詢有形式錯誤或者對數據倉庫120的等 待超時了 ,管理器110可以將錯誤情況返回給進行請求的客戶機140。
數據倉庫計算基礎設施
每個數據倉庫120都可以包括計算硬體以及被配置成實現數據倉 儲功能的作業系統軟體和數據倉儲軟體(例如資料庫軟體)的相應集 合。在某些實施例中,所使用的計算硬體可以包括專用、高端多處理 器計算機系統,可以細緻地將該計算機系統與專用於特定安裝的定製 的作業系統和數據倉儲軟體集成起來。然而,對於購買、管理以及維 護來說這種配置可能是昂貴的。因此,在某些實施例中,任意或所有 數據倉庫120均可以包括由運行廣泛發布的或開放源碼的作業系統和/ 或數據倉儲軟體的多個較不昂貴(例如商用)計算機系統所組裝成的 相應計算集群。
圖7例示了可以實現數據倉庫120的計算集群的一個實施例。在 所例示的實施例中,數據倉庫集群700 (或簡稱為集群700)包括多個 計算節點710 (或簡稱為節點710)。每個節點710都耦合到多個交換 機720中的每一個,並且每個交換機720都耦合到相應的多個存儲器 陣列730。由此,在所例示的實施例中,每個節點710都可以通過合 適的交換機720來訪問任一存儲器陣列730。在一個實施例中,集群 700可以包括16個節點710、 8個交換機720以及64個存儲器陣列730。然而,需要指出的是,在各種實施例中,可以釆用任意多個節點710、 交換機720以及存儲器陣列730,以及用於將這些組成要素互連的各 種拓樸結構。
在一個實施例中,如以下結合圖8的描述更詳細地描述的,每個 節點710都可以包括單處理器或多處理器計算機系統。在某些實施例 中,節點710可以包括由包括Sun Microsystems、 Hewlett-Packard, IBM、戴爾或任何合適的系統製造商在內的多個廠商中的任何廠商提 供的通用伺服器、個人計算機或工作站系統。此外,可以將節點710 配置成執行一個或更多個合適的作業系統,如與Linux、 Microsoft Windows、 Solaris、 HP-UX、 AIX或任何其他合適的通用或專用操作 系統的某個版本兼容的作業系統。
一般來講,每個節點710都可以進行操作以針對可以經由存儲器 陣列730存儲的數據集合對經由管理器110接收到的查詢以及其他數 據倉庫操作進行評估,同時交換機730提供節點710與存儲器陣列730 之間的互連性。由此,在所例示的實施例中,在特定節點710上被評 估的查詢可以均勻地訪問存儲在任何存儲器陣列730上的數據集合。 在其他實施例中,可以將數據集合不均勻地提供給節點710。例如, 可以將給定節點710映射到包括某些數據集合但是不包括其他數據集 合的特定一個或更多個存儲器陣列730。在這種實施例中,根據特定 查詢所依賴的數據集合如何分布在多個存儲器陣列730上,多個節點 710可能需要參與對該特定查詢的評估。
在某些實施例中,交換機720和存儲器陣列730可以包括存儲區 域網(SAN)。例如,可以利用光纖信道互連或其他合適的SAN互連 和管理技術將交換機720耦合到節點710和存儲器陣列730。然而, 作出如下構思可以使用任何合適類型的網絡來將集群700的多個設 備互連。例如,在一個實施例中,作為互連技術,可以採用吉比特以 太網或10吉比特乙太網。
每個存儲器陣列730都可以包括一個或更多個大容量存儲裝置, 如固定磁碟裝置。例如,在一個實施例中,每個存儲器陣列730都可以包括被配置成獨立盤冗餘陣列(RAID陣列)的相同數量個SCSI(小 型計算機系統接口 )硬碟驅動器。可以由存儲器陣列730自身來管理 由存儲器陣列730支持的各種存儲特徵,如盤分段(disk striping )、 鏡像以及數據奇偶校驗。例如,除了大容量存儲裝置以外,存儲器陣 列730還可以包括被配置成對這些裝置進行管理的附加硬體。作為另 一種選擇,存儲器陣列730可以是相對被動的,可以由智能交換機720 來管理其存儲特徵。作出如下構思除了磁碟以外或者作為磁碟的替 代物, 一給定存儲器陣列730可以包括其他類型的存儲裝置,如光學 介質或磁帶。此外,作出如下構思在某些實施例中,可以對各存儲 器陣列730進行相同的配置,而在其他實施例中,存儲器陣列730在 它們的配置和/或特徵集合方面可以是不同種類的。
在某些實施例中,可以容易地對集群700進行擴縮以使其與給定 數據倉庫120的預期工作負荷相匹配。例如,如果數據倉庫120預期 要容納接收不頻繁或相對簡單的查詢的大量數據,那麼可以將存儲器 陣列730配備成存儲所預期量的數據(包括如上所述的任何期望的數 據集合複製),同時可以基於所預期的工作負荷獨立地配備節點710。 如果查詢工作負荷或存儲要求萬一增加了,那麼隨後可以添加附加的 節點710、交換機720和/或存儲器陣列730。
作出如下構思在某些實施例中,可以將上述任何方法或技術(例 如,管理器IIO或數據倉庫120的功能,或圖3、 4以及6所例示的方 法)實現為能夠經由計算機可訪問的介質來存儲或傳送的程序指令和 數據。可以執行這種程序指令以執行特定計算功能,如數據倉儲和虛 擬化、存儲管理、查詢和數據集合分析、查詢評估、作業系統功能、 應用、和/或任何其他合適的功能。在一個實施例中,節點710可以包 括計算機可訪問介質。圖8例示了可以作為給定節點710的例示的計 算機系統的一個實施例。在所例示的實施例中,計算機系統800包括 經由輸入/輸出(I/O)接口 830耦合到系統存儲器820的一個或更多 個處理器810。節點710還包括均耦合到I/O接口 830的網絡接口 840 和SAN接口 850。需要指出的是,在某些實施例中,可以將計算機系統800的實例 配置成與集群700分開,並將該實例配置成執行數據倉庫系統100內 的其他應用或功能。例如,在一個實施例中,可以將計算機系統800 的一個或更多個實例配備在集群700的外部,並配置成執行可以經由 計算機可訪問介質來存儲或傳送的程序指令和數據並配置成實現管理 器110。在某些這種實施例中,被配置成實現管理器110的計算機系 統800的實例的配置可以與圖8所示的配置不同。例如,在某些實施 例中,計算機系統800的這種實例可以包括更多個或更少個處理器 810。此外,儘管在某些實施例中這種實例可以保留SAN接口 850, 但是也可以略去該接口 。
如以上指出的,在各種實施例中,計算機系統800可以是包括一 個處理器810的單處理器系統或包括若干個(如2、 4、 8或其他合適 的數量)處理器810的多處理器系統。處理器810可以是能夠執行指 令的任何合適的處理器。例如,在各種實施例中,處理器810可以是 實現任何不同指令集架構(ISA )(如x86、 PowerPc、 SPARC或MIPS ISA或任何其他合適的ISA)的通用或嵌入式處理器。在多處理器系 統中,每個處理器810都可以共同地但非必要地實現同一 ISA,
可以將系統存儲器820配置成存儲可由處理器810訪問的指令和 數據。在各種實施例中,可以採用任何合適的存儲器技術,如靜態隨 機存取存儲器(SRAM)、同步動態RAM (SDRAM)、非易失性/ 閃速型存儲器或任何其他類型的存儲器,來實現系統存儲器820。在 所例示的實施例中,將實現期望功能(如上述那些功能)的程序指令 和數據示出為作為代碼825存儲在系統存儲器820內。
在一個實施例中,可以將I/0接口 830配置成對處理器810、系 統存儲器820以及設備內的任何外圍設備(包括網絡接口 840、 SAN 接口 850或其他外圍接口 )之間的I/O業務量進行協調。在某些實施 例中,1/0接口 830可以執行任何必需的協議、定時或其他數據變換 以將來自一個組件(例如系統存儲器820)的數據信號轉換成適合於 由另一組件(例如處理器810)使用的格式。在某些實施例中,1/0接口 830可以包括對通過各種類型的外圍總線連接的設備的支持,如外 圍組件互連(PCI)總線標準或通用串行總線(USB)標準的變型。 在某些實施例中,可以將I/0接口 830的功能分成2個或更多個分開 的組件,如北橋和南橋。而且,在某些實施例中,可以將I/0接口 830 的某些或所有功能(如到系統存儲器820的接口 )直接併入處理器810 中。
可以將網絡接口 840配置成允許在計算機系統800與連接到網絡 的其他設備之間交換數據。例如,可以將管理器110配置成在集群700 的外部的計算機系統800上執行,並且被配置成集群700內的節點710 的特定計算機系統800可以經由網絡接口 840與位於外部系統上的管 理器110相通信。在各種實施例中,網絡接口 840可以支持經由以下 網絡進行通信有線或無線通用數據網絡,如任何合適類型的乙太網; 電信/電話網絡,如模擬話音網絡或數字光纖通信網絡;存儲器區域網, 如光纖通道SAN;或任何其他合適類型的網絡和/或協議。
在一個實施例中,可以將SAN接口 850配置成允許經由交換機 720在計算機系統800與存儲器陣列730之間交換數據。在某些實施 例中,如上所述,SAN接口 850可以包括光纖通道接口或另一合適的 接口。然而,作出如下構思在某些實施例中,可以通過標準的網絡 接口來實現SAN連接性。在這種實施例中,計算機系統800可以提供 單個網絡接口 (例如網絡接口 840)以與存儲裝置和其他計算機系統 相通信,或者計算機系統800可以將存儲裝置和通用網絡通信均勻地 散布在幾個類似配置的網絡接口上。
在某些實施例中,系統存儲器820可以是被配置成存儲如上所述 的程序指令和數據的計算機可訪問介質的一個實施例。然而,在其他 實施例中,可以接收、發送或在不同類型的計算機可訪問介質上存儲 程序指令和/或數據。 一般來講,計算機可訪問介質可以包括諸如磁或 光介質之類的存儲介質或存儲器介質,例如,經由I/O接口 830耦合 到計算機系統800的盤、CD-ROM或DVD-ROM,或經由SAN接口 850耦合到計算機系統800的存儲器陣列730。計算機可訪問介質還可以包括可以作為系統存儲器820或另 一類型的存儲器而包括在某些實 施例的計算機系統800中的任何易失性或非易失性介質,如RAM(例 如SDRAM、 DDR SDRAM 、 RDRAM、 SRAM等)、ROM等。此夕卜, 計算機可訪問介質可以包括傳輸介質或信號,該信號例如是經由諸如 網絡和/或無線連結的通信介質而傳送的諸如電、電磁或數字的信號, 使得可以經由網絡接口 840或SAN接口 850來實現。
儘管詳細地描述了以上實施例,但是本領域的技術人員一旦全面 理解了以上公開內容就將明了許多變型和修改。應當將以下權利要求 解釋成包括所有這種變型和修改。
權利要求
1、一種系統,該系統包括多個數據倉庫;和數據倉庫管理器,其被配置成從一個或更多個數據源提取數據集合以存儲在所述多個數據倉庫中的一個或更多個中;其中包括所述多個數據倉庫中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫都被配置成存儲由所述數據倉庫管理器提取的第一數據集合的相應副本;並且其中所述數據倉庫管理器還被配置成在所述第一數據集合的每個相應副本已被存儲到所述第一子集中的對應數據倉庫之前允許由數據倉庫的所述第一子集中的一個數據倉庫對依賴於所述第一數據集合的查詢進行評估。
2、 根據權利要求1所述的系統,其中,在所述第一子集中的第 一數據倉庫對所述查詢進行評估的同時,所述第一子集中的另一數據 倉庫正在存儲所述第一數據集合。
3、 根據權利要求1所述的系統,其中,所述數據倉庫管理器還 被配置成在所述第一數據集合已被存儲到任何給定數據倉庫之後允許 由所述第 一子集中的任何給定數據倉庫來評估所述查詢。
4、 根據權利要求1所述的系統,至少部分同時地將所述第一數 據集合存儲到數據倉庫的所述第 一子集中的每個數據倉庫。
5、 根據權利要求1所述的系統,其中所述多個數據倉庫中的一 個給定數據倉庫被配置成存儲由所述數據倉庫管理器提取的第二數據 集合,並且其中所述多個數據倉庫中的至少另 一數據倉庫不存儲所述 第二數據集合的任何副本。
6、 根據權利要求1所述的系統,其中所述多個數據倉庫中的每 一個都包括相應的關係資料庫。
7、 根據權利要求1所述的系統,其中所述數據倉庫管理器還被 配置成在操作資料庫中存儲與存儲在所述多個數據倉庫內的每個數據集合相對應的標識信息。
8、 根據權利要求7所述的系統,其中,對於所述第一數據集合, 所述標識信息包括數據倉庫的所述第一子集中每個數據倉庫的相應標 識符,以及表明是否已將所述第一數據集合存儲到數據倉庫的所述第 一子集中的一個對應數據倉庫中的相應狀態信息。
9、 根據權利要求8所述的系統,其中所述數據倉庫管理器還被 配置成根據所述相應狀態信息來確定數據倉庫的所述第一子集中的 一個給定數據倉庫具有足夠的數據來對所述查詢進行評估,並且被配 置成響應性地將所述查詢傳送給所述第一子集中的所述一個給定數據 倉庫以進行評估。
10、 根據權利要求l所述的系統,其中所述多個數據倉庫中的至 少兩個位於不同的物理地點。
11、 根據權利要求l所述的系統,其中所述多個數據倉庫中的每 一個都包括相應的計算集群,其中給定的相應計算集群包括經由存儲 區域網耦合到多個存儲裝置的至少 一個計算節點。
12、 根據權利要求11所述的系統,其中所述至少一個計算節點 被配置成實施與一版本的Linux兼容的作業系統。
13、 根據權利要求l所述的系統,其中所述數據倉庫管理器被配 置成經由web服務接口從進行請求的應用接收所述查詢。
14、 一種方法,該方法包括以下步驟從一個或更多個數據源提取數據集合以存儲在多個數據倉庫中 的一個或更多個中;將第 一數據集合的相應副本存儲在包括所述多個數據倉庫中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫中;以及在所述第 一數據集合的每個相應副本被存儲到所述第 一子集中 的對應數據倉庫之前允許由數據倉庫的所述第一子集中的一個數據倉 庫對依賴於所述第 一數據集合的查詢進行評估。
15、 根據權利要求14所述的方法,該方法還包括以下步驟在 所述第一子集中的第一數據倉庫對所述查詢進行評估的同時,所述第一子集中的另 一數據倉庫正在存儲所述第一數據集合。
16、 根據權利要求14所述的方法,該方法還包括以下步驟在 所述第 一數據集合已被存儲到任何給定數據倉庫之後,允許由所述第 一子集中的任何給定數據倉庫來評估所述查詢。
17、 根據權利要求14所述的方法,該方法還包括以下步驟至 少部分同時地將所述第一數據集合存儲到數據倉庫的所述第一子集中 的每個數據倉庫。
18、 根據權利要求14所述的方法,其中所述多個數據倉庫中的 一個給定數據倉庫被配置成存儲由所述數據倉庫管理器提取的第二數 據集合,並且其中所述多個數據倉庫中的至少另 一數據倉庫不存儲所 述第二數據集合的任何副本。
19、 根據權利要求14所述的方法,其中所述多個數據倉庫中的 每一個都包括相應的關係資料庫。
20、 根據權利要求14所述的方法,該方法還包括以下步驟在 操作資料庫中存儲與存儲在所述多個數據倉庫內的每個數據集合相對 應的標識信息。
21、 根據權利要求20所述的方法,其中,對於所述第一數據集 合,所述標識信息包括數據倉庫的所述第一子集中每個數據倉庫的相 應標識符,以及表明是否已將所述第一數據集合存儲到數據倉庫的所 述第一子集中的一個對應數據倉庫中的相應狀態信息。
22、 根據權利要求21所述的方法,該方法還包括以下步驟 根據所述相應狀態信息來確定數據倉庫的所述第一子集中的一個給定數據倉庫具有足夠的數據來對所述查詢進行評估;以及響應於所述確定將所述查詢傳送給所述第一子集中的所述一個給定數據倉庫以進行評估。
23、 根據權利要求14所述的方法,其中所述多個數據倉庫中的 至少兩個位於不同的物理地點。
24、 根據權利要求14所述的方法,其中所述多個數據倉庫中的 每一個都包括相應的計算集群,其中給定的相應計算集群包括經由存儲區域網耦合到多個存儲裝置的至少 一個計算節點。
25、 根據權利要求24所述的方法,其中所述至少一個計算節點 被配置成實施與一版本的Linux兼容的作業系統。
26、 根據權利要求14所述的方法,該方法還包括以下步驟經 由web服務接口從進行請求的應用接收所述查詢。
27、 一種包括有程序指令的計算機可訪問介質,其中可以由計算 機系統執行所述程序指令以從一個或更多個數據源提取數據集合以存儲在多個數據倉庫中 的一個或更多個中;將第一數據集合的相應副本存儲在包括所述多個數據倉庫中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫中;以及在所述第 一數據集合的每一個相應副本被存儲到所述第 一子集 中的對應數據倉庫之前允許由數據倉庫的所述第一子集中的一個數據 倉庫對依賴於所述第 一數據集合的查詢進行評估。
28、 根據權利要求27所述的計算機可訪問介質,其中,在所述 笫 一子集中的第一數據倉庫對所述查詢進行評估的同時,所述第 一子 集中的另 一數據倉庫正在存儲所述第 一數據集合。
29、 根據權利要求27所述的計算機可訪問介質,其中所述程序 指令還可以執行以在所述第一數據集合已被存儲到任何給定數據倉 庫之後,允許由所述第一子集中的任何給定數據倉庫來評估所述查詢。
30、 根據權利要求27所述的計算機可訪問介質,其中至少部分 同時地將所述第一數據集合存儲到數據倉庫的所述第一子集中的每個 數據倉庫。
31、 根據權利要求27所述的計算機可訪問介質,其中所述多個 數據倉庫中的每一個都包括相應的關係資料庫。
32、 根據權利要求27所述的計算機可訪問介質,其中所述程序 指令還可以執行以在操作資料庫中存儲與存儲在所述多個數據倉庫 內的每一個數據集合相對應的標識信息。
33、 根據權利要求32所述的計算機可訪問介質,其中,對於所述第一數據集合,所述標識信息包括數據倉庫的所述第一子集中每一 個數據倉庫的相應標識符,以及表明是否已將所述第一數據集合存儲 到數據倉庫的所述第一子集中的一個對應數據倉庫中的相應狀態信 息。
34、 根據權利要求33所述的計算機可訪問介質,其中所述程序 指令還可以執行以根據所述相應狀態信息來確定數據倉庫的所述第一子集中的一 個給定數據倉庫具有足夠的數據來對所述查詢進行評估;以及響應於所述確定將所述查詢傳送給所述第一子集中的所述一個 給定數據倉庫以進行評估。
35、 根據權利要求27所述的計算機可訪問介質,其中所述程序 指令還可以執行以實施與一版本的Linux兼容的作業系統。
36、 根據權利要求27所述的計算機可訪問介質,其中所述程序 指令還可以執行以經由web服務接口從進行請求的應用接收所述查 詢。
37、 一種系統,該系統包括多個數據倉庫,其被配置成存儲從一個或更多個數據源提取的數 據集合;以及數據倉庫管理器,其被配置成將所述多個數據倉庫作為單個數據 倉庫呈現給客戶機,其中所述多個數據倉庫內的所述數據集合的位置 對於所述客戶機是透明的;其中,在給定時刻,由所述多個數據倉庫中的第一數據倉庫存儲 的並且在所述給定時刻可供所述客戶機進行查詢的第 一數據集合與由 所述多個數據倉庫中的第二數據倉庫存儲的並且在所述給定時刻可供 所述客戶機進行查詢的第二數據集合不相似;並且其中,響應於接收到來自所述客戶機的針對由所述多個數據倉庫 中的一個或更多個數據倉庫存儲的數據集合的查詢,所述數據倉庫管 理器還被配置成識別所述多個數據倉庫中的能夠對所述查詢進行評估 的一個特定數據倉庫,並將所述查詢傳送給所述特定數據倉庫以進行評估。
38、 根據權利要求37所述的系統,其中包括所述多個數據倉庫 中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫都被配置成 存儲給定數據集合的相應副本。
39、 根據權利要求38所述的系統,其中所述數據倉庫管理器還 被配置成在所述給定數據集合的每個相應副本已被存儲到所述第一 子集中的對應數據倉庫之前,允許由數據倉庫的所述第一子集中的一 個數據倉庫對依賴於所述給定數據集合的查詢進行評估。
40、 根據權利要求37所述的系統,其中所述多個數據倉庫中的 一個給定數據倉庫被配置成存儲第二數據集合,並且其中所述多個數 據倉庫中的至少另 一數據倉庫不存儲所述第二數據集合的任何副本。
41、 根據權利要求37所述的系統,其中所述多個數據倉庫中的 每一個都包括相應的關係資料庫。
42、 根據權利要求37所述的系統,其中所述數據倉庫管理器還 被配置成在操作資料庫中存儲與存儲在所述多個數據倉庫內的每個 數據集合相對應的標識信息。
43、 根據權利要求42所述的系統,其中,對於給定數據集合, 所述標識信息包括存儲有或要存儲所述給定數據集合的所述一個或更 多個數據倉庫中每一個的相應標識符,並且其中所述標識信息還包括 表明是否已將所述給定數據集合存儲到對應數據倉庫的相應狀態信 息。
44、 根據權利要求43所述的系統,其中,所述數據倉庫管理器 識別能夠對所述查詢進行評估的所述特定數據倉庫的操作還包括根據所述查詢進行評估。
45、 根據權利要求37所述的系統,其中所述數據倉庫管理器還 被配置成經由web服務接口從進行請求的應用接收所述查詢。
46、 一種方法,該方法包括以下步驟從一個或更多個數據源提取數據集合以存儲在多個數據倉庫中的一個或更多個中;將所述多個數據倉庫作為單個數據倉庫呈現給客戶機,其中所述 多個數據倉庫內的所述數據集合的位置對於所述客戶機是透明的;以 及響應於接收到來自所述客戶機的針對由所述多個數據倉庫中的 一個或更多個數據倉庫存儲的數據集合的查詢,識別所述多個數據倉 庫中的能夠對所述查詢進行評估的一個特定數據倉庫,並將所述查詢 傳送給所述特定數據倉庫以進行評估,其中,在給定時刻,由所述多個數據倉庫中的第一數據倉庫存儲 的並且在所述給定時刻可供所述客戶機進行查詢的第 一數據集合與由 所述多個數據倉庫中的第二數據倉庫存儲的並且在所述給定時刻可供 所述客戶機進行查詢的第二數據集合不相似。
47、 根據權利要求46所述的方法,其中包括所述多個數據倉庫 中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫都被配置成 存儲給定數據集合的相應副本。
48、 根據權利要求47所述的方法,該方法還包括以下步驟在 所述給定數據集合的每個相應副本已被存儲到所述第 一子集中的對應 數據倉庫之前,允許由數據倉庫的所述第一子集中的一個數據倉庫對 依賴於所述給定數據集合的查詢進行評估。
49、 根據權利要求46所述的方法,其中所述多個數據倉庫中的 一個給定數據倉庫被配置成存儲第二數據集合,並且其中所述多個數 據倉庫中的至少另 一數據倉庫不存儲所述第二數據集合的任何副本。
50、 根據權利要求46所述的方法,其中所述多個數據倉庫中的 每一個都包括相應的關係資料庫。
51、 根據權利要求46所述的方法,該方法還包括以下步驟在 操作資料庫中存儲與存儲在所述多個數據倉庫內的每個數據集合相對 應的標識信息。
52、 根據權利要求51所述的方法,其中,對於給定數據集合, 所述標識信息包括存儲有或要存儲所述給定數據集合的所述一個或更多個數據倉庫中每一個的相應標識符,並且其中所述標識信息還包括 表明是否已將所述給定數據集合存儲到對應數據倉庫的相應狀態信 息。
53、 根據權利要求52所述的方法,其中,識別能夠對所述查詢 進行評估的所述特定數據倉庫的步驟還包括以下步驟根據所述相應 狀態信息來確定所述特定數據倉庫是否具有足夠的數據來對所述查詢 進行評估。
54、 根據權利要求46所述的方法,該方法還包括以下步驟經 由web服務接口從進行請求的應用接收所述查詢,
55、 一種包括程序指令的計算機可訪問介質,其中所述程序指令 可以執行以從一個或更多個數據源提取數據集合以存儲在多個數據倉庫中 的一個或更多個中;將所述多個數據倉庫作為單個數據倉庫呈現給客戶機,其中所述多個數據倉庫內的所述數據集合的位置對於所述客戶機是透明的;以 及響應於接收到來自所述客戶機的針對由所述多個數據倉庫中的 一個或更多個數據倉庫存儲的數據集合的查詢,識別所述多個數據倉 庫中的能夠對所述查詢進行評估的一個特定數據倉庫,並將所述查詢 傳送給所述特定數據倉庫以進行評估,其中,在給定時刻,由所述多個數據倉庫中的第一數據倉庫存儲 的並且在所述給定時刻可供所述客戶機進行查詢的第 一數據集合與由 所述多個數據倉庫中的第二數據倉庫存儲的並且在所述給定時刻可供 所述客戶機進行查詢的第二數據集合不相似。
56、 根據權利要求55所述的計算機可訪問介質,其中包括所述 多個數據倉庫中的兩個或更多個數據倉庫的第一子集中的每個數據倉 庫都被配置成存儲給定數據集合的相應副本。
57、 根據權利要求56所述的計算機可訪問介質,還包括在所 述給定數據集合的每個相應副本已被存儲到所述第一子集中的對應數據倉庫之前,允許由數據倉庫的所述第一子集中的一個數據倉庫對依 賴於所述給定數據集合的查詢進行評估。
58、 根據權利要求55所述的計算機可訪問介質,其中所述多個 數據倉庫中的一個給定數據倉庫被配置成存儲第二數據集合,並且其 中所述多個數據倉庫中的至少另 一數據倉庫不存儲所述第二數據集合 的任何副本。
59、 根據權利要求55所述的計算機可訪問介質,其中所述多個 數據倉庫中的每一個都包括相應的關係資料庫。
60、 根據權利要求55所述的計算機可訪問介質,還包括在操 作資料庫中存儲與存儲在所述多個數據倉庫內的每個數據集合相對應 的標識信息。
61、 根據權利要求60所述的計算機可訪問介質,其中,對於給 定數據集合,所述標識信息包括存儲有或要存儲所述給定數據集合的 所述一個或更多個數據倉庫中每一個的相應標識符,並且其中所述標 識信息還包括表明是否已將所述給定數據集合存儲到對應數據倉庫的 相應狀態信息。
62、 根據權利要求61所述的計算機可訪問介質,其中,識別能 夠對所述查詢進行評估的所述特定數據倉庫的操作還包括根據所述 相應狀態信息來確定所述特定數據倉庫是否具有足夠的數據來對所述 查詢進行評估。
63、 根據權利要求55所述的計算機可訪問介質,還包括經由web 服務接口從進行請求的應用接收所述查詢。
64、 一種系統,該系統包括 多個數據倉庫;和數據倉庫管理器,其被配置成從一個或更多個數據源提取數據集 合以存儲在所述多個數據倉庫中的一個或更多個中;以及操作資料庫,其被配置成與所述數據倉庫管理器相交互並且存儲 與所述數據集合相關聯的數據倉庫狀態信息,其中,響應於接收到來自多個客戶機中的一個給定客戶機的針對由所述多個數據倉庫中的一個或更多個數據倉庫所存儲的數據集合的 查詢,所述數據倉庫管理器還被配置成識別所述多個數據倉庫中的能 夠對所述查詢進行評估的一個特定數據倉庫,並將所述查詢傳送給所 述特定數據倉庫以進行評估,其中所述識別操作依賴於所述數據倉庫 狀態信息。
65、 根據權利要求64所述的系統,其中,對於給定數據集合, 與所述給定數據集合相關聯的所述數據倉庫狀態信息包括對被配置成 存儲所述給定數據集合的所述多個數據倉庫中的一個或更多個進行標 識的信息。
66、 根據權利要求64所述的系統,其中,對於給定數據集合, 與所述給定數據集合相關聯的所述數據倉庫狀態信息包括針對修改所 述給定數據集合的內容的操作而標識所述給定數據集合的狀態的信 息。
67、 根據權利要求64所述的系統,其中包括所述多個數據倉庫 中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫都被配置成 存儲由所述數據倉庫管理器提取的第一數據集合的相應副本,並且其 中所述數據倉庫管理器還被配置成在所述第一數據集合的每個相應 副本已被存儲到所述第一子集中的對應數據倉庫之前,允許由數據倉 庫的所述第一子集中的一個數據倉庫對依賴於所述第一數據集合的查 詢進行評估。
68、 根據權利要求64所述的系統,其中所述數據倉庫管理器還 被配置成將所述多個數據倉庫作為單個數據倉庫呈現給所述給定客戶 機,其中所述多個數據倉庫內的所述數據集合的位置對於所述給定客 戶機是透明的。
69、 根據權利要求68所述的系統,其中,在給定時刻,由所述 多個數據倉庫中的第一數據倉庫存儲的並且在所述給定時刻可供所述 給定客戶機進行查詢的第 一數據集合與由所述多個數據倉庫中的第二 數據倉庫存儲的並且在所述給定時刻可供所述給定客戶機進行查詢的 第二數據集合不相似
全文摘要
一種用於實現數據倉儲系統的設備和方法。根據第一實施例,一種系統可以包括多個數據倉庫;和數據倉庫管理器,其被配置成從一個或更多個數據源提取數據集合以存儲在所述多個數據倉庫中的一個或更多個中。包括所述多個數據倉庫中的兩個或更多個數據倉庫的第一子集中的每個數據倉庫都被配置成存儲由所述數據倉庫管理器提取的第一數據集合的相應副本。此外,所述數據倉庫管理器還可以被配置成在所述第一數據集合的每個相應副本被存儲到所述第一子集中的對應數據倉庫之前允許由數據倉庫的所述第一子集中的一個數據倉庫對依賴於所述第一數據集合的查詢進行評估。
文檔編號G06F17/30GK101305365SQ200580047505
公開日2008年11月12日 申請日期2005年12月14日 優先權日2004年12月17日
發明者保羅·J·博得, 克里斯多福·R·貝爾, 馬克·E·鄧拉普 申請人:亞馬遜科技公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀