Introdução a data warehouse e olap

14,404 views

Published on

Introdução a data warehouse e olap

  1. 1. Versão: 2.0 www.marcelosincic.com.br Página 1 de 59www.marcelosincic.com.br Reprodução e distribuição livreOlá,Criei esta apostila para ajudar um grupo de angolanos a aprender OLAP, mas servirá para quem queraprender sobre esta. O conteudo é basico e indicado a iniciantes.Perfil Microsoft: https://www.mcpvirtualbusinesscard.com/VBCServer/msincic/profileMarcelo Sincic trabalha com informática desde 1988. Durante anos trabalhou com desenvolvimento (iniciando comDbase III e Clipper S87) e com redes (Novell 2.0 e Lantastic).Hoje atua como consultor e instrutor para diversos parceiros e clientes Microsoft.Recebeu em abril de 2009 o prêmio Latin American MCT Awards no MCT Summit 2009, um prêmio entregue a apenas5 instrutores de toda a América Latina (http://www.marcelosincic.eti.br/Blog/post/Microsoft-MCT-Awards-America-Latina.aspx).Recebeu em setembro de 2009 o prêmio IT HERO da equipe Microsoft Technet Brasil em reconhecimento a projetodesenvolvido (http://www.marcelosincic.eti.br/Blog/post/IT-Hero-Microsoft-TechNet.aspx). Em Novembro de 2009recebeu novamente um premio do programa IT Hero agora na categoria de especialistas(http://www.marcelosincic.eti.br/Blog/post/TechNet-IT-Hero-Especialista-Selecionado-o-nosso-projeto-de-OCS-2007.aspx).Acumula por 5 vezes certificações com o título Charter Member, indicando estar entre os primeiros do mundo a secertificarem profissionalmente em Windows 2008 e Windows 7.Possui diversas certificações oficiais de TI:MCITP - Microsoft Certified IT Professional Database Administrator SQL Server 2008MCITP - Microsoft Certified IT Professional Database Administrator SQL Server 2005MCITP - Microsoft Certified IT Professional Windows Server 2008 AdminMCITP - Microsoft Certified IT Professional Enterprise Administrator Windows 7 Charter MemberMCITP - Microsoft Certified IT Professional Enterprise Support TechnicalMCPD - Microsoft Certified Professional Developer: Web ApplicationsMCTS - Microsoft Certified Technology Specialist: Windows 7 Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows Mobile 6. Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows 2008 Active Directory Charter MemberMCTS - Microsoft Certified Technology Specialist: Windows 2008 Networking Charter MemberMCTS - Microsoft Certified Technology Specialist: System Center Configuration ManagerMCTS - Microsoft Certified Technology Specialist: System Center Operations ManagerMCTS - Microsoft Certified Technology Specialist: Exchange 2007MCTS - Microsoft Certified Technology Specialist: Windows Sharepoint Services 3.0MCTS - Microsoft Certified Technology Specialist: SQL Server 2008MCTS - Microsoft Certified Technology Specialist: .NET Framework 3.5, ASP.NET ApplicationsMCTS - Microsoft Certified Technology Specialist: SQL Server 2005MCTS - Microsoft Certified Technology Specialist: Windows VistaMCTS - Microsoft Certified Technology Specialist: .NET Famework 2.0MCDBA – Microsoft Certified Database Administrator (SQL Server 2000/OLAP/BI)MCAD – Microsoft Certified Application Developer .NETMCSA 2000 – Microsoft Certified System Administrator Windows 2000MCSA 2003 – Microsoft Certified System Administrator Windows 2003Microsoft Small and Medium Business SpecialistMCP – Visual Basic e ASPMCT – Microsoft Certified TrainerSUN Java Trainer – Java Core Trainer ApprovedIBM Certified System Administrator – Lotus Domino 6.0/6.5
  2. 2. Versão: 2.0 www.marcelosincic.com.br Página 2 de 59www.marcelosincic.com.br Reprodução e distribuição livreIntrodução a Data Warehouse e OLAPDados no formato relacional são muito ageis para as tarefas do dia a dia, mas muito lentos para consultas análiticas.Isto se dá em virtude de dados relacionais serem utilizados para controle de entidades, seja quais forem, e portantocontem uma lista de atributos, as colunas, e os itens que são as linhas. Mas para análise de dados o ideal é a visualizaçãoinvertida, ou seja, os atributos serem as linhas e os itens nas colunas, como o exemplo abaixo demostra:Cliente Produto QuantidadeABC Camisa 20ABC Calça 10XYZ Camisa 30XYZ Calça 20Tabela no formato relacional (OLTP)Produto ABC XYZCamisa 20 30Calça 10 20Tabela no formato análitico (OLAP)Note que os dados são os mesmos, mas a forma de apresentação mudou e garantiu que uma análise mais apurada fossedesenvolvida, como por exemplo, a soma das vendas por produto, onde anteriormente só era possivel ver as vendastotais.Esta realocação das linhas em colunas e das colunas em linhas recebe o nome de cross-join (referência cruzada). Estemodelo de planilhas é chamado de Pivot Table .Os dados cruzados na segunda planilha é o obtido por utilizar produtos que transformem os dados relacionais OLTP(Online transaction process) em dados OLAP (Online analisys process). Estra transformação de dados é armazenada emum objeto cubo. Os cubos contem os dados em formato cross-join e utilizando uma ferramenta pivot table como o Excelpodemos montar tabelas em formato livre, como veremos mais adiante.Segue uma lista dos termos utilizados até o momento e que não podemos esquecer:
  3. 3. Versão: 2.0 www.marcelosincic.com.br Página 3 de 59www.marcelosincic.com.br Reprodução e distribuição livre• OLAP – Online analisys process. Programa que permite transformar os dados relacionais (OLTP) em dadosconsolidados utilizando cross-join e gerando os cubos com os cruzamentos. A arquitetura OLAP é otimizada paraconsolidação e leitura, não permitindo gravação ou alterações.• OLTP – Online transaction process. São os servidores de banco de dados utilizados comercialmente desdeMicrosoft SQL Server, Oracle ou mesmo Access e Excel, já que todos estes tem os dados otimizados paraoperações de leitura e gravação constante. Sua desvantagem é a dificuldade em gerar dados consolidados emtempo hábil.• Data Warehouse – Repositório de cubos gerados para análise.• Pivot Table – Programa visualizador dos cubos, permitindo montar visões e tabelas dinamicamente arrastandoos dados em colunas e linhas. Um bom programa para esta tarefa é o Excel.• Cross-Join – Processo onde se faz a junção dos dados e transforma-se as colunas em linhas e as linhas emcolunas gerando dados cruzados.• Cubo – Dados resultantes do processo de OLTP com o cross-join que são manipulados pelo pivot table.
  4. 4. Versão: 2.0 www.marcelosincic.com.br Página 4 de 59www.marcelosincic.com.br Reprodução e distribuição livreOLAP no Microsoft SQL Server 2005No SQL Server 2005 é possível trabalhar todos os recursos de OLAP por utilizar suas ferramentas de transformação dedados para gerar staging tables, tabelas transitórias com dados de várias fontes, ou então diretamente nos cubos.Esses dois processo estão exemplificados abaixo:Modelo 1: Geração dos dados OLAP utilizando tabelas unificadasModelo 2: Geração dos dados OLAP utilizando diretamente as tabelas fontes OLTPNo primeiro modelo vemos que os dados em diversas fontes geraram uma fonte de dados secundária, que servirá paragerar os cubos análiticos.Data warehouse (OLAP Service)Oracleou SQLExcelouAccessStagingtables Data MartsCuboCuboData warehouse (OLAP Service)Oracleou SQLExcelouAccessData MartsCuboCubo
  5. 5. Versão: 2.0 www.marcelosincic.com.br Página 5 de 59www.marcelosincic.com.br Reprodução e distribuição livreEste processo é feito por uma ferramenta do SQL Server chamada de SSIS (SQL Server Intergration Service) que permitealterar os dados fontes em qualquer formato para um formato único. Por exemplo, é possivel com este recursotransformar dados em Excel relacionando com tabelas em Oracle ou outra fonte e gerar uma tabela única.O segundo modelo apresentado utiliza apenas o OLAP Services que também permite a integração de dadosheterogênios para formar uma única fonte de dados aos cubos analíticos.O serviço OLAP do SQL Server 2005 alêm disso permite também a visualização imediata dos cubos em pivot tables,agendamento das atualizações dos cubos e segurança ao acesso dos dados.O serviço OLAP tambem permitirá trabalhar com diversos tipos de armazenamento dos cubos, conforme a tabela aseguir:Modelo Armazenamento ComentáriosHOLAP Hibrido. As agregações (cubos) ficam no OLAPServices e os dados fonte continuam residindo noOLTP.Modelo mais utilizado,ocupando relativamentepouco espaço e utilizando abase OLTP apenas quandousuário pede detalhes.MOLAP Nativo. Tanto aos cubos quanto os dados fonteficam gravados no OLAP.Ocupa muito espaço,principalmente com grandesdatabases já que duplica afonte dos dados. Suavantagem é a performance.ROLAP Relacional. O OLAP mantem apenas as estruturas edefinições, a cada consulta ao cubo ele tem que serinteiramente processado.O processamento se tornamuito lento, principalmentequando são feitas muitasconsultas ao cubo. Suavantagem é pouco espaçoocupado.Nota: Não trataremos do SSID por se tratar de uma ferramenta de desenvolvimento complexa e nãofaz parte do OLAP Services e sim do SQL Server 2005.
  6. 6. Versão: 2.0 www.marcelosincic.com.br Página 6 de 59www.marcelosincic.com.br Reprodução e distribuição livreInstalação do OLAP ServicesA instalação do serviço de OLAP da Microsoft é feita no próprio setup do SQL Server, já que apesar de ser um serviçosepaado do SQL Server é parte do produto.Para fazer a instalação do OLAP no mesmo momento em que se instala o SQL Server basta escolher na lista decomponentes o Analisys Services.Se a instalação do OLAP for feita após a instalação do SQL Server, utilize a opção Adicionar/Remover Programas dopainel de controle do Windows e clique no botão Alterar do SQL Server.Em qualquer uma das situações a tela abaixo mostra o componente (feature) do OLAP sendo incluida na instalação.Tela de instalaçao do SQL Server para inclusão do serviço OLAPAo incluir o serviço de OLAP é gerado no SQL Server um database que tem por função ser um Metadata Repository, ourepositório de dados metafóricos, onde as configurações do serviço ficam armazenadas.
  7. 7. Versão: 2.0 www.marcelosincic.com.br Página 7 de 59www.marcelosincic.com.br Reprodução e distribuição livreCom a instalação do serviço de OLAP serão acrescentados no menu iniciar do grupo SQL Server um novo subgrupoAnalisys Services e um atalho para o Business Inteligence Development Studio:Alteração no menu Iniciar após a instalação do OLAPO subgrupo Analisys Services contem apenas um wizard para distribuição das configurações de um cubo para outroservidor. Já o atalho para o BI Studio executa o Visual Studio 2005, ambiente integrado de desenvolvimento que éutilizado para todas as linguagens da Microsoft, inclusive o Office e o SQL Server.Ao chamar o BI Studio notará que na tela de apresentação irá constar o SQL Server como embutido nos projetos quepodem ser criados.Tela de apresentação do BI Studio com as linguages e os serviços do SQLAo clicar em novo projeto no Visual Studio poderá criar diversos projetos específicos do SQL Server, entre eles osprojetos de OLAP (Analisys services).
  8. 8. Versão: 2.0 www.marcelosincic.com.br Página 8 de 59www.marcelosincic.com.br Reprodução e distribuição livreLista dos projetos SQL Server no Visual Studio 2005Os dois primeiros tipos de projetos se referem ao OLAP, o primeiro um novo projeto e o segundo para importar projetoscriados no SQL Server 2000.Com estas opções instaladas verifique no painel de serviços das ferramentas administrativas do Windows se o serviçoOLAP está instalado e executado.Se o serviço não estiver iniciado bastará iniciá-lo agora. Caso o serviço acuse erros verifique no Event Viewer doWindows a mensagem que ele gerou para resolver o problema.Com o serviço iniciado e rodando, bem como as ferramentas do BI Studio acusando o Analisys Services é sinal de quetoda a instalação ocorreu com sucesso.
  9. 9. Versão: 2.0 www.marcelosincic.com.br Página 9 de 59www.marcelosincic.com.br Reprodução e distribuição livreServiços do SQL Server incluindo o Analisys Services
  10. 10. Versão: 2.0 www.marcelosincic.com.br Página 10 de 59www.marcelosincic.com.br Reprodução e distribuição livreAdministrando o SSASA administração do servidor SQL Server Analisys Service é feita no mesmo console de gerenciamento do SQL Server, oSQL Server Management Studio.Por este console podemos deletar e criar scripts para cada um dos objetos, mas não criá-los (exceto Roles), tarefa quecabe ao SQL Server Business Intelligence Development Studio.Abrindo o SSAS pelo console SQL Server Management Studio
  11. 11. Versão: 2.0 www.marcelosincic.com.br Página 11 de 59www.marcelosincic.com.br Reprodução e distribuição livreVisualização dos objetos do SSAS
  12. 12. Versão: 2.0 www.marcelosincic.com.br Página 12 de 59www.marcelosincic.com.br Reprodução e distribuição livreCriando um Projeto OLAPPara criar um projeto OLAP é utilizada a interface visual do Microsoft Visual Studio 2005 como já comentados nostópicos anteriores.A chamada é feita no menu Iniciar na lista de programa dos SQL Server 2005 no atalho SQL Server Business IntelligenceDevelopment Studio e teremos a interface do Visual Studio 2005 em branco.Clique em File -> New -> Project e terá a tela a seguir, onde os projetos OLAP aparecem dentro dos modelos de BusinessIntelligence Projects.Tela de inicialização de um novo projeto no Visual Studio 2005
  13. 13. Versão: 2.0 www.marcelosincic.com.br Página 13 de 59www.marcelosincic.com.br Reprodução e distribuição livreO passo seguinte é escolher o projeto Analisys Services Project, colocar o nome e o caminho do projeto no disco, ondepor padrão são criados diretório dentro de Meus Documentos.Projeto com tipo, nome e localização definidaNo canto direito da tela principal é possivel agora ver os componentes de uma solução OLAP, como a figura abaixorepresenta, que é chamada de propriedades do projeto (Project Properties).
  14. 14. Versão: 2.0 www.marcelosincic.com.br Página 14 de 59www.marcelosincic.com.br Reprodução e distribuição livreJanela Propriedades do ProjetoSegue a definição de cada uma das pastas que compõe um projeto OLAP:Pasta do Projeto DescriçãoData Sources São os diferentes locais de onde os dados poderão vir, tambemchamados de conexões.Data Source Views As consultas que baseadas nos Data Sources criados permitiram o uso,permite a integração das várias bases para formar um único repositóriohomogênio.Cubes Definição das consultas.Dimensions Atributos que serão utilizados para a formação dos pivot table.Mining Structures Estruturas que permitem analisar automaticamente desvios padrão nosdados, como por exemplo, tendencia geográfica entre outros.Roles Segurança de acesso.Assemblies DLLs que permitem customização na forma de geração dos cubos.Miscellaneous Arquivos diversos.Para inserir os dados nos diferentes componentes do OLAP basta clicar e escolher a opção New.Um único projeto pode conter diversos cubos, medidas e fontes. A recomendação em geral é que cada projeto contenhaum grupo de cubos e seus necessários componentes, como por exemplo, um projeto para o departamento de vendas
  15. 15. Versão: 2.0 www.marcelosincic.com.br Página 15 de 59www.marcelosincic.com.br Reprodução e distribuição livreque contem todos os cubos baseados em clientes versus pedidos. Um projeto para o departamento financeiro quecontenha todos os cubos baseados em clientes versus recebimentos e fornecedores versus pagamentos.Se seguirmos o padrão um projeto por grupo, seja departamental ou funcional, será mais fácil os usuários selecionaremo que desejam, primeiro escolher o grupo e dentro do grupo os diversos modelos analiticos que foram criados.Se seguirmos o modelo de um único projeto com todos os cubos analíticos dentro teríamos uma dificuldade grande parao usuário escolher qual é o que ele deseja, se a análise é financeira ou de demanda para o cliente, por exemplo.
  16. 16. Versão: 2.0 www.marcelosincic.com.br Página 16 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinindo Fontes de DadosO primeiro passo para podermos criar um projeto OLAP é definirmos de onde os dados estarão sendo lidos. Estaconfiguração é feita em Data Sources no projeto de OLAP.Clique com o botão direito sobre Data Source e escolha a opção New Data Source ao que será mostrada a tela dedefinição para uma fonte de dados.Tela inicial de criaçãode um novo data sourceNa tela seguinte é mostrada uma lista com os data sources que já foram criados para seleção ou então clique no botãoNew para criar uma nova fonte de dados, como a tela a seguir.
  17. 17. Versão: 2.0 www.marcelosincic.com.br Página 17 de 59www.marcelosincic.com.br Reprodução e distribuição livreSeleção de um datasource já existente ou para crição de um novoAo criar uma nova fonte de dados, clicando no botão New, definimos o tipo de banco (Oracle, SQL, Excel, etc), o nomedo servidor se for o caso ou o caminho do arquivo quando é arquivo. A tela configura é similar a abaixo.
  18. 18. Versão: 2.0 www.marcelosincic.com.br Página 18 de 59www.marcelosincic.com.br Reprodução e distribuição livreTela de definição de um novo data sourceCom o nome do servidor e o tipo informado definimos tambem o nome do banco de dados que será utilizado quandoeste for um servidor relacional.
  19. 19. Versão: 2.0 www.marcelosincic.com.br Página 19 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinição completa do novo data sourceO passo seguinte é informarmos ao projeto qual o usuário que tem permissão para executar as agragações, sendo asopções:Tipo UtilizaçãoSpecified user and password Para informar manualmente um nome deusuário e a senha. Apenas quando o modo deautenticação do servidor SQL Server for misto.Service Account Utiliza a conta do serviço Analisys Services doWindows para acesso ao dados. Quando osdados estão em um servidor externo e a contade serviço for LocalSystem esta opção nãofuncionará.Current User A conta do usuário que está logado nomomento da execução será utilizada. Nãofunciona no caso de agendamentos sem usuário
  20. 20. Versão: 2.0 www.marcelosincic.com.br Página 20 de 59www.marcelosincic.com.br Reprodução e distribuição livreoperando.Informações sobre o processo de autenticação para o data sourceInformados o tipo de fonte, o nome do servidor quando for o caso ou o caminho do arquivo, o banco de dados ouplanilha, usuário a ser utilizado e o nome da fonte temos agora a fonte na lista dos Data Sources do projeto.
  21. 21. Versão: 2.0 www.marcelosincic.com.br Página 21 de 59www.marcelosincic.com.br Reprodução e distribuição livreTela de confirmação dos dados e criação do data sourceProjeto com o data source definido
  22. 22. Versão: 2.0 www.marcelosincic.com.br Página 22 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinindo Apresentações dos DadosUma vez definidas as fontes de dados agora precisamos definir as chamadas tabelas de fato.Tabelas de fato são aquelas que contem o dado a ser agregado, ou mensurado. Essa tabela contem dados númericosque são agregados e atributos que podem ser transformados em eixos, ou dimensões.Por exemplo, na tabela abaixo podemos identificar a coluna quantidade como medida (measure) e as colunas cliente eproduto servirão de eixos (dimensions).Cliente Produto QuantidadeABC Camisa 20ABC Calça 10XYZ Camisa 30XYZ Calça 20Podemos identificar as medidas por verificar em uma tabela os dados que podem ser somados, neste caso a quantidade.E as dimensões são as colunas da tabela que podemos cruzar, no caso cliente e produto, podendo verificar as vendas decalças por cliente ou clientes que compraram camisas, sendo a quantidade sempre o dado resultante.Normalmente os data source views são formados na estrutura estrela (star schema), onde a tabela de fatos tem códigosque se relacionam com as tabelas de dimensão. O modelo abaixo demonstra bem esta relação entre a tabela de fato eas tabelas de dimensão.
  23. 23. Versão: 2.0 www.marcelosincic.com.br Página 23 de 59www.marcelosincic.com.br Reprodução e distribuição livreExemplo de tabela de fato e dimensãoNote que a tabela Linha contem os dados da linha de onibus, com kilometragem, origem, destino, empresa, etc. Notetambem que ela não contem dados que interessam como medida.Já a tabela Demanda contem a quantidade de passageiros, escolares, vale transporte, etc. Estes dados são interessantesde fazer uma agregação.Portanto, a tabela de demanda é a nossa tabela de fatos e a tabela de linhas a dimensão. Da tabela demanda tiraremosos números e da tabela de linhas tiraremos os dados descritivos.Para criar um novo data source view, clique sobre esta opção nas propriedades do projeto e New DataSource View.O primeiro passo na criação e definir quais data sources serão utilizados como origem dos dados.Nota: Uma tabela de dimensão tambem pode conter tabelas interligadas para leitura de dadoscomplementares. Por exemplo, a tabela Linhas tem o código da empresa, portanto teriamos tambemque incluir a tabela Empresas na definição, mas ao invés de ligá-la a tabela de demanda o faríamos natabela de linhas.
  24. 24. Versão: 2.0 www.marcelosincic.com.br Página 24 de 59www.marcelosincic.com.br Reprodução e distribuição livreSeleção do data source para a criação da viewSelecionado o data source o wizard nos mostra as tabelas que este contem, permitindo agora que escolhamos astabelas. Devem ser selecionadas todas as tabelas, tanto de fato quanto as de dimensão.Mas antes de escolhermos as tabelas o wizard irá querer saber se os relacionamentos poderão ser efetuadosautomaticamente. Normalmente utilizamos o padrão, já que é uma prática comum ter as chaves entre tabelas com osmesmos nomes.
  25. 25. Versão: 2.0 www.marcelosincic.com.br Página 25 de 59www.marcelosincic.com.br Reprodução e distribuição livreSeleção do método de escolha dos relacionamentos automáticos
  26. 26. Versão: 2.0 www.marcelosincic.com.br Página 26 de 59www.marcelosincic.com.br Reprodução e distribuição livreSeleção das tabelas para a construção da viewEscolhidas as tabelas informamos um nome para o data view.
  27. 27. Versão: 2.0 www.marcelosincic.com.br Página 27 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinição final da viewCaso seja necessário incluir novas tabelas após o data view estar criado não há problemas. Basta ir no construtor em umespaço em branco dentro da tela de design e com o botão direito escolher Add/Remove Tables.Para terminar a definição dois importantes passos ainda são necessários.É importante que esteja definido o relacionamento entre as tabelas. Por exemplo, no caso acima apesar da colunacodLinha ser igual o contrutor não identificou o relacionamento. Para criar o relacionamento manualmente arraste acoluna chave da tabela de fato para dentro da tabela de dimensão e automaticamente o construtor irá gerar o link entreelas.Note que este link só pode ser efetuado se na tabela de dimensão houver uma chave primária, e que caso não haja ocontrutor irá automaticamente criar a chave como na tela a seguir.
  28. 28. Versão: 2.0 www.marcelosincic.com.br Página 28 de 59www.marcelosincic.com.br Reprodução e distribuição livreInterligação manual dos relacionamentos entre as tabelasFeito isso agora só falta definir quais são as chaves da tabela de fato. Normalmente as tabelas já contem na suaestrutura a chave primária. Mas como em nosso exemplo não haviam chaves, a criação manual foi necessária.Para isso clique na coluna que deseja tornar chave e com o botão direito escolha a opção Set Logical Primary Key.
  29. 29. Versão: 2.0 www.marcelosincic.com.br Página 29 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinição da chave primática lógica na tabelaEsta opção cria uma chave lógica, ou virtual, já que no serviço OLAP não podemos alterar a estrutura física da tabela.Caso uma tabela não contenha chav primária lógica ou física no processamento do cubo ocorrerá um erro e não serápossivel gerar os dados analíticos.
  30. 30. Versão: 2.0 www.marcelosincic.com.br Página 30 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinindo CubosA definição dos cubos é criada ao clicarmos no projeto em Cubes e com o botão direito a opção New Cube.O inicio da criação do cubo se dá por escolher se utilizará as fontes de dados anteriormente criadas ou se utilizaremostemplates prontos.Na opção de utilizar os data sources criados, a opção auto build permite que o próprio serviço crie os cubos comdimensão e agregações, mas não é recomendado pois utilizará todas as colunas da tabela fato como agregação e todasda tabela de apoio como dimensões, gerando cubos grandes e com dados desnecessários.Definição do tipo e construtor a ser utilizado no cuboO passo seguinte é escolher dentre as apresentações de dados (data source view) qual será utilizada como fonte para ageração do cubo.
  31. 31. Versão: 2.0 www.marcelosincic.com.br Página 31 de 59www.marcelosincic.com.br Reprodução e distribuição livreSeleção da fonte de dadosBaseado na fonte de dados o assistente mostra uma lista com as tabelas que estão vinculadas e permite escolher umacomo fato e as outras como dimensão.Lembre-se de que a tabela de fato agrega dados e as de dimensão serverm para formar os critérios de pesquisa.
  32. 32. Versão: 2.0 www.marcelosincic.com.br Página 32 de 59www.marcelosincic.com.br Reprodução e distribuição livreIdentificação da tabelas de fatos e dimensãoApós a identificação da tabela de fatos escolhemos as colunas que serão agregadas.Não se agrega todas as colunas numericas, uma vez que nem todas possuem dados significativos.Agregue as colunas que contenham dados que realmente irão servir para análisar uma tendencia ou outro desvio nosfatos pesquisados.
  33. 33. Versão: 2.0 www.marcelosincic.com.br Página 33 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinição das colunas que serão usadas como medidas (agregadas)Definidos os dados agregados definimos quais eixos, ou subgrupos, que essas agregações serão efetuadas.Assim como no caso das agregações não se deve escolher todas as colunas de todas as tabelas como dimensões poisquantas mais dimensões forem escolhidas mais dados precisam ser gerados.
  34. 34. Versão: 2.0 www.marcelosincic.com.br Página 34 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinição das colunas que serão usadas como dimensão (eixo)O cubo está completo, digite o nome do objeto e confirme as agregações (measures) e as dimensões (dimensions).
  35. 35. Versão: 2.0 www.marcelosincic.com.br Página 35 de 59www.marcelosincic.com.br Reprodução e distribuição livreNome do cubo e resumo das configuraçõesNo construtor podemos agora ver o cubo montado, a tabela amarela como a tabela de fato e as outras a sua volta.Note tambem que nas propriedades do projeto é possivel agora ver que as dimensões da tabela foram incluidas nomenu Dimensions.
  36. 36. Versão: 2.0 www.marcelosincic.com.br Página 36 de 59www.marcelosincic.com.br Reprodução e distribuição livreConstrutor do cubo gerado pelo assistenteDimensões tambem podem ser criadas utilizando assistentes específicos para certos tipos de dados.Para criar uma dimensão com o assistente utilize o botão Add Business Intelligence e defina o tipo de assistente e acoluna que será utilizada.
  37. 37. Versão: 2.0 www.marcelosincic.com.br Página 37 de 59www.marcelosincic.com.br Reprodução e distribuição livreCriação de dimensõesÉ interresante a criação de dimensões com dados do tipo data pois permite a criação de divisões anuais, trimestrais,quadrimestrais, semanais e assim por diante.Também é possivel renomear as agregações e as dimensões por clicar em um destes e com o botão direito abrir a janelaProperties (propriedades), onde alem de definir o nome que o item erá ao ser apresentado tambem podemos definir otipo de dado e outros atributos.
  38. 38. Versão: 2.0 www.marcelosincic.com.br Página 38 de 59www.marcelosincic.com.br Reprodução e distribuição livreProcessando e Visualizando CubosPara processar o cubo e ver os resultados podemos clicar no botão Process (o segundo na barra de ferramentas docubo).Caso o projeto ainda não esteja salvo o Visual Studio 2005 irá gerar um aviso e salvará o projeto para o processo.O projeto deve ser salvo antes de processadoIniciado o processamento do cubo o primeiro dado informado é o tipo de processamento.Os processamentos podem ser Full (completo) ou Incremental (apenas alterações). Normalmente utilizamos o modo full,uma vez que o modo completo não poe ser usado com exatidão em tabelas que sofrem alterações. Caso a tabela de fato
  39. 39. Versão: 2.0 www.marcelosincic.com.br Página 39 de 59www.marcelosincic.com.br Reprodução e distribuição livresofra apenas inserções, o modo incremental funcionaria perfeitamente, mas como normalmente as tabelas sofremalterações em registros já existentes, o modo full se torna mais confiável.Acesso as configurações de processamento
  40. 40. Versão: 2.0 www.marcelosincic.com.br Página 40 de 59www.marcelosincic.com.br Reprodução e distribuição livreEscolhendo o modo de processamento podemos executar o cubo (Run) e teremos uma tela de aviso com o andamentodo processamento.Esta tela de processamento muitas vezes acusa erro de processo, principalmente quando existirem chaves orfãs, ou seja,chaves estrangeiras inválidas no banco de dados.Nos casos em que ocorrerem erros, clique sobre a linha que aparecerá com um X vermelho e será indicado o código dachave que gerou o erro, permitindo que procure a solução.Processamento sendo efetuadoCom o cubo já processado podemos visualizar seus dados para termos uma idéia de como o usuário verá as análises.Para isso clique na aba Browse do Visual Studio 2005 e verá do lado direito uma árvore com as medidas acima e asdimensões separadas por tabela de dimensão embaixo.
  41. 41. Versão: 2.0 www.marcelosincic.com.br Página 41 de 59www.marcelosincic.com.br Reprodução e distribuição livreColocar os dados no cubo é muito simples, basta arrastar. Lembre-se de que as medidas sempre são colocadas no meio,na região de totais ou detalhes. Na região de colunas e linhas devem ser colocadas as dimensões.No exemplo abaixo foi arrastado o código da empresa como coluna e o código do serviço como linha. Em detalhes foiarrastada a medida quantidade de passageiros.O resultado é bem interessante, temos uma tabela com a quantidade transportada por cada empresa por tipo de serviçoque foi executado, fornecendo uma boa visão da abrangência de cada empresa.Browse do cubo com eixos e colunas e medidasNeste segundo exemplo o código do serviço foi arrastado para debaixo do código da empresa, gerando os mesmosdados, mas agora com um formato horizontal e hirarquico.Note que o visualizador (pivot table) gera sinais (+ e -) para que possamos abrir os detalhes da empresa, ou seja,clicando nestes sinais podemos ver apenas a empresa ou a empresa separada por tipo de serviço executado.
  42. 42. Versão: 2.0 www.marcelosincic.com.br Página 42 de 59www.marcelosincic.com.br Reprodução e distribuição livreCubo apenas com colunas, mas com hierarquia de dadosPor fim, neste ultimo exemplo foi arrastada a dimensão código da sub região (Cod SR) para a área de linha gerando maisuma divisão em como os dados estão sendo visualizados, agora mostrando um total de passageiros para cada regiãoatendida por uma empresa.Notamos por exemplo, que a empresa 001 atua nos serviços EMC/EMM/EMS na região SP1 e uma baixa abrangência deatuação na região SP4/SP5 no serviço EMS. Esta análise pode ser vista sem ter que ler relatórios complexos egigantescos, ou então precisar de funcionários analisando estes dados continuamente.
  43. 43. Versão: 2.0 www.marcelosincic.com.br Página 43 de 59www.marcelosincic.com.br Reprodução e distribuição livreCubo completo com hierarquia, colunas, linhas e medidas
  44. 44. Versão: 2.0 www.marcelosincic.com.br Página 44 de 59www.marcelosincic.com.br Reprodução e distribuição livreDefinições Adicionais nos CubosTrataremos agora de definições avançadas em cubos, permitindo a customização de dados, ações e modo dearmazenamento.MedidasMedidas são dados que já existem nos cubos e que podem sofrer cálculos ou processos.Por exemplo, em uma tabela temos a quantidade e o preço unitário de cada item do pedido mas não temos o valor doimposto, apenas o percentual cobrado. Podemos neste caso criar uma coluna calculada que é o valor multiplicado pelaaliquota de imposto.Para inserir colunas calculadas clique na aba Calculations e será possivel criar três tipos de calculos: Calculared Member,Script e Named Set.Iremos trabalhar com as Calculated Member que são os dados utilizados em visualizações, montados com expressõescomuns, exemplo, [Preço] * [ICMS].Os objetos do tipo Script permitem uma forma avançada de cálculos baseados em uma linguagem chamada MDX, similarao DDL mas própria para uso em OLAP. Como esta linguagem é complexa e pouco usada no dia a dia, não abrangeremosneste tópico.Os objetos do tipo Named Set permitem separar o cubo em pedaços menores, como se fossem grupos e reutilizá-lossimilar a funções em uma linguagem de programação.Caso tenha necessidade de utilizar algum destes recursos poderá utilizar a guia Templates no canto inferior direito ondeaparece a lista de objetos do cursor e arrastar as funções que já estão pré-programadas, evitando ter que escrever todaa fórmula MDX.Nota: Ao criar novas dimensões em um cubo já processado é necessário reprocessar as dimensões. Paraisso no Project Explorer abra o grupo Dimensions e com o botão direito escolha a opção Process pararecalcular a dimensão alterada.Nota: Ao clicar na aba Calculations consta um script com o comando CALCULATE. Caso delete estescript os processamentos do cubo podem ficar vazios.
  45. 45. Versão: 2.0 www.marcelosincic.com.br Página 45 de 59www.marcelosincic.com.br Reprodução e distribuição livreNo exemplo abaixo foi criada uma coluna calculada (Calculated Member) baseada na quantidade de passageiros queutilizaram vale transporte dividido pelo percentual total, gerando um dado de relatividade.Definição de uma coluna calculada (Calculated Member)Note que no cubo agora podemos ver esta coluna com um sinal de uma calculadora logo abaixo das medidas que jáexistiam no cubo.
  46. 46. Versão: 2.0 www.marcelosincic.com.br Página 46 de 59www.marcelosincic.com.br Reprodução e distribuição livreVisualização do cubo agora com a coluna calculadaKPI (Indicadores Chaves de Performance)KPIs permitem que criemos em um cubo dados calculados para gerar gráficos.Por exemplo, pode-se criar um KPI para indicar com um valor numérico o sexo do individuo e atribuir por um script estevalor.Como KPI envolvem scripts e MDX avançados não iremos abordá-los, mas vale a pena lembrar que como em medidas asKPI possuem templates como exemplo para um início menos obscuro com esta avançada opção de análise.
  47. 47. Versão: 2.0 www.marcelosincic.com.br Página 47 de 59www.marcelosincic.com.br Reprodução e distribuição livreAçõesAs ações são definições de atos que podem ocorrer quando uma célula for clicada.Por exemplo, é possivel fazer com que ao clicar em um produto no cubo o usuário seja redirecionado para uma páginano site da empresa que mostre a foto e os dados daquele produto.As ações podem ser do tipo Drilldown (expande e retrai árvores), Report Server (para uso com o SQL Server ReportingServices) ou Action (customizado).O mais comum de ser usado é o Action e utilizar como tipo URL para redirecionamento.Os níveis de pesquisa podem ser células, atributos ou grupos. O mais útil são os atributos onde podemos definir o dadoque servirá de pesquisa na URL.Um exemplo interessante é ao clicarmos sobre uma cidade com o botão direito podermos consultar no google os dadosdaquela cidade, claro que o link ao invés do google poderia ser o da sua empresa.Para isso montamos a expressão de pesquisa como "http://www.google.com/search?q=" + [LINHA].[NomOrigem].CurrentMember.Name, onde a string final formada será a URL do google mais o nome da cidade corrente onde foi clicado.
  48. 48. Versão: 2.0 www.marcelosincic.com.br Página 48 de 59www.marcelosincic.com.br Reprodução e distribuição livreAção de cubo baseada em URL com parametroCom a ação criada podemos reprocessar o cubo, colocar a coluna escolhida no pivot table e clicar com o botão direito sobre o nomede alguma cidade, como pode ser visto na figura a seguir.
  49. 49. Versão: 2.0 www.marcelosincic.com.br Página 49 de 59www.marcelosincic.com.br Reprodução e distribuição livreBrowser com a ação criada na lista de opçõesCom as ações podemos dar vida aos cubos integrando com outras aplicações, principalmente pela web.PartiçõesPartições são as definições de armazenamento dos dados gerados.Como vimos no inicio, as partições podem ser MOLAP (total), HOLAP (parcial) ou ROLAP (leitura online), sendo o MOLAPo que ocupa mais espaço e com melhor performance e o ROLAP o que ocupa menos espaço e com menor performance,como o gráfico a seguir.
  50. 50. Versão: 2.0 www.marcelosincic.com.br Página 50 de 59www.marcelosincic.com.br Reprodução e distribuição livreTamanho PerformanceMOLAPHOLAPROLAPAo clicar em Storage Options podemos configurar o tipo de armazanamento que será utilizado.Definição do tipo de armazenamento a ser utilizado
  51. 51. Versão: 2.0 www.marcelosincic.com.br Página 51 de 59www.marcelosincic.com.br Reprodução e distribuição livreTambem é possível configurar se utilizará neste cubo o cache ou não, devendo valer a regra de que apenas os cubosmuito utilizados deverão estar em cache.Por fim podemos particionar os cubos em diferentes servidores, utilizando a opção New Partition, mas note que paraisso é necessário informar uma consulta. Esta consulta deve definir quais dados cda partição iráconter.Definição do particionamentoPor exemplo, uma partição pode ter o filtro Estado=’SP’ e a outra partição Estado<>’SP’, cada partição em um servidor ebalanceando a carga entre eles.O problema do particionamento é a questão da performance de rede, uma vez que será necessário acessar doisservidores ao mesmo tempo.PerspectivasSe um cubo
  52. 52. Versão: 2.0 www.marcelosincic.com.br Página 52 de 59www.marcelosincic.com.br Reprodução e distribuição livrePerspectivasEstas permitem que criemos visões resumidas do cubo.Uma boa aplicação é quando um cubo possui muitos dados e precisamos criar subconsultas facilitando os usuários emencontrarem apenas o que desejam.Para isso clique no botão New Perspectives e defina os itens que irão constar nesta perspectiva.Definição de uma nova perspectivaPara utilizar a nova perspectiva utilize a opção correspondente na pivot table.
  53. 53. Versão: 2.0 www.marcelosincic.com.br Página 53 de 59www.marcelosincic.com.br Reprodução e distribuição livreUtilização da perspectivas com dados limitadosTranslations (Traduções)Se um cubo for utilizado por pessoas de diversos paises podemos criar um dicionário para cada cubo, medida edimensão.Esta opção é extramente util apenas quando temos a configuração multinacional em um cubo.Para criar um novo idioma clique no botão New Translation e indique o idioma e o país. Depois basta colocar o nomenos itens desejados.
  54. 54. Versão: 2.0 www.marcelosincic.com.br Página 54 de 59www.marcelosincic.com.br Reprodução e distribuição livreCriação de um novo idioma
  55. 55. Versão: 2.0 www.marcelosincic.com.br Página 55 de 59www.marcelosincic.com.br Reprodução e distribuição livreCubo utilizando um diferente idioma
  56. 56. Versão: 2.0 www.marcelosincic.com.br Página 56 de 59www.marcelosincic.com.br Reprodução e distribuição livreSegurançaA segurança em cubos é muito simples de ser configurada.Clique na árvore Roles (papéis) do projeto e crie um novo papel.Criação de um novo papel de segurança (role)Note as diversas abas para configuração:• General – Nível de acesso e comentários.• Membership – Lista dos membros que podem ser usuários e grupos do Windows ou do SQL.• DataSources – Quais fontes de dados podem ser utilizadas.
  57. 57. Versão: 2.0 www.marcelosincic.com.br Página 57 de 59www.marcelosincic.com.br Reprodução e distribuição livre• Cubos – Quais os cubos que este papel pode acessar.• Cell Data – Permissões para agregações (medidas) em cada cubo com permissão.• Dimensions – Quais as dimensões que podem ser utilizadas.• Dimensions Data – Dentro de cada dimensão podemos definir quais os itens que podem ser acessados, criandouma segurança a nivel granular.• Mining Structures – Quais os modelos estatisticos que podem ser usados.
  58. 58. Versão: 2.0 www.marcelosincic.com.br Página 58 de 59www.marcelosincic.com.br Reprodução e distribuição livreVisualizando no ExcelO Microsoft Office Excel é o melhor visualizador para os cubos.Para isso vá até o menu Dados -> Obter Dados Externos e na lista de provedores escolha Microsoft Analisys Services ouOLAP Services, variando conforme a versão do Excel instalado no cliente.Defina o usuário e a senha utilizada para abrir o cubo, o nome do dabatase e o cubo desejado.Como ultimo passo defina em qual célula o Excel incluirá a pivot table.Agora arraste as colunas e as linhas para as posições desejadas e trabalhe livremente com o Excel.Manipulação dos dados utilizando o Excel 2007 TR
  59. 59. Versão: 2.0 www.marcelosincic.com.br Página 59 de 59www.marcelosincic.com.br Reprodução e distribuição livrePlanilha do Excel 2007 TR com o cubo incluido

×