alt="" hspace=0 src="/loja/img/Capa_SQL44_G.gif" align=bottom border=0>

Clique aqui para ler todos os artigos desta edição

Banco de Dados

 

Microsoft Analysis Services 2000 na prática – Parte 5

Usando cálculos avançados e MDX

 

Quando falamos sobre OLAP, a primeira idéia que nos vem à cabeça é soma de dados para obtermos números sumarizados. Porém, temos que ter em mente que o universo de análise de dados é muito mais extenso, indo muito além da simples operação de soma.

Médias, taxas, cálculos estatísticos e uma série de outros recursos analíticos podem ser necessários. E o Microsoft Analysis Services 2000, ou simplesmente MSAS, nos permite construir estes indicadores através de cálculos avançados e da linguagem MultiDimensional Expressions (MDX), que exploraremos neste artigo.

Agregações dentro do MSAS

 Muitos desenvolvedores nunca prestaram atenção a isso, mas o MSAS não se limita a lidar com indicadores e métricas agregadas por soma, como, o total de vendas em valores ou quantidades.

Quando criamos ou editamos um indicador de um cubo, normalmente na dimensão Measures, devemos obrigatoriamente definir uma propriedade do indicador: tipo de agregação a ser considerado.

O MSAS nos oferece de forma nativa cinco tipos diferentes de agregação: SUM, COUNT, MIN, MAX e DISTINCT COUNT.

No primeiro artigo desta série, usamos o Cube Wizard para criar dois indicadores agregados por soma: ValorReal e Unidades. Vamos agora criar um novo indicador usando o Cube Editor. Este indicador representará o número de transações envolvidas em cada sumarização. Em outras palavras, o indicador usará a agregação do tipo COUNT.

Vamos acessar o ANALYSIS MANAGER, expandir a árvore de objetos até alcançarmos o cubo DEMANDA. Em seguida, clicamos com o botão direito sobre este objeto e selecionamos EDIT para abrirmos o Cube Editor, como mostra a Figura 1.

 

Figura 1. Invocando o Cube Editor.

 

Clique com o botão direito sobre o grupo Measures e escolha New Measure. Veja a Figura 2.

 

Figura 2. Criando um novo indicador.

 

Agora, na janela Insert Measure, selecionamos qual campo da tabela fato será usado para o cálculo do nosso indicador. Vamos marcar o campo VALORREAL e clicamos OK.

O novo indicador será criado com o nome ValorReal1. Expandimos a janela de propriedades para redefinir o nome do indicador, que será ContagemTransacoes e o tipo agregação para COUNT, como mostra a Figura 3.

 

Figura 3. Configurando as propriedades do indicador ContagemTransacoes.

 

Observe que o novo indicador ContagemTransacoes só estará disponível após o reprocessamento do cubo. Além disso, as agregações relativas ao novo indicador serão gravadas no cubo, causando impacto no espaço em disco utilizado.

Um caso específico: DISTINCT COUNT

Nos casos em que usamos SUM, COUNT, MIN e MAX, temos agregações que chamamos de “inteiramente aditivas”.

Isso quer dizer que, nestes casos, podemos calcular uma agregação reaproveitando os resultados de agregações anteriores. Exemplo: o cálculo da venda total do mês utiliza a agregação da venda total dos dias daquele mês.

Quando falamos em DISTINCT COUNT, o resultado é chamado semi-aditivo, porque uma agregação anterior não ajuda no cálculo da agregação seguinte. Vamos a um exemplo.

Observe a Tabela 1, que mostra um relatório de referência cruzada de demanda em valores de produtos por mês. Escritos em vermelho, vemos a contagem dos produtos distintos, isto é, a contagem dos produtos cuja demanda é diferente de zero. Agora observe que, na região escolhida, temos demanda de 6 produtos diferentes no mês de Jan/2006, 7 produtos distintos nos meses de Fev e Mar/2006. Mas o resultado para o 1º trimestre de 2006 são 8 produtos distintos. Como podemos verificar, os resultados parciais (por mês) não podem ser usados para o cálculo do resultado consolidado (para o trimestre).

 

BRICK :

Itú (SP)

 

 

 

 

DATA

 

 

 

PRODUTO

2006Mes01

2006Mes02

2006Mes03

2006Trim1

CODEIN

 

  ...

Quer ler esse conteúdo completo? Tenha acesso completo