數據倉庫中數據存儲的結構與傳統的在線事務處理系統(OLTP)完全不同。其原因在於,OLTP 系統擁有許多用戶,通常在給定會話中處理不同的數據對象;而在線分析處理系統(OLAP)用戶較少,但通常引入大量的數據。因此,從設計角度來看,創建一種能讓相關數據存入物理上相近空間的結構是非常重要的,以至於能用最少的讀取次數將其取出。
此類存儲的理想結構應當是星型模式,用多維數據集實現。在這樣的結構中,表格並非用關系數據庫系統(RDBMS)中的關系模式關聯,而是通過一個中央鍵表,以定義了數據從邏輯相關的表中搜集的維數。為了達到此目的,數據必須被非常規化。在這種組織方法中,中央表會產生冗余。經驗規律表明,在配置 OLTP 數據庫中需要做的一切,正好與應在 OLAP 數據庫中需要做的相反。以下講述的是其在 Microsoft SQL Server 2000 中的實現方法。
裝載 搜索 MOLAP 數據
MOLAP 的意思是多維 (Multidimemsional) OLAP。這不過是多維分析數據庫 (analytical cube database) 的另一種說法。SQL Server 2000 有一套名為 Analysis Services 的工具,實現了多維分析數據庫的構建,同時提供了管理工具與用戶訪問軟件。這套工具原先是為 SQL Server 7.0 的 OLAP 服務開發的,對 OLAP 和數據挖掘同樣適用。
第一步應當是訪問 Analysis Manager ,在開始 | 程序 | Microsoft SQL Server | Analysis Service 中。你會看到程序的左欄顯示了所有有效的資源,右欄顯示詳細信息(在安裝 Analysis Service 時會創立初始 ODBC 數據源名稱 (DSN))。可以在控制面板 | 管理工具 | 數據源中對其進行管理。在系統 DNS 選項卡中列出了有效的數據庫。在此屏幕中可以添加或者刪除數據源。
數據源,為常規事務處理系統(通常為收集的數據,或在線歷史表)中的數據表,儲存著即將遷移指數據倉庫的信息。你將利用這些數據源為數據倉庫提供初始數據,如需要也會定期使用它們將數據添加至數據倉庫。
當添加或移除適當的數據源之後,你已經為在 Analysis Manager 中創建 OLAP 數據庫做好了准備。回到列示分析數據庫服務器名字的左邊窗格。在其中點擊鼠標右鍵,選擇 New Database,添加名字與描述。當然,目前數據庫是空的,還沒有數據結構。現在你可以為數據庫添加數據,如上述的多維形式的數據表:在左窗格剛建立的數據庫下方的 Cube 上點擊右鍵,選擇 New Cube,就會出現一個向導和一個編輯器。選擇向導並按照它的提示進行。你會被指引選擇數據源,包括設置 Data Link 屬性 (提供了一系列 Microsoft 的選項),以及建立一個到數據庫服務器的連接。
現在,向導將會讓你定義一個“事實”表,或者叫做上下文關聯序列,指定多維集的深度和方向。確定了這些,就做好了定義多維集維度的准備了。
此向導現在將協助你定義實際表的列數,多維集的維數 (通過 New Dimension 按鈕打開嵌套的維度向導),以及模式選擇。
維度向導將使用你所指定的數據表(以及嵌套字段)協助你繼續多維數據集的構建。然後,你可以指定關鍵列。 最後,維度向導會給你一個存儲模式的選擇。請選擇 Store as multidimensional OLAP (MOLAP)。當你完成此向導後,將會回到數據集向導並結束其構建過程。在 Storage Design Wizard (存儲設計向導)——允許你優化數據存儲以提高性能的向導中也可以使用它。其後,在 Analysis Manager 的左窗格樹形目錄中選擇 Cube Roles 項,為多維集創建安全特性。
重述
用 SQL Server 2000 實現 OLAP 的有利性在於,當創建多維數據集時同時創建了一個與數據集匹配的可持續訪問的對象。因此你可以通過 Analysis Manager 的 Browse Data 選項浏覽多維集,或者查詢數據庫獲得大批量的數據。然後,就可以通過對維度的拖放操作建立需要分析的任何數據體。
這是高效率的代表:用優化過的結構存儲與獲取數據,而該結構創建了對分析過程最有用數據的視圖。表格的無規律相關降到了最小,數據在物理空間中順序存儲,讀取次數也最少化了。這對 IT 顧問與他們的客戶來說,都是有用而高效的選擇。
其他平台
如果在使用一個基於 ERP 系統建立的數據倉庫,如 SAP R/3 或 Oracle,你會發現,在構建工具方面會有所不同,但基本概念與結構都是一樣的。仔細斟酌這些系統在您環境中的表現,將會使您的規劃更加高效、靈活。