Transcript 03_一般維度設計
Module 03
一般維度設計
概述
多維度分析透過事前的訪談定義,將使用者所需要的分析角
度列舉後,由多維度分析引擎產生所有分析角度的排列組合
,最後,將資料表依照對應的排列組合依序填入進行彙總,
這就是多維度分析最基礎的概念
在所有企業報表分析中,可將報表分為兩個基本組
成單位
維度:用來檢視資料的角度
•代表企業用來解析資料的實體單位,Ex:時間、地區、
單位、產品,構成報表的橫軸、縱軸或過濾條件。
量值:
•填入報表中維度交錯空格的彙總資料
維度概念
明確的資料檢視角度
以屬性為基礎的維度
維度(Dimension)在 Analysis Services 2008呈現的是完整的 business entity
例如:Customer, Product, Channel
維度透過屬性(attribute)提供了 entity 所有的資料
例如:名稱、說明、規格、價格
包含最明細之資料
維度蘊含著階層(Hierarchies)關係,將敘述性項目區分
為數個不同的層級(Level),層級本身也是抽象的
集合名詞,透過層級來指定階層間的上下關係。
構成層級的實體稱為成員(Members)
階層只是提供瀏覽屬性的一種方式
階層可以串連起多個屬性,以提供 drill-down 解析
路徑
每一種屬性預設都有自己的階層
單一層級
主索引鍵所在資料行稱為索引鍵(key Attribute),是維度的最小單位,且所
有的維度相關分析就與此索引鍵屬性關聯。
使用維度資料表建立維度
在設計維度物件之前,有幾個前提:
必須將所需要的維度資料表置於「資料來源檢
視」中。
同時需要使用的維度資料表必須具備主索引鍵(
索引鍵屬性。
如果是雪花狀資料表,亦必須設計維度表之間
的關聯性。
使用維度精靈建立維度
Step1:在「方案總管」中,點選維度按
下滑鼠右鍵,選擇之「新增維度」項目
Step2:在維度精靈視窗,選擇「使用現
有的資料表」
Step3
在SSAS裡的任何屬性(Attribute)都由三個資料行所構
成的,分別是:
索引鍵資料行(Key column)
•屬性的基礎欄位
名稱資料行(Name column)
•屬性要顯示的名稱(選擇性)
值資料行(Value column)
•屬性用來計算用的參考欄位(選擇性)
Step4:會自動根據在資料來源檢視中設定的索引鍵
關聯性,把所有可能相關的維度表一次列出來
Step5:會把所有相關維度表中的所有欄位逐一列出
,這些欄位也將是後續產生維度屬性(Attribute)的候
選項目
Step6:在「選取維度屬性」頁面,選擇「屬性類型
」可調整內鍵的維度屬性。
Step7:給予維度命名並完成
設定
編輯維度屬性(Attribute)
若使用者不希望看到大分類標耗時,可為這些屬性
(Attribute)加上屬性(Attribute)名稱資料行
將NameColumn設定為對應的名稱資料行
並更改顯示的名稱
建立屬性的層級關係
練習:用維度精靈建立維度
參照書本的步驟
P45~P51
屬性關聯性
屬性關聯性為屬性之間彼此的對應關係,其關係來自於「資
料表來源檢視」的鍵值連結關係。
需注意,屬性間的關聯性是否會隨的
時間發生變化。
如果屬性關聯性(員工->部門),
有可能會異動,此時,必須將關
聯性類型設為彈性
如果設定為「固定」,則代表關
聯性不會隨著時間變化
處理維度
為了要能檢視維度內容,必須先處理維度
處理完後,即可切
換至「瀏覽器」頁
籤,檢視剛才設定
的維度屬性
(Attribute)內容及階
層內容
設計不對稱維度
原則上是每個父層級向下的層級數會是一致的,稱
為對稱階層(Balanced Hierarchy)
但在很多的實務設計環境中,由於資料特性,很容
易發生向下的層級數量不一致的情形,這種狀況稱
之為不對稱層級(Unbalanced Hierarchy)
不對稱階層設定分別為
殘缺階層(Ragged Hierarchy)
父子式階層(Parent-Child Hierarchy)
殘缺層級
主要發生在層級「總數」固定,卻因為資料特性之因素,可
能有局部的層級成員會不存在,而造成階層殘缺
如圖,國家名稱中的「香港」下方只有一
個「香港」的地區成員。因此希望「香港
」的國家名稱下需要有無效的向下鑽入
解決:
點選欲設定殘缺階層的階層層
級(地區名稱),在屬性
(Properties)視窗可找到「
HideMemberIf」屬性,請將它
設定為「ParentName」
當選取「ParentName」時,表
示這一層級的名稱如果與父層
級得名稱相同時,即會隱藏
父子式維度
以員工人事架構為例,由於企業人士架構可能隨時會變動,
再加上職級甚多,如果每個階層各使用一個欄位來維護並不
是經濟的作法,因此,透過父子式維度只需要維護三個欄位
即可
子屬性索引鍵(也是整個父子式維度的索引鍵屬性)
子屬性名稱
父屬性索引鍵
層級命名範本(Naming Template)屬性
建立父子式維度後,系統會自動地判斷每個成員所屬層級,
並自動提供層級名稱,但如果希望命名特定層級以符合商業
需求時,可設定命名範本(Naming Template)屬性。在滑鼠點選
父子式階層時,屬性視窗中可以找到「NamingTemplate」屬性
非葉成員之資料內容
在父子式維度中,每個成員同時扮演子成員及父成員,有可能非葉
成員也會具有數值。例如,在傳統維度中,經理(非葉成員)本身不會
具有業績,經理的業績應該是底層業務員累積而成,但是事實上,
經理並非抽象的階層,而是實際存在的人,萬一他本身有業績時,
就可能會發生非葉成員業績的狀況
設計者選擇是否要展示非葉成員之資料內容。點選父子式階層後,
即可在屬性視窗找到「MemberWithData」屬性,此屬性共用兩個可用
值,分別是「NonLeafDataVisible(展示非葉成員資料)」以及「
NonLeafDataVHidden(隱藏非葉成員資料)」
自訂積存(Custom Roll-up)
在子成員彙總成父成員時能夠自由指定運算符號
事實資料表中必須要有一欄位用來記錄運算符號
運算符號
運算符號意義
+
向上加總時,該子成員資料相加後累加
-
向上加總時,該子成員資料相減後累加
*
向上加總時,父成員彙總值將乘以帶此運算符號之子成員值
/
向上加總時,父成員彙總值將除以帶此運算符號之子成員值
~
此子成員不向上彙總
屬性(Properties)視窗設定
(詳細整理請參考P65)
「StorageMode」屬性
設定維度的儲存方式
•關聯式OLAP(Relational OLAP,ROLAP)
– 儲存在Analysis Services伺服器中
•多維度OPAP(Multi-dimensional,MOLAP)
– 儲存在原始的關聯式資料庫中
兩項未知成員屬性
「UnkonwnMember(未知成員)」屬性
•Non系統將不會配置未知成員
•Hidden將配置未知成員不會在MDX查詢顯示
•Visible系統在維度內的「所有」屬性配置未知成員
「UnkonwMemverName(未知成員名稱)屬性
•顯示未知成員的名稱,預設為「UnKnown」
屬性(Attribute)屬性(Properties)視窗設定
「DiscretizationBucketCount」屬性
希望將此連續數性切割成幾個級距
「DiscretizatiionMethod」屬性
切割級距的模式
•None不切割
•Automatic系統會根據EqualAreas和Clusters挑選一個效果
好的
•EqualAreas以統計學的中位數為觀念,將資料盡量切割
成梅格區間所擁有的案例數量相同
•Threshould利用微軟群集畫資料採礦演算法作為離散化
的工具
(詳細整理請參考P65)
維度智慧設定
利用「視覺化介面」進行複雜的邏輯設定。
定義帳戶智慧
定義維度智慧
指定一元運算子
建立自訂成員公式
指定屬性排序方式
定義帳戶智慧
其中的帳戶指的是「會計」而非帳戶。
會計室多維度分析中非常特殊的一種模式,會計科
目中大多呈現父子式階層,同時會根據會計科目的
不同,而造成彙總運算符號(Ex:費用、負債向上彙
總時,要改成減號)的差異,此外,會計科目可以區
分為資產負債表,以及損益表兩種不同類型,各自
的彙總模式也都不同。
中文
Description
帳戶圖表
指的是定義會計科目父子式架構的階層屬性
帳戶名稱
表示會計科目的名稱
帳戶號碼
表示會計科目的代號
帳戶類型
表示會計科目的類型
系統會自動套用會計範本至會計
維度,並協助以下動作:
將來源資料表的帳戶類型與內
建帳戶類型做對應。
•
•
•
•
根據會計科目類型設定彙總函數
將維度類型設為Account
更新會計維度所有屬性的屬性類型
將量職群組彙總模式修改為「
ByAccount」
定義維度智慧
維度智慧作用在於設定各維
度以及維度屬性的「Type
」屬性,一般維度的「
Type」屬性為「Regular」
。
套用特殊的Type屬性在套
用特定MDX函數時能夠較
為便利。
指定一元運算子
利用一元運算子來定義資料
向上彙總時的運算符號。
建立自訂成員公式
自訂成員(Custom Rollup Formulas) 透過「特
定欄位」紀錄公式
(MDX),Cube彙總值會
讀取此欄位內的公式以
複寫原始的彙總函數。
指定屬性排序方式
維度屬性支援三種排序模
式:
「Order by Key」(依鍵值排序)
「Order by Name」(依名稱排序)
「Order by Attribute」(依其他屬
性)
可透過「索引鍵」、「名稱」來
進行排序,設定完成後系統將會
自動覆寫各維度屬性之「
OrderBy」屬性。
練習:修改維度屬性
參照書本的步驟:
修改維度屬性