BI之SSAS完整實戰教程6 -- 設計維度、細化維度上:建立維度定義特性關係

MiroYuan發表於2016-09-18

前面我們使用過資料來源嚮導、資料來源檢視嚮導、Cube嚮導來建立相應的物件。

本篇我們將學習使用維度嚮導來建立維度。

通過前面幾個嚮導的學習,我們歸納一下共同點,主要分成兩步

1. 使用某種物件型別的嚮導建立物件,完成主要結構搭建

2. 使用相應的設計器完成最終物件的修改和細化

有點像送快遞,先通過大的物流(建立物件嚮導)把貨物送到相應的城市,再通過快遞員(設計器進行細化)送到具體顧客手中。

同樣的,我們使用維度嚮導以一種通用的方式來建立維度,然後根據自己的業務需求,使用維度設計器將建立的維度放置到它們的最終目的地。

文章提綱

  • 使用維度嚮導建立維度
  • 使用維度設計器設計維度
  • 總結

使用維度嚮導建立維度

維度可以提供切分多維資料集資料的功能。

前面提到過,維度包含層次結構的物件,分為特性層次結構和多級或使用者層次結構。前者對應於關係表中的單個列,後者派生自兩個或更多特性層次結構。

我們接著使用我們之前建立的專案ASMultidimensionalPOC 來進行進一步的練習。

在原有的基礎上,我們新增Geography維度,步驟:

一、 新增表DimGeography到dsv中

1. 切換到dsv檢視,點選DSV設計器工具欄上的Add/Remove Objects按鈕

2. 選擇DimGeography 新增到DSV中。

二、 使用維度嚮導建立維度

1. 右擊Dimensions資料夾 -->New Dimension

2. 在Select Creation Method頁面選擇預設項 Use an existing table

3. 在Specify Source Information頁面中,需要選擇用於建立維度的DSV, 基於的主表,維度的鍵列及名稱列(可選),按照下面選擇,下一步

在Main table中選擇DimGeography表.

Key columns列表和Name column欄位將自動設定為選定表的主鍵。

4. Select Related Tables

5. Select Dimension Attributes頁面顯示選擇作為要建立的維度的主表的列。

嚮導會將這些列轉換為維度特性。按下圖設定, Next

6. 最後一個頁面顯示將要為維度建立的特性,點選完成。

至此,我們用嚮導建立的第一個維度就完成了。

接下來使用維度設計器來進一步設計這個維度。

使用維度設計器設計維度

首先看下維度設計器的組成。

可以看到,頂部有4個tab頁,分別是

Dimension Structure,Attribute Relationships, Translations, Browser

本篇會介紹前兩個tab, Translations和Browser後面再講。

第一個tab包括3個窗格,分別是Attributes, Hierarchies, DSV

Attributes顯示維度的特性,Hierarchies窗格顯示維度的層次結構及其級別,DSV窗格顯示維度中使用的表。

此外,還包含一個工具欄,滑鼠放上去就能看到功能說明,不再多做介紹。

我們首先對Dimension Structure中的窗格進行介紹.

Attributes

特性層次結構(簡稱為特性)是隻包含兩個級別的層次結構,分別是子級別和All級別。

前者針對每個不同的特性值包含一個成員,後者包含所有葉子級別成員的聚合值。

All級別是可選的。每個特性直接對應於DSV中的某個表列。

Attributes窗格中預設檢視是Tree,還有List和Grid 檢視。

 

Attributes Relationships

同一緯度特性具有一對多關係時可以定義特性關係,例如 Country,State和City 之間。

每個維度必須至少有一個特性定義為鍵特性,維度嚮導會自動與維度的所有特性建立關係。(顯然鍵特性在多的一側)

指定特性關係有助於改進查詢效能以及告知使用者層次結構的聚合設計。

Atrributes Relationships包含3個窗格,如下

我們完成Country – State – City 特性關係。

可以通過Diagram窗格,Attributes窗格,Attribute Relationships窗格三種方式建立關係,我們常用的是前兩種,下面我們分別舉例。

一、建立關係

1.在Diagram窗格中通過拖拽的方式修改特性關係。

2.通過Attributes窗格建立 Country – Province關係

如下圖,右鍵多的這一側,選擇New Attribute Relationship

按下圖選擇

 

二、編輯關係

我們使用Attribute Relationships窗格編輯 French Country Region Name和Spanish Country Region Name特性的現有關係。

1. 在Attribute Relationships窗格中如下圖操作

選擇方框處,

將關係屬性Cardinality由Many設為One, 將English Country Region Name和French Country Region Name的關係由many-to-one改為one- to - one

同樣的方式修改下Spanish Country Region Name

三、刪除關係

通過Attribute Relationships刪除關係比較方便

 

通過設定關係, 預先聚合,可以不必遍歷完整的層次結構,效能上可以得到改進。

 

 

建立 使用者層次結構

使用者層次結構(也稱多級層次結構)是通過某個維度的特性建立的。

每個使用者層次結構都包含一個或多個級別,每個級別本身都是一個特性層次結構。

基於建立的Geography維度的特性,可以建立一個稱為Country-State-City-Postal Code的邏輯使用者層次結構。

1.切換到 Dim Geography維度的Dimension Structure選項卡,將相應的特性拖拽到右邊Hierarchies中,如下圖。

 

2. 改名

建立的層次結構預設名為Hierarchy, 右擊Rename改為Geography

將層次結構中的每一級都Rename,方法類似。

最終效果如下圖

現在已經建立了一個稱為Geography的使用者層次結構,並且該層次結構包含4個級別,可單擊箭頭檢視相關特性。

請注意Geography層次結構名稱旁邊的警告圖示以及層次結構名稱下面的曲線。

滑鼠移上去可以看到提示資訊,指示出該層次結構的一個或多個級別之間不存在特性關係,並且可能會導致效能下降。

當前的層次結構設計稱為非自然層次結構。

如果層次結構中的某個級別的特性值不能知道上一個級別中誰是父級,那麼就會存在非自然層次結構。

舉個更容易理解的非自然層次結構的示例Customer Gender-Age層次結構,其中Gender是維度的第一級,而Age是第二級。知道某個客戶37歲並不會給出任何性別暗示。

與此相對的是,在自然層次結構中,知道某個級別中某個特性的值可明確地指出在層次結構中下一個級別中誰是他的父級。

自然層次結構的一個示例是Product維度層次結構,其中包含Category,Sub-Category和Product 3個級別。知道某種產品的Sub-Category是Mountain Bike,那麼就知道他所屬的Category是Bike.

特性值之間的這種關係是通過特性關係來定義的。

我們優化當前的Geography層次結構,使其稱為自然層次結構。

1.切換Attribute Relationships頁面。可以看到,Post Code和City之間沒任何關係。

2.在Diagram窗格中,將Postal Code特性拖放到City特性。

此時建立起了關係。

3. 再切換Dimension Structure選項卡檢視,可以看到警告已消失。

儲存該維度。

 

總結

我們使用維度嚮導建立了第一個獨立的維度。

大家需要掌握維度嚮導的使用方法,並重點掌握維度設計器的用法(Dimension Structure和Attribute Relationships的頁面功能)

下一篇我們會將這個維度部署,修改一些部署錯誤,並檢視維度資料以及進一步細化。

祝學習進步:)

 

相關係列文章列表:

 


首發部落格園 by MiroYuan,轉載文章之後必須在文章頁面明顯位置給出作者和原文連線,否則保留追究法律責任的權利。

 

相關文章