Consta que na vida, só a morte e os impostos são certos, mas se estivermos a falar da vida de uma empresa, podemos acrescentar o Excel. Podem aparecer ferramentas mais modernas ou mais eficazes, mas é certo que o Excel continua e continuará a ser uma ferramenta de eleição para quem precisa de analisar números.
Em demasiados casos os dados são colocados manualmente no Excel quando já existem em bases de dados e o ideal seria fazer essa ligação de modo a não ter de introduzir os dados mais que uma vez. Esse é um cenário que é simples de realizar.
Já um cenário mais complicado é quando queremos ter acesso aos dados mais recentes na base de dados quando nos encontramos fora da empresa. A solução mais profissional e “limpa” é usar uma VPN. Instalar uma VPN é uma solução que normalmente não fica barata. Digo normalmente porque há soluções em software para pequenas implementações que até ficam gratuitas, como é o caso do CloudConnexa da OpenVPN que permite acessos por VPN para 2 utilizadores gratuitamente e a preços acessíveis para mais utilizadores. Tenho essa solução implementada e posso confirmar que funciona, mas hoje quero falar de outra coisa.
Apesar de não ser possível ligar o Excel de fora a uma base de dados dentro da empresa, é possível fazê-lo com o PowerBI; e é possível ligar o Excel ao PowerBI. Assim usando o PowerBI como ponte podemos ter acesso em tempo real aos nossos dados dentro da empresa. Só há um pequeno “se”: os dados têm de estar numa base dados Microsoft SQL Server.
A configuração desta solução não é para os fracos de coração, mas também não é nada do outro mundo, mas antes de começar convém que estejam reunidas as condições para a conseguir implementar, a saber:
E para o texto em questão, acrescento uma quarta condição:
Estando reunidas estas condições, podemos avançar.
Resultado Esperado
Vamos usar a base de dados AdventureWorks, uma base de dados de exemplos da Microsoft que pode ser obtida aqui, O objectivo vai ser ter acesso à lista de encomendas no Excel e poder ter acesso aos últimos dados em qualquer lugar, desde que tenhamos acesso à Internet, obviamente…
Não vamos fazer nada muito elaborado, a lista de encomendas chega para demonstrar:
Do SQL ao PowerBI
A primeira parte é bastante simples, abrimos o PowerBI e indicamos que queremos ligar ao SQL Server. Colocamos os dados do servidor, base de dados (adventureworks) e o SQL que queremos executar, neste caso:
select salesordernumber,orderdate,shipdate,subtotal from sales.salesorderheader.
É aqui também que indicamos que queremos que os dados sejam consultados em tempo real com a indicação DirectQuery. Se escolhemos a opção Import iríamos ter a possibilidade de indicar no serviço PowerBi com que frequência queríamos os dados actualizados. Também é uma opção interessante se for aceitável ter um pequeno atraso na actualização dos dados, mas no nosso caso queremos mesmo os dados em tempo real.
De seguida indicamos que utilizador é usado para aceder aos dados. Eu gosto de criar um utilizador powerbiservice que uso em todas as ligações do PowerBi. O utilizador só precisa de ter acesso de leitura aos dados necessários, e até convém que seja só o acesso que tem.
E é só, podem, de imediato, ver a consulta criada dentro do PowerBI (aqui com o nome já alterado para Encomendas).
Não é necessário, mas se quiserem podem criar umas visualizações para ver se os dados estão certos ou até se quiserem, podem usar este mesmo ficheiro para aceder aos dados a partir do Excel e para usar com visualizações do PowerBI.
Notem, no entanto, que estamos a trabalhar com dados ligados em tempo real à nossa base de dados na empresa, por isso não convém exagerar neste tipo de abordagem. Enquanto o PowerBI Service está a consultar dados a vossa base de dados pode ficar bloqueada para alterações deixando os utilizadores locais pendurados até a consulta acabar. Usem este método com parcimónia e vão sondando os utilizadores sobre alterações de comportamento nas aplicações que usam.