Solución de problemas de los cubos OLAP

 

Publicado: julio de 2016

Se aplica a: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager

En las siguientes secciones se describen los problemas comunes que podría tener que resolver en relación con los cubos de datos de procesamiento analítico en línea (OLAP) en el almacenamiento de datos de System Center 2012 – Service Manager .

Errores de procesamiento

Si bien existen medidas de seguridad en la base de datos DWRepository para garantizar la integridad de los datos, éstas no puede evitar completamente la posibilidad de un error de procesamiento. El error de procesamiento más habitual es una excepción de DimensionKeyNotFound. Dado que las dimensiones de SQL Server Analysis Server (SSAS) se procesan cada 60 minutos de forma predeterminada, las claves de dimensión podrían no existir durante el procesamiento del grupo de medida del hecho. 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 ninguna clave externa por motivos de rendimiento. Dado que el proceso de carga masiva traslada los datos del repositorio al data mart mediante métodos de ActiveX Data Objects, los datos del hecho se podrían haber cargado antes que las claves de dimensión debido a un problema de sincronización. 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, los hechos de los data mart de Operations Manager o Configuration Manager podrían tener como destino claves de dimensión aún inexistentes en el data mart principal del almacenamiento de datos. 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 las personalizaciones de MDX

Dado que muchas personalizaciones de cubos requieren conocimientos prácticos de expresiones multidimensionales (MDX), es habitual que se produzcan errores en la expresión MDX inicial que se utiliza 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 define las expresiones mediante un elemento SystemCenterCube, desinstale el módulo de administración y después elimine manualmente el cubo OLAP de SSAS antes de realizar cualquier corrección y volver a implementar el módulo de administración del cubo OLAP. Por este motivo, debe definir las personalizaciones del cubo mediante el elemento CubeExtension.

Errores de implementación del módulo de administración del cubo 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 muy 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 filtró por esta dimensión concreta en lugar de "UserDim", obtendrá 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 ninguna capacidad 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 los cubos OLAP en un servidor remoto de SSAS

En determinadas situaciones, se puede producir un error al procesar un cubo OLAP en un servidor remoto de SSAS debido a que 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  

Detención del procesamiento del cubo OLAP

Puede haber muchas causas para la detención del procesamiento del cubo OLAP. En primer lugar, asegúrese de que el servidor tiene memoria RAM suficiente, especialmente si el almacenamiento de datos y el servidor de SSAS están hospedados en el mismo servidor, de modo que pueda ejecutar de forma simultánea los trabajos de extracción, transformación y carga (ETL) del almacenamiento de datos, así como los trabajos de procesamiento del cubo. 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 se ha detenido, la solución es reiniciar el servicio de System Center Management y el de Analysis Services, y, a continuación restablecer el elemento de trabajo de procesamiento del cubo en el estado de 3, que significa no iniciado, de modo que el motor de flujo de trabajo de Service Manager pueda reiniciarlo.

    Nota


    Para System Center 2012 R2 Service Manager, el nombre Servicio de administración de System Center se ha cambiado por Microsoft Monitoring Agent.

    Para determinar el elemento de trabajo pertinente de procesamiento del cubo, 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 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 asegúrese de que está configurada correctamente. Para obtener información adicional acerca de este problema, consulte los foros de SQL Server.

La tarea de DWMaintenance se detiene en el paso de ManageCubePartitions/ManageCubeTranslations

En esta situación, la causa más común es un servidor SSAS que no responde. La solución es la misma que la del primer paso de la sección anterior, "Detención del procesamiento del cubo OLAP". Para determinar el elemento de trabajo pertinente de procesamiento del cubo, 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 hung with the corresponding processmoduleid for ManageCubePartitions/ManageCubeTranslations)  
  

Véase también

Información sobre los cubos OLAP