Solución de problemas Service Manager cubos OLAP

Importante

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

En las secciones siguientes se describen los problemas comunes que es posible que necesite para solucionar problemas de cubos de datos de procesamiento analítico en línea (OLAP) en el Service Manager almacenamiento de datos.

Errores de procesamiento

Aunque existen medidas de seguridad en la base de datos DWRepository para garantizar la integridad de los datos, no pueden evitar completamente la posibilidad de un error de procesamiento. El error de procesamiento más habitual es una excepción de DimensionKeyNotFound. Dado que SQL Server las dimensiones de Analysis Server (SSAS) se procesan cada 60 minutos de forma predeterminada, es posible que, al procesar el grupo de medida del hecho, las claves de dimensión aún no existen. En este caso, la lógica de procesamiento vuelve a procesar de forma predeterminada las dimensiones de SSAS con una tarea ProcessUpdate y después vuelve a procesar el hecho hasta dos veces para resolver los errores de clave.

Hay situaciones poco frecuentes en las que se podría producir un error de reprocesamiento. Las causas posibles de este error son las siguientes:

  • Solo el repositorio de almacenamiento de datos aplica claves externas para garantizar la integridad de los datos. El data mart no tiene claves externas para tener en cuenta el rendimiento. Dado que el proceso de carga mueve masivamente los datos del repositorio al data mart mediante métodos de Objetos de datos ActiveX, es posible que los datos de hecho se hayan cargado antes de que las claves de dimensión se hayan cargado como resultado de un problema de tiempo. Para resolver este problema, el proceso de carga se debe ejecutar nuevamente para trasladar las claves de dimensión existentes.

  • En varias situaciones del data mart, todas las dimensiones de cada data mart tienen como destino el data mart principal del almacenamiento de datos. Así se consigue reducir el tamaño y el tiempo de procesamiento de los cubos OLAP. Sin embargo, es posible que los hechos de Operations Manager o Configuration Manager data marts se dirijan a las claves de dimensión de destino que aún no existen en el data mart del almacenamiento de datos principal. En este caso, debe ejecutar el trabajo de carga en el data mart principal para resolver el error de procesamiento de los cubos que tienen como destino los data mart de Operations Manager o Configuration Manager.

Solución de problemas de personalizaciones MDX

Dado que muchas personalizaciones de cubo requieren un conocimiento práctico de expresiones multidimensionales (MDX), es habitual que se produzcan errores de sintaxis en la expresión MDX inicial que se usa para la personalización del cubo OLAP. Pueden requerirse varios intentos antes de que la expresión sea adecuada para sus necesidades. Pruebe la expresión MDX en el cubo OLAP con Business Intelligence Development Studio (BIDS) o SSAS, sin guardar los cambios, antes de agregarla al cubo OLAP, ya sea utilizando CubeExtension o definiéndola en el elemento SystemCenterCube.

Sin embargo, si se produce un error en la expresión MDX al agregarla en un módulo de administración mediante CubeExtension, puede desinstalar la extensión del cubo para revertir los cambios realizados en el cubo OLAP. Si las expresiones se definen mediante un elemento SystemCenterCube, debe desinstalar el módulo de administración y, a continuación, eliminar manualmente el cubo OLAP de SSAS antes de realizar correcciones y volver a implementar el módulo de administración de cubos OLAP. Por este motivo, debe definir las personalizaciones del cubo mediante el elemento CubeExtension.

Errores de implementación del módulo de administración de cubos OLAP

Se podría dar una situación en la que desee examinar el grupo de medida de WorkItems Assigned To User y, a continuación, segmentar todos los usuarios de un departamento concreto. Al intentar realizar el filtrado en UserDim, no sucede nada o no se devuelve ningún dato. Esto puede resultar confuso porque UserDim tiene una relación con el grupo de medida.

En esta situación, recuerde que la misma dimensión de la base de datos puede tener varias funciones en el modelo multidimensional. A estas dimensiones las denominamos dimensiones realizadoras de roles. Por ejemplo, puede utilizar la dimensión de tiempo varias veces en un cubo OLAP que describe la información de vuelo. En este caso, las diferentes dimensiones realizadoras de roles podrían ser Departure Time y Arrival Time, donde ambas tienen como destino la dimensión Time .

En un ejemplo de WorkItems Assigned To User , el nombre realizador de roles dado de la dimensión del usuario es AssignedToUser. Si el usuario filtre por esta dimensión determinada en lugar de "UserDim", devolverá la información correcta.

BIDS tiene una función útil, la pestaña Uso de dimensiones, que muestra las relaciones entre las dimensiones y los cubos OLAP para que pueda determinar qué dimensiones se pueden utilizar para reorganizar el cubo OLAP. Es más, en el ejemplo de WorkItems Assigned To User , UserDim no tiene ninguna relación con el grupo de medida de WorkItemAssignedToUser , mientras que UserDim(AssignedToUser) sí tiene una relación con el grupo de medida, donde el atributo de combinación es UserDimKey. En este caso, puede ver que el nombre realizador de roles está resaltado dentro del paréntesis de la pestaña Uso de dimensión.

Service Manager no tiene una funcionalidad de pestaña Uso de dimensiones. Por lo tanto, tendrá que buscar en BIDS para determinar exactamente qué dimensiones se pueden filtrar en un cubo concreto.

Error al procesar cubos OLAP en un servidor SSAS remoto

En determinadas situaciones, el procesamiento de un cubo OLAP en un servidor SSAS remoto podría producir un error porque el firewall no se ha configurado correctamente. La instancia predeterminada de SSAS utiliza el puerto TCP/IP 2383 y este puerto debe estar desbloqueado en el firewall para permitir el acceso. Para desbloquear el puerto, ejecute las siguientes instrucciones de línea de comandos:

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  

Se detiene el procesamiento del cubo OLAP

Puede haber muchas causas para la detención del procesamiento del cubo OLAP. En primer lugar, debe asegurarse de que el servidor tiene suficiente RAM, especialmente en situaciones en las que el almacenamiento de datos y el servidor SSAS se hospedan en el mismo servidor, de modo que haya suficiente memoria para ejecutar trabajos de extracción, transformación y carga de almacenamiento de datos (ETL) y procesamiento de cubos simultáneamente. Algunas de las soluciones posibles son las siguientes:

  1. Existen problemas de interbloqueo conocidos en Microsoft SQL Server 2008 Analysis Services. La solución consiste en aumentar el número de subprocesos en el grupo de subprocesos de procesamiento antes de que el procesamiento se detenga. Si el sistema ya está detenido, la solución alternativa consiste en reiniciar el servicio de administración de System Center y el servicio Analysis Services y, a continuación, restablecer el elemento de trabajo de procesamiento de cubos en un estado de 3, lo que significa que no se ha iniciado, para que el motor de flujo de trabajo de Service Manager pueda reiniciarlo.

    Nota

    Para determinar el elemento de trabajo de procesamiento de cubos pertinente, puede ejecutar las siguientes consultas en la base de datos DWStagingAndConfig. Estas consultas se muestran individualmente; sin embargo, puede combinarlos fácilmente en una consulta:

    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)  
    
    
  2. Compruebe la propiedad CoordinatorExecutionMode en el servicio SSAS y ensuéquela correctamente. Para obtener información adicional acerca de este problema, consulte los foros de SQL Server.

La tarea DWMaintenance se detiene en el paso ManageCubePartitions o ManageCubeTranslations.

En esta situación, la causa más común es un servidor SSAS que no responde. La solución alternativa es la misma para el primer paso de la sección anterior, "OLAP Cube Processing Stops". Para determinar el elemento de trabajo de procesamiento de cubos pertinente, puede ejecutar las siguientes consultas en la base de datos DWStagingAndConfig. Tenga en cuenta que estas consultas se muestran de forma individual; sin embargo, puede combinarlas fácilmente en una consulta:

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)  

Pasos siguientes