Compartilhar via


Agregações e designs de agregação

Um AggregationDesign objeto define um conjunto de definições de agregação que podem ser compartilhadas entre várias partições.

Um Aggregation objeto representa o resumo dos dados do grupo de medidas em determinada granularidade das dimensões.

Um objeto simples Aggregation é composto de: informações e dimensões básicas. As informações básicas incluem o nome da agregação, a ID, anotações e uma descrição. As dimensões são uma coleção de AggregationDimension objetos que contêm a lista de atributos de granularidade para a dimensão.

As agregações são resumos pré-calculados de dados de células folha. As agregações melhoram o tempo de resposta da consulta preparando as respostas antes que as perguntas sejam feitas. Por exemplo, quando uma tabela de fatos do data warehouse contém centenas de milhares de linhas, uma consulta solicitando os totais de vendas semanais de uma determinada linha de produto pode levar muito tempo para responder se todas as linhas na tabela de fatos precisarem ser verificadas e resumidas no momento da consulta para calcular a resposta. No entanto, a resposta poderá ser quase imediata se os dados de resumo para responder a essa consulta tiverem sido pré-calculados. Esse pré-cálculo de dados resumidos ocorre durante o processamento e é a base para os tempos de resposta rápida da tecnologia OLAP.

Cubos são a maneira como a tecnologia OLAP organiza dados de resumo em estruturas multidimensionais. Dimensões e suas hierarquias de atributos refletem as consultas que podem ser solicitadas do cubo. As agregações são armazenadas na estrutura multidimensional em células em coordenadas especificadas pelas dimensões. Por exemplo, a pergunta "Quais foram as vendas do produto X em 1998 para a região Noroeste?" envolve três dimensões (Produto, Tempo e Geografia) e uma medida (Vendas). O valor da célula no cubo nas coordenadas especificadas (produto X, 1998, Noroeste) é a resposta, um único valor numérico.

Outras perguntas podem retornar vários valores. Por exemplo, "Quanto foram as vendas de produtos de hardware por trimestre por região para 1998?" Essas consultas retornam conjuntos de células das coordenadas que atendem às condições especificadas. O número de células retornadas pela consulta depende do número de itens no nível de Hardware da dimensão Produto, dos quatro trimestres em 1998 e do número de regiões na dimensão Geografia. Se todos os dados de resumo tiverem sido pré-calculados em agregações, o tempo de resposta da consulta dependerá apenas do tempo necessário para extrair as células especificadas. Nenhum cálculo ou leitura de dados da tabela de fatos é necessário.

Embora o pré-cálculo de todas as agregações possíveis em um cubo possa fornecer o tempo de resposta mais rápido possível para todas as consultas, o Analysis Services pode calcular facilmente alguns valores aggregrados de outras agregações pré-calculadas. Além disso, calcular todas as agregações possíveis requer um tempo de processamento e armazenamento significativos. Portanto, há uma compensação entre os requisitos de armazenamento e a porcentagem de possíveis agregações que são pré-calculadas. Se nenhuma agregação for pré-calculada (0%), a quantidade de tempo de processamento e espaço de armazenamento necessários para um cubo será minimizada, mas o tempo de resposta da consulta poderá ser lento porque os dados necessários para responder a cada consulta devem ser recuperados das células folha e agregados no momento da consulta para responder a cada consulta. Por exemplo, retornar um único número que responde à pergunta feita anteriormente ("Quais foram as vendas do produto X em 1998 para a região Noroeste") pode exigir a leitura de milhares de linhas de dados, extrair o valor da coluna usada para fornecer a medida Vendas de cada linha e, em seguida, calcular a soma. Além disso, o tempo necessário para recuperar esses dados dependerá muito do modo de armazenamento escolhido para os dados MOLAP, HOLAP ou ROLAP.

Criando agregações

O Microsoft SQL Server Analysis Services incorpora um algoritmo sofisticado para selecionar agregações para pré-cálculo para que outras agregações possam ser calculadas rapidamente a partir dos valores pré-calculados. Por exemplo, se as agregações forem pré-calculadas para o nível mês de uma hierarquia de Tempo, o cálculo para um nível de Trimestre exigirá apenas o resumo de três números, que podem ser calculados rapidamente sob demanda. Essa técnica economiza tempo de processamento e reduz os requisitos de armazenamento, com efeito mínimo no tempo de resposta da consulta.

O Assistente de Design de Agregação fornece opções para você especificar restrições de armazenamento e porcentagem no algoritmo para obter uma compensação satisfatória entre o tempo de resposta da consulta e os requisitos de armazenamento. No entanto, o algoritmo do Assistente de Design de Agregação pressupõe que todas as consultas possíveis são igualmente prováveis. O Assistente de Otimização de Usage-Based permite ajustar o design de agregação para um grupo de medidas analisando as consultas que foram enviadas por aplicativos cliente. Usando o assistente para ajustar a agregação de um cubo, você pode aumentar a capacidade de resposta para consultas frequentes e diminuir a capacidade de resposta para consultas pouco frequentes sem afetar significativamente o armazenamento necessário para o cubo.

As agregações são projetadas usando os assistentes, mas não são calculadas até que a partição para a qual as agregações sejam projetadas seja processada. Depois que a agregação tiver sido criada, se a estrutura de um cubo for alterada ou se os dados forem adicionados ou alterados nas tabelas de origem de um cubo, geralmente será necessário examinar as agregações do cubo e processar o cubo novamente.

Consulte Também

Modos de armazenamento de partição e processamento