Business Intelligence: construindo seu primeiro cubo

Stacia Misner

 

Eu gosto de apresentar o Microsoft SQL Server Analysis Services às pessoas por meio da criação de um cubo simples com uma amostragem de seus próprios dados. No entanto, eu preciso ter cuidado ao fazer isso, pois já fui empurrada para fora da minha cadeira mais de uma vez pelo entusiasmo dos novos usuários com o que estavam vendo e a vontade de mergulhar no programa e explorar os dados de maneiras que eles não imaginavam serem possíveis até então. Tenha você dados próprios que deseja explorar mais facilmente ou uma comunidade de usuários faminta por dados à qual precisa dar suporte, verá que o SQL Server Analysis Services (SSAS) fornece as ferramentas necessárias.

Este artigo é o terceiro de uma série, os dois primeiros artigos foram publicados na edição de agosto de 2009 e estão disponíveis em technet.microsoft.com/magazine/ee263919.aspx. Esta série ajudará você a desenvolver uma compreensão melhor de BI (business intelligence) por meio do uso dos componentes disponíveis no Microsoft SQL Server 2008 enquanto você cria uma solução simples de BI. Como estarei fazendo referências a conceitos e terminologias apresentados nos dois primeiros artigos, recomendo que você reveja esses artigos primeiro, caso ainda não os tenha lido.

Em "Planejando sua primeira solução de BI", expliquei as vantagens da criação um data mart comparada com a recuperação de dados diretamente de um banco de dados corporativo. Também forneci instruções de download dos bancos de dados de exemplo que são necessários para acompanhar as etapas descritas nesses artigos. Depois, Derek Comingore, em "Criando uma base de dados para uma solução de BI", explicou como usar o Integration Services para popular um data mart com dados de seu banco de dados corporativo. Neste artigo, mostrarei como criar um cubo baseado em um design de data mart semelhante.

Por que você deve criar um cubo?

Meu primeiro artigo resumiu as razões a serem consideradas para mover dados para fora do seu banco de dados corporativo e em um estrutura chamada data mart. Embora consultar um data mart realmente apresente benefícios e, provavelmente, seja suficiente para muitos cenários, há benefícios adicionais a serem obtidos com o reempacotamento desses dados mais uma vez em uma estrutura chamada cubo. Na verdade, o data mart existe como uma parada intermediária no caminho dos dados para um destino final no cubo, portanto ele ainda é importante na solução geral.

Um benefício adicional da criação de um cubo para hospedar seus dados é que é possível centralizar suas regras de negócio para cálculos que você não pode armazenar facilmente em um data mart relacional. Além disso, com a estrutura do cubo fica muito mais fácil escrever consultas para comparação de dados ano após ano ou para criar valores cumulativos, como vendas desde o início do ano. 

Além do mais, você ganha a capacidade de gerenciar dados agregados no cubo de maneira transparente. Para melhorar o desempenho de consultas em um data mart relacional que contém muitos dados, os administradores de banco de dados com frequência criam tabelas de resumo para preparar dados para consultas que não exigem detalhes no nível da transação. O SSAS cria o equivalente lógico de tabelas de resumo (chamadas de agregações) e as mantém atualizadas.

Neste artigo, darei sequência aos cenários apresentados no primeiro artigo. Esses cenários definem os objetivos de análise básicos para a solução de BI que você está criando nesta série. A solução deve ser capaz de mostrar qual canal de vendas é mais lucrativo para a Adventure Works, Vendas pela Internet ou Vendas do Revendedor, e se as tendências de vendas indicam que a demanda está crescendo ou diminuindo para determinados produtos. Sua fonte de dados para soluções de BI é o banco de dados AdventureWorksDW2008 que aplica a modelagem dimensional e os princípios de ETL descritos no artigo de Derek.

É possível baixar os bancos de dados de exemplo usados para criar a solução da Adventure Works no CodePlex em msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407. Com um data mart disponível como uma origem, você está pronto para criar um banco de dados do Analysis Services 2008.

Preparando seu banco de dados do Analysis Services

O primeiro passo é criar um projeto no BIDS (Business Intelligence Development Studio). Inicie o BIDS no grupo de programas do Microsoft SQL Server 2008, clique em Arquivo | Novo | Projeto. Na caixa de diálogo Novo Projeto, selecione Projeto do Analysis Services. Na caixa de texto Nome, digite ssas_TECHNET_AW2008 e, se desejar, altere o local de seu projeto. Clique em OK para criar o projeto.

Agora, adicione uma fonte de dados para definir a cadeia de conexão para seu data mart. No Gerenciador de Soluções, clique com o botão direito do mouse na pasta Fontes de Dados e clique em Nova Fonte de Dados. No Assistente de Fonte de Dados, clique em Avançar na página de Boas-vindas, se ela não tiver sido desabilitada. Na página Selecione como Definir a Conexão, clique em Avançar para configurar uma nova conexão. No Gerenciador de Conexões, o padrão é o SQL Server Native Client, que está correto para este projeto, embora você também possa usar um provedor OLE DB ou .NET para acessar outros tipos de dados.

Para definir a conexão, digite o nome de seu servidor na caixa de texto Nome do Servidor ou selecione-o na lista suspensa, em seguida, selecione AdventureWorksDW2008 na lista suspensa de bancos de dados e clique em OK. Ao retornar ao Assistente de Fonte de Dados, clique em Avançar. Na página Informações sobre Representação, selecione a opção Usar a conta de serviço. A conta de serviço é usada para ler dados na origem durante o carregamento dos dados no banco de dados do SSAS e, portanto, deve ter permissões de leitura. Clique em Avançar e em Concluir para finalizar o assistente.

Criando uma exibição da fonte de dados

Em seguida, você cria uma DSV (exibição da fonte de dados) como uma abstração das tabelas (ou exibições) a partir da fonte de dados que você deseja usar para definir dimensões e cubos. É possível fazer alterações na DSV sem modificar a fonte de dados subjacente, o que será útil se você tiver apenas permissões de leitura no data mart e não puder fazer alterações na origem. No Gerenciador de Soluções, clique com o botão direito do mouse na pasta Exibições da Fonte de Dados e clique em Nova Exibição da Fonte de Dados.

Se necessário, clique em Avançar na página de Boas-vindas. Na página Selecionar uma fonte de dados, selecione a fonte de dados que você acabou de adicionar ao projeto e clique em Avançar. Adicione objetos à DSV com um clique duplo em cada tabela ou exibição necessária. Para criar uma DSV que ajude a responder às perguntas de BI colocadas no início deste artigo, adicione as tabelas a seguir à DSV: DimDate, DimProduct, DimProductCategory, DimProductSubcategory, FactInternetSales e FactResellerSales. Enquanto estiver aprendendo a trabalhar com o SSAS, convém começar com uma DSV simples como esta. Você poderá adicionar mais tabelas posteriormente, se precisar responder a outras perguntas de sua solução de BI. Clique em Avançar no Assistente de Exibição da Fonte de Dados depois de concluir a adição de tabelas e clique em Concluir.

É recomendável simplificar os nomes das tabelas com a seleção de cada uma no painel Tabelas do designer de DSV e a remoção dos prefixos Dim e Fact da propriedade FriendlyName de cada tabela. Os assistentes usados para criar dimensões e cubos usarão o valor da propriedade FriendlyName para atribuir nomes a objetos. A DSV completa é mostrada na Figura 1.

Figure 1: Data Source View

Figura 1: Exibição da fonte de dados

Além de alterar as propriedades de uma tabela na DSV, você pode definir chaves primárias lógicas ou relações lógicas entre tabelas se elas ainda não estiverem definidas na origem física. O SSAS não poderá exibir dados corretamente sem essas definições estabelecidas fisicamente na camada de dados ou logicamente na DSV. Também é possível adicionar um cálculo nomeado, que é como adicionar uma coluna derivada a uma exibição, ou substituir o objeto da tabela com uma consulta nomeada, o que é semelhante a criar uma exibição.

Ao preparar a criação da dimensão de data no SSAS, você precisa adicionar dois cálculos nomeados à tabela Data -- Trimestre e Mês -- para concatenar a coluna de ano com as colunas de trimestre e mês. Caso contrário, os dados não serão acumulados corretamente por mês, trimestre e ano quando você desejar exibir dados resumidos. Para adicionar o cálculo nomeado do Trimestre, clique com o botão direito do mouse na tabela Data no designer ou no painel Tabelas e clique em Novo Cálculo Nomeado. Na caixa de texto Nome da Coluna, digite Trimestre. Na caixa de texto Expressão, digite a expressão a seguir:

'Qtr ' + convert(char(1), CalendarQuarter) + ' ' + convert(char(4), CalendarYear)

Clique em OK e repita essas etapas para adicionar o cálculo nomeado de Mês, por meio da expressão a seguir:

left(EnglishMonthName, 3) + ' ' + convert(char(4), CalendarYear)

Observe que a tabela Data no designer (mostrada na Figura 2) exibe seus cálculos nomeados com um ícone de calculadora para diferenciá-los das colunas que estão fisicamente na tabela. É possível rever o efeito da adição dos cálculos nomeados com um clique com o botão direito do mouse na tabela e um clique em Explorar Dados. Uma nova janela é aberta no BIDS para exibir os dados da tabela de origem.

Quando você rolar para a extrema direita, poderá ver os valores dos cálculos nomeados. Deve-se sempre usar o comando Explorar Dados para confirmar se os cálculos nomeados são exibidos da maneira planejada, antes de continuar com a criação de dimensões.

Definindo dimensões no Analysis Services

Depois de adicionar tabelas de dimensão à DSV, você estará pronto para criar dimensões no banco de dados do SSAS. Como um lembrete, você usa uma dimensão para armazenar informações sobre entidades de negócios, como pessoas, lugares e coisas. Para poder responder às perguntas de BI colocadas no início deste artigo, você precisa criar dimensões para Data e Produto.
Para adicionar uma dimensão ao projeto, inicie o Assistente de Dimensão com um clique com o botão direito do mouse na pasta Dimensões no Gerenciador de Soluções e selecione Nova Dimensão. Na página Selecionar Método de Criação, mantenha a seleção padrão para usar uma tabela existente porque sua DSV inclui a tabela DimDate. Em situações onde você pode criar um banco de dados simples baseado em uma tabela transacional pequena que inclua datas, você não pode criar um data mart e, em vez disso, pode usar uma das outras opções dessa página para gerar um tabela de tempo na fonte de dados ou no servidor.

Figure 2 Date Table with Named Calculations

Figura 2 Tabela Data com cálculos nomeados

Em qualquer um dos casos, você fornece uma data de início e uma data de término para os dados na tabela transacional. O SSAS pode criar e popular uma tabela física na fonte de dados que usará para popular a dimensão mantida no banco de dados do SSAS ou pode simplesmente manter a dimensão exclusivamente no banco de dados do SSAS.

Você pode escolher gerar a tabela física quando precisar poder dar suporte a consultas relacionais para a fonte de dados. Clique em Avançar para continuar.

Na página Especificar Informações sobre a Origem, selecione Data na lista suspensa Tabela Principal. Observe que a Coluna de Chave é DateKey. A coluna de chave deve identificar exclusivamente cada registro na tabela para que o SSAS possa agregar ou agrupar dados corretamente ao retornar resultados de consultas. Em seguida, na lista suspensa Coluna de Nome, selecione FullDateAlternateKey. O SSAS usa a coluna de nome como um rótulo para exibição ao usuário, em vez da exibição da coluna de chave.

Clique em Avançar.

Na página Selecionar Atributos de Dimensão, você escolhe os atributos a serem incluídos na dimensão que você usa para definir hierarquias ou rótulos de agrupamentos adicionais.

Se todos os atributos da tabela de dimensão devem ser incluídos ou não dependerá dos tipos de perguntas às quais você deseja dar suporte na sua solução de BI. Adicione apenas a quantidade necessária para garantir que o SSAS execute de maneira ideal para evitar consumir espaço de armazenamento desnecessariamente e para evitar confundir os usuários com muitas opções. Para esta dimensão, selecione Ano Calendário, Trimestre e Mês. Clique em Avançar e, em seguida, em Concluir.

Para garantir que cada atributo possa ser identificado exclusivamente, atualize a propriedade KeyColumn. Com a definição dessa propriedade para colunas de chave, você garante que Mês seja classificada corretamente em sequência numérica, em vez de alfabeticamente por nome de mês que é a ordem de classificação padrão.

Para atualizar a propriedade KeyColumn, selecione Mês no painel Atributos à esquerda. Na janela Propriedades, clique na propriedade KeyColumns e no botão de reticências. Na caixa de diálogo Colunas de Chave, clique na seta para a esquerda para limpar a atribuição atual e clique duas vezes em CalendarYear e em MonthNumberOfYear. Agora, atribua um rótulo a esse atributo com um clique no botão de reticências na caixa da propriedade NameColumns. Selecione EnglishMonthName e clique em OK.

Repita essas etapas para definir a propriedade KeyColumns do atributo Trimestre para CalendarYear e CalendarQuarter e para definir a propriedade NameColumns como Trimestre.
Agora, a dimensão é exibida no Gerenciador de Soluções como Date.dim e o designer de dimensão (mostrado na Figura 3) é exibido na área do espaço de trabalho principal no BIDS.

Date Dimension

Figura 3 Dimensão de data mostrada no designer

Você pode ver a dimensão com seus atributos associados, inclusive o atributo de chave, no painel Atributos à esquerda. Se, mais tarde, você decidir adicionar mais atributos, poderá arrastá-los um a um do painel Exibição da Fonte de Dados para o painel Atributos. Você usa o Assistente de Dimensão apenas ao iniciar uma nova dimensão, mas pode fazer qualquer alteração necessária posteriormente no designer de dimensão.

Agora, use o Assistente de Dimensão para criar a dimensão Produto, com Produto como a tabela principal e EnglishProductName como a coluna de nome. Como a dimensão Produto é um esquema floco de neve, o assistente inclui uma página adicional para confirmar se você deseja incluir as tabelas relacionadas, ProductSubcategory e ProductCategory.

Em seguida, adicione os atributos Cor e Tamanho à dimensão. Observe que o assistente seleciona automaticamente as colunas de chave para as tabelas floco de neve, Produto, Chave de Subcategoria e Chave de Categoria de Produto. Você precisa adicionar as colunas de nomes correspondentes para esses atributos, mas deve primeiro concluir o assistente para poder modificar as propriedades dos atributos. 

Quando o designer de dimensão for exibido, selecione Chave de Categoria de Produto no painel Atributos. Nas Propriedades, localize a propriedade Name e altere o nome para Categoria. Role para baixo na janela Propriedades para localizar a propriedade NameColumn.

Clique na caixa de texto da propriedade para exibir o botão de reticências, clique no botão, selecione EnglishProductCategoryName e clique em OK. Agora, repita essas etapas para renomear Chave de Subcategoria de Produto para Subcategoria e especifique EnglishProductSubcategoryName como sua coluna de nome. Por último, renomeie o atributo Chave do Produto para Produto.

Adicionando hierarquias

Observe a linha ondulada azul que é exibida sob o nome da dimensão Produto no painel Atributos. Quando você focaliza o cursor sobre essa linha, é exibida uma mensagem de aviso "Crie hierarquias em dimensões que não sejam do tipo pai-filho". Essa mensagem é um exemplo dos avisos de práticas recomendadas internos do SSAS 2008 para ajudá-lo a criar um banco de dados do SSAS corretamente. Retorne ao designer de dimensão de Data, com um clique na guia aplicável no espaço de trabalho do documento ou com um clique duplo em Date.dim no Gerenciador de Soluções onde verá o mesmo aviso.

A adição de uma hierarquia a uma dimensão é considerada uma prática recomendada por várias razões, principalmente para fins de facilidade amigável e otimização. Mais especificamente, a hierarquia fornece um caminho de navegação dos dados resumidos para os dados detalhados a ser seguido pelos usuários. Além disso, ela pode melhorar o desempenho da pesquisa por meio da habilitação do SSAS para computar e armazenar agregações de pesquisas de usuários com antecedência.

Por exemplo, se o usuário desejar ver as vendas do revendedor por ano, e uma hierarquia na dimensão de Data definir o caminho de rollup do atributo da chave (Chave de Data) para o atributo Ano Calendário, o SSAS poderá calcular os dados de vendas por ano durante o processamento e, em seguida, colocar os resultados no armazenamento permanente. Esse armazenamento de agregações evita a necessidade de computar as vendas de cada ano na hora da pesquisa e é a principal diferença entre a recuperação dos dados de um data mart relacional ou de um banco de dados multidimensional, como o SSAS.

Para adicionar uma hierarquia à dimensão de Data, arraste o atributo Ano Calendário do painel Atributos para o painel Hierarquia no designer de dimensão. Depois de adicionar o primeiro atributo, um objeto da hierarquia é exibido com um novo nível vazio abaixo dos atributos que você acabou de adicionar. Adicione os atributos Trimestre e Mês à hierarquia soltando cada um no espaço do nível vazio. Em seguida, renomeie a hierarquia com um clique com o botão direito do mouse em Hierarquia e um clique em Renomear e digite Ano.

Embora você tenha adicionado uma hierarquia, um aviso ainda é exibido para a dimensão de Data. Focalize o cursor sobre a linha para ver um novo aviso, "Evite hierarquias de atributos visíveis para atributos usados como níveis em hierarquias definidas pelo usuário". Essa mensagem sugere que você evite que os usuários exibam um atributo por si próprio quando esse atributo foi incluído em uma hierarquia. Em outras palavras, um usuário deverá poder exibir o atributo apenas ao navegar pela hierarquia.

Em minha experiência, essa é uma decisão que deve realmente ser tomada em conjunto com os usuários. Se você decidir levar esse aviso em consideração, selecione Trimestre no painel Atributos e, em seguida, na janela Propriedades, altere o valor de AttributeHierarchyVisible para False.

Relações de atributo

Outro aviso é exibido na própria hierarquia. Nesse caso, a mensagem avisa que um problema de desempenho poderá surgir porque estão faltando relações de atributo entre um ou mais níveis da hierarquia. As relações de atributo são usadas pelo SSAS para otimizar o desempenho da consulta e o design de agregação, para reduzir a quantidade de armazenamento necessária para uma dimensão e para acelerar o tempo de processamento do banco de dados.

Clique na guia Relações de Atributo no designer de dimensão. (Observe que essa guia estará disponível apenas se você estiver usando o Analysis Services 2008.) Por padrão, todos os atributos se relacionam diretamente com o atributo de chave, Chave de Data. Para otimizar o design por meio da reatribuição de relações, arraste o objeto Mês para o objeto Trimestre e, em seguida, arraste o objeto Trimestre para o objeto Ano. A relação do designer agora representa corretamente a relação de muitos para um entre cada nível da esquerda para a direita, conforme mostrado na Figura 4.

Attribute Relationships

Figura 4 Relações de atributo

Em seguida, adicione uma hierarquia à dimensão Produto chamada Categorias que contém Categoria, Subcategoria e Produto de cima para baixo. Depois de criar a hierarquia, você descobrirá que não precisa corrigir as relações de atributo entre níveis porque as relações de chave estrangeira entre as tabelas já estão definidas na DSV. No entanto, é possível definir o valor da propriedade AttributeHierarchyVisible como False, de desejado.

Agora seu projeto contém duas dimensões com hierarquias e relações de atributo definidas corretamente. Conforme se familiarizar mais com o design de dimensão, você descobrirá que há várias propriedades disponíveis para ajustar o desempenho e controlar comportamento específico na interface do usuário.

Além disso, provavelmente, você terá várias dimensões adicionais em soluções mais complexas de BI. No entanto, neste ponto, você dominou os conceitos básicos de dimensões e tem o que precisa para continuar a criar uma solução utilizável por meio da criação de um cubo.

Criando um cubo

Da mesma forma como você usa o Assistente de Dimensão para iniciar o processo de definição de suas dimensões, você usa o Assistente de Cubo para começar a criar o cubo. No Gerenciador de Soluções, clique com o botão direito do mouse na pasta Cubos, clique em Novo Cubo e em Avançar na página de Boas-vindas, se aplicável. Na página Selecionar Método de Criação, mantenha a opção padrão. (Você usará as outras duas opções quando tiver um design que deseje criar manualmente ou com um modelo, em seguida, irá fazer com que o SSAS gere tabelas na fonte de dados com base naquele design, que você precisará popular com dados por meio do Integration Services para poder navegar pelo cubo.) Clique em Avançar.

Na página Selecionar Tabelas de Grupos de Medidas, escolha Vendas pela Internet e Vendas do Revendedor e clique em Avançar. (As tabelas de grupos de medidas são sinônimos de tabelas de fatos.) Em seguida, o assistente exibe todas as colunas numéricas encontradas nas tabelas de grupos de medidas selecionadas. Para manter a abordagem simples utilizada até agora, limpe todas as medidas com a limpeza da caixa de seleção Medida na parte superior da página e, em seguida, selecione as medidas a seguir em cada grupo (Vendas pela Internet e Vendas do Revendedor): Quantidade de Pedidos, Custo Total do Produto e Valor das Vendas.

Você também pode renomear medidas nesta página. Basta clicar com o botão direito do mouse no nome da medida e digitar o novo nome, mas cada nome de medida deve ser exclusivo. O nome da medida deve ser curto, mas não tão curto para que não seja obscuro. Renomeie as medidas do grupo Vendas pela Internet, da seguinte maneira: Quantidade de Pedidos pela Internet, Custo pela Internet e Vendas pela Internet. Da mesma forma, renomeie as medidas de Vendas do Revendedor como Quantidade de Pedidos do Revendedor, Custo do Revendedor e Vendas do Revendedor. Clique em Avançar.

Na página Selecionar Dimensões Existentes, o assistente exibe as dimensões que você já criou. Clique em Avançar. Se houver alguma tabela na DSV que ainda não tenha sido referenciada como uma tabela de grupos de medidas ou por uma dimensão existente, a página Selecionar Novas Dimensões será exibida para permitir que você adicione qualquer outra dimensão necessária rapidamente. Nesse caso, limpe Vendas pela Internet e Vendas do Revendedor, uma vez que você não precisará dessas tabelas criadas como dimensões. (Embora, tecnicamente, essas sejam tabelas de grupos de medidas, a presença de números de pedidos de vendas nas tabelas permitirá que você crie dimensões para dar suporte a relatórios ou análises de vendas por número de pedido de vendas.)

Clique em Avançar, renomeie o cubo como Vendas e clique em Concluir. Parabéns!

Você criou um cubo simples com êxito. O designer de cubo exibe os grupos de medidas e as dimensões adicionadas ao cubo nos painéis à esquerda, e a DSV de origem, à direita, conforme mostrado na Figura 5.

Cube Designer Showing Measure Groups and Dimensions

Figura 5 Grupos de medidas e dimensões mostrados no designer de cubo

A primeira etapa a ser executada depois da criação de um cubo é definir a propriedade FormatString de cada medida para facilitar a exibição de valores no navegador de cubo. A maneira mais rápida de fazer isso é exibir as medidas em uma grade. Na barra de ferramentas do designer de cubo, clique no quinto botão a partir da esquerda para alternar do Modo de Exibição de Árvore para o Modo de Exibição de Grade. No Modo de Exibição de Grade, é possível usar a tecla Ctrl para selecionar várias medidas de uma vez. Primeiro, selecione Quantidade de Pedidos pela Internet e Quantidade de Pedidos do Revendedor. Na janela Propriedades, na lista suspensa FormatString, selecione Padrão. Em seguida, selecione todas as medidas restantes para definir a propriedade FormatString como Moeda.

Adicionando cálculos

Um recurso poderoso do SSAS é a capacidade de adicionar cálculos com o uso da linguagem MDX. Se você escrever fórmulas no Excel, poderá criar cálculos em seu cubo por meio de expressões MDX simples. Para expressões mais complexas, você precisará dedicar algum tempo para aprender sobre a MDX por meio de estudo e muita prática.

Lembre-se de que uma das metas do design desta solução é medir a lucratividade por canal de vendas. O cubo agora inclui as medidas necessárias para calcular a lucratividade: Custo pela Internet, Vendas pela Internet, Custo do Revendedor e Vendas do Revendedor. A diferença entre vendas e custo é a margem bruta, mas esse cálculo fornece dólares absolutos, o que não é útil para a comparação entre canais. Além da margem bruta, você precisa calcular a porcentagem da margem bruta com a divisão da margem bruta pela quantidade de vendas.

No designer de cubo, clique na guia Cálculos, a terceira guia a partir da esquerda. Em seguida, clique no botão Novo Membro Calculado na barra de ferramentas, o quinto botão a partir da esquerda. Na caixa de texto Nome, digite [Margem Bruta pela Internet].

Os colchetes são necessárias quando o nome inclui espaços. Na caixa de texto Expressão, digite [Vendas pela Internet] - [Custo pela Internet] e, em seguida, na lista suspensa Cadeia de Formato, selecione "Moeda". Agora, repita essas etapas para adicionar os cálculos mostrados na Figura 6.

Nome Expressão Cadeia de Formato
[Margem Bruta do Revendedor] [Vendas do Revendedor] - [Custo do Revendedor] "Moeda"
[Porcentagem da Margem Bruta pela Internet] [Margem Bruta pela Internet] / [Vendas pela Internet] "Porcentagem"
[Porcentagem da Margem Bruta do Revendedor] [Margem Bruta do Revendedor] / [Vendas do Revendedor] "Porcentagem"

Figura 6 Adicionando cálculos ao cubo

Implantando um banco de dados do Analysis Services no BIDS

Até agora, embora você tenha criado os objetos necessários para criar um banco de dados do SSAS no servidor, o próprio banco de dados ainda não existe. As tarefas de design que você executa no BIDS produzem arquivos XML que devem ser implantados no servidor.

Quando esses arquivos forem implantados, você poderá processar o banco de dados, que executa os comandos necessários para criar as estruturas de armazenamento definidas pelos arquivos XML e para popular essas estruturas com a execução de consultas na fonte de dados especificada.

No BIDS, você inicia todas essas atividades com um clique no botão direito do mouse no projeto, no Gerenciador de Soluções e, em seguida, com um clique em Implantar. A janela Progresso da Implantação é aberta para mostrar cada etapa executada e se essa etapa foi executada com êxito ou com falha.

Depois da implantação de um projeto, ainda é possível fazer alterações nos designers. Basta implantar o projeto novamente, conforme descrito anteriormente, para mover suas alterações para o servidor e iniciar o processamento. Se você receber um prompt perguntado se o banco de dados será substituído, clique em Sim, se tiver certeza de que você é a única pessoa que está fazendo alterações no banco de dados.

Algumas vezes, a alteração feita não dispara o comando para processar o banco de dados depois da implantação. Nesse caso, basta clicar na dimensão ou no cubo alterado e clicar em Processar e, em seguida, em Executar. Se você processar uma dimensão com a opção Processar Completo (que será necessária se você fizer uma alteração significativa na dimensão), talvez você também precise processar o cubo.

Em cada estágio do desenvolvimento, desde que você tenha implantado e processado a solução com êxito, você pode rever seu progresso a partir do ponto de vista do usuário. No designer de cubo, clique na guia Navegador. O painel à esquerda exibe os objetos no banco de dados do SSAS em uma árvore de metadados (mostrada na Figura 7). O nó superior da árvore é o cubo. Expanda o nó Medida e as pastas que ele contém para exibir todas as medidas disponíveis e, em seguida, expanda os nós Data do Pedido e Produto para exibir os atributos dessas dimensões.

Sales cube

Figura7 Árvore de metadados do cubo Vendas

Você deve estar se perguntando por que o cubo contém Data de Conclusão, Data do Pedido e Data de Remessa quando você criou apenas uma dimensão de Data. Essas dimensões do cubo são chamadas de dimensões com função múltipla porque representam diferentes versões lógicas da mesma dimensão.

Elas aparecem automaticamente no cubo quando você inclui a dimensão de Data porque a tabela de fatos contém três colunas de chave estrangeira diferentes que se relacionam de volta com a única tabela na qual a dimensão de Data é baseada para acompanhar o pedido, a remessa e os eventos de conclusão separadamente. (Se essas datas de função múltipla não forem úteis para análise, você poderá excluir qualquer uma delas que não seja necessária na página Estrutura do Cubo do designer.)

Para exibir os dados do cubo, você arrasta objetos da árvore de metadados para a grade no centro do designer. Comece arrastando Vendas pela Internet para a área com o rótulo Solte os campos de totais ou de detalhes aqui.

Em seguida, repita esse processo para adicionar a Porcentagem da Margem Bruta pela Internet, Vendas do Revendedor e Porcentagem da Margem Bruta do Revendedor à grade. Com os resultados dessa simples consulta agora visíveis no navegador do cubo (conforme mostrado na Figura 8), você pode ver que as Vendas pela Internet são significativamente mais lucrativas do que as Vendas do Revendedor.

Query result

Figura 8 Resultados da consulta no navegador do cubo

É possível continuar a explorar esses resultados arrastando atributos para as seções da grade de linhas, colunas ou filtros que, coletivamente, são chamadas de eixos, ou arrastando atributos e medidas para fora da grade. O processo de adição de objetos aos eixos para refinar a consulta é chamado de fatiar e dividir por usuários de BI e é uma maneira muito rápida de consultar dados sem escrever código. Por exemplo, para fatiar por ano, arraste Order Date.Year para a seção rotulada Solte Campos de Linha Aqui.

Como Order Date.Year é uma hierarquia (conforme indicado pelo ícone em formato de pirâmide), você pode fazer busca detalhada para fatiar por trimestre por meio da expansão de um ou mais anos. De maneira semelhante, você pode dividir por categoria arrastando Categorias para os eixos das colunas acima das medidas.

Depois de colocar objetos em linhas ou colunas, você pode filtrar a lista de itens com um clique na seta da legenda. Para remover Componentes da grade, clique na seta da legenda Categoria, limpe a caixa de seleção Componentes e clique em OK. Em seguida, para simplificar a exibição, arraste Vendas pela Internet e Vendas do Revendedor para fora da grade. Agora, é possível comparar facilmente a lucratividade dos canais Internet e Revendedor por ano e trimestre e por categoria de produto, conforme mostrado na Figura 9.

Profitability

Figura 9 Lucratividade dos canais de vendas por ano e trimestre e por categoria

Compartilhando o cubo com usuários

Por padrão, o cubo é acessível apenas pelo administrador do servidor. No entanto, depois que o cubo é implantado no Analysis Server, é possível definir permissões para conceder acesso ao cubo aos usuários, o que permite que eles usem sua ferramenta favorita para navegar pelo cubo. O Microsoft Excel 2007 é uma opção popular para navegação interativa, mas também é possível usar o Reporting Services para distribuir relatórios baseados em dados do cubo, conforme explicarei em um artigo futuro.

Aplicando suas novas habilidades

Agora que você criou um pequeno banco de dados por meio do uso dos dados do AdventureWorks de exemplo, você deve aplicar o que aprendeu em seus próprios dados por meio da criação de um cubo simples. Se você tiver um design simples e um conjunto de dados relativamente pequeno (que contenha menos do que alguns milhões de linhas, por exemplo) você pode criar um banco de dados, sem precisar criar e manter um data mart. Basta configurar uma exibição de fonte de dados para consultar a origem com consultas nomeadas que estruturem os dados da forma mais parecida possível com um esquema estrela. Quando sua fonte de dados tiver novos dados, você poderá simplesmente executar um processo completo de seu banco de dados do SSAS para mantê-lo atualizado com sua fonte de dados.

Se você tiver mais dados para colocar em um cubo, leia mais sobre o SSAS nos Manuais Online e em outros recursos, pois este artigo explica apenas pontos muito básicos que você precisa conhecer para criar um cubo simples. Por exemplo, no início deste artigo, mencionei que um dos benefícios do SSAS é o gerenciamento de agregações, mas uma explicação mais detalhada desse assunto está além do escopo deste artigo.

Você pode aprender mais sobre agregações e outros tópicos avançados no livro "Microsoft SQL Server 2008 Analysis Services Step by Step" (Microsoft Press, 2009), publicado recentemente por um grande amigo meu, Scott Cameron, que iniciou comigo sua carreira em business intelligence há muitos anos. Agora que você criou seu primeiro cubo, continue aprimorando suas habilidades para poder desenvolver cubos mais avançados e aproveitar ao máximo a plataforma do Microsoft BI.

Stacia Misneré uma consultora de BI, professora e autora, bem como a fundadora e diretora da Data Inspirations. Ela tem 25 anos de experiência no setor de TI, com nove anos focalizados na pilha do Microsoft BI. Misner escreveu vários livros sobre BI e o SQL Server. Seu último livro, "Microsoft SQL Server 2008 Reporting Services Step by Step" (Microsoft Press, 2009), foi lançado no início deste ano. Você pode contatá-la pelo email smisner@datainspirations.com.

 

Recursos adicionais

Desenvolvimento do Analysis Services (Manuais Online)
msdn.microsoft.com/library/bb500183.aspx

Segurança do Analysis Services (Manuais Online)
msdn.microsoft.com/library/ms175386.aspx

Vídeos do Analysis Services 2008 (Manuais Online)
msdn.microsoft.com/library/dd299422.aspx