關於在管理組件中建立 OLAP Cube 模型
發行︰ 2016年7月
適用於: System Center 2012 SP1 - Service Manager、System Center 2012 R2 Service Manager、System Center 2012 - Service Manager
您可透過定義自訂管理組件元素建立 System Center 2012 – Service Manager 所提供的線上分析處理 (OLAP) Cube 管理組件模型。 這些管理組件元素可讓使用者在更高的抽象層次上,以宣告方式定義和自訂 OLAP Cube。 根據定義,這些管理組件元素的部署可在無進一步使用者指引的情況下,以更高的詳細度建立正確的 OLAP Cube 關係、元件和基礎建置區塊。 OLAP Cube 包含的兩個主要管理組件元素如下:
SystemCenterCube
CubeExtension
SystemCenterCube
SystemCenterCube 元素可視您的特定需求,以不同的詳細程度定義 OLAP Cube。 此元素包含下列子元素:
MeasureGroup
替代
CustomMDX
NamedCalculation
度量
KPI
Action (不過,目前只支援鑽研動作)
ManyToManyRelationship
MeasureGroup
每個 OLAP Cube 都包含存在於資料超市中的事實集合,集合中的每個成員均與量值群組對應。 每個量值群組在 OLAP Cube 內都有其唯一名稱。 不過,單一事實可對應到 OLAP Cube 中的多個量值群組。 例如,抽象關聯性 WorkItemAssignedToUser 可能在 OLAP Cube 中定義三次,各具有唯一量值名稱 ChangeRequestAssignedToUser、IncidentAssignedToUser 和 ProblemAssignedToUser。 如<替代>一節所述,您可以自訂事實,讓 OLAP Cube 的各量值群組只包含變更要求、事件和問題。
下列範例顯示 IncidentAssignedToUser 量值群組的管理組件元素:
<MeasureGroup DateDimAlias="IncidentAssignedToUserDateDim" MeasureGroupName-"IncidentAssignedTouser" Fact="DWBase!WorkItemAssignedToUserFact"/>
部署 OLAP Cube 時,系統會自動計算維度、子維度和外部索引鍵關聯性,並且以這些新元素更新資料來源檢視。 。 下表說明量值群組屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
DateDimAlias | 否 | 字串 | 將在這個量值群組上篩選的日期維度名稱。 如果沒有定義別名,日期維度角色扮演名稱就會自動是 "(MeasureGroupName)_DateDim" |
MeasureGroupName | 是 | 字串 | Cube 中的量值群組名稱。 此名稱在 Cube 內必須是唯一的。 |
Fact | 是 | Relationship 或 CustomFact | 量值群組的目標,必須是資料倉儲中的事實。 |
替代
由於資料倉儲中的關聯性事實可能會以抽象關聯性和維度為目標,因此您必須替換成實體維度,使量值群組只包含您要瀏覽的執行個體。
下列範例可說明此點。
<Substitution MeasureGroupName="IncidentAssignedTouser" RelationshipEndpoint="Source" Relationship="Workitem!System.WorkItemAssignedToUser" TargetDimension="DWBase!WorkItemDim" ReplacementDimension="IncidentDW!IncidentDim"/>
在此範例中,IncidentAssignedToUser 量值群組指向 WorkitemAssignedToUser 關聯性。 不過,此關聯性將不僅包含事件,還將包含也指派給任何使用者的變更要求和問題。 為了確保此量值群組只包含事件,Service Manager 將 WorkItemDim 換成 IncidentDim。 這表示在此量值群組的資料來源檢視中建立的資料表會自動在 WorkItemDim 和 IncidentDim 上執行內部聯結,並根據 EntityDimKey 或 BaseManagedEntityId 只傳回聯結有效的執行個體。
請注意,您必須在要執行替代的位置定義關聯性端點。 此元素之所以必要,是因為來源和端點維度可能會相同,而需要方法來唯一識別要替代的維度。 這類關聯性的範例為 WorkItemRelates to WorkItem。
替代元素也會用來定義 Cube 的別名維度。 換言之,您可以定義維度的別名名稱,但並不需要實際替代維度。 事實上,此例中的替代並不是在維度上,而是在 Cube 維度或別名維度名稱上,如下列範例所示:
<Substitution MeasureGroupName="IncidentAssignedToUser" RelationshipEndpoint="Target" Relationship="Workitem!System.WorkItemAssignedToUser" AliasTargetDimensionAs="AssignedToUserDim" TargetDimension="DWBase!UserDim"/>
在此範例中,別名 Cube 維度名稱為 AssignedToUserDim。 這是將用來在此 Cube 上進行實際篩選的維度名稱。 藉由允許使用者定義別名名稱,您可以特別設計名稱,以在 Cube 中實現所需的多對多關聯性。 這可提供更進階的篩選和分析功能。
最後一點,替代不僅適用於關聯性事實,也同樣適用於自訂事實。 在此案例中,關聯性端點會設定為 None。 下表說明替代屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
MeasureGroupName | 是 | 字串 | 要執行替代的量值群組名稱 |
RelationshipEndPoint | 是 | (Target、Source、None) | 要執行替代的關聯性端點。 根據預設,自訂事實的值為 None。 |
Relationship | 否 | ManagementPackRelationship | 要用於替代的關聯性。 |
AliasTargetDimensionAs | 否 | 字串 | 原始目標維度的別名名稱 |
AliasReplacementDimensionsAs | 否 | 字串 | 替代維度的別名名稱 |
DimensionAlias | 否 | ManagementPackDimension | 來自自訂事實 (如果存在) 的維度別名 |
自訂 MDX
您可以使用自訂多維度運算式 (MDX) 指令碼來修改和自訂 OLAP Cube,以達到符合您需求的規格。 由於 Service Manager 是以模型為基礎,在將各式各樣的需求以及特定使用者的網域特定業務需求的明確規格列入考量時,並無法確認所有可能的語意需求。 自訂 MDX 可讓您定義將套用到 OLAP Cube 的 MDX 指令碼,以實現使用者需要測量和檢測的特定案例。
具名計算
您可以使用具名計算在自訂量值稍後可設為目標的維度上定義新屬性。 這可讓您擴充維度架構並自訂架構來符合您的特定需求。 下列範例擷取自 SystemCenterWorkItemsCube:
<NamedCalculation ID="IncidentsPastTargetResolutionTime" Target="IncidentDW!IncidentDim" ColumnType="Int">
<Calculation>(case when ( (([Status] = 'IncidentStatusEnum.Resolved' OR [Status] = 'IncidentStatusEnum.Closed') AND ResolvedDate > TargetResolutionTime) OR (([Status] != 'IncidentStatusEnum.Resolved' AND [Status] != 'IncidentStatusEnum.Closed') AND GETUTCDATE() > TargetResolutionTime)) then 1 else 0 end )</Calculation>
</NamedCalculation>
在此範例中,Incident 維度包含資料,例如事件的狀態和目標解決時間。 不過,並沒有原生量值可計算超過目標解決時間的事件數目,但這種類型的資料對於系統管理員來說非常有用。 您可以使用具名計算建立此案例並彙總資料,讓自訂量值可以將新屬性設為目標,然後顯示資訊給使用者。
請注意,Service Manager 僅支援 NamedCalculation 目標維度。 NamedCalculation 無法以事實為目標。 下表說明具名計算屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
識別碼 | 是 | 字串 | 具名計算的名稱。 |
Target | 是 | ManagementPackDimension | 量值的目標維度 |
ColumnType | 是 | (Int、Double) | 資料行的結構化查詢語言 (SQL) 類型 |
類型 | 否 | (Count、Sum) | 量值的類型 |
子元素 <Calculation> 的值包含具名計算的定義。 此值會儲存為 MDX 運算式。
度量
您可以根據維度的數值屬性,使用自訂量值來彙總及顯示資料。Service Manager 不支援以事實為基礎的自訂量值。 接續上面的具名計算範例,Service Manager 會在 IncidentsPastTargetResolutionTime 上定義自訂量值,如下所示:
<Measure ID="IncidentsPastTargetResolutionTimeCount" Target="IncidentDW!IncidentDim" Type="Sum" Property="IncidentsPastTargetResolutionTime"/>
回顧這段 XML 程式碼,量值的目標是 IncidentDimension,而特定內容是 IncidentsPastTargetResolutionTime。 這是先前定義的自訂內容。 自訂量值可以將維度中的原生或計算內容設為目標。
最後,量值類型會定義為加總。 量值類型的可能值包括 Sum 和 Count。 基於效能考量,不允許使用 Service Manager 相異計數量值類型。 下表說明量值屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
識別碼 | 是 | 字串 | 量值的名稱 |
Target | 是 | ManagementPackDimension | 量值的目標維度 |
屬性 | 是 | 字串 | 目標維度內容 |
類型 | 否 | (Count、Sum) | 量值的類型 |
ManyToManyRelationship
ManyToManyRelationship 可讓 Cube 設計人員將自訂的多對多維度新增到 OLAP Cube,實現進階的分析案例。 本文件不討論如何定義多對多關聯性。 不過,您可以研究此概念及其優點。如需 ManyToManyRelationship 的詳細資訊,請參閱多對多革命 2.0。
在 Cube 部署期間,Service Manager 會針對所有「單一躍點」關聯性自動將多對多維護新增到 Cube,而不需要由您進行任何互動。 不過,Service Manager 不會針對串聯 (多重躍點) 關聯性新增多對多維度,原因是可能新增的可能關聯性會呈指數性增加。 新增所有這些關聯性可能會大幅降低瀏覽 OLAP Cube 時的效能。 這是因為多對多關聯性的彙總通常不是在處理期間計算的,而且聯結會在瀏覽 OLAP Cube 時評估。 如果您需要特定的串聯多對多關聯性,可以使用管理組件元素定義關聯性,系統就會將其新增到 OLAP Cube。 相反地,在存在多個中繼群組的情況下,您可以覆寫自動產生的多對多關聯性,以使用不同的中繼量值群組。 在這種情況下,Service Manager 會自動使用第一個遇到的群組。 下面是多對多管理組件關聯性元素的範例:
<ManyToManyRelationship CubeDimension="ServiceDim" TargetMeasureGroup="AlertAboutConfigItem" IntermediateMeasureGroup="ServiceContainsConfigItem" />
下表說明多對多關聯性屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
CubeDimension | 是 | 字串 | 多對多 Cube 維度的名稱 |
TargetMeasureGroup | 是 | 字串 | 要建立多對多關聯性的目標量值群組 |
IntermediateMeasureGroup | 是 | 字串 | 要建立多對多關聯性的中繼量值群組 |
KPI
組織和企業會使用關鍵效能指標 (KPI),根據預先定義的目標測量進度,快速評估企業的健全狀況。 每個 KPI 都有目標值和實際值。 目標值是量化的目標,對於組織的成功非常重要。 大量的資料會經過篩選,最後達到一個特定的值,而這個值可用來根據目標和基準點監視效能和進度。 KPI 的一些範例像是大學訂有 90% 的學生在四年內畢業的目標,或是籃球隊訂有讓對方在比賽中的投籃命中率不到 50% 的目標。 您可以使用計分卡來顯示一組 KPI,對企業的整體健全狀況能夠一目瞭然。 以下便是範例 KPI:
<KPI ID="IncidentResolutiuonKpi" >
<Caption> The ratio of incidents resolved </Caption>
<Value>IIF(([Measures].[IncidentDimCount])> 0,([Measures].[IncidentsResolvedCount]/[Measures].[IncidentDimCount]),null)</Value>
<Goal>1.0</Goal>
<GreenThreshold> 0.75</GreenThreshold>
<YellowThreshold>0.5 </YellowThreshold>
<Direction>Up</Direction>
<StatusGraphic>Thermometer</StatusGraphic>
</KPI>
下表說明 KPI 屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
識別碼 | 是 | 字串 | KPI 的名稱 |
Caption | 是 | 字串 | KPI 的描述 |
值 | 是 | 字串 | 定義 KPI 數值的 MDX 指令碼 |
Goal | 是 | 字串 | KPI 的目標值 |
Green Threshold | 是 | 字串 (介於 0.1 和 1) | 視方向而定,高於或低於此閾值的任何數字會在狀態符號中標示為綠色。 |
Yellow Threshold | 是 | 字串 (介於 0.1 和 1) | 視方向而定,高於或低於此閾值、但未達綠色閾值的任何數字會在狀態符號中標示為黃色。 未達黃色閾值的數字會在狀態符號中標示為紅色。 |
Direction | 是 | (Up、Down) | 如果方向是往上,高於綠色或黃色閾值的任何數字會使用對應的符號標示。 同樣地,針對往下方向,低於綠色或黃色閾值的數字也會使用對應的符號標示。 |
Status Graphic | 是 | (Shapes、TrafficLight、RoadSigns、Gauge、ReversedGauge、Thermometer、Cylinder、Faces、VarianceArrow) | 用來表示 KPI 的符號。 |
動作
動作是指當您存取 Cube 中的資料時,可以在 OLAP Cube 上觸發的事件。Service Manager 僅支援鑽研動作。 下面是動作的範例:
<Action ID="DrillThroughOnWICreatedByUser" MeasureGroupName="CreatedByUser" ActionType="DrillThrough">
<DrillThroughColumns CubeDimension="WorkItemCreatedByUser_UserDim">
<Property PropertyName="FirstName" />
<Property PropertyName="LastName" />
<Property PropertyName="Company" />
<Property PropertyName="Department" />
<Property PropertyName="Office" />
</DrillThroughColumns>
</Action>
下表說明動作屬性。
屬性 | 必要 | 值 | 定義 |
---|---|---|---|
識別碼 | 是 | 字串 | 鑽研動作的名稱 |
MeasureGroupName | 是 | 字串 | 動作的目標量值群組 |
ActionType | 是 | (DrillThrough) | 動作的類型。Service Manager 僅支援鑽研動作。 |
CubeDimension | 是 | 字串 | 動作的目標 Cube 維度,這必須是量值群組上的交叉分析篩選器 |
PropertyName | 是 | 字串 | 執行鑽研動作時顯示之維度的屬性 |
CubeExtension
CubeExtension 元素的主要用途是讓您可以在 OLAP Cube 部署到 SSAS 之後修改 Cube,而不必解除安裝再重新安裝 Cube。 在使用多年資料完整處理過 OLAP Cube 的情況下,重建 Cube 非常耗時,因為您必須完整重新處理所有資料分割。
CubeExtension 元素可定義下列元素:
NamedCalculation
ManyToManyRelationship
KPI
度量
動作
CustomMdx
CubeExtension 元素中定義的所有自訂項目也可以在 SystemCenterCube 物件中定義。 唯一不允許的自訂項目是將事實或量值群組和替代新增到 Cube。