上一篇我們已經完成了數據源的准備工作,現在我們就開始動手,創建第一個多維數據集(Cube)。
文章提綱
-
使用多維數據集向導創建多維數據集
-
總結Cube設計器簡介
-
維度細化
-
總結
一、使用向導創建多維數據集
在Analysis Services中,可以通過3種方法構建多維數據集:自上而下,自下而上或者基於一個空多維數據集。
一般我們從現有的關系數據庫自下而上構建。
在自下而上方式中,需要一個DSV作為多維數據集的構建基礎。
AS中的多維數據集(Cube)包括兩部分:
1. 一個或多個度量值組,其數據來自關系數據源中的一個或多個事實表。通常情況下,每個事實表對應一個度量值組,度量值組包含一個或多個度量值(例如銷售額,成本,售出產品計數)
2. 多維數據集還包含一個或多個來自關系維度表的維度(例如Product和Time).
構建多維數據集時,需要指定希望使用的事實表和維度表。每個多維數據集必須至少包含一個事實表,用於確定該多維數據集的內容。
后面使用向導時可以看到,如果不選量值組會提示:At least one measure group table must be selected.
另外構建多維數據集之前,必須基於維度表創建維度。
我們簡單小結一下:Cube=度量值組+維度
多維數據集向導將創建多維數據集所涉及的所有步驟打包在一起, 形成一個簡單的順序過程,創建步驟:
1. 右鍵 Cubes à New Cube…
點擊 Next進入下一步
選擇默認值,下一步
2.在Select Measure Group Table頁中,選擇FactInternetSales 和 FactResellerSales作為度量值組表,下一步
3. 在Select Measures頁面中,可以從度量值組表中選擇特定的列作為度量值。
默認情況下,會選中度量值組表中的所有列(鍵列除外)
按照默認選擇,下一步
4. 在Select New Dimensions頁面上,多維數據集向導將顯示可能的維度及其特性。默認情況下,多維數據集向導在每個維度中包含鍵特性,鍵特性將在此頁面上突出顯示,如下圖。取消選中Fact Internet Sales和Fact Reseller Sales維度,下一步。
5. 按照默認名稱,點擊Finish完成多維數據集的創建。
向導完成后,維度也會相應的創建,並且顯示在Solution Explorer中。
二、Cube設計器簡介
Adventure Works DW多維數據集將在多維數據集設計器中打開,如下圖
可以看到,多維數據集設計器具有多個tab, 通過這些tab, 可以對多維數據集進行各種操作。在多維數據集向導完成后打開的默認頁面是Cube Structure
其他的一些頁面包括:Dimension Usage, Caculation, KPIs, Actions, Partitions, Aggregations, Perspectives, Translations和Browser
Cube Structure頁面包含3個窗格:Measures(度量值)、Dimensions(維度)和Data Source View(數據源視圖)。
可以在Measures窗格中添加或修改度量值組和度量值。
使用Dimensions窗格可以添加或修改多維數據集的維度。
Data Source View 窗格顯示在多維數據集中使用的事實表和維度表,並使用不同顏色進行區分(黃色表示事實表,藍色表示維度表)
在每個窗格內部右擊,可以看到能夠在每個窗格中完成的各種操作。
三、維度細化
多維數據集向導僅向創建的維度中添加了最為基本的一些特性。若要對多維數據集中的數據進行分析,還需要對這些維度進行進一步細化, 后續文章我們專門有一篇講解維度的細化,下面我們先來一個維度細化示例。
1.在Solution Explorer中,雙擊Dim Date.dim維度。
Dim Date維度將在維度設計器中打開。
Dimension Structure頁面包含3個窗格:Attributes, Hierarchies和DSV
2.在DSV窗格中,選中DimDate表中除DateKey以外的所有列,拖到Attributes窗格。該操作會為DimDate表中的每一列創建一個特性。
3. 將鍵特性從Date Key重命名為Date
4. 將Fiscal Quarter特性從Attributes窗格拖放到Hierarchies窗格。該操作將創建一個層次結構,稱為Hierarchy.
將Month Number of Year 特性拖放到Hierarchies窗格的Fisical Quarter特性下面。該操作會在層次結構中創建另一個級別。
類似的,將Date特性拖放到Month Number of Year特性下面。
右擊層次結構並選擇Rename, 將層次結構重命名為Fiscal Quarter – Month Number of Year, 最終效果如下圖:
我們對其他維度也做一些調整。
Dim Currency.dim
Dim Customer.dim
將鍵特性從 Custom Key 重命名為 Custom
將DSV中來自DimCustomer表的所有列(Custom Key除外)拖放到Attributes窗格
Dim Sales Territory.dim
將鍵特性從Sales Territory Key 重命名為 Sales Territory
將DimSalesTerritory表中除SalesTerritoryKey和Image以外的所有列從DSV窗格拖放到Attributes窗格。
Dim Product.dim
將鍵特性從 Product Key重命名為Product
將DimProduct表中除ProductKey和LargePhoto以外的所有列從DSV拖放到Attributes 窗格。
Dim Promotion.dim
將鍵特性從Promotion Key 重命名為 Promotion
將DimPromotion表中除PromotionKey以外的所有列從DSV窗格拖放到Attributes窗格。
將 English Promotion Category特性從Attributes窗格拖放到Hierarchies窗格。該操作將創建一個新的層次結構。
將Discount Pct特性從Attributes窗格拖放到Hierarchies窗格的English Promotion Category特性下面。該操作會在層次結構中創建一個新的level.
將Promotion特性從Attributes窗格拖放到Hierarchies窗格的Discount Pct級別下面.
重命名層次結構為English Promotion Category – Discount Pct, 如下圖
Dim Reseller.dim
將鍵特性從Reseller Key重命名為Reseller
將DimReseller表中除ResellerKey以外的所有列從DSV窗格拖放到Attributes窗格。
將Annual Revenue特性從Attributes窗格拖放到Hierarchies窗格。改操作將創建一個新的層次結構。
將Number Employees特性從Attributes窗格拖放到Hierarchies窗格的Annual Revenue特性下面。該操作將創建一個新的level, 成為Number Employees
將Reseller特性從Attributes窗格拖放到Hierarchies窗格的Number Employees級別下面
重命名層次結構為Annual Revenue – Number of Employees , 如下圖
Dim Employee.dim
該維度具有多維數據集向導創建的3個鍵特性,與此相對的是,其他維度創建了一個鍵特性。這是因為,向導在Dim Employee維度內檢測到一種父子關系(后續教程介紹)
將Employee Key特性重命名為Employee
將DimEmployee表中除EmployeeKey, ParentEmployeeKey,Sales TerritoryKey和EmployeePhoto以外的所有列從DSV窗格拖放到Attributes窗格。
將Department Name特性從Attributes窗格拖放到Hierarchies窗格。該操作將創建一個新的層次結構。
將Title特性從Attributes窗格拖放到Hierarchies窗格的Department Name層次結構下面。
將Employee特性從Attributes窗格拖放進Hierarchies窗格的Title特性下面。
重命名層次結構為Department Name - Title
四、總結
現在,你已經成功使用SSDT創建了一個多維數據集,並對維度進行了細化。后續將會圍繞這個例子繼續進行擴展。
最后我們對本篇內容做個總結:
1. 需要了解向導創建多維數據集的順序 :
Select Creation Meathod (Use existing tables)
-->Select Measure Group Tables
-->Select Measures
-->Select New Dimensions
-->Completing the Wizard
2. Cube設計器的結構:
包含多個tab, 每個tab包含多個窗格,熟悉這些tab和窗格。
3. 初步了解維度細化的一些操作(后續會有專題講維度操作)
下一篇文章將會介紹如何部署這個項目到SSAS上,以及進行簡單的分析。
祝學習進步:)
首發博客園 by MiroYuan,轉載文章之后必須在文章頁面明顯位置給出作者和原文連接,否則保留追究法律責任的權利。