管理包中的 Service Manager OLAP 多维数据集建模概述

定义自定义管理包元素的功能用于为 Service Manager 中包含的联机分析处理(OLAP)多维数据集管理包元素建模。 这些管理包元素使得用户能够以声明方式在更高的抽象级别中定义和自定义 OLAP 多维数据集。 根据定义,这些管理包元素的部署在更高级别上创建了 OLAP 多维数据集的正确关系、组件和基本构建基块,而无需任何进一步的用户指导。 下列是 OLAP 多维数据集中包括的两大主要管理包元素:

  • SystemCenterCube

  • CubeExtension

SystemCenterCube

SystemCenterCube 元素定义 OLAP 多维数据集的详细程度各不相同,具体取决于你的特定需求。 此元素包含下列子元素:

  • MeasureGroup

  • 替代

  • CustomMDX

  • NamedCalculation

  • 度量值

  • KPI

  • 操作(但目前仅支持钻取操作)

  • ManyToManyRelationship

MeasureGroup

每个 OLAP 多维数据集都包含一个存在于数据市场中的事实集合,该集合中的每个成员都对应一个度量值组。 每个度量值组在 OLAP 多维数据集中都必须具有其自己的唯一名称。 不过,单个事实可能对应于 OLAP 多维数据集中的多个度量值组。 例如,抽象关系 WorkItemAssignedToUser 在 OLAP 多维数据集中可被定义三次,分别具有唯一的度量值组名称 ChangeRequestAssignedToUserIncidentAssignedToUserProblemAssignedToUser。 可以自定义事实,以便仅更改请求、事件和问题包含在 OLAP 多维数据集的相应度量值组中。

下列示例显示 IncidentAssignedToUser 度量值组的管理包元素:

<MeasureGroup DateDimAlias="IncidentAssignedToUserDateDim" MeasureGroupName-"IncidentAssignedTouser" Fact="DWBase!WorkItemAssignedToUserFact"/>  

部署 OLAP 多维数据集后,系统会自动计算维度、子维度和外键关系,而且将会使用这些新元素更新数据源视图。 下表描述了度量值组属性。

属性 必需 价值观 定义
DateDimAlias 字符串 将对此度量值组进行筛选的日期维度的名称。 如果没有定义任何别名,则日期维度角色扮演名称将自动为“(MeasureGroupName)_DateDim”
度量组名称 字符串 多维数据集中的度量值组的名称。 此名称在多维数据集内必须是唯一的。
事实 关系或 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

替换元素也用于为多维数据集定义别名维度。 换句话说,可以为维度定义别名,但实际上不需要替换维度。 实际上,本例中的替换不在维度上,而是在立方体维度或别名维度名称上,如以下示例所示:

<Substitution MeasureGroupName="IncidentAssignedToUser" RelationshipEndpoint="Target" Relationship="Workitem!System.WorkItemAssignedToUser" AliasTargetDimensionAs="AssignedToUserDim" TargetDimension="DWBase!UserDim"/>  

在本例中,别名多维数据集维度名称为 AssignedToUserDim。 这是将用于对此多维数据集进行实际筛选的维度的名称。 通过允许用户定义别名,可以专门定制名称以在多维数据集中启用所需的多对多关系。 这将可实现更高级的筛选和分析功能。

最后,替换不仅对关系事实有效,而且对自定义事实也同样有效。 在此情况下,关系终结点将设置为 None。 下表描述了属性替换。

属性 必需 价值观 定义
度量组名称 字符串 要对其执行替换的度量值组名称
RelationshipEndPoint (目标、源、无) 要执行替换的关系的终结点。 默认情况下,自定义事实的这一值为“无”。
关系 ManagementPackRelationship 要用于替换的关系。
AliasTargetDimensionAs 字符串 原始目标维度的别名
AliasReplacementDimensionsAs 字符串 替换维度的别名
DimensionAlias ManagementPackDimension 自定义事实中的维度别名(如果有)

自定义 MDX

你可以使用自定义多维表达式 (MDX) 脚本来按照满足需求的确切规范修改和定制 OLAP 多维数据集。 由于 Service Manager 是基于模型的,在考虑特定用户的领域业务需求和各种具体规格时,无法确定所有可能的语义需求。 自定义 MDX 使你能够定义将应用于 OLAP 数据立方体的 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>  

在本例中,“事件”维度包含数据,如事件的状态和目标解决时间。 但是,没有本机度量值可计算超过目标解决时间的事件数,尽管这种类型的数据对系统管理员非常有用。 可以使用命名计算创建此方案并聚合数据,以便自定义度量值可以面向新属性,然后将信息呈现给最终用户。

请记住,Service Manager 仅支持 NamedCalculation 目标维度。 NamedCalculation 不能以事实为目标。 下表描述了命名的计算属性。

属性 必需 价值观 定义
身份证号 字符串 命名的计算的名称。
目标 ManagementPackDimension 该度量的目标维度
ColumnType (整数,双精度) 列的结构化查询语言 (SQL) 类型
类型 (计数,求和) 度量值的类型

子元素 <计算> 的值是命名计算的定义。 该值以 MDX 表达式的形式进行存储。

度量值

你可以基于维度中的数值属性,使用自定义度量值来聚合和显示数据。 Service Manager 不支持基于事实的自定义度量值。 继续上述命名计算示例,Service Manager 在 IncidentsPastTargetResolutionTime 上定义自定义度量值,如下所示:

<Measure ID="IncidentsPastTargetResolutionTimeCount" Target="IncidentDW!IncidentDim" Type="Sum" Property="IncidentsPastTargetResolutionTime"/>  

审阅此 XML 代码,度量值的目标为 IncidentDimension,特定属性为 IncidentsPastTargetResolutionTime。 这是以前已定义的自定义属性。 自定义度量可以针对维度中的原生属性或计算属性。

最后,度量值类型被定义为“求和”。 度量值类型的可能值包括“求和”和“计数”。 由于考虑性能,不允许使用 Service Manager 非重复计数度量值类型。 下表描述了度量值属性。

属性 必需 价值观 定义
身份证号 字符串 度量值的名称
目标 ManagementPackDimension 该度量的目标维度
属性 字符串 目标维度属性
类型 (计数,求和) 度量值的类型

ManyToManyRelationship

ManyToManyRelationship 使多维数据集设计人员能够向 OLAP 多维数据集中添加自定义的多对多维度,用于启用高级分析方案。 定义多对多关系超出了本文档的讨论范围。 但是,你可以调查此概念及其优点。 有关 ManyToManyRelationship 的详细信息,请参阅 多对多革命 2.0

在部署多维数据集期间,Service Manager 会自动向多维数据集中添加所有“单跃点”关系的多对多维度,而无需你进行任何互动。 但是,Service Manager 不会添加级联(多跃点)关系的多对多维度,因为可添加的可能关系呈指数级增长。 浏览 OLAP 多维数据集时添加所有的这些关系会大大降低性能。 这是因为处理过程中一般不计算多对多关系的聚合以及因为浏览 OLAP 多维数据集时将不评估联接。 如果你需要一个特定的级联式多对多关系,你可以使用管理包元素定义该关系,它将被添加到 OLAP 多维数据集中。 反过来,你可以覆盖自动生成的多对多关系,以在具有多个中间组的实例中使用不同的中间度量值组。 在这种情况下,Service Manager 会自动使用遇到的第一个组。 下列是多对多管理包关系元素的一个示例:

<ManyToManyRelationship CubeDimension="ServiceDim" TargetMeasureGroup="AlertAboutConfigItem" IntermediateMeasureGroup="ServiceContainsConfigItem" />  

下表描述了多对多关系属性。

属性 必需 价值观 定义
CubeDimension 字符串 多对多的多维数据集维度的名称
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 的名称
标题 字符串 KPI 的说明
字符串 用于定义 KPI 的数值的 MDX 脚本
目标 字符串 KPI 的目标值
绿色阈值 字符串(介于 0.1 和 1 之间) 超出或低于此阈值的任何数字(具体取决于方向)在状态符号中标记为绿色。
黄色阈值 字符串(介于 0.1 和 1 之间) 任何高于或低于阈值的数字,具体取决于方向,但不满足绿色阈值,在状态符号中标记为黄色。 不符合黄色阈值的数字在状态符号中标记为红色。
方向 (上移、下移) 如果方向向上,则绿色或黄色阈值上方的任何数字都标有相应的符号。 同样地,如果方向为向下,则低于绿色或黄色阈值的数字会用相应的符号进行标记。
状态图形 (Shapes、TrafficLight、RoadSigns、Gauge、ReversedGauge、Thermometer、Cylinder、Faces、VarianceArrow) 表示 KPI 的符号。

行动

操作是在访问多维数据集中的数据时可以在 OLAP 多维数据集上触发的事件。 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>  

下表描述了操作属性。

属性 必需 价值观 定义
身份证号 字符串 钻取操作的名称
度量组名称 字符串 行动的目标指标组
动作类型 (钻取) 操作的类型。 Service Manager 仅支持钻取操作。
CubeDimension 字符串 作为操作目标且在度量值组中必须是切片器的多位数据集维度。
PropertyName 字符串 执行钻取操作时显示的维度的属性

CubeExtension

CubeExtension 元素的主要用途是要在 OLAP 多维数据集部署到 SSAS 后,让你能够修改该多维数据集,而无需卸载并重新安装该多维数据集。 如果已使用多年的数据对 OLAP 多维数据集进行了完全处理,则重新创建该多维数据集非常耗时,因为所有的分区都必须完全重新处理。

CubeExtension 元素可定义下列元素:

  • NamedCalculation

  • ManyToManyRelationship

  • KPI

  • 度量值

  • 行动

  • CustomMdx

在 CubeExtension 元素中定义的每项自定义也可在 SystemCenterCube 对象中进行定义。 唯一不允许的自定义是向多维数据集中添加事实或度量值组和替换项。

后续步骤