Pular para o conteúdo principal

Power BI - NÃO EDITE seus Modelos do Power BI na Nuvem.

[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

Postagens mais visitadas deste blog

[Power BI] O totalizador da minha Tabela ou Matriz "NÃO BATE" e agora?

Olá amantes de visuais de tabela e matriz no Power BI, tudo bem? Hoje vamos falar de um caso que vejo bastante nos grupos do Power BI. “O calculo na linha está batendo mas no total não e agora?” Mas antes de iniciarmos, que tal deixar aquela sua inscrição marota no meu canal no youtube que está recheado de vídeos legais, vai lá seu pão duro de like youtube.com/rafaelmendonca Agora que você já aliviou sua pão-durice você merece conteúdo .... kkkkkkkk Vamos lá, temos então a seguinte tabela gerada no meu conjunto de dados Essa tabela possui uma lista de vendas realizadas por dois vendedores com o numero da ordem da venda, um valor unitário e uma quantidade de itens em cada venda. O que queremos é bem simples meu jovem, calcular o valor total de cada venda e ter um total de todas as vendas... Aí você muito garotão usa a seguinte expressão DAX: E depois joga isso numa tabela. Lindo neh??? Mas o totalizador trouxe um valor que não tem...

[Power BI] Você está com erro nas suas funções DAX que até ontem funcionavam?

Hoje você acordou abriu seu Power BI tentou criar uma nova medida e está dando um erro chato como esse abaixo A sintaxe de ";" está incorreta ou até mesmo o Muitos argumentos foram passados para a função Bem não precisa se preocupar porque você não desaprendeu Power BI, a sintaxe deve estar correta, mas correta para o Padrão que usamos aqui no Brasil com o ; (ponto e virgula) como separador de lista e a ,  (vírgula) como separador de decimal. Na versão de Maio de 2020 o Power BI Desktop jogou como padrão para todos não mais o padrão regional da sua máquina mas o padrão internacional do DAX usando , (vírgula) como separador de lista e . (ponto) como separador de decimal. Sendo assim se você quiser continuar usando o padrão da máquina tem que alterar a opção indo em Arquivo Opções e Configurações e depois Opções Na caixinha que é aberta vá em Configurações Regionais na área Global E altere a opção que está  Recomendado  para  Usar separador do DAX Localizado Vai ser...

Como usar o Web.Contents do Power Query: guia completo

Como usar o Web.Contents do Power Query para acessar dados online O Power Query é uma ferramenta poderosa para obter, transformar e analisar dados de diferentes fontes. Uma dessas fontes é a web, que contém uma grande variedade de dados online que podem ser úteis para os seus projetos. Para acessar dados online a partir de uma URL, você pode usar a função Web.Contents do Power Query. Essa função retorna o conteúdo binário baixado da URL especificada e permite que você use opções adicionais para personalizar a sua consulta. Neste artigo, vamos mostrar como usar o Web.Contents para obter dados de diferentes tipos de arquivos online, como CSV, Excel ou JSON. Também vamos discutir as vantagens e desvantagens dessa função em comparação com outras funções do Power Query. O que é o Web.Contents? O Web.Contents é uma função do Power Query que permite acessar dados online a partir de uma URL. Você pode usar essa função para obter dados de diferentes fontes da web, como arquivos CSV, Excel, JSON...