Modellieren von Service Manager-OLAP-Cubes in Management Packs (Übersicht)

Wichtig

Diese Version von Service Manager das Ende des Support erreicht hat. Es wird empfohlen, dass Sie ein Upgrade auf Service Manager 2019 durchführen.

Die Möglichkeit, benutzerdefinierte Management Pack-Elemente zu definieren, wurde verwendet, um die In-Management Pack-Elemente der analytischen Onlineverarbeitung (OLAP) zu modellieren, die in Service Manager. Mithilfe dieser Management Pack-Elemente kann der Benutzer einen OLAP-Cube auf einer höheren Abstraktionsebene deklarativ definieren und anpassen. Basierend auf der Definition werden durch die Bereitstellung dieser Management Pack-Elemente die richtigen Beziehungen, Komponenten und grundlegenden Bausteine des OLAP-Cubes detaillierter und ohne weitere Benutzerführung erstellt. Im Folgenden werden die beiden in OLAP-Cubes enthaltenen Management Pack-Hauptelemente beschrieben:

  • SystemCenterCube

  • CubeExtension

SystemCenterCube

Mit dem Element „SystemCenterCube“ wird der OLAP-Cube je nach Ihren Anforderungen unterschiedlich detailliert definiert. Dieses Element enthält die folgenden Unterelemente:

  • Measuregruppe

  • Substitution

  • CustomMDX

  • NamedCalculation

  • "Measure"

  • KPI

  • Action (derzeit werden jedoch nur Drillthroughaktionen unterstützt)

  • ManyToManyRelationship

Measuregruppe

Jeder OLAP-Cube enthält eine Sammlung von Fakten, die im Data Mart vorhanden sind, wobei jedes Mitglied in der Sammlung einer Measuregruppe entspricht. Jede Measuregruppe muss innerhalb des OLAP-Cubes einen eindeutigen Namen haben. Ein einzelner Fakt kann jedoch mehreren Measuregruppen in einem OLAP-Cube entsprechen. Die abstrakte Beziehung WorkItemAssignedToUser kann in einem OLAP-Cube mit den eindeutigen Measuregruppennamen ChangeRequestAssignedToUser, IncidentAssignedToUserund ProblemAssignedToUserbeispielsweise drei Mal definiert werden. Sie können die Tatsache so anpassen, dass nur Änderungsanforderungen, Incidents und Probleme in der entsprechenden Measuregruppe für den OLAP-Cube enthalten sind.

Im folgenden Beispiel wird das Management Pack-Element für die Measuregruppe „IncidentAssignedToUser“ dargestellt:

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

Beim Bereitstellen des OLAP-Cubes werden Dimensions-, Outriggers- und Fremdschlüsselbeziehungen automatisch berechnet, und die Datenquellensicht wird mit diesen neuen Elementen aktualisiert. In der folgenden Tabelle werden die Measuregruppenattribute beschrieben.

Attribut Erforderlich Werte Definition
DateDimAlias Nein String Der Name der Datumsdimension, mit der diese Measuregruppe gefiltert wird. Wenn kein Alias definiert wird, lautet der Name der Datumsdimension mit unterschiedlichen Rollen automatisch „(MeasureGroupName)_DateDim“
MeasureGroupName Ja String Der Name der Measuregruppe im Cube. Dieser Name muss innerhalb des Cubes eindeutig sein.
Fakt Ja Beziehung oder benutzerdefinierter Fakt Das Ziel der Measuregruppe, bei dem es sich um einen Fakt im Data Warehouse handeln muss.

Substitution

Da abstrakte Beziehungen und Dimensionen von Beziehungsfakten im Data Warehouse als Ziel verwenden können, müssen sie in konkreten Dimensionen ersetzt werden, sodass die Measuregruppe nur Instanzen enthält, die Sie durchsuchen möchten.

Dies wird im folgenden Beispiel illustriert.

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

In diesem Beispiel wird von der Measuregruppe IncidentAssignedToUser auf die WorkitemAssignedToUser -Beziehung gezeigt. Diese Beziehung enthält jedoch nicht nur Incidents, sondern auch Änderungsanforderungen und Probleme, die auch Benutzern zugewiesen wurden. Um sicherzustellen, dass diese Measuregruppe nur Incidents enthält, Service Manager WorkItemDim durch IncidentDim ersetzt. Das bedeutet, dass von der in der Datenquellensicht für die Measuregruppe erstellten Tabelle automatisch eine innere Verknüpfung für „WorkItemDim“ und „IncidentDim“ erstellt wird und nur diese Instanzen zurückgegeben werden, bei denen eine Verknüpfung basierend auf dem „EntityDimKey“ oder auf der „BaseManagedEntityId“ gültig ist.

Sie müssen den Beziehungsendpunkt definieren, an dem die Ersetzung ausgeführt werden soll. Dieses Element ist erforderlich, da es möglich ist, dass die Quell- und die Endpunktdimension identisch sind und eine Methodik benötigt wird, um eindeutig zu ermitteln, welche Dimension ersetzt werden soll. WorkItemRelates to WorkItemist ein Beispiel für eine Beziehung dieser Art.

Das Element „substitution“ wird darüber hinaus auch für die Definition von Aliasdimensionen für den Cube verwendet. Das bedeutet, dass Sie zwar einen Aliasnamen für eine Dimension definieren können, dass dies zum Ersetzen einer Dimension jedoch nicht erforderlich ist. Die Ersetzung wird in diesem Fall nicht für die Dimension, sondern für den Namen der Cubedimension oder der Aliasdimension ausgeführt, wie im folgenden Beispiel zu sehen ist:

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

In diesem Beispiel lautet der Name der Aliascubedimension AssignedToUserDim. Dies ist der Name der Dimension, der zum Filtern dieses Cubes verwendet wird. Wenn Sie zulassen, dass Benutzer Aliasnamen definieren können, können Namen speziell angepasst werden, um die gewünschten m:n-Beziehungen im Cube zu ermöglichen. Dadurch werden erweiterte Filtervorgänge und analytische Funktionen ermöglicht.

Ersetzungen beziehen sich nicht nur auf Beziehungsfakten, sondern auch auf benutzerdefinierte Fakten. In diesem Szenario wird der Beziehungsendpunkt auf Nonefestgelegt. In der folgenden Tabelle werden Ersetzungsattribute beschrieben.

Attribut Erforderlich Werte Definition
MeasureGroupName Ja String Der Name der Measuregruppe, für die die Ersetzung ausgeführt wird
RelationshipEndPoint Ja (Target, Source, None) Der Endpunkt der Beziehung zum Ausführen der Ersetzung. Für benutzerdefinierte Fakten lautet der Wert standardmäßig „None“.
Relationship Nein ManagementPackRelationship Die Beziehung, die für die Ersetzung verwendet wird.
AliasTargetDimensionAs Nein String Der Aliasname der ursprünglich als Ziel verwendeten Dimension
AliasReplacementDimensionsAs Nein String Der Aliasname für die ersetzte Dimension
DimensionAlias Nein ManagementPackDimension Der Dimensionsalias aus einem benutzerdefinierten Fakt, sofern vorhanden.

Benutzerdefinierter MDX

Sie können benutzerdefinierte MDX-Skripts (Multi-Dimensional Expression, mehrdimensionaler Ausdruck) verwenden, um den OLAP-Cube zu ändern und an die Spezifikationen anpassen, die Ihren Anforderungen entsprechen. Da Service Manager modellbasiert sind, ist es unmöglich, alle möglichen semantischen Anforderungen zu bestimmen, wenn sie das breite Spektrum von Anforderungen und genauen Spezifikationen für die domänenspezifischen Geschäftsanforderungen eines bestimmten Benutzers berücksichtigen. Mithilfe von mehrdimensionalen Ausdrücken können Sie MDX-Skripts definieren, die auf den OLAP-Cube angewendet werden, um bestimmte Szenarien zu ermöglichen, die Benutzer zum Messen und Instrumentieren benötigen.

Benannte Berechnung

Mithilfe von benannten Berechnungen können Sie neue Attribute für eine Dimension definieren, die von einem benutzerdefinierten Measure später als Ziel verwendet werden können. Auf diese Weise können Sie das dimensionale Schema erweitern und an Ihre Bedürfnisse exakt anpassen. Das folgende Beispiel stammt aus dem „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>  

In diesem Beispiel enthält die Incidentdimension Daten wie den Status des Incidents und die Zielauflösungszeit. Es gibt jedoch kein systemeigenes Measure, mit dem die Anzahl der Incidents berechnet werden kann, von denen die Zielauflösungszeit überschritten wird, obwohl diese Art von Daten für einen Systemadministrator sehr nützlich sind. Sie können dieses Szenario erstellen, indem Sie eine benannte Berechnung verwenden und die Daten so aggregieren, dass das neue Attribut von einem benutzerdefinierten Measure als Ziel verwendet werden kann und die Informationen anschließend einem Endbenutzer präsentiert werden können.

Denken Sie daran, dass Service Manager nur NamedCalculation-Zieldimensionen unterstützt. Fakten können von einer „NamedCalculation“ nicht als Ziel verwendet werden. In der folgende Tabelle werden Attribute von benannten Berechnungen beschrieben.

Attribut Erforderlich Werte Definition
ID Ja String Name der benannten Berechnung.
Target Ja ManagementPackDimension Die Zieldimension für das Measure
ColumnType Ja (Int, Double) Der SQL-Type (Structured Query Language) der Spalte
Type Nein (Count, Sum) Der Measuretyp

Das Unterelement < Berechnung enthält als Wert die Definition der > benannten Berechnung. Der Wert wird als MDX-Ausdruck gespeichert.

"Measure"

Sie können benutzerdefinierte Measures verwenden, um Daten zu aggregieren und basierend auf numerischen Attributen aus Dimensionen anzuzeigen. Service Manager unterstützt keine benutzerdefinierten Measures, die auf Fakten basieren. Im Anschluss an das Obige Beispiel für benannte Berechnung definiert Service Manager ein benutzerdefiniertes Measure für IncidentsPastTargetResolutionTime wie folgt:

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

In diesem XML-Code ist das Ziel des Measures die „IncidentDimension“ und die spezifische Eigenschaft lautet IncidentsPastTargetResolutionTime. Dies ist die benutzerdefinierte Eigenschaft, die zuvor definiert wurde. Von benutzerdefinierten Measures können systemeigene oder berechnete Eigenschaften in der Dimension als Ziel verwendet werden.

Abschließend wird der Measuretyp als „Sum“ definiert. Mögliche Werte für ein Measure sind „Sum“ und „Count“. Aus Leistungsgründen sind Service Manager Distinct Count-Measuretypen nicht zulässig. In der folgenden Tabelle werden Measureattribute beschrieben.

Attribut Erforderlich Werte Definition
ID Ja String Name des Measures
Target Ja ManagementPackDimension Die Zieldimension für das Measure
Eigenschaft Ja String Die als Ziel verwendete Dimensionseigenschaft
Type Nein (Count, Sum) Der Measuretyp

ManyToManyRelationship

Mithilfe der „ManyToManyRelationship“ können Sie als Cubeentwickler einem OLAP-Cube benutzerdefinierte m:n-Dimensionen hinzufügen, um erweiterte Analyseszenarien zu ermöglichen. Die Definition von m:n-Beziehungen wird in diesem Dokument nicht beschrieben. Sie können jedoch dieses Konzept und seine Vorteile prüfen. Weitere Informationen zu ManyToManyRelationship finden Sie unter The Many-to-Many Revolution 2.0.

Während der Cubebereitstellung fügt Service Manager dem Cube automatisch m:n-Dimensionen für alle "One-Hop"-Beziehungen hinzu, ohne dass Sie interagieren müssen. Aufgrund der exponentiellen Zunahme möglicher Beziehungen, die hinzugefügt werden könnten, fügt Service Manager jedoch keine m:n-Dimensionen für kaskadierende Beziehungen (multi-hop) hinzu. Die Leistung beim Durchsuchen des OLAP-Cubes kann durch Hinzufügen all dieser Beziehungen erheblich beeinträchtigt werden. Grund hierfür ist, dass die Aggregationen von m:n-Beziehungen bei der Verarbeitung generell nicht berechnet werden und dass Verknüpfungen beim Durchsuchen des OLAP-Cubes ausgewertet werden. Wenn Sie eine bestimmte, hierarchische m:n- Beziehung verwenden möchten, können Sie die Beziehung mithilfe eines Management Pack-Elements definieren. Sie wird dann dem OLAP-Cube hinzugefügt. Umgekehrt können Sie eine automatisch generierte m:n-Beziehung überschreiben, um eine andere Zwischenmeasuregruppe in Instanzen zu verwenden, in denen mehrere Zwischengruppen vorhanden sind. In diesem Fall verwendet Service Manager automatisch die erste gefundene Gruppe. Im Folgenden ist ein Beispiel für die m:n-Beziehung eines Management Pack-Elements dargestellt:

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

In der folgenden Tabelle werden die m:n-Beziehungsattribute beschrieben.

Attribut Erforderlich Werte Definition
CubeDimension Ja String Name der m:n-Cubedimension
TargetMeasureGroup Ja String Die Zielmeasuregruppe zum Erstellen der m:n-Beziehung
IntermediateMeasureGroup Ja String Die Zwischenmeasuregruppe zum Erstellen der m:n-Beziehung

KPI

Organisationen und Unternehmen können mithilfe von KPIs (Key Performance Indicators) den Status eines Unternehmens durch Messen des Fortschritts an einem vordefinierten Ziel rasch einschätzen. Für jeden KPI gibt es einen Zielwert und einen Istwert. Der Zielwert ist das quantitative Ziel, das für den Erfolg der Organisation wichtig ist. Große Datenmengen werden auf einen diskreten Wert gefiltert, mit dessen Hilfe Leistung und Fortschritt anhand von Zielen und Benchmarks überwacht werden können. Beispiele für KPIs: Eine Hochschule hat das Ziel, dass 90 % der Studenten innerhalb von vier Jahren ihren Abschluss machen, oder ein Basketballteam hat das Ziel, dafür zu sorgen, dass bei einem Spiel weniger als 50 % der Würfe zugunsten des gegnerischen Teams gehen. Sie können eine Bewertungsliste verwenden, um eine Gruppe von KPIs anzuzeigen und so mit einem Schnappschuss zu einem bestimmten Zeitpunkt den Gesamtstatus eines Unternehmens darzustellen. Im Folgenden ist ein Beispiel für einen KPI dargestellt:

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

In der folgenden Tabelle werden KPI-Attribute beschrieben.

Attribut Erforderlich Werte Definition
ID Ja String Name des KPI
Caption Ja String Beschreibung des KPI
Wert Ja String MDX-Skript, mit dem der numerische Wert des KPI definiert wird
Zielsetzung Ja String Der Zielwert des KPI
GreenThreshold Ja Zeichenfolge (zwischen 0,1 und 1) Eine Zahl, die je nach Richtung über oder unter diesem Schwellenwert liegt, wird im Statussymbol grün gekennzeichnet.
YellowThreshold Ja Zeichenfolge (zwischen 0,1 und 1) Eine Zahl, die je nach Richtung über oder unter diesem Schwellenwert liegt, jedoch nicht dem grünen Schwellenwert entspricht, wird im Statussymbol gelb gekennzeichnet. Eine Zahl, die dem gelben Schwellenwert nicht entspricht, wird im Statussymbol rot gekennzeichnet.
Direction Ja (Up, Down) Wenn für die Richtung „up“ festgelegt wurde, werden Zahlen über dem grünen oder gelben Schwellenwert mit dem entsprechenden Symbol gekennzeichnet. Entsprechend gilt für „down“, dass Zahlen unter dem grünen oder gelben Schwellenwert mit dem entsprechenden Symbol gekennzeichnet werden.
StatusGraphic Ja (Shapes, TrafficLight, RoadSigns, Gauge, ReversedGauge, Thermometer, Cylinder, Faces, VarianceArrow) Das Symbol, mit dem der KPI dargestellt wird.

Action

Aktionen sind Ereignisse, die Sie für einen OLAP-Cube auslösen können, wenn Sie auf Daten im Cube zugreifen. Nur Drillthroughaktionen werden von Service Manager unterstützt. Im Folgenden ist ein Beispiel für eine Aktion dargestellt:

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

In der folgenden Tabelle werden Aktionsattribute beschrieben.

Attribut Erforderlich Werte Definition
ID Ja String Name der Drillthroughaktion
MeasureGroupName Ja String Measuregruppe, die bei der Aktion als Ziel verwendet wird
ActionType Ja (DrillThrough) Typ der Aktion. Nur Drillthroughaktionen werden von Service Manager unterstützt.
CubeDimension Ja String Die Cubedimension, die als Ziel der Aktion verwendet wird und die ein Datenschnitt in der Measuregruppe sein muss
PropertyName Ja String Attribut der Dimension, die angezeigt wird, wenn die Drillthroughaktion ausgeführt wird

CubeExtension

Die Hauptaufgabe des Elements „CubeExtension“ besteht darin, es Ihnen zu ermöglichen, den OLAP-Cube nach der Bereitstellung unter SSAS ändern zu können, ohne den Cube deinstallieren und erneut installieren zu müssen. In Situationen, in denen der OLAP-Cube mit seit Jahren gesammelten Daten vollständig verarbeitet wurde, ist das erneute Erstellen des Cubes zeitaufwändig, da alle Partitionen erneut vollständig verarbeitet werden müssen.

Mit dem Element „CubeExtension“ können folgende Elemente definiert werden:

  • NamedCalculation

  • ManyToManyRelationship

  • KPI

  • "Measure"

  • Action

  • CustomMDX

Jede in einem Element vom Typ „CubeExtension“ definierte Anpassung kann auch in einem Objekt vom Typ „SystemCenterCube“ definiert werden. Die einzige nicht zulässige Anpassung ist das Hinzufügen von Fakten oder Measuregruppen und Ersetzungen zum Cube.

Nächste Schritte