Información general de modelado de los cubos OLAP de Service Manager en módulos de administración

Importante

Esta versión de Service Manager ha llegado al final del soporte técnico. Se recomienda actualizar a Service Manager 2022.

La capacidad de definir elementos del módulo de administración personalizados se usó para modelar los elementos del módulo de administración de cubos de procesamiento analítico en línea (OLAP) que se incluyen en Service Manager. Estos elementos del módulo de administración permiten al usuario definir y personalizar un cubo OLAP en un nivel superior de abstracción de forma declarativa. En función de la definición, la implementación de estos elementos del módulo de administración crea las relaciones, componentes y bloques de creación fundamentales correctos del cubo OLAP con un mayor nivel de detalle, sin ninguna guía adicional del usuario. Los dos elementos principales del módulo de administración que se incluyen en los cubos OLAP son los siguientes:

  • SystemCenterCube

  • CubeExtension

SystemCenterCube

El elemento SystemCenterCube define el cubo OLAP hasta un cierto grado de detalle, en función de las necesidades específicas. Este elemento contiene los siguientes subelementos:

  • MeasureGroup

  • Sustitución

  • CustomMDX

  • NamedCalculation

  • Medida

  • KPI

  • Action (sin embargo, actualmente solo se admiten las acciones de obtención de detalles)

  • ManyToManyRelationship

MeasureGroup

Cada cubo OLAP contiene una colección de hechos que existen en el data mart, donde cada miembro de la colección corresponde a un grupo de medida. Cada grupo de medida debe tener su propio nombre único dentro del cubo OLAP. Sin embargo, un solo hecho puede corresponder a varios grupos de medida de un cubo OLAP. Por ejemplo, la relación abstracta WorkItemAssignedToUser puede estar definida tres veces en un cubo OLAP, con los nombres del grupo de medida únicos de ChangeRequestAssignedToUser, IncidentAssignedToUsery ProblemAssignedToUser. Puede personalizar el hecho para que solo se incluyan solicitudes de cambio, incidentes y problemas en el grupo de medida correspondiente para el cubo OLAP.

En el ejemplo siguiente se muestra el elemento del módulo de administración para el grupo de medida IncidentAssignedToUser:

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

Cuando se implementa el cubo OLAP, las relaciones de dimensión, de subdimensiones y de clave externa se calculan automáticamente, y la vista de origen de datos se actualiza con estos nuevos elementos. La tabla siguiente describe los atributos del grupo de medida.

Atributo Requerido Valores Definición
DateDimAlias No String El nombre de la dimensión de fecha que se filtrará en este grupo de medida. Si no se ha definido ningún alias, el nombre realizador de roles de dimensión de fecha será "(MeasureGroupName)_DateDim" de forma automática.
MeasureGroupName String El nombre del grupo de medida en el cubo. Este nombre debe ser único en el cubo.
Fact Relationship o CustomFact El destino del grupo de medida, que debe ser un hecho en el almacenamiento de datos.

Sustitución

Dado que los hechos de relación en el almacenamiento de datos pueden tener como destino relaciones y dimensiones abstractas, es necesario sustituirlos por dimensiones concretas para que el grupo de medida solo contenga instancias que desea examinar.

Esto se muestra en el ejemplo siguiente.

<Substitution MeasureGroupName="IncidentAssignedTouser" RelationshipEndpoint="Source" Relationship="Workitem!System.WorkItemAssignedToUser" TargetDimension="DWBase!WorkItemDim" ReplacementDimension="IncidentDW!IncidentDim"/>  

En este ejemplo, el grupo de medida IncidentAssignedToUser tiene como destino la relación WorkitemAssignedToUser . Sin embargo, esta relación no solo contendrá incidentes, sino que también contendrá solicitudes de cambio y problemas que también se han asignado a cualquier usuario. Para asegurarse de que este grupo de medida solo contiene incidentes, Service Manager sustituye WorkItemDim por IncidentDim. Esto significa que la tabla que se ha creado en la vista de origen de datos para el grupo de medida realiza automáticamente una combinación interna de WorkItemDim con IncidentDim y devuelve únicamente las instancias con combinación válida, de acuerdo con EntityDimKey o BaseManagedEntityId.

Recuerde que debe definir el extremo de la relación en la que desee realizar la sustitución. Este elemento es necesario porque es posible que las dimensiones de origen y punto de conexión sean idénticas y se necesite una metodología para identificar de forma única qué dimensión se debe sustituir. Un ejemplo de este tipo de relación es WorkItemRelates to WorkItem.

El elemento de sustitución también se utiliza para definir las dimensiones de alias para el cubo. En otras palabras, puede definir un nombre de alias para una dimensión, pero no es necesario sustituir realmente una dimensión. En efecto, la sustitución en este caso no está en la dimensión, sino en el nombre de dimensión de cubo o de alias, como se muestra en el ejemplo siguiente:

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

En este ejemplo, el nombre de la dimensión del cubo de alias es AssignedToUserDim. Éste es el nombre de la dimensión que se utilizará para filtrar realmente en este cubo. Si se permite a los usuarios definir los nombres de alias, los nombres se pueden personalizar específicamente para habilitar las relaciones de varios a varios que se desean en el cubo. Esto permite que tanto el filtrado como las capacidades analíticas más avanzados sean posibles.

Por último, las sustituciones no solo son válidas para los hechos de relación, sino también para los hechos personalizados. En este escenario, el extremo de la relación se establecería en None. En la tabla siguiente se describen los atributos de sustitución.

Atributo Requerido Valores Definición
MeasureGroupName String El nombre del grupo de medida en el que se va a realizar la sustitución
RelationshipEndPoint (Target, Source, None) El extremo de la relación para realizar la sustitución. De forma predeterminada, el valor es None para los hechos personalizados.
Relación No ManagementPackRelationship La relación que se utilizará para la sustitución.
AliasTargetDimensionAs No String El nombre de alias de la dimensión de destino original
AliasReplacementDimensionsAs No String El nombre de alias de la dimensión sustituida
DimensionAlias No ManagementPackDimension El alias de la dimensión de un hecho personalizado, si existe alguno

MDX personalizados

Puede utilizar scripts de expresión multidimensional (MDX) personalizados para modificar y adaptar el cubo OLAP a las especificaciones exactas de sus necesidades. Dado que Service Manager se basa en el modelo, es imposible determinar todas las necesidades semánticas posibles al tener en cuenta el amplio espectro de requisitos y especificaciones exactas para las necesidades empresariales específicas del dominio de un usuario determinado. El recurso MDX personalizado posibilita la definición de los scripts MDX que se aplicarán al cubo OLAP para habilitar escenarios específicos que los usuarios necesitan para medir e instrumentar.

Cálculo con nombre

Puede utilizar cálculos con nombre para definir nuevos atributos en una dimensión que una medida personalizada tendrá como destino más adelante. Esto permite ampliar el esquema dimensional y personalizarlo según sus necesidades específicas. El ejemplo siguiente se ha extraído de 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>  

En este ejemplo, la dimensión del incidente contiene datos, como el estado del incidente y el tiempo de resolución planeado. Sin embargo, no hay ninguna medida nativa que calcule el número de incidentes que superaron el tiempo de resolución de destino, aunque este tipo de datos es muy útil para un administrador de sistemas. Puede crear este escenario con un cálculo con nombre y agregar los datos para que una medida personalizada pueda tener como destino el nuevo atributo y, a continuación, presentar la información a un usuario final.

Recuerde que Service Manager solo admite dimensiones de destino NamedCalculation. NamedCalculation no puede dirigirse a hechos. En la tabla siguiente se describen los atributos de cálculo con nombre.

Atributo Requerido Valores Definición
ID String Nombre del cálculo con nombre.
Destino ManagementPackDimension La dimensión de destino para la medida
ColumnType (Int, Double) El tipo de Lenguaje de consulta estructurado (SQL) de la columna
Tipo No (Count, Sum) El tipo de la medida

El cálculo> del subelemento <contiene, como valor, la definición del cálculo con nombre. El valor se almacena como una expresión MDX.

Medida

Puede usar medidas personalizadas para agregar y visualizar datos en función de los atributos numéricos de las dimensiones. Service Manager no admite medidas personalizadas basadas en hechos. Siguiendo con el ejemplo del cálculo con nombre anterior, Service Manager define una medida personalizada en IncidentsPastTargetResolutionTime como se indica a continuación:

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

Al revisar este código XML, vemos que el destino de la medida es IncidentDimension y la propiedad específica es IncidentsPastTargetResolutionTime. Se trata de la propiedad personalizada que se definió anteriormente. Las medidas personalizadas pueden tener como destino propiedades nativas o calculadas en la dimensión.

Por último, el tipo de medida se define como una suma. Los valores posibles para un tipo de medida incluyen Sum y Count. Debido a las consideraciones de rendimiento, no se permiten Service Manager tipos de medida Recuento distinto. En la tabla siguiente se describen los atributos de las medidas.

Atributo Requerido Valores Definición
ID String Nombre de la medida
Destino ManagementPackDimension La dimensión de destino para la medida
Propiedad String La propiedad de la dimensión de destino
Tipo No (Count, Sum) El tipo de la medida

ManyToManyRelationship

ManyToManyRelationship permite al diseñador de cubos agregar a los cubos OLAP dimensiones de varios a varios personalizadas, con el fin de habilitar escenarios analíticos avanzados. La definición de las relaciones de varios a varios queda fuera del alcance de este documento. Sin embargo, puede investigar este concepto y sus ventajas. Para obtener más información sobre ManyToManyRelationship, vea The Many-to-Many Revolution 2.0.

Durante la implementación del cubo, Service Manager agrega automáticamente dimensiones de varios a varios al cubo para todas las relaciones de "un salto", sin ninguna interacción de usted. Sin embargo, Service Manager no agrega dimensiones de varios a varios para relaciones en cascada (varios saltos) debido al aumento exponencial de las posibles relaciones que se podrían agregar. Si se agregan todas estas relaciones, se podría degradar significativamente el rendimiento a la hora de examinar el cubo OLAP. Esto se debe a que, generalmente, las agregaciones de relaciones de varios a varios no se calculan durante el procesamiento y a que las uniones se evalúan mientras se explora el cubo OLAP. Si desea una relación específica de varios a varios en cascada, puede definir la relación mediante un elemento del módulo de administración, el cual se agregará al cubo OLAP. Por el contrario, puede sobrescribir una relación de varios a varios generada automáticamente para utilizar un grupo de medida intermedio diferente, en los casos en que existan varios grupos intermedios. En este caso, Service Manager usa automáticamente el primer grupo que se encuentra. El siguiente es un ejemplo de un elemento de relación de varios a varios del módulo de administración:

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

En la tabla siguiente se describen los atributos de relación de varios a varios.

Atributo Requerido Valores Definición
CubeDimension String Nombre de la dimensión del cubo de varios a varios
TargetMeasureGroup String El grupo de medida de destino para crear la relación de varios a varios
IntermediateMeasureGroup String El grupo de medida intermedio para crear la relación de varios a varios

KPI

Las organizaciones y las empresas pueden utilizar indicadores clave de rendimiento (KPI) para calcular rápidamente el estado de la empresa mediante la medición de su progreso hacia un objetivo predefinido. Cada KPI tiene un valor del objetivo y un valor real. El valor del objetivo es un objetivo cuantitativo que es crítico para el éxito de la organización. Se filtran grandes cantidades de datos en un valor discreto, que se puede utilizar para supervisar el rendimiento y el progreso hacia los objetivos y los criterios de referencia. Entre algunos ejemplos de KPI encontramos una universidad con un objetivo de aprobados en cuatro años del 90% de sus alumnos o un equipo de baloncesto con el objetivo de lograr que el equipo rival enceste menos del 50 por ciento de los tiros en un partido. Puede utilizar un cuadro de mandos para mostrar un grupo de KPI, que proporcione en una instantánea el estado general de la empresa. El siguiente es un ejemplo de 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>  

En la tabla siguiente se describen los atributos de KPI.

Atributo Requerido Valores Definición
ID String Nombre del KPI
Caption String Descripción del KPI
Value String Script MDX que define el valor numérico del KPI
Objetivo String Valor del objetivo del KPI
Green Threshold Cadena (entre 0,1 y 1) Cualquier número que esté por encima o por debajo de este umbral, en función de la dirección, se marca como verde en el símbolo de estado.
Yellow Threshold Cadena (entre 0,1 y 1) Cualquier número que esté por encima o por debajo del umbral, dependiendo de la dirección, pero no cumpla el umbral verde se marca como amarillo en el símbolo de estado. Un número que no cumple el umbral amarillo se marca como rojo en el símbolo de estado.
Dirección (Up, Down) Si la dirección es hacia arriba, todos los números que estén por encima de los umbrales de color verde o amarillo se marcan con el símbolo correspondiente. De forma similar hacia abajo, los números que están por debajo de los umbrales verde o amarillo se marcan con el símbolo correspondiente.
Status Graphic (Shapes, TrafficLight, RoadSigns, Gauge, ReversedGauge, Thermometer, Cylinder, Faces, VarianceArrow) El símbolo que representa el KPI.

Acción

Las acciones son eventos que se pueden desencadenar en un cubo OLAP al acceder a los datos del cubo. Solo las acciones de obtención de detalles son compatibles con Service Manager. El siguiente es un ejemplo de una acción:

<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>  

En la tabla siguiente se describen los atributos de las acciones.

Atributo Requerido Valores Definición
ID String Nombre de la acción de obtención de detalles
MeasureGroupName String Grupo de medida de destino de la acción
ActionType (DrillThrough) Tipo de acción. Solo las acciones de obtención de detalles son compatibles con Service Manager.
CubeDimension String La dimensión del cubo que es el destino de la acción, que debe ser una segmentación de datos en el grupo de medida
PropertyName String Atributo de la dimensión que se muestra cuando se ejecuta la acción de obtención de datos

CubeExtension

El objetivo principal del elemento CubeExtension es permitir la modificación del cubo OLAP una vez implementado en SSAS, sin necesidad de desinstalar y reinstalar el cubo. Si el cubo OLAP se ha procesado completamente con años de datos, volver a crearlo resulta lento, ya que todas las particiones se tienen que procesar completamente.

El elemento CubeExtension puede definir los siguientes elementos:

  • NamedCalculation

  • ManyToManyRelationship

  • KPI

  • Medida

  • Acción

  • CustomMDX

Cada personalización que se define en un elemento CubeExtension también se puede definir en un objeto SystemCenterCube. La única personalización que no está permitida es la adición de hechos o grupos de medida y sustituciones al cubo.

Pasos siguientes