我在數據存儲系列 的第一部分中提到
數據倉庫中數據存儲的結構與傳統的在線事務處理系統(OLTP)完全不同
其原因在於
OLTP 系統擁有許多用戶
通常在給定會話中處理不同的數據對象
而在線分析處理系統(OLAP)用戶較少
但通常引入大量的數據
因此
從設計角度來看
創建一種能讓相關數據存入物理上相近空間的結構是非常重要的
以至於能用最少的讀取次數將其取出
此類存儲的理想結構應當是星型模式
用多維數據集實現
在這樣的結構中
表格並非用關系數據庫系統(RDBMS)中的關系模式關聯
而是通過一個中央鍵表
以定義了數據從邏輯相關的表中搜集的維數
為了達到此目的
數據必須被非常規化
在這種組織方法中
中央表會產生冗余
經驗規律表明
在配置 OLTP 數據庫中需要做的一切
正好與應在 OLAP 數據庫中需要做的相反
以下講述的是其在 Microsoft SQL Server
中的實現方法
裝載 搜索 MOLAP 數據 MOLAP 的意思是多維 (Multidimemsional) OLAP
這不過是多維分析數據庫 (analytical cube database) 的另一種說法
SQL Server
有一套名為 Analysis Services 的工具
實現了多維分析數據庫的構建
同時提供了管理工具與用戶訪問軟件
這套工具原先是為 SQL Server
的 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
實現 OLAP 的有利性在於
當創建多維數據集時同時創建了一個與數據集匹配的可持續訪問的對象
因此你可以通過 Analysis Manager 的 Browse Data 選項浏覽多維集
或者查詢數據庫獲得大批量的數據
然後
就可以通過對維度的拖放操作建立需要分析的任何數據體
這是高效率的代表
用優化過的結構存儲與獲取數據
而該結構創建了對分析過程最有用數據的視圖
表格的無規律相關降到了最小
數據在物理空間中順序存儲
讀取次數也最少化了
這對 IT 顧問與他們的客戶來說
都是有用而高效的選擇
其他平台 如果在使用一個基於 ERP 系統建立的數據倉庫
如 SAP R/
或 Oracle
你會發現
在構建工具方面會有所不同
但基本概念與結構都是一樣的
仔細斟酌這些系統在您環境中的表現
將會使您的規劃更加高效
靈活
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22152.html