PowerPivot Component Architecture
Olá pessoal,
A equipe do blog do PowerPivot postou um adiantamento do que será o white paper a ser lançado em abril/maio (2010) entitulado “Microsoft SQL Server PowerPivot Planning and Deployment”, revisado por Daniel Yu, Dave Wickert, Denny Lee, Donald Farmer, James Howey, John Hancock. Somente FERA!
O link para a prévia é: http://blogs.msdn.com/powerpivot/archive/2010/03/22/powerpivot-component-architecture.aspx, o artigo é em inglês mas é leitura obrigatória para quem se interessa pelo PowerPivot.
Abraços,
Thiago Zavaschi
PowerPivot for SharePoint – Data Refresh
Olá pessoal,
O post de hoje continuará na linha do PowerPivot for SharePoint.
Qual o maior pesadelo sobre gestão quando pensamos em análise (em geral) feita em planilhas do Excel?
Na realidade são dois: Descentralização e desatualização.
Problema 1: Descentralização
O problema da descentralização pode ser resolvido através da utilização de um mecanismo centralizador de documentos, como o SharePoint (sem entrar nos méritos do PowerPivot, estou me referindo ao compartilhamento de documentos padrão do SharePoint).
O PowerPivot for SharePoint funciona como um centralizador destes documentos e associado ao Excel Services (serviço do SharePoint) permite a visualização dos aplicativos PowerPivot.
Vale a pena lembrar: O PowerPivot só é possível porque arquivos do excel são na verdade aplicações e não apenas planilhas. Este é um conceito muito importante.
Problema 2: Desatualização
Outro problema das planilhas Excel: descentralização. Durante muito tempo (ainda hoje) era comum encontrar planilhas que continham pesadas regras de negócios e dados. Estes dados que alimentam as tomadas de decisão precisam ser atualizados. E sem um processo facilitador (automático) os dados ficavam facilmente desatualizados.
No PowerPivot for SharePoint temos a atualização automática dos dados, no qual um serviço do SharePoint 2010 é responsável pela atualização. A frequência de atualização mais rápida que conseguimos é a diária. Chamamos este recurso pelo nome (meio óbvio) de Data Refresh.
Mas algo é importante ressaltar: Você pode configurar a atualizaçào automática (só ocorrerá se você configurar), mas não são todas as planilhas que são desejáveis que se atualizem automaticamente. Isso dependera muito da regra de negócio envolvida com a aplicação PowerPivot.
Solução: PowerPivot for SharePoint
Conforme comentei na descrição dos problemas, o SharePoint 2010 e a integração o PowerPivot garante a solução destes problemas citados.
A configuração para a atualização de dados é fácil e rápida.
Observação importante: O servidor onde a aplicação PowerPivot está armazenada DEVE poder acessar a fonte de dados. É de certa forma óbvio, mas devemos sempre estar atentos.
Clicando no botão Manage Data Refresh (conforme mostrado na imagem acima) pela primeira vez, o usuário é levado para a tela de configuração, caso contrário entra na tela de histórico com os dados relacionados. Na tela de histórico é disponibilizado um link para configuração da atualização, próximo ao item Next Scheduled Refresh: Configure Schedule.
Outro ponto importante é que você pode selecionar qual fonte de dados você deseja que seja atualizada! Ou seja, nem todas as fontes precisam ser atualizadas. Isto pode ser particularmente importante para atender as demandas de negócio dos usuários.
A seguir temos as telas de histórico e de configuração, respectivamente:
É isto pessoal. A ideia deste post era apenas para demonstrar as soluções que temos associadas a esta tecnologia para resolvermos problemas comuns encontrados.
Abraços a todos!
Thiago Zavaschi
Instalando o PowerPivot for SharePoint CTP3 (November CTP)
Olá pessoal,
Sei que no meu post anterior (http://zavaschi.com/index.php/2010/03/powerpivot-mltiplas-fontes-de-dados/) falei que o próximo artigo da série seria sobre DAX (Data Analysis eXpressions), mas recentemente tive uma série de problemas para instalar o PowerPivot for SharePoint, o que é compreensível visto que é um CTP (beta) e a base de dados utilizada (SQL Server 2008 R2) também é CTP, então decidi blogar sobre!
Esta instalação é para propósitos de demonstrações e testes, para cenários de produção haverão outras coisas para se atentar. O cenário que utilizei para iniciar a instalação foi:
Utilizei o Virtualbox para a construção da VM, pois necessitava de uma VM x64 e não tinha como utilizar o Hyper-V.
Windows Server 2008 R2 Enterprise x64, com o papel de domain control (controladora de domínio). Em um ambiente de produção você NÃO DEVE utilizar o servidor de domain control para isto. Vocês verão que pela máquina ser controladora de domínio tem uma série de passos/preocupações que devemos ter para garantir a instalação com sucesso.
Este artigo, em grande parte, é uma tradução/baseado do/no artigo escrito pelo Vidas (@VidasM – www.powerpivot-info.com). Apenas adicionei alguns detalhes relativos ao meu caso e removi algumas coisas para simplicar. O cenário da instalação descrito pelo Vidas é muito similar ao meu. Utilizei o guia dele para alguns apectos dos workarounds necessários.
Fonte em inglês: http://powerpivot-info.com/post/66-step-by-step-guide-on-installing-powerpivot-for-sharepoint
Este é um guia para a instalação do produto BETA! Na versão RTM será bem mais tranquilo, e claro, postarei um passo a passo para vocês também!
Instalação do SharePoint Server 2010
Além de colocar a máquina como domain control, habilite no servidor a feature “Desktop Experience” ("Server Manage"->"Features"->"Add Feature"), para habilitar o servidor a trabalhar como uma estação de trabalho.
A sua conta de login deve ser administradora do domínio!
NÃO INSTALE o SQL Server 2008 R2 ainda, você fará isso em um passo mais adiante.
Antes de instalar o SharePoint, você deve instalar os pré-requisitos.
O único problema que tive neste ponto foi que o Microsoft Chart Controls for Microsoft .NET Framework 3.5 não conseguiu ser baixado sozinho. Baixei e instalei separadamente. http://www.microsoft.com/downloads/details.aspx?FamilyId=130F7986-BF49-4FE5-9CA8-910AE6EA442C&displaylang=en
Caso encontre outros problemas, terá que fazer a instalação manual dos pré-requisitos.
Observações: Se você tiver o PowerShell 1.0 instalado na máquina você terá problemas. Você terá que remover o PowerShell1.0 manualmente (isto não se aplica ao PowerShell 2.0).
Instale um hotfix WCF
- Windows 2008 e Vista:
http://support.microsoft.com/kb/971831 (this is the KB article)
http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=KB971831&DownloadId=7285 (this is the download) - Para Windows Server 2008 R2 e Windows 7
https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=23806&wa=wsignin1.0
Se a sua máquina for controladora de domínio (como a minha) você terá qeu rodar o seguinte script em PowerShell para ativar soluções sandbox.
Observação: O script foi escrito por Jie Li e foi copiado daqui.
Crie um arquivo de texto chamado sp.ps1 e coloque dentro dele:
$acl = Get-Acl HKLM:\System\CurrentControlSet\Control\ComputerName
$person = [System.Security.Principal.NTAccount]"Users"
$access = [System.Security.AccessControl.RegistryRights]::FullControl
$inheritance = [System.Security.AccessControl.InheritanceFlags]"ContainerInherit,ObjectInherit"
$propagation = [System.Security.AccessControl.PropagationFlags]::None
$type = [System.Security.AccessControl.AccessControlType]::Allow
$rule = New-Object System.Security.AccessControl.RegistryAccessRule($person, $access,$inheritance, $propagation, $type)
$acl.AddAccessRule($rule)
Set-Acl HKLM:\System\CurrentControlSet\Control\ComputerName $acl
Para executar o script:
1) copy script to file sp.ps1
2) in command line enter "PowerShell"
3) enter "Set-executionpolicy unrestricted" (without double quotes)
4) enter "C:\Scripts\sp.ps1" (without double quotes)
5) enter "Set-executionpolicy restricted" (without double quotes)
6) enter "Exit" (without double quotes)
Inicie a instalação do SharePoint 2010.
Cuidado: É muito importante que você siga estas opções de configuração. Caso contrário você não conseguirá configurar para o PowerPivot for SharePoint em passos futuros.ê esteja instalando tudo em um único servidor (Standalone) você não deve selecionar a opção standalone.
Na próxima janela em server type, escolha a opção Complete - Install all components. Can add servers to form a SharePoint farm".
Termine de instalar o SharePoint, e após isto na janela que aparecer (“Run configuration Wizard”) desmarque a opção “Run the SharePoint Products and Technologies Configuration Wizard now"” e clique em close.
Instalando o SQL Server 2008 R2 November CTP
Agora é hora de configurar o PowerPivot e isto é feito através da instalação do SQL Server 2008 R2.
Inicie a instalação do SQL Server e na parte de “Setup Role” escolha: "Analysis Services with SharePoint Integration" e para a opção "Add Gemini service to:" escolha "New farm".
Na janela de "New SharePoint Farm Configuration" especifique os dados pedidos.
No meu caso utilizei a mesma conta que estou usando. Não é o método mais seguro, mas como eu disse, é apenas para efeitos de demonstração e teste.
Nas próximas janelas preencha os dados conforme requeridos e se coloque como administrador e outros usuários conforme necessário. E inicie a instalação propriamente dita.
Se o seu controlador de domínio (domain controler) é outra máquina então estará tudo praticamente pronto. Caso contrário você DEVE seguir os passos abaixo:
Durante a instalação propriamente dita do Analysis Services (geminibi) abra o gerenciador de serviços (services.msc).
Durante a instalação ele trocará a conta que vai subir o serviço do Analysis Services para “Local system account”. Isto ocasionará um erro de timeout. Então quando a instalação chegar aproximadamente neste ponto (ver figura abaixo), troque a conta de serviço para a correta e reinicie(referência em inglês: http://powerpivotgeek.com/2009/11/17/installing-powerpivot-for-sharepoint-on-a-domain-controller/).
Sim, você deve ficar dando refresh na lista o tempo inteiro até o serviço aparecer e ocorrer a mudança. Lembre-se, é um produto beta.
Depois de você mudar o serviço, reinicie-o e deixe o setup do SQL Server terminar.
Observação: Na minha máquina virtual levou cerca de 45 minutos neste passo final até que a instalação fizesse a troca das contas e desligasse o serviço. A isntalação do SQL Server levou uma hora ao todo.
A instalação foi feita com sucesso. Já pode acessar o SharePoint pelo nome da sua maquina (http://maquina/). :)
Agora configure seu SharePoint da maneira que preferir. :)
Próximos post relacionados a PowerPivot (não necessariamente nesta ordem):
- DAX
- PowerPivot for SharePoint problemas conehcidos (CTP3)
- Deploy dos reports no PowerPivot for SharePoint
Por hoje é isto!
Abraços a todos!!
Thiago Zavaschi
PowerPivot – Múltiplas Fontes de Dados
Olá pessoal!
Depois de um tempo parado devido a outros projetos pessoais, retorno ao blog. :)
O post de hoje será para mostrar um recurso muito interessante do PowerPivot for Excel que é a capacidade de utilização de mais de uma fonte de dados para compor as suas PivotTables e PivotCharts.
Vou omitir diversos passos da criação da nossa “aplicação” (arquivo .xlsx) do PowerPivot, pois já comentei os passos básicos e requisitos necessários aqui (em português) e aqui (em inglês).
Imagine que você tenha a seguinte tabela no seu SQL Server (vou limitar a poucos dados para efeito de simplificação).
Nome da tabela: Vendas
Contém 3 colunas:
-
id (identificador, int identity),
-
unidades (numero de unidades vendidas, numeric(10,2))
-
estado (estado em que foi realizada a venda, char(2)).
E os seguintes dados:
id unidades estado
----------- --------------------------------------- ------
1 100.00 PR
2 137.00 SP
3 10.00 AC
4 50.00 PR
5 29.67 RJ
6 100.00 SC
7 1000.00 RO
8 10506.09 SP
Valores simples indicando a quantidade vendida em cada venda e para qual estado foi feita aquela venda.
Um result set semelhante a este poderia estar vindo de uma DW que armazene os dados de vendas e você esteja interessado em saber a quantidade vendida em cada região para análise. Desta forma não seria necessário trazer outras informações relativas (talvez uma data em que a venda foi realizada, mas por motivos de simplicidade não criei esta coluna).
Percebam analisando os dados que não temos uma linha para cada estado. Podemos ter diversas. O que é um cenário muito comum.
Agora no Excel eu abri a janela do PowerPivot e importei os dados utilizando como fonte o SQL Server. Obtive o seguinte resultado:
Agora criei um PivotChart e uma PivotTable com estes dados, além de um slicer sobre estado. O motivo do slicer é facilitar a análise, por exemplo, ignorando os outliers como São Paulo e Rondônia que complicam a visualização dos demais dados. Para um slicer funcionar/filtrar basta clicar sobre ele, utilize o Ctrl para selecionar mais de um. Obtive o seguinte resultado:
Beleza Thiago, acontece que eu queria mostrar o nome completo do estado e não a sigla. Vou ter que mudar a minha fonte de dados?
Você até poderia mudar a fonte de dados, mas isso em 99,9% dos cenários reais é inviável.
Então o que fazer?
Imagine que você tenha uma planilha do Excel (estou utilizando o Excel como sendo uma segunda fonte, mas poderia ser qualquer uma das outras fontes mostradas no artigo anterior) como esta (não coloquei todos os estados do Brasil apenas para ficar um conjunto menor) apresentada a seguir.
A planilha pode ser estar dentro do .xlsx que contém o Pivot recém criado ou pode estar em uma planilha diferente. Aqui estou utilizando dentro do mesmo arquivo .xlsx.
Ponto importante:
A forma com que os dados serão importados para a sua base do PowerPivot vindos do Excel é diferente se os dados estarão na mesma planilha ou em outra.
Caso esteja em outra planilha: Abra a janela do PowerPivot >> From Files >> From Excel.
Caso esteja no mesmo .xlsx: Você deve criar uma Linked Table. Há um botão para isso na aba do PowerPivot na ribbon do Excel. Lembre-se de usar a opção de “Format as a Table” para transformar os dados no seu Excel em tabela. As imagens a seguir mostram os pontos que você deve se ater:
Após isto, a sua tabela no Excel foi incluída como fonte no PowerPivot e ficou um ícone (ao lado do nome da fonte) que indica que é uma Linked Table. O resultado é o seguinte:
Perceba que eu renomeei do nome padrão que foi criado de “Table1” para “Estados”. Para este artigo não sentiremos diferença, mas no próximo quando começarmos a analisar as DAX (Data Analysis eXpressions) vamos sentir a diferença quando formos nos referir aos nossos dados. :)
E ae pronto?
Ainda não, para obtermos o resultado desejado devemos “linkar” a coluna estado da fonte Vendas, com a coluna Sigla da linked table Estados.
Selecione a aba “Table” na janela do PowerPivot e entre na opção “Create a Relationship”.
Selecione as colunas e tabelas relacionadas da seguinte forma (atente para o sentido da ligação, a tabela para ser executado o Lookup é a Estados e não a de Vendas):
Retorne ao Excel e verifique que há um aviso sobre modificações no modelo e um botão para atualização:
Clique em atualizar e o resultado será:
Troque na região do Axis Field o campo “estado” de Vendas e troque para o “Estado” da tabela Estados. E teremos…
E pronto! Troquei (para o PivotChart) a label e isso proveniente de uma tabela no meu Excel! Poderia ser de qualquer outra fonte :). Repare que os slicers foram mantidos por sigla e continuam totalmente funcionais (poderia ter trocado pela coluna de Estado da tabela Estados também, sem problemas)!
No próximo artigo da série iniciaremos com DAX, aguardem!
Abraços,
Thiago Zavaschi