Sobre o particionamento de cubos

 

Publicado: julho de 2016

Aplicável a: System Center 2012 SP1 - Service Manager, System Center 2012 R2 Service Manager, System Center 2012 - Service Manager

Cada grupo de medidas em um cubo é dividido em partições, em que uma partição define uma parte dos dados do fato que são carregados em um grupo de medidas. O SQL Server Analysis Services (SSAS) no SQL Server 2008 R2 Standard Edition permite apenas uma partição por grupo de medidas, enquanto partições múltiplas são permitidas no Enterprise Edition. As partições são completamente transparentes para o usuário final, mas têm um impacto importante no desempenho e na escalabilidade. Por exemplo, as partições podem ser processadas de forma separada e em paralelo. Elas podem ter diferentes designs de agregação, embora isso não seja implementado no System Center 2012 - Service Manager. É possível reprocessar uma partição sem afetar todas as outras partições de um grupo de medidas. Além disso, o SSAS verifica automaticamente apenas as partições que contêm os dados necessários a uma consulta, o que pode melhorar muito o desempenho da consulta.

O particionamento de cubos é realizado em cada execução de trabalho de manutenção do data warehouse, o que é feito, por padrão, de hora em hora. O módulo de processo específico executado é denominado ManageCubePartitions. Ele sempre é executado após a etapa CreateMartPartitions. Esses dados de dependência são armazenados na tabela infra.moduletriggercondition.

A DLL (biblioteca de vínculo dinâmico) principal, que controla o particionamento, está na DLL de utilitário de depósito, Microsoft.EnterpriseManagement.Warehouse.Utility, na classe PartitionUtil. Especificamente, há um método ManagePartitions() na classe que controla todas as manutenções da partição. A DLL de manutenção do data warehouse, Microsoft.EnterpriseManagement.Warehouse.Maintenance, e a DLL de OLAP do data warehouse, Microsoft.EnterpriseManagement.Warehouse.Olap, são chamadas no Microsoft.EnterpriseManagement.Warehouse.Utility para controlar partições durante a manutenção e a implantação do cubo. É por esse motivo que a manipulação real da partição ocorre na DLL do utilitário de depósito comum, para evitar a duplicação da lógica ou do código.

A Manutenção de Particionamento de Cubos executa as seguintes tarefas:

  • Cria partições

  • Exclui partições

  • Atualiza limites de partição

Para fazer isso, a tabela SQL (Structured Query Language) etl.TablePartition é lida para determinar todas as partições de fato que foram criadas para um grupo de medidas. Ocorrem as seguintes ações:

  1. Inicia o processamento de cubos para cada grupo de medidas no cubo

  2. Obtém todas as partições da tabela etl.TablePartition referentes ao grupo de medidas

  3. Exclui todas as partições existentes no grupo de medidas que estão faltando na tabela etl.TablePartition

  4. Adiciona qualquer partição nova que tenha sido criada e que exista apenas na tabela etl.TablePartition

  5. Atualiza qualquer partição que possa ter sido alterada, correspondendo cada partição a RangeStartDate e a RangeEndDate na tabela etl.TablePartition

Sobre o processamento de cubos, lembre-se de que:

  • Somente os grupos de medidas que são destinados aos fatos contêm várias partições no SQL Server 2008 R2 Standard Edition. Por padrão, todos os grupos de medidas e dimensões contêm apenas uma partição. Portanto, a partição não tem nenhuma condição de limite.

  • Os limites de partição são definidos por uma associação de consulta baseada em datas-chave que sejam adequadas para as datas-chave da partição de fato correspondente na tabela etl.TablePartition.

Consulte também

Noções básicas sobre cubos OLAP