Acerca de la partición de cubos

 

Publicado: julio de 2016

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

Cada grupo de medida de un cubo se divide en particiones, donde una partición define una parte de los datos de hechos que se carga en un grupo de medida. SQL Server Analysis Services (SSAS), en SQL Server 2008 R2 Standard Edition, solo permite una partición por grupo de medida, mientras en la edición Enterprise se permiten varias particiones. Las particiones son completamente transparentes para el usuario final, pero tienen un impacto importante en el rendimiento y la escalabilidad. Por ejemplo, las particiones se pueden procesar por separado y en paralelo. Pueden tener distintos diseños de agregación, aunque esto no se ha implementado en System Center 2012 – Service Manager. Puede volver a procesar una partición sin afectar al resto de las particiones de un grupo de medida. Además, SSAS solo escanea automáticamente las particiones que contienen los datos necesarios para una consulta, lo que puede mejorar considerablemente el rendimiento de las consultas.

La partición de cubos se realiza en cada ejecución del trabajo de mantenimiento del almacenamiento de datos, que se tiene lugar cada hora de forma predeterminada. El módulo del proceso específico que se ejecuta se denomina ManageCubePartitions. Siempre se ejecuta después del paso CreateMartPartitions. Estos datos de dependencia se almacenan en la tabla infra.moduletriggercondition.

La biblioteca principal de vínculos dinámicos (DLL), que controla la creación de particiones, está en la utilidad DLL del almacenamiento, Microsoft.EnterpriseManagement.Warehouse.Utility, en la clase PartitionUtil. En concreto, el método ManagePartitions() de la clase es el que procesa todo el mantenimiento de la partición. Ambas, la DLL de mantenimiento del almacenamiento de datos, Microsoft.EnterpriseManagement.Warehouse.Maintenance, y la DLL de procesamiento analítico en línea (OLAP) del almacenamiento de datos, Microsoft.EnterpriseManagement.Warehouse.Olap, solicitan a Microsoft.EnterpriseManagement.Warehouse.Utility que procese las particiones durante el mantenimiento y la implementación del cubo. Por esta razón, para evitar la duplicación de la lógica o del código, el procesamiento real de la partición se realiza en la utilidad DLL del almacenamiento común.

El mantenimiento de las particiones de un cubo realiza las siguientes tareas:

  • Crear particiones

  • Eliminar particiones

  • Actualizar límites de la partición

Para ello, se lee la tabla etl.TablePartition de Lenguaje de consulta estructurado (SQL), con el fin de determinar todas las particiones de hecho que se han creado para un grupo de medida. Se emprenden las siguientes acciones:

  1. Iniciar el procesamiento del cubo para cada grupo de medida del cubo

  2. Obtener todas las particiones de la tabla etl.TablePartition para el grupo de medida

  3. Eliminar todas las particiones que existen en el grupo de medida, pero que faltan en la tabla etl.TablePartition

  4. Agregar las particiones nuevas que se han creado y que sólo existen en la tabla etl.TablePartition

  5. Actualizar cualquier partición que pueda haber cambiado haciendo coincidir cada partición con RangeStartDate y RangeEndDate en la tabla etl.TablePartition

Recuerde lo siguiente sobre el procesamiento de cubos:

  • Sólo los grupos de medidas que tienen como destino hechos contienen varias particiones en SQL Server 2008 R2 Standard Edition. De forma predeterminada, todos los grupos de medida y dimensiones contienen sólo una partición. Por lo tanto, la partición no tiene ninguna condición de límite.

  • Los límites de la partición se definen mediante un enlace de consulta que se basa en los datekeys que coinciden con los datekeys de la partición de hecho correspondiente en la tabla etl.TablePartition.

Véase también

Información sobre los cubos OLAP