熱點推薦:
您现在的位置: 電腦知識網 >> 操作系統 >> Windows系統管理 >> 正文

Microsoft數據倉庫架構

2013-11-11 21:51:31  來源: Windows系統管理 

  摘要本文簡單介紹了使用 Microsoft 數據倉庫架構的數據倉庫討論了數據倉庫能夠實現的功能使用數據倉庫的恰當時機以及如何將數據倉庫與系統體系結構合成一體
  
  簡介
  
   年發布的 版 Microsoft® SQL Server&#; 中已經包含數據倉庫軟件如果您對數據倉庫比較陌生您可能會問它能夠干什麼?什麼時候使用數據倉庫比較合適?怎樣才能將數據倉庫與系統體系結構合為一體?本文將簡要介紹使用 Microsoft 數據倉庫架構的數據倉庫
  
  數據倉庫
  
  在軟件行業相對短暫的歷史中數據庫已經成為收集和分布信息的系統的基礎這些數據庫深層隱藏的是統計學或測量方法戰略家們可以對其進行研究以提高系統的整體效率數據采集是這類信息的重要部分目的在於根據數據庫內容進行正確決策直到最近這種努力還需要昂貴而笨重的數據采集軟件包或能夠將信息請求精確翻譯成可使用的更有效的查詢的數據庫專家除特大型的機構以外對其他所有人來說這兩種方案的成本都極為昂貴
  
  就數據采集的目的而言能夠有效用於產品分類庫存控制和訂單條目系統的普通關系數據庫可能並不是最佳的設計跨表和跨數據庫(有時甚至是跨服務器)匯總輸出可能會非常復雜而這種復雜是可以避免的需要進行數據采集時創建一個可供數據分析查詢用的信息中心儲備庫將更有意義這就是數據倉庫的含義來自系統不同部分的信息被集成到數據倉庫中以便於訪問
  
  作為數據倉庫模型的立方體
  
  用立方體作為數據倉庫儲備庫的名稱雖然不完美但比較令人滿意如何區分數據倉庫立方體和幾何立方體呢?這兩種立方體之間存在幾個重要的不同之處數據倉庫立方體由任意數量的維度定義(並不限於三維有時數據倉庫立方體可能少於三維)描述數據倉庫立方體的維度與描述幾何立方體的長寬和高一樣如果需要可以將維度組合成任意數量的級別
  兩維間的關系可以用網格定型維度類似於網格坐標軸上的標記單元格才是內容內容對應於立方體每個維度的交叉結果單元格中的數據是一個計量單位計量單位是判斷立方體的全部依據如果立方體是關於售出項目的數目則計量單位就是已出售項目數量的計數要重復網格示例計量單位便是您在網格單元格中找到的數目
  
  圖上圖顯示的是兩維立方體的組織結構在該示例中產品地區是維度椰菜肥皂俄勒岡華盛頓西雅圖斯波坎是各個維度的級別包含不同圖表的單元格就是內容內容單元格中的單個數據就是計量值在該示例中立方體中共使用了三種計量單位
  
  維度和級別
  
  對於為雜貨店設計的數據倉庫立方體其維度可能包括產品優惠時間(營業天數)和地區等內容可能還包括雇員維度和客戶維度(某些雜貨店可能有會員帳戶)
  
  級別用於將維度按需要組織為更小的單位根據級別在立方體中的配置它們還可能包含其他級別例如假設有一個區域維也許這個雜貨店在三個州營業並且使用州界作為分界線假設區域維包含三個級別加利福尼亞俄勒岡和華盛頓如果該店在華盛頓州還包括其他子區域(例如西雅圖奧林匹亞亞基馬和斯波坎)即使加利福尼亞和俄勒岡區域沒有這樣的情況這些級別仍可以作為子級別添加到華盛頓區域級別只是組織維度內容的一種便利方法
  內容和計量單位
  
  內容是由各個維度組合而成的定位內容類似於使用坐標系就象數學立方體中的原點可以表示為 (x=y=z=)內容將由特定的維度組合(例如 (Product=broccoli Region=Seattle Time=Wednesday))表示生成一個有關星期三在西雅圖銷售椰菜的內容根據立方體的使用方法內容可能顯示一個類似於售出 單位物品銷售額為 $的計量單位計量單位的含義取決於立方體的定義方式在本例中可能有多種椰菜或在西雅圖地區有多個商店該值將表示定義組的匯總立方體內的計量單位可能是數字對於一個雜貨店計量單位可能會是產品價格淨銷售額銷售數量商品成本等
  
  匯總
  
  計數和總計的數學運算是數據倉庫之所以有用的重要原因之一屬於匯總功能維度組織完畢並已對立方體進行處理後將開始計算匯總通常在立方體初始填充後或對立方體的內容進行更改後將立刻進行匯總
  
  使用數據倉庫進行決策
  
  假設一個雜貨店的情形假定某種促銷已經進行了好幾天店主需要決定是否要再次進行促銷店主可能會產生如下疑問促銷期間賣出的產品比促銷前賣出的產品多嗎?
  
  在使用普通結構的事務數據庫中雜貨店庫存系統可以記錄價格產品銷售和促銷等情況庫存系統在插入和更新記錄方面進行了優化並且在簡單的程式化選擇(如檢索項目成本)方面可能也進行了優化這種情況是不太可能的系統的組織方式使得所生成的報告可以按天或按產品詳細描述某種銷售的有效性事實上為事務有效性而設計的系統和為查詢有效性而設計的系統間總是存在矛盾這種情況下就應該使用數據倉庫數據倉庫是一個獨立的存儲庫它使用已進行優化的結構中現有資源的相關數據
  
  在此例中使用數據倉庫將很容易回答店主的問題通過使用產品促銷和時間立方體維度計量項目銷售量的內容記錄總和便可以生成所需的結果
  
  與此技術相比其他系統中的信息甚至可能不在同一數據庫中庫存數據源可能和客戶數據源或雇員數據源不一樣即使該系統位於同一數據庫中建立一個查詢系統(該系統以一種可以生成正確答案的方式合並和匯總結果)也是非常繁瑣的事實上合並數據源和匯總結果正是數據倉庫軟件最擅長的
  
  FoodMart 示例立方體包含在 Microsoft SQL Server Analysis Services 軟件即 Microsoft 的數據倉庫軟件中對於了解使用數據倉庫時可以使用什麼樣的信息這是一個非常好的資源FoodMart 示例使用雜貨店作為模型
  查看立方體片段和編程接口
  
  雖然將數據倉庫構建成多維可能是簡單的設計選擇並且對於處理器來說執行跨越多個維度生成結果的查詢也不是特別的復雜但是多維輸出的結構顯示起來卻非常困難圖表圖形和表格通常都是使用兩維顯示的雖然有一些好的三維圖表工具但圖表會變得難以看懂查看多維輸出的常用技術是一次查看立方體的一個兩維輸出片段這也是 Microsoft SQL Server Analysis Tool 顯示輸出的方式
  
  使用 DSO
  
  幸運的是輸出並不局限於兩維Microsoft SQL Server Analysis Services 為多維數據倉庫輸出提供了編程接口DSO決策支持對象 (Decision Support Object)DSO 能夠用於編程訪問多個維度
  
  有關包含對象模型和程序員參考的 DSO 的詳細信息請閱讀 MSDN Online 上的決策支持對象 (Decision Support Object)
  
  使用 MDX
  
  MDX(多維擴展)是為查詢多維對象和數據而設計的語法對這樣的系統來說使用 MDX 要比使用 SQL(為完全不同的對象集而設計)更有效也更有意義MDX 查詢的語法與 SQL 查詢的語法類似請注意觀察下面的 MDX 查詢它將選用前面示例中的銷售數字(星期三在西雅圖銷售的椰菜)
  
  
  
  SELECT 
  [Measures][Sales] ON COLUMNS 
  [Time][Wednesday] ON ROWS
  FROM MySalesCube 
  WHERE [Region][Washington][Seattle] 
  AND [Product][Vegetable][Broccholi] 
  本查詢的輸出為一個標記有銷售額的列標記有星期三的行和交叉處包含銷售數字$的網格單元格
  
  SQL Server Analysis Server Manager 包含一個接收 MDX 查詢的接口此外MDX 查詢也可以被集成到使用 DSO 的程序中有關 MDX(包括簡單 MDX 查詢的基本結構和 SQL 與 MDX 之間的主要區別)的詳細信息請參閱 MSDN Online 上的MDX
  Microsoft 數據倉庫架構
  
  Microsoft 數據倉庫架構是一個易於集成到當前系統的開放式體系結構Microsoft SQL Server DTS 工具用於導入導出以及修復或轉換數據(如果需要)該架構包含一個用於自定義數據倉庫實現的以對象為中心的編程接口還有一個用戶接口即 Microsoft SQL Server Analysis Services Manager可用於配置數據倉庫並填寫或更新立方體中的內容它可用於安排任務監視性能以及對數據倉庫執行查詢
  
  您可以從 MSDN Online 了解有關如何使用 Microsoft SQL Server Analysis Services Manager 創建立方體的詳細信息還可以了解設計和配置數據倉庫時要注意的原則請查看使用方法一文
  
  數據倉庫的其他應用
  
  對於決策支持數據倉庫是一個了不起的工具但該軟件還具有其他實際用途
  
  數據歸檔便是其中一種用法某些系統的存儲能力可能有限因此需要經常從這些系統中刪除舊數據以便容納新數據如果需要歸檔信息以便保存長期的歷史報表請考慮將部分舊數據存入數據倉庫
  數據倉庫將報告數據從運行系統中隔離出來通過將查詢工作移動到更有效率的系統這種隔離能夠提高
From:http://tw.wingwit.com/Article/os/xtgl/201311/9340.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.