Analysis Services Manual Básico Construindo um Banco de Dados OLAP... 2 Criando a origem de dados... 3 Definindo as dimensões... 5 Níveis de dimensão e membros... 8 Construindo o cubo... 11 Tabela de fatos...12 Definindo as medidas...13 Adicionando dimensões ao cubo...15 Armazenamento otimizado de um BD OLAP... 17 Análise de uso...21 Partições...21 Processando o cubo... 22 Elaborado por: Royquener Reuter Dez-2002 www.inf.ufsc.br/~reuter
Construindo um Banco de Dados OLAP O primeiro passo ao utilizar o Analysis Manager é criar seu banco de dados OLAP. Para criá-lo, destaque o ícone do servidor, clique com o botão direito do mouse para exibir um menu de atalho. Escolha New Database no menu de atalho e, na caixa de diálogo exibida, insira o nome de seu banco de dados, clicando Ok, em seguida. Caixa de diálogo New Database Quando retornar ao Server Manager, você verá seu recém-criado banco de dados.
Criando a origem de dados Qualquer banco de dados OLAP criado no Analysis Services deve ter uma origem de dados que fornece os dados para preencher as dimensões e medidas dos cubos. A origem de dados para seu banco de dados OLAP pode ser praticamente qualquer armazenamento de dados relacional que possa expor os dados via um provedor OLE DB (modelo de objeto de acesso a dados universal da Microsoft). Para criar uma origem de dados para o banco de dados OLAP, expanda o banco de dados no Analysis Server Manager. Destaque a pasta DataSource. Clique com o botão direito do mouse para exibir um menu de atalho. Escolha New Data Source no menu de atalho. Caixa de diálogo Data Link Properties
Esta caixa fornece uma lista de provedores OLE DB disponíveis. O provedor OLE DB deve ser instalado e registrado no servidor para estar disponível nessa lista. Após escolher o provedor OLE DB que você quer utilizar, clique Next. Você então recebe um prompt pedindo informações de conexão. (A Microsoft incorporou inteligência nessa caixa de diálogo para alterar informações requeridas de conexão com base no provedor OLE DB que você escolhe. Isso é feito porque cada provedor de OLE DB talvez requeira parâmetros únicos de conexão a fim de estabelecer uma conexão com a origem de dados). No nosso caso utilizaremos o Data Link Microsoft OLE DB Provider for SQL Server.
Definindo as dimensões Após a criação do banco de dados OLAP, o próximo passo é definir suas dimensões compartilhadas. Uma dimensão compartilhada é uma dimensão que está disponível para qualquer cubo no banco de dados OLAP. Lembre-se : as dimensões são categorias através das quais você quer analisar e sintetizar (resumir) seus dados. Exemplos de possíveis dimensões seriam : localização de armazenamento, idade de cliente, sexo de cliente, produto e tempo. Para criar uma nova dimensão compartilhada, expanda o banco de dados e, em seguida, expanda a pasta Library. Destaque a pasta the Shared Dimensions. Clique com o botão direito do mouse para exibir um menu de atalho. Escolha New Dimension no menu de atalho. Clique em Next na tela de introdução e você verá a caixa de diálogo Dimension Wizard. Dimension Wizard
O assistente solicitará o tipo de dimensão que você quer criar. O tipo de dimensão será baseado nas tabelas subjacentes de dados originais para sua dimensão. O esquema Star utiliza poucas e grandes tabelas de fatos centralizadas e muitas tabelas de pequena dimensão. O esquema Snowflake troca desempenho pela complicação adicional de manutenção dos metadados de warehouse e transformações requeridas pelos sistemas de origem Depois que escolheu o tipo de dimensão que deseja criar, o próximo passo na criação da dimensão é escolher uma tabela de dimensão. A tabela de dimensão é a que fornece os dados originais para sua dimensão. Em outras palavras, essa tabela fornece os dados sobre a categoria para a qual sua dimensão está sendo criada. Para selecionar uma tabela de dimensão, clique em Next na caixa de diálogo Dimension Wizard. Caixa de diálogo Select Dimension Table
Caixa de diálogo Create and Edit Joins Expanda a origem de dados desejada para exibir uma lista de tabelas disponíveis. Lembre-se de que o banco de dados OLAP pode ter diversas origens de dados. (Você pode até criar uma nova origem de dados a partir do Dimension Wizard clicando no botão New Data Source). Você também pode navegar pelos dados que estão contidos na tabela de dimensão selecionada. Escolha a tabela apropriada para a dimensão que você quer criar. NOTA: Se a tabela de dimensão selecionada contiver um campo de data, o Dimension Wizard pergunta se você quer criar uma dimensão padrão ou uma dimensão de tempo. O Analysis Services pode criar automaticamente dimensões de tempo para você com base nas colunas de data utilizando as partes numéricas da data. Uma dimensão de tempo pode ser anual, trimestral, semanal, diária e assim por diante.
Níveis de dimensão e membros Após selecionar uma tabela de dimensão, o próximo passo no processo é definir os níveis e membros dentro da dimensão. Caixa de diálogo Dimension Wizard Select Levels Dimension Wizard Select Levels é onde você define os níveis que compõem a hierarquia ou caminho de resumo dos dados de dimensão. O Dimension Wizard permite criar níveis dentro da dimensão. Para criar níveis dentro de uma dimensão, escolha as colunas da tabela de dimensão que correspondam aos níveis que você quer criar e clique no botão >. Você pode utilizar os botões Move Up e Move Down para organizar seus níveis. Considere, por exemplo, a dimensão de localização de cliente. Essa dimensão é composta de informações geográficas sobre a localização de cada cliente. Há uma hierarquia natural dentro dessa dimensão : country, state, city (país, estado, cidade). Cada ponto ao longo da hierarquia
representa um nível. Os níveis devem ser organizados dos dados mais resumidos aos menos resumidos. É possível que uma dimensão tenha somente um nível. Isso não é um problema contanto que esse nível seja o único nível de sumarização que é necessário para sua análise de dados. ATENÇÃO: Cuidado ao configurar os níveis. Como mencionado anteriormente, os níveis devem ser organizados dentro de uma dimensão de dados mais resumidos para os dados menos resumidos. Isso implica que cada nível pai contenha menos membros que o nível abaixo dele. Isso mantém um relacionamento essencial de um para muitos entre a hierarquia de dados que assegura um drill-down (análise) e um roll-up (síntese) precisos. Em outras palavras, você não faria muito sentido ter o nível Cidade acima do nível Estado em uma hierarquia de dimensão. Dentro de cada nível estão os membros, que representam os valores dos dados reais dentro das dimensões e os níveis representam a hierarquia. Por exemplo, o nível País dentro da dimensão da localização de cliente talvez consista nos membros : EUA, Canadá e México. Da mesma forma, o nível Estado talvez consista nos membros : Washington, Califórnia e Oregon. Depois que você definiu os níveis e membros, clique em Next nas duas próximas telas de assistente. Essas telas fornecem algumas opções avançadas para criar suas dimensões. As opções padrão são suficientes para essa construção inicial. Agora você terminou o Dimension Wizard e poderá fornecer um nome para sua dimensão e visualizar os dados de dimensão na hierarquia que definiu.
Caixa de diálogo Dimension Wizard Finish Clique em Finish e você será levado de volta para o OLAP Manager. Você precisará repetir os passos anteriores para cada dimensão que criar. Deve, também, certificar-se de definir todas as dimensões desejadas antes de começar a criar os cubos. As dimensões fornecem a definição para a maneira como usuários serão capazes de analisar os dados que serão armazenados no banco de dados multidimensional. Na criação de suas dimensões, você deve considerar cuidadosamente todas as maneiras como seus usuários talvez queiram analisar os dados.
Construindo o cubo Depois que definiu suas dimensões ou as categorias através das quais você quer analisar e sintetizar os dados, o próximo passo é construir os cubos. O cubo é o bloco de construção básica do banco de dados OLAP Multidimensional. O cubo associa as dimensões que você definiu com os dados quantitativos que você quer analisar, como números de vendas ou custos. Para criar um cubo, expanda o banco de dados e destaque a pasta Cubes. Clique com o botão direito do mouse para exibir um menu de atalho. Escolha New Cube do menu de atalho. Você pode escolher utilizar o assistente ou ir direto para o editor. Vamos utilizar o assistente novamente. Clique em Next na tela de introdução e você verá a caixa de diálogo abaixo : Caixa de diálogo Cube Wizard Select Fact Table.
Tabela de fatos O cubo em um banco de dados multidimensional serve para associar dimensões com dados quantitativos. A tabela de fatos é a tabela dentro do armazenamento de dados relacional que contém os dados quantitativos reais que você quer analisar. Tabelas de fato típicas dentro de bancos de dados multidimensionais OLAP são : vendas, orçamentos e custos. Note que esta caixa de diálogo parece idêntica à caixa de diálogo Dimension Wizard. Simplesmente expanda a origem de dados (data source) desejada para ver uma lista de tabelas disponíveis e escolha a tabela de fatos desejada. Em geral, a tabela de fatos é uma tabela que contém registros detalhados orientados à transação, como registros de vendas. NOTA : Cada cubo deve ser baseado em somente uma tabela de fatos. Se mais de uma tabela contiver os dados que você que analisar, deve-se criar um cubo separado para cada uma delas. Na caixa de diálogo Cube Wizard Select Fact Table, clique em Next para definir que dados dentro da tabela de fatos você quer analisar. Esses dados são conhecidos como as medidas do cubo.
Caixa de diálogo Cube Wizard Define Measures Definindo as medidas As medidas representam as colunas provenientes da tabela de fatos que contém os dados numéricos que você quer analisar. A caixa de diálogo Cube Wizard Define Measures, funciona da mesma maneira que a caixa de diálogo Dimension Wizard Select Levels. Simplesmente escolha as colunas que você quer analisar e clique no botão >. Ao contrário da definição de níveis de dimensão, não há ordem configurada ou hierarquia para as medidas. Você pode adicionar ao cubo quantas medidas você quiser, contanto que essas colunas estejam presentes na tabela de fatos. CUIDADO: O Cube Wizard mostra automaticamente todas as colunas numéricas que estão disponíveis na tabela de fatos que você escolheu. Embora um ID (número identificador) de armazenamento ou número do
cliente possam ser valores numéricos, provavelmente não são medidas quantitativas nas quais você queira incluir um cubo. Na Caixa de diálogo mostrada na figura abaixo, clique em Next para definir as dimensões que você quer incluir ao seu cubo.
Adicionando dimensões ao cubo As dimensões fornecem as categorias que são utilizadas para analisar as medidas do cubo. Utilizando o assistente, você pode incluir qualquer dimensão definida anteriormente como dimensões compartilhadas. NOTA: O Cube Wizard permite incluir somente essas dimensões que foram anteriormente definidas como dimensões compartilhadas. Mas, depois que terminou de utilizar o assistente (Wizard), você é automaticamente levado para o Cube Editor, onde poderá adicionar dimensões compartilhadas adicionais ou criar dimensões privadas que estão só disponíveis para o cubo que você está criando. Depois que você definiu as dimensões do cubo e clicou em Next, você terminou o Cube Wizard. Caixa de diálogo Cube Wizard Finish
Essa caixa de diálogo permite fornecer um nome para seu cubo e mostra uma representação gráfica das dimensões e medidas que você definiu. Clique em Finish para criar a definição de cubo. Você pode repetir os passos anteriores para criar quantos cubos quiser no banco de dados OLAP. Cada cubo pode ter seu próprio conjunto de dimensões e medidas. Lembre-se : um cubo só pode estar baseado em uma tabela de fatos, assim você precisa de um cubo separado para cada tabela de fatos individual que quiser analisar. Até aqui vimos como criar dimensões que são utilizadas para categorizar e resumir os dados. Vimos como criar o cubo, que define os relacionamentos entre os dados quantitativos que se quer analisar e as dimensões através das quais vai-se analisar esses dados.
Armazenamento otimizado de um BD OLAP O método de armazenamento MOLAP envolve armazenar todos os dados detalhados de cubo dentro de um armazenamento de dados multidimensional proprietário. Isto significa que o armazenamento de dados relacional dentro das tabelas de dimensão e tabelas de fatos da origem de dados relacionais subjacentes é gravado em um armazenamento multidimensional otimizado. Antes de utilizar o banco de dados OLAP é necessário processar os cubos que estão contidos dentro do banco de dados. Em termos simples, processar o cubo preenche a definição do cubo com dados transacionais reais a partir do data warehouse ou data mart. Entretanto, antes de realmente preencher o cubo, você precisa estabelecer certas definições de otimização para seu cubo. O Analysis Services fornece dois mecanismos primários para otimizar os cubos dentro do banco de dados OLAP : Agregações e Partições. Para criar agregações destaque o cubo dentro da pasta Cubes na visualização da árvore. Clique com o botão direito do mouse para exibir o menu atalho. A opção Design Storage carregará o Storage Design Wizard. Este assistente ajuda a fazer duas coisas : escolher um modo de armazenamento para seu cubo e dados de agregação e projetar um conjunto de agregações para seu cubo.
Caixas de diálogo Design Storage Escolha o modo de armazenamento MOLAP para desempenho máximo de seu cubo. Clique em Next para projetar as agregações para seu cubo.
A caixa de diálogo Storage Design Wizard Design Aggregations permite projetar as agregações para seu cubo. O que você realmente faz aqui é informar ao Analysis Services quantas agregações potenciais devem ser criadas para seu cubo. O Analysis Services utiliza algoritmos sofisticados para determinar quais agregações criar. O único controle real que você tem sobre o processo é especificar a compensação entre espaço em disco e desempenho. Na caixa de diálogo clique em Start e você notará que o gráfico (do lado direito da caixa de diálogo) exibe dinamicamente o espaço em disco versus ganho de desempenho enquanto as agregações são projetadas. Depois que o Analysis Services criou as agregações para satisfazer a condição especificada, clique em Next para exibir a caixa de diálogo Storage Design Wizard Finish. Nesta caixa duas opções estão disponíveis : Process now marcar essa opção faz com que o Analysis Services processe todas as agregações quando você clicar em Finish. Por isso, queremos dizer que o Analysis Services realiza todos os cálculos de dados e armazena os dados no modo especificado de armazenamento de dados com o cubo. Save, but don t process now - marcar essa opção permite salvar o projeto de agregação sem realmente calcular ou armazenar os dados. Lembre-se de que você deve processar essas agregações antes de os dados estarem disponíveis para o usuário. Preferencialmente, escolha a opção Process now e clique Finish. O Analysis Services exibe uma janela detalhada de status de todo o processamento. Esse status mostra qualquer operação de banco de dados que estiver sendo realizada e indica o sucesso ou a falha dessas operações.
Storage Design Wizard Process Status. NOTA: Uma boa recomendação é sempre configurar o primeiro nível de agregação utilizando uma melhora de desempenho de 20% e então executar o Usage-Based Optimization Wizard depois que o cubo passou por teste de aceitação de usuário durante aproximadamente uma semana. Certifique-se de manter sua comunidade de usuários informada de seus planos. Eles devem estar cientes de que o desempenho experimentado durante a primeira semana não será indicativo do desempenho final no nível de produção.
Análise de uso Outra ferramenta que será extremamente valiosa para qualquer DBA incumbido de manter um banco de dados OLAP é o Usage Analysis Wizard. Esse assistente permite ao DBA imprimir vários gráficos que dão alguma indicação de como os cubos dentro de um banco de dados OLAP estão sendo utilizados pelos aplicativos de clientes. Para carregar o Usage Analysis Wizard, destaque seu cubo no Analysis Manager, clique com o botão direito do mouse para exibir o menu atalho e escolha Usage Analysis para exibir a caixa de diálogo. Partições As partições representam o armazenamento físico de dados do cubo e dados de agregação. O cubo é a definição lógica dos dados. Quando você cria um cubo em um banco de dados OLAP, o Analysis Services automaticamente cria uma partição, que pode ser alterada em novas partições. Essas partições são utilizadas para segmentar fisicamente os dados de sua definição lógica de cubo. A potência verdadeira de partições é que cada partição pode ter seu próprio modo de armazenamento e seu próprio conjunto único de agregações. NOTA: Criar partições definidas pelo usuário (aquelas que não são criadas automaticamente pelo Analysis Services) requer o Enterprise Edition do Analysis Services. Se você estiver executando a edição padrão, esse recurso não é suportado.
Processando o cubo Obviamente, o negócio orientado a transação não pára, uma vez que um cubo foi criado. Até agora discutimos os cubos como se eles fossem visualizações de instantâneos apenas para leitura de dados transacionais. Embora seja verdadeiro que bancos de dados OLAP sejam utilizados para realizar análise em dados transacionais históricos, esses cubos precisam ser atualizados à medida que as transacionais de dados subjacentes se alteram. Para que um cubo seja preenchido com dados reais, ele deve ser processado. Da mesma forma, para atualizar dados em um cubo, eles devem ser processados. Para atualizar seus dados de cubo, destaque o cubo em OLAP Manager, clique com o botão direito do mouse para exibir um menu de atalho, escolha Process para exibir a caixa de diálogo com as seguintes opções : Incremental Update (Atualização Incremental) : escolha essa opção para adicionar somente dados alterados ao cubo. Os dados existentes de cubo são deixados intactos e as agregações são recalculadas enquanto os usuários ainda estão conectados ao banco de dados. Quando a atualização estiver concluída, os usuários têm acesso aos novos dados. Refresh Data : Escolha essa opção para limpar todos os dados no cubo e preenche-los novamente. Quando você escolhe essa opção, todas as agregações são recalculadas e os dados são armazenados no cubo com base na definição original do cubo. Process : Escolha essa opção somente se a estrutura de seu cubo foi alterada; por exemplo, se você adicionou ou removeu uma dimensão ou medida do cubo. Essa opção reconstrói completamente
o cubo com base nas definições atuais de cubo. Esse processo é exatamente o mesmo processo que você executou logo que criou o cubo. O Analysis Services permite conceder acesso de usuário aos cubos logo que os dados do cubo são preenchidos e antes de as agregações serem calculadas. Esse recurso minimiza o tempo que os cubos ficam indisponíveis para seus usuários. Para modificar este comportamento, na Caixa de Diálogo Process a Cube, clique no botão Settings e na seguinte, Caixa de Diálogo Cube Processing Settings, escolha a opção Immediately After Data Is Loaded. Isto permitirá aos usuários acessar dados de cubo antes que as agregações sejam criadas. Esteja ciente, entretanto, que o desempenho da consulta será significativamente pior até todas as agregações serem criadas. --------------