[POWER BI] - Cmdlets para PowerShell - Administrando o Power Bi like a Pro!

Olá amiguinhos tudo bem?

Quem já participou das minhas palestras sobre Power BI Embedded ou Streaming com Power BI, com certeza já ouviu falar do uso dos Cmdlets do Power BI para PowerShell.

Bem se você não sabe o que é PowerShell, o Wikipedia está aí pra isso https://pt.wikipedia.org/wiki/PowerShell, nosso interesse hoje aqui é mostrar como usar esse cara para fazer algumas tarefas no Power BI, com dois exemplos que hoje eu acabei me deparando nos nossos grupos online.

Um exemplo foi, como eu poderia publicar um relatório na web sem usar a interface gráfica do Power BI, ou seja digamos q eu tenha um usuário que pode criar algo num Power BI desktop, mas eu não quero dar a opção pra esse cara de administrador do workspace, mas eu quero todas as noites enviar o relatório dele com as alterações que foram feitas para a Web.

A segunda pergunta era, como eu poderia pegar uma listagem de todos os relatórios publicados e saber os datasets a que eles estão ligados?

Bem duas perguntas bem legais, que podem ser respondidas com nosso amigo de todas as horas PowerShell.

Então vamos começar do começo...

Instalando os cmdlets



Se você tem uma máquina Windows sem dúvida deve ter o PowerShell instalado, se não tem Windows provavelmente você está usando uma VM Windows rs...

Menu Iniciar vamos digitar "PowerShell" e vai aparecer esse carinha aqui abaixo, "Windows PowerShell ISE". Botão direito para executar como administrador isso é muito importante.



Abrirá então a tela do PowerShell ISE que é um pouco diferente do PowerShell padrão pois ele nos permite escrever várias linhas do script antes mesmo de executa-las e é um pouco mais "intuitivo" para novos usuários.



Nesse cara na parte em branco vamos digitar nosso script e quando rodarmos, na parte azul (PowerShell em sí), aparecerão as informações dos códigos que foram executados.

Vamos iniciar então instalando o Cmdlets para PowerShell do Power BI, o que fazemos  utilizando o seguinte comando:

Install-Module MicrosoftPowerBIMgmt

 Digitando esse cara na parte de escrita do script (área em branco da imagem anterior) vamos selecionar a linha inteira e apertar F8 para rodar somente essa linha selecionada.

Será perguntado se você deseja de fato instalar esse cmdlet e só selecionar "Sim para Todos.", ou "Yes to All" como no meu que está em inglês, e aguardar finalizar a instalação.



Se tudo der certo daqui pra frente você não terá erros.

Caso contrário tente instalar individualmente cada modulo com os comandos abaixo:

Install-Module -Name MicrosoftPowerBIMgmt.Admin Install-Module -Name MicrosoftPowerBIMgmt.Capacities Install-Module -Name MicrosoftPowerBIMgmt.Data Install-Module -Name MicrosoftPowerBIMgmt.Profile Install-Module -Name MicrosoftPowerBIMgmt.Reports Install-Module -Name MicrosoftPowerBIMgmt.Workspaces
Vamos então começar a resolver nossos problemas propostos lá no início do artigo.

1) Publicando na Web sem uso da Interface Gráfica.

Para isso precisamos de um arquivo pbix que eu já deixei salvo no meu "C:\temp" mas claro pode ser qualquer pasta que você tenha acesso ok?


Queremos então publicar esse cara em um Workspace na minha conta do Power BI.

Primeiro preciso claro estar conectado na minha conta "dentro" do PowerShell, para isso usaremos o comando:

Connect-PowerBIServiceAccount
Esse comando permitirá que possamos conectar no PowerBI Serviço no modo interativo, ou seja ele abrirá uma tela para informarmos usuário e senha. Lembrando sempre de selecionar a linha de código e digitar F8 para rodar apenas o código que está na linha, porque nesse momento estamos construindo nosso script.


Após entrar com meu usuário e senha na tela do PowerShell me mostrará informações de onde eu estou conectado, confirmando que estamos agora conectados no serviço do PowerBI.



Bem, se desejamos enviar um relatório para o serviço, precisamos escolher então um Workspace para enviar esse cara.

Podemos então ou criar um Workspace novo ou já utilizar um Workspace existente, e no nosso caso eu quero utilizar um Workspace já existente para enviar nosso relatório amado.

Para isso precisamos identificar a ID do Workspace e podemos fazer isso listando os Workspaces existentes utilizando o comando Get-PowerBIWorkspace ou simplesmente passando um parâmetro para esse mesmo comando informando o nome de um Workspace existente.

Get-PowerBIWorkspace -Name 'Fabricio Lima'
Novamente seleciono somente essa linha e mando executar o comando com F8 (sim estou sendo repetitivo para fixar).



Vocês podem ver então que eu alí uma linha chamada "Id" que me traz nossa WorkspaceID, vou selecionar, copiar e guardar esse dado, porque ele será necessário na nossa próxima etapa.

Como a linha Get-PowerBIWorkspace eu somente utilizei para identificar a WorkspaceID eu posso então apaga-la do nosso script ou deixa-la como uma linha comentada usando # antes da linha.

Agora temos, o caminho do meu arquivo e o WorkspaceID é só enviar o arquivo para a Web utilizando:

New-PowerBIReport ` -WorkspaceId 52bcfd95-b2cf-4a1b-80da-154d24fd4daf ` -Path 'C:\temp\Democmdlet.pbix'

No código acima eu utilizei uma quebra de linha, no PowerShell a quebra de linha é a crase.


 E então temos dentro do meu Workspace 'Fabricio Lima', nosso novo relatório inserido via PowerShell.




O Código

2) Listando Relatórios e DataSets.


Sim sim eu sei que a ideia original era listar os relatórios, mas vamos aprender tudo porque vamos precisar das 2 informações para uni-las.
Iniciando da mesma forma que no exemplo anterior conectando-se no serviço do Power BI utilizando Connect-PowerBIServiceAccount.

Depois de conectados vamos iniciar listando todos os Relatórios do PowerBI utilizando o seguinte comando:

Get-PowerBIReport

 Será gerada uma listagem de todos os Reports existentes apenas no "Meu Workspace" e não nos demais, com os ids dos DataSets.



Mas vamos lá, nós queremos TODOS os reports e não apenas os reports existente no "Meu Workspace" vamos usar então uma variável chamada "-Scope" para identificar o escopo da minha solicitação, que por padrão é "Individual" e vamos seta-lo para "Organization".

Além de incluir a variável acima eu também quero salvar essa consulta num arquivo para poder manipular e consultar.

Nosso comando ficará então:

Get-PowerBIReport -Scope Organization ` | Export-Csv -Path 'C:\temp\reports.csv' -Encoding UTF8

Com esse código acima será gerada na minha pasta C:\temp o arquivo reports.csv com a listagem de todos os reports.





Se você verificar os dados gerados a última informação é o DatasetId

Então para identificar esse Dataset pelo seu ID precisamos agora da Listagem de Ids e faremos isso utilizando o comando:

Get-PowerBIDataset -Scope Organization ` | Export-Csv -Path 'C:\temp\datasets.csv' -Encoding UTF8 



Agora você tá em casa não é não? Temos dois Arquivos CSV só importarmos isso no nosso PowerBI e fazer o relacionamento pelo id do Dataset e temos nosso relatório.



E por hoje é só amiguinhos se você quiser conhecer mais usos desse cara a documentação completa está no site da microsoft em https://docs.microsoft.com/pt-br/powershell/power-bi/overview?view=powerbi-ps

E se você quer mais conteúdo de qualidade sobre Power BI visita lá nosso canal youtube.com/planilheirosbrasil com mais de 350 vídeos sobre Power BI para você aprender do ZERO até se tornar um Jedí.

Grande abraço e até a próxima.

Comentários

  1. Puts cara você me abriu a mente eu ficava me perguntando como usar o powershell para vir os dados do powerbi embeded onde é bem pratico isso pois te ajuda a ver as credenciais que você tem tipo o token e por ai vai.

    muito bom Rafael Parabéns pelo artigo vai ajudar muita gente.

    ResponderExcluir

Postar um comentário