Modellazione dei cubi OLAP di Service Manager nei Management Pack - Panoramica

Importante

Questa versione di Service Manager ha raggiunto la fine del supporto. È consigliabile eseguire l'aggiornamento a Service Manager 2022.

La possibilità di definire elementi del Management Pack personalizzati è stata usata per modellare gli elementi del Management Pack (OLAP) di elaborazione analitica online inclusi in Service Manager. Tali elementi del Management Pack consentono all'utente di definire in modo dichiarativo e personalizzare un cubo OLAP a un livello superiore di astrazione. In base alla definizione, la distribuzione di questi elementi del Management Pack crea le relazioni, i componenti e i blocchi predefiniti fondamentali del cubo OLAP a un livello maggiore di dettaglio, senza ulteriori indicazioni sull'utente. Di seguito sono indicati i due principali elementi del Management Pack inclusi nei cubi OLAP:

  • SystemCenterCube

  • CubeExtension

SystemCenterCube

L'elemento SystemCenterCube definisce il cubo OLAP a un livello variabile di dettaglio, in base alle esigenze specifiche. Questo elemento contiene i seguenti sottoelementi:

  • MeasureGroup

  • Sostituzione

  • CustomMDX

  • NamedCalculation

  • Misura

  • Indicatore KPI

  • Action (tuttavia, solo le azioni drill-through sono attualmente supportate)

  • ManyToManyRelationship

MeasureGroup

Ogni cubo OLAP contiene una raccolta di fatti esistenti nel data mart, in cui ciascun membro della raccolta corrisponde a un gruppo di misure. Ogni gruppo di misure deve avere un nome univoco all'interno del cubo OLAP. Tuttavia, un singolo fatto può corrispondere a più gruppi di misure in un cubo OLAP. Ad esempio, la relazione astratta WorkItemAssignedToUser può essere definita tre volte in un cubo OLAP con i nomi univoci dei gruppi di misure di ChangeRequestAssignedToUser, IncidentAssignedToUsere ProblemAssignedToUser. È possibile personalizzare il fatto in modo che solo le richieste di modifica, gli eventi imprevisti e i problemi siano inclusi nel rispettivo gruppo di misure per il cubo OLAP.

Nell'esempio riportato di seguito viene illustrato l'elemento del Management Pack per il gruppo di misure IncidentAssignedToUser:

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

Quando viene distribuito il cubo OLAP, la dimensione, gli outrigger e le relazioni con chiavi esterne vengono calcolati automaticamente e la vista dell'origine dati viene aggiornata con questi nuovi elementi. Nella tabella seguente vengono descritti gli attributi del gruppo di misure.

Attributo Obbligatoria Valori Definizione
DateDimAlias No string Il nome della dimensione Data che filtrerà questo gruppo di misure. Se non è definito alcun alias, il nome del ruolo multiplo della dimensione data sarà automaticamente "(MeasureGroupName)_DateDim"
MeasureGroupName string Il nome del gruppo di misure nel cubo. Questo nome deve essere univoco all'interno del cubo.
Fact Relationship o CustomFact La destinazione del gruppo di misure, che deve essere un fatto nel data warehouse.

Sostituzione

Dato che i fatti di relazione nel data warehouse potrebbero avere come destinazione relazioni e dimensioni astratte, è necessario sostituirle in dimensioni concrete in modo che il gruppo di misure contenga solo le istanze che si desidera esaminare.

Questo è illustrato nell'esempio seguente.

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

In questo esempio, il gruppo di misure IncidentAssignedToUser punta alla relazione WorkitemAssignedToUser . Questa relazione, tuttavia, non contiene solo eventi imprevisti, ma conterrà anche richieste di modifica e problemi che sono stati assegnati anche a tutti gli utenti. Per assicurarsi che questo gruppo di misure contenga solo eventi imprevisti, Service Manager sostituisce WorkItemDim con IncidentDim. Ciò significa che la tabella creata nella vista dell'origine dati per il gruppo di misure esegue automaticamente un inner join in WorkItemDim con IncidentDim e restituisce solo le istanze che contengono un join valido in base a EntityDimKey o BaseManagedEntityId.

Tenere presente che è necessario definire l'endpoint della relazione in cui si desidera eseguire la sostituzione. Questo elemento è necessario perché è possibile che le dimensioni dell'origine e dell'endpoint siano identiche e che sia necessaria una metodologia per identificare in modo univoco la dimensione da sostituire. Un esempio di tale relazione è WorkItemRelates to WorkItem.

L'elemento di sostituzione viene inoltre utilizzato per definire le dimensioni dell'alias per il cubo. In altre parole, è possibile definire un nome alias per una dimensione, ma non è necessario sostituire effettivamente una dimensione. In effetti, la sostituzione in questo caso non si trova nella dimensione, ma nel nome della dimensione del cubo o della dimensione alias, come illustrato nell'esempio seguente:

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

In questo esempio, il nome alias della dimensione del cubo è AssignedToUserDim. Questo è il nome della dimensione che verrà utilizzato per filtrare effettivamente in questo cubo. Consentendo agli utenti di definire i nomi di alias, i nomi possono essere personalizzati in modo specifico per abilitare le relazioni desiderate many-to-many nel cubo. Ciò permette di utilizzare funzionalità di filtraggio e di analisi più avanzate.

Infine, le sostituzioni sono valide non solo per i fatti di relazione, ma anche per i fatti personalizzati. In questo scenario, l'endpoint della relazione verrebbe impostato su None. Nella tabella seguente vengono descritti gli attributi di sostituzione.

Attributo Obbligatoria Valori Definizione
MeasureGroupName string Il nome del gruppo di misure in cui eseguire la sostituzione
RelationshipEndPoint (Target, Source, None) L'endpoint di relazione per eseguire la sostituzione. Per impostazione predefinita, per i fatti personalizzati il valore è None.
Relazione No ManagementPackRelationship La relazione da utilizzare per la sostituzione.
AliasTargetDimensionAs No string Il nome dell'alias della dimensione di destinazione originale
AliasReplacementDimensionsAs No string Il nome dell'alias per la dimensione sostituita
DimensionAlias No ManagementPackDimension L'alias dimensione da un fatto personalizzato, se esistente

Espressioni MDX personalizzate

Per modificare e personalizzare il cubo OLAP con le esatte specifiche che soddisfano le proprie esigenze, è possibile utilizzare script personalizzati di espressioni MDX. Poiché Service Manager è basato sul modello, è impossibile determinare tutte le possibili esigenze semantiche quando si tiene conto dell'ampia gamma di requisiti e specifiche esatte per le esigenze aziendali specifiche del dominio di un determinato utente. Le espressioni MDX personalizzate consentono di definire script MDX che verranno applicati al cubo OLAP per abilitare scenari specifici necessari per gli utenti per misurare e utilizzare gli strumenti.

Calcolo denominato

I calcoli denominati permettono di definire nuovi attributi in una dimensione che potrà successivamente essere la destinazione di una misura personalizzata. Questo consente di estendere e personalizzare lo schema dimensionale per adattarlo alle proprie esigenze specifiche. L'esempio riportato di seguito si riferisce a 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 questo esempio, la Dimensione evento contiene dei dati, ad esempio lo stato e l'ora di risoluzione destinazione dell'evento imprevisto. Tuttavia, non esiste alcuna misura nativa che calcola il numero di eventi imprevisti che hanno superato il tempo di risoluzione di destinazione, anche se questo tipo di dati è molto utile per un amministratore di sistemi. È possibile creare questo scenario usando un calcolo denominato e aggregare i dati in modo che una misura personalizzata possa specificare come destinazione il nuovo attributo e quindi presentare le informazioni a un utente finale.

Tenere presente che Service Manager supporta solo le dimensioni namedCalculation destinate alle dimensioni. NamedCalculation non può fare riferimento a fatti. Nella tabella seguente vengono descritti gli attributi dei calcoli denominati.

Attributo Obbligatoria Valori Definizione
ID string Nome del calcolo denominato.
Destinazione ManagementPackDimension La dimensione di destinazione per la misura
ColumnType (Int, Double) Il tipo di colonna SQL (Structured Query Language)
Tipo No (Count, Sum) Il tipo di misura

Il sottoelemento <Calculation> contiene, come valore, la definizione del calcolo denominato. Il valore viene memorizzato come espressione MDX.

Misura

È possibile personalizzare le misure per aggregare e visualizzare i dati in base ad attributi numerici delle dimensioni. Service Manager non supporta misure personalizzate basate su fatti. Continuando con l'esempio del calcolo denominato precedente, Service Manager definisce una misura personalizzata in IncidentsPastTargetResolutionTime come indicato di seguito:

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

Esaminando il codice XML, la destinazione della misura è IncidentDimension e la proprietà specifica è IncidentsPastTargetResolutionTime. Questa è la proprietà personalizzata definita in precedenza. Nella dimensione le misure personalizzate possono avere come destinazione proprietà sia native che calcolate.

Infine, il tipo di misura viene definito come una somma. I valori possibili per un tipo di misura sono Sum e Count. A causa delle considerazioni sulle prestazioni, non sono consentiti Service Manager tipi di misura Distinct Count. Nella tabella seguente vengono descritti gli attributi di misura.

Attributo Obbligatoria Valori Definizione
ID string Nome della misura
Destinazione ManagementPackDimension La dimensione di destinazione per la misura
Proprietà string La proprietà della dimensione di destinazione
Tipo No (Count, Sum) Il tipo di misura

ManyToManyRelationship

ManyToManyRelationship permette al progettista di cubi di aggiungere dimensioni many-to-many personalizzate a un cubo OLAP per abilitare scenari analitici avanzati. La definizione di relazioni many-to-many è oltre l'ambito di questo documento. Tuttavia, è possibile approfondire questo concetto e i vantaggi offerti. Per altre informazioni su ManyToManyRelationship, vedere The Many-to-Many Revolution 2.0.

Durante la distribuzione del cubo, Service Manager aggiunge automaticamente dimensioni molti-a-molti al cubo per tutte le relazioni "one-hop", senza alcuna interazione da parte dell'utente. Tuttavia, Service Manager non aggiunge dimensioni molti-a-molti per le relazioni a catena (multi hop) a causa dell'aumento esponenziale delle possibili relazioni che potrebbero essere aggiunte. L'aggiunta di tutte queste relazioni può ridurre significativamente le prestazioni durante l'esplorazione del cubo OLAP. Ciò accade perché le aggregazioni di relazioni many-to-many non vengono solitamente calcolate durante l'elaborazione e perché i join verranno valutati durante l'esplorazione del cubo OLAP. Se si desidera una specifica relazione a catena many-to-many, è possibile definire la relazione utilizzando un elemento Management Pack, che verrà poi aggiunto al cubo OLAP. Viceversa, è possibile sovrascrivere una relazione many-to-many generata automaticamente per utilizzare un diverso gruppo di misure intermedio nelle istanze in cui sono presenti più gruppi intermedi. In questo caso, Service Manager usa automaticamente il primo gruppo rilevato. Di seguito è riportato un esempio di un elemento relazione Management Pack many-to-many:

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

Nella tabella seguente vengono descritti gli attributi della relazione molti-a-molti.

Attributo Obbligatoria Valori Definizione
CubeDimension string Il nome della dimensione cubo many-to-many
TargetMeasureGroup string Il gruppo di misure di destinazione per creare la relazione many-to-many
IntermediateMeasureGroup string Il gruppo di misure intermedio per creare la relazione many-to-many

Indicatore KPI

Le organizzazioni e le aziende possono utilizzare gli indicatori di prestazione chiave (KPI) per eseguire una rapida stima di un'impresa misurandone i progressi verso un obiettivo predefinito. Ogni indicatore KPI ha un valore di destinazione e un valore effettivo. Il valore di destinazione è un obiettivo quantitativo, fondamentale per il successo dell'organizzazione. Vengono filtrate grandi quantità di dati in un valore discreto che può essere utilizzato per monitorare le prestazioni e i progressi verso gli obiettivi e i benchmark. Tra gli esempi di KPI si può citare un'università che si pone come obiettivo il 90% di studenti laureati o una squadra di basket che in un incontro si pone come obiettivo di limitare la squadra avversaria al 50% dei tiri messi a segno. È possibile utilizzare una scorecard per visualizzare un gruppo di indicatori KPI, fornendo uno snapshot istantaneo sull'andamento di un'azienda. Di seguito è riportato un esempio di indicatore 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>  

Nella tabella seguente vengono descritti gli attributi dell'indicatore KPI.

Attributo Obbligatoria Valori Definizione
ID string Il nome dell'indicatore KPI
Didascalia string La descrizione dell'indicatore KPI
Valore string Uno script MDX che definisce il valore numerico dell'indicatore KPI
Obiettivo string Il valore di destinazione dell'indicatore KPI
Soglia verde Stringa (tra 0,1 e 1) Qualsiasi numero che si trova sopra o sotto la soglia, a seconda della direzione, è contrassegnato in verde nell'icona di stato.
Soglia gialla Stringa (tra 0,1 e 1) Qualsiasi numero superiore o inferiore alla soglia, a seconda della direzione, ma non soddisfa la soglia verde è contrassegnata come gialla nel simbolo di stato. Un numero che non soddisfa la soglia gialla è contrassegnato come rosso nel simbolo di stato.
Direzione (Su, giù) Se la direzione è verso l'alto, tutti i numeri superiori alla soglia di colore verde o giallo sono contrassegnati con l'icona corrispondente. Allo stesso modo verso il basso, ossia i numeri al di sotto delle soglie verde o gialla sono contrassegnati con l'icona corrispondente.
Icona stato (forme, semaforo, segnali stradali, contatore, contatore inverso, termometro, cilindro, facce, freccia di varianza) L'icona che rappresenta l'indicatore KPI.

Azione

Le azioni sono eventi che è possibile attivare in un cubo OLAP quando si accede ai dati nel cubo. Solo le azioni di drill-through sono supportate da Service Manager. Di seguito è riportato l'esempio di un'azione:

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

Nella tabella seguente vengono descritti gli attributi delle azioni.

Attributo Obbligatoria Valori Definizione
ID string Nome dell'azione drill-through
MeasureGroupName string Gruppo di misure di destinazione dell'azione
ActionType (Drill-through) Tipo di azione. Solo le azioni di drill-through sono supportate da Service Manager.
CubeDimension string La dimensione del cubo destinazione dell'azione, che deve essere un filtro dati nel gruppo di misure
PropertyName string Attributo della dimensione che viene visualizzata quando viene eseguita l'azione drill-through

CubeExtension

Lo scopo principale dell'elemento CubeExtension è di consentire di apportare modifiche al cubo OLAP dopo che questo è stato distribuito in SSAS, senza la necessità di disinstallare e reinstallare il cubo. Nelle situazioni in cui il cubo OLAP è stato interamente elaborato con anni di dati, ricreare il cubo comporta un enorme dispendio di tempo poiché tutte le partizioni sono state completamente rielaborate.

L'elemento CubeExtension può definire i seguenti elementi:

  • NamedCalculation

  • ManyToManyRelationship

  • Indicatore KPI

  • Misura

  • Azione

  • CustomMDX

Ogni personalizzazione definita in un elemento CubeExtension può essere definita anche in un oggetto SystemCenterCube. L'unica personalizzazione non consentita è l'aggiunta di gruppi di fatti o misure e sostituzioni al cubo.

Passaggi successivi