Problembehandlung Service Manager OLAP-Cubes
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.
In den folgenden Abschnitten werden häufige Probleme beschrieben, die Sie möglicherweise zur Behandlung von OLAP-Datencubes (Online Analytical Processing) im Service Manager data warehouse benötigen.
Verarbeitungsfehler
Trotz bestehender Schutzvorrichtungen in der Datenbank „DWRepository“ zur Gewährleistung der Datenintegrität können mögliche Verarbeitungsfehler nicht völlig ausgeschlossen werden. Der häufigste Verarbeitungsfehler ist eine Ausnahme vom Typ „DimensionKeyNotFound“. Da SQL Server Analysis-Server Dimensionen (SSAS) standardmäßig alle 60 Minuten verarbeitet werden, ist es möglich, dass die Dimensionsschlüssel während der Verarbeitung der Measuregruppe des Fakts noch nicht vorhanden sind. In diesem Fall werden von der Verarbeitungslogik standardmäßig die SSAS-Dimensionen mithilfe eines Tasks vom Typ „ProcessUpdate“ erneut verarbeitet. Anschließend wird der Fakt bis zu zwei Mal erneut verarbeitet, um die Schlüsselfehler zu beheben.
In seltenen Fällen treten bei der erneuten Verarbeitung Fehler auf. Mögliche Ursachen dieses Fehlers:
Fremdschlüssel werden nur vom Data Warehouse-Repository erzwungen, um die Integrität der Daten zu gewährleisten. Der Data Mart enthält mit Rücksicht auf die Leistung keine Fremdschlüssel. Da beim Ladeprozess die Daten mithilfe von ADO-Methoden (ActiveX Data Objects) vom Repository zum Data Mart verschoben werden, werden möglicherweise Faktdaten aufgrund eines Zeitsteuerungsproblems vor den Dimensionsschlüsseln geladen. Der Ladeprozess muss erneut ausgeführt werden, um die vorhandenen Dimensionsschlüssel zu verschieben und das Problem zu beheben.
Werden mehrere Data Marts verwendet, ist der primäre Data Warehouse Data Mart das Ziel aller Dimensionen der einzelnen Data Marts. Auf diese Weise werden die OLAP-Cubes verkleinert, und deren Verarbeitungszeit wird verkürzt. Möglicherweise werden jedoch Dimensionsschlüssel, die im primären Data Warehouse Data Mart noch nicht vorhanden sind, von Fakten in den Operations Manager- oder Configuration Manager-Data Marts als Ziel verwendet. In diesem Fall müssen Sie den Ladeauftrag für den primären Data Mart ausführen, um den Verarbeitungsfehler für Cubes zu beheben, die die Operations Manager- oder Configuration Manager-Data Marts als Ziel verwenden.
Problembehandlung bei MDX-Anpassungen
Da für viele Cubeanpassungen entsprechende Kenntnisse in MDX (Multidimensional Expressions) erforderlich sind, treten im anfänglichen, für die OLAP-Cubeanpassung verwendeten MDX-Ausdruck häufig Syntaxfehler auf. Mehrere Versuche können notwendig sein, bevor der Ausdruck für Ihre Anforderungen geeignet ist. Bevor Sie den MDX-Ausdruck mithilfe einer Cubeerweiterung (CubeExtension) oder durch Definition im Element „SystemCenterCube“ zum OLAP-Cube hinzufügen, testen Sie den MDX-Ausdruck mithilfe von Business Intelligence Development Studio (BIDS) oder SSAS für den OLAP-Cube, ohne die Änderungen zu speichern.
Enthält der MDX-Ausdruck beim Hinzufügen in einem Management Pack mithilfe einer Cubeerweiterung jedoch einen Fehler, können Sie die Cubeerweiterung deinstallieren, um am OLAP-Cube vorgenommene Änderungen rückgängig zu machen. Wenn die Ausdrücke mithilfe eines Elements vom Typ „SystemCenterCube“ definiert werden, müssen Sie das Management Pack deinstallieren und anschließend den OLAP-Cube aus SSAS entfernen, bevor Sie das Management Pack des OLAP-Cubes ändern und erneut bereitstellen können. Definieren Sie aus diesem Grund Cubeanpassungen mithilfe des Elements „CubeExtension“.
Fehler bei der Bereitstellung des OLAP-Cube-Management Packs
Möglicherweise möchten Sie die Measuregruppe WorkItems Assigned To User durchsuchen und anschließend alle Benutzer in einer bestimmten Abteilung in Datenschnitte aufteilen. Wenn Sie auf UserDimeinen Filter anwenden, geschieht nichts und es werden keine Daten zurückgegeben. Das ist sehr verwirrend, da UserDim eine Beziehung zur Measuregruppe hat.
Einer Datenbankdimension können in einem mehrdimensionalen Modell jedoch mehrere Rollen zugewiesen werden. Wir bezeichnen diese Dimensionen als Dimensionen mit unterschiedlichen Rollen. Die Dimension „Time“ kann in einem OLAP-Cube, mit dem Fluginformationen beschrieben werden, beispielsweise mehrmals verwendet werden. Die Dimensionen Departure Time und Arrival Timekönnen in diesem Fall Dimensionen mit unterschiedlichen Rollen sein, wobei von beiden die Dimension Time als Ziel verwendet wird.
In einem Beispiel für WorkItems Assigned To User lautet der Name der Benutzerdimension mit unterschiedlichen Rollen AssignedToUser. Wenn der Benutzer nach dieser bestimmten Dimension anstelle von "UserDim" gefiltert wird, gibt er die richtigen Informationen zurück.
Die Registerkarte „Dimensionsverwendung“ in BIDS ist sehr nützlich. Auf ihr werden die Beziehungen zwischen Dimensionen und OLAP-Cubes angezeigt, sodass Sie erkennen können, welche Dimensionen zum Aufteilen des OLAP-Cubes in Datenschnitte und Datenwürfel verwendbar sind. Darüber hinaus hat im Beispiel für WorkItems Assigned To User nur die Dimension UserDim eine Beziehung zur Measuregruppe WorkItemAssignedToUser , nicht jedoch die Dimension UserDim(AssignedToUser) . Das Verknüpfungsattribut ist „UserDimKey“. In diesem Fall wird der Name der Dimension mit unterschiedlichen Rollen auf der Registerkarte „Dimensionsverwendung“ in Klammern hervorgehoben.
Service Manager nicht über die Registerkarte Dimensionsverwendung verfügt. Daher müssen Sie BIDS verwenden, um zu ermitteln, welche Dimensionen zum Filtern eines bestimmten Cubes verwendet werden können.
Fehler beim Verarbeiten von OLAP-Cubes auf einem SSAS-Remoteserver
In bestimmten Situationen können bei der Verarbeitung eines OLAP-Cubes auf einem SSAS-Remoteserver aufgrund einer nicht ordnungsgemäß konfigurierten Firewall Fehler auftreten. Von der Standardinstanz von SSAS wird TCP/IP-Port 2383 verwendet. Dieser Port muss in der Firewall entsperrt werden, um den Zugriff zu ermöglichen. Führen Sie zum Entsperren des Ports folgende Befehlszeilenanweisungen aus:
C:\Windows\system32>set port=2383
C:\Windows\system32>netsh advfirewall firewall add rule name="Analysis Services" protocol=TCP dir=in localport=2383 action=allow
Olap-Cubeverarbeitung wird beendet
Die Verarbeitung eines OLAP-Cubes kann aus vielen Gründen vorzeitig beendet werden. Zunächst müssen Sie sicherstellen, dass der Server über genügend Arbeitsspeicher verfügt. Dies gilt insbesondere dann, wenn Data Warehouse und SSAS-Sever auf dem gleichen Server gehostet werden. Es muss genügend Arbeitsspeicher zum parallelen Ausführen von Data Warehouse-Aufträgen zum Extrahieren, Transformieren und Laden (ETL) und von Cubeverarbeitungsaufträgen vorhanden sein. Im Folgenden sind einige mögliche Lösungen aufgeführt:
In Microsoft SQL Server 2008 Analysis Services gibt es bekannte Deadlock-Probleme. Sie können das Problem umgehen, indem Sie die Anzahl der Threads im Verarbeitungsthreadpool erhöhen, bevor die Verarbeitung beendet wird. Wenn das System bereits beendet wurde, besteht die Problemumgehung im Neustart des System Center-Verwaltungsdiensts und des Analysis Services-Diensts. Anschließend wird das Workitem für die Cubeverarbeitung auf den Status 3 zurückgesetzt, was bedeutet, dass es nicht gestartet wird, sodass es von der Service Manager-Workflow-Engine neu gestartet werden kann.
Hinweis
Sie können folgende Abfragen in der Datenbank „DWStagingAndConfig“ ausführen, um die relevante Arbeitsaufgabe für die Cubeverarbeitung zu ermitteln. Diese Abfragen werden einzeln angezeigt. Sie können Sie jedoch ganz einfach zu einer Abfrage verbinden:
select processId from infra.process where processname like 'Process.{CubeName}' select batchid from infra.batch where processId = {ProcessId from previous query} select * from infra.workitem(nolock) where BatchId = {BatchId from previous query} update infra.workitem set statusid = 3 where workitemId = {workitemId from previous query)Überprüfen Sie die Eigenschaft „CoordinatorExecutionMode“ im SSAS-Dienst, und stellen Sie sicher, dass sie richtig definiert wurde. Weitere Informationen zu diesem Problem finden Sie in den SQL Server-Foren.
Der DWMaintenance-Task wird im Schritt ManageCubePartitions oder ManageCubeTranslations beendet.
In diesem Fall ist die häufigste Ursache ein nicht reagierender SSAS-Server. Die Problemumgehung ist für den ersten Schritt im vorherigen Abschnitt "OLAP Cube Processing Stops" (OLAP-Cubeverarbeitung wird beendet) identisch. Um das relevante Workitem für die Cubeverarbeitung zu bestimmen, können Sie die folgenden Abfragen für die DWStagingAndConfig-Datenbank. Diese Abfragen werden einzeln angezeigt. Sie können Sie jedoch ganz einfach zu einer Abfrage verbinden:
select processid from infra.process where processname = 'DWMaintenance'
select * from infra.ProcessModule where ProcessId = {ProcessId from previous query} (Note the ProcessModuleId where the VertexName is ManageCubePartitions/ManageCubeTranslaions)
Select * from infra.batch where ProcessId = {ProcessId from previous query} (Note the BatchId from the largest batch)
select * from infra.WorkItem where BatchId = {BatchId from previous query}
update infra.workitem set statusid = 3 where workitemId = {workitemId for the step that is not responding with the corresponding processmoduleid for ManageCubePartitions/ManageCubeTranslations)