Compartir a través de


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

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 de forma declarativa en un nivel superior de abstracción. 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. A continuación se muestran los dos elementos principales del módulo de administración que se incluyen en cubos OLAP:

  • SystemCenterCube

  • CubeExtension

SystemCenterCube

El elemento SystemCenterCube define el cubo OLAP en un grado de detalle variable, según sus necesidades específicas. Este elemento contiene los siguientes subelementos:

  • MeasureGroup

  • Sustitución

  • CustomMDX

  • NamedCalculation

  • Medida

  • KPI

  • Acción (actualmente solo se admiten 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 se corresponde con un grupo de medida. Cada grupo de medida debe tener su propio nombre único dentro del cubo OLAP. Sin embargo, un único hecho puede corresponder a varios grupos de medida de un cubo OLAP. Por ejemplo, la relación abstracta WorkItemAssignedToUser se puede definir tres veces en un cubo OLAP, con los nombres de grupo de medida únicos de ChangeRequestAssignedToUser, IncidentAssignedToUser y ProblemAssignedToUser. Puedes personalizar el hecho de 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, la dimensión, los estabilizadores y las relaciones de clave externa se calculan automáticamente y la vista del origen de datos se actualizará con estos nuevos elementos. En la tabla siguiente se describen los atributos del grupo de medida:

Atributo Obligatorio Valores Definición
DateDimAlias No Cadena Nombre de la dimensión de fecha que se utilizará para filtrar en este grupo de medidas. Si no se define ningún alias, el nombre de rol dim de fecha será automáticamente "(MeasureGroupName)_DateDim"
Nombre del Grupo de Medidas Cadena El nombre del grupo de medida en el cubo. El nombre debe ser único en el cubo.
Fact Relationship o CustomFact El objetivo del grupo de medida, que debe constituir un hecho en el almacén de datos.

Sustitución

Dado que los hechos de relación en el almacenamiento de datos pueden tener como destino relaciones y dimensiones abstractas, debes sustituir en dimensiones concretas para que el grupo de medida contenga solo las instancias que quieras 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 apunta a la relación WorkitemAssignedToUser. Sin embargo, esta relación no solo contendrá incidentes, sino que también contendrá solicitudes de cambios y los problemas que también se hayan asignado a cualquier usuario. Para garantizar que este grupo de medida solo contiene incidentes, Service Manager sustituye WorkItemDim por IncidentDim. Esto significa que la tabla que se crea en la vista del origen de datos para el grupo de medida realiza automáticamente una combinación interna en WorkItemDim con IncidentDim y devuelve solo las instancias en las que una combinación es válida en función de EntityDimKey o BaseManagedEntityId.

Recuerda que debes definir el extremo del vínculo donde deseas 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 sustituir. Un ejemplo de esta relación es WorkItemRelates to WorkItem.

El elemento de sustitución también se usa para definir dimensiones de alias para el cubo. En otras palabras, puedes 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 la dimensión del cubo o en el nombre de la dimensión 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. Este es el nombre de la dimensión que se usará para filtrar realmente en este cubo. Al permitir que los usuarios definan nombres de alias, los nombres se pueden adaptar específicamente para habilitar las relaciones deseadas de varios a varios en el cubo. Esto hace posible el filtrado y las funcionalidades analíticas más avanzadas.

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

Atributo Obligatorio Valores Definición
Nombre del Grupo de Medidas Cadena Nombre del grupo de medida en el que se va a realizar la sustitución
PuntoFinalDeRelación (Destino, origen, ninguno) El punto de conexión de la relación para realizar la sustitución. De forma predeterminada, el valor es Ninguno para los hechos personalizados.
Relación No ManagementPackRelationship La relación que se utiliza para la sustitución.
AliasTargetDimensionAs No Cadena El nombre de alias de la dimensión de destino original.
AliasReplacementDimensionsAs No Cadena El nombre de alias de la dimensión sustituida.
DimensionAlias No ManagementPackDimension El alias de dimensión de un hecho personalizado si existe uno.

MDX personalizado

Puedes usar scripts de expresiones multidimensionales (MDX) personalizados para modificar y adaptar el cubo OLAP a las especificaciones exactas que satisfagan tus necesidades. Dado que Service Manager está basado en modelos, es imposible determinar todas tus 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. MDX personalizado permite definir scripts MDX que se aplicarán al cubo OLAP para habilitar escenarios específicos que los usuarios necesitan medir e instrumentar.

Cálculo nombrado

Puedes usar cálculos con nombre para definir nuevos atributos en una dimensión a la que una medida personalizada pueda dirigirse más adelante. Esto permite ampliar el esquema dimensional y personalizar el esquema para que se ajuste a tus necesidades exactas. El ejemplo siguiente procede 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 Incidente contiene datos, como el estado del incidente y el tiempo de resolución objetivo. 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. Puedes crear este escenario mediante 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.

Recuerda que Service Manager solo admite dimensiones de destino NamedCalculation. NamedCalculation no puede dirigirse a hechos. En la tabla siguiente, se describen los atributos de los cálculos nombrados.

Atributo Obligatorio Valores Definición
identificación Cadena Nombre del cálculo nombrado.
Objetivo ManagementPackDimensión La dimensión objetivo para la medida
TipoDeColumna (Int., Doble) El tipo Lenguaje de consulta estructurado (SQL) de la columna.
Tipo No (Recuento, Suma) El tipo de medida.

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

Medida

Puedes usar medidas personalizadas para agregar y mostrar datos basados en atributos numéricos de 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, el destino de la medida es IncidentDimension y la propiedad específica es IncidentsPastTargetResolutionTime. Esta es 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 consideraciones de rendimiento, no se permiten los tipos de medidas Distinct Count de Service Manager. En la siguiente tabla, se describen los atributos de medida.

Atributo Obligatorio Valores Definición
identificación Cadena Nombre de la medida
Objetivo ManagementPackDimension La dimensión objetivo para la medida
Propiedad Cadena La propiedad de la dimensión objetivo
Tipo No (Recuento, Suma) El tipo de medida.

ManyToManyRelationship

La relación de varios a varios (ManyToManyRelationship) le permite, como diseñador de cubos, agregar dimensiones personalizadas de varios a varios a un cubo OLAP para facilitar escenarios analíticos avanzados. Definir relaciones de varios a varios excede el ámbito de este documento. Sin embargo, puedes investigar este concepto y sus ventajas. Para obtener más información sobre ManyToManyRelationship, consulta 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 necesidad de ninguna interacción por su parte. Sin embargo, Service Manager no agrega dimensiones de varios a varios para las relaciones en cascada (relaciones múltiples) debido al aumento exponencial de las posibles relaciones que se pueden agregar. Agregar todas estas relaciones puede degradar significativamente el rendimiento cuando se examina el cubo OLAP. Esto se debe a que las agregaciones de relaciones de varios a varios no se suelen calcular durante el procesamiento y porque las uniones se evaluarán mientras se examina el cubo OLAP. Si deseas una relación específica, en cascada y de varios a varios, puedes definir la relación mediante un elemento de módulo de administración, el cual se agregará al cubo OLAP. Por el contrario, puedes sobrescribir una relación de varios a varios generada automáticamente para usar un grupo de medida intermedio diferente en instancias en las que existen varios grupos intermedios. En este caso, Service Manager usa automáticamente el primer grupo con el que se encuentre. A continuación, se muestra un ejemplo de un elemento de relación de paquete de gestión de varios a varios:

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

La tabla siguiente describe los atributos de relaciones de varios a varios.

Atributo Obligatorio Valores Definición
CubeDimension Cadena Nombre de la dimensión varios a varios del cubo
TargetMeasureGroup Cadena El grupo de medidas objetivo para crear la relación de varios a varios
IntermediateMeasureGroup Cadena El grupo de medidas intermedio para crear la relación de varios a varios

KPI

Las organizaciones y las empresas pueden usar indicadores clave de rendimiento (KPI) para calcular rápidamente el estado de una empresa mediante la medición de su progreso hacia un objetivo predefinido. Cada KPI tiene un valor de destino y un valor real. El valor de destino es un objetivo cuantitativo que es fundamental para el éxito de la organización. Grandes cantidades de datos se filtran por un valor discreto que se puede usar para supervisar el rendimiento y el progreso hacia los objetivos y las pruebas comparativas. Algunos ejemplos de KPI son una universidad que tiene como objetivo que el 90 % de sus estudiantes se gradúen en un plazo de cuatro años o un equipo de baloncesto con el objetivo de hacer que el equipo opuesto lance menos del 50 por ciento en un juego. Puede usar un cuadro de mandos para mostrar un grupo de KPI, que muestra el estado general de una empresa en una única instantánea. A continuación, 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 siguiente tabla se describen los atributos de los KPI.

Atributo Obligatorio Valores Definición
identificación Cadena Nombre del KPI
Subtítulo Cadena Descripción del KPI
Valor Cadena Script MDX que define el valor numérico del KPI
Objetivo Cadena El valor de destino del KPI
Umbral verde Cadena (entre 0,1 y 1) Cualquier número que esté por encima o por debajo de este umbral, dependiendo de la dirección, se marca como verde en el símbolo de estado.
Umbral amarillo Cadena (entre 0,1 y 1) Cualquier número que esté por encima o por debajo del umbral, según la dirección, pero que no cumpla con 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 arriba, los números por encima del umbral verde o amarillo se marcan con el símbolo correspondiente. De forma similar, los números por debajo de los umbrales verdes o amarillos se marcan con el símbolo correspondiente.
Gráfico de estado (Shapes, TrafficLight, RoadSigns, Gauge, ReversedGauge, Thermometer, Cylinder, Faces, VarianceArrow) El símbolo que representará el KPI.

Acción

Las acciones son eventos que se pueden desencadenar en un cubo OLAP al acceder a los datos del cubo. Service Manager solo admite acciones de obtención de detalles. A continuación se muestra 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 acciones y atributos.

Atributo Obligatorio Valores Definición
identificación Cadena Nombre de la acción de obtención de detalle
Nombre del Grupo de Medidas Cadena Grupo objetivo de medidas de la acción
TipoDeAcción (DrillThrough) Tipo de acción. Service Manager solo admite acciones de obtención de detalles.
CubeDimension Cadena La dimensión de cubo que es el destino de la acción, que debe ser un segmentador en el Grupo de Medidas.
nombre de la propiedad Cadena Atributo de la dimensión que se muestra cuando se ejecuta la acción de perforación

CubeExtension

El propósito principal del elemento CubeExtension es que puedas modificar el cubo OLAP después de que este se haya implementado en SSAS, sin tener que desinstalar y reinstalar el cubo. En situaciones en las que el cubo OLAP se ha procesado completamente con años de datos, la recreación del cubo tarda mucho tiempo porque todas las particiones tienen que volver a procesarse completamente.

El elemento CubeExtension puede definir los siguientes elementos:

  • NamedCalculation

  • ManyToManyRelationship

  • KPI

  • Medida

  • Acción

  • CustomMdx

Cada personalización definida en un elemento CubeExtension también se puede definir en un objeto SystemCenterCube. La única personalización que no se permite es la adición de hechos, grupos de medidas y sustituciones al cubo.

Pasos siguientes