Pular para o conteúdo principal

[Power BI Like a PRO] Inserindo usuários em lote numa workspace.

[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 Service - O Publicar na Web não está disponível para mim, e agora?

Olá seus pão duro que adoram publicar link público, tudo bem com vocês?

Hoje vamos dar uma mãozinha para você que por algum motivo arrancou todos os fios de cabelo da cabeça porque não viu mais a opção de Publicar na Web disponível no seu Power BI.

Antes também gostaria de te fazer dois convites:

O segundo, como sempre te convido a conhecer meu canal no YouTube, se inscrever e compartilhar os conteúdos que faço sempre com muito carinho para todos vocês (coisa melosa),

https://youtube.com/rafaelmendonca

Dados os recados vamos para nosso problema...

1) Seu dia amanheceu assim...
Numa bela manha você decide publicar seu relatório e compartilhar para toda a rede e se depara com essa situação:


Cara quem roubou meu botão de "Publicar na Web"?

Mas não se desespere isso pode ser uma configuração que o administrador do tenant (do seu site no serviço do PBI) ou até mesmo você desavisadamente alterou.

2) Verificando a Opção Desabilitada...
A partir daqui você precisa ter acesso de admi…

“Traduzindo” formulas do Excel para DAX.

Como utilizar algumas formulas bem conhecidas no EXCEL em DAX

Olá moçada tudo bem?
Todos sabemos que muitos dos usuários de Excel tem dificuldade de migrar ou utilizar o Power BI, muito pela dificuldade de entender a forma de calcular do DAX e os contextos de linha e de filtro, bem como por já estar acostumado com as formulas no Excel, chegando a procurar um SOMASE (SUMIF) quando quer escrever uma nova medida em DAX (eu fiz isso).
Queria então conversar hoje com esse público e te mostrar como traduzir o que você pensa em EXCEL para DAX.
Iremos brincar então com as seguintes formulas em Excel (versão português).
Somase, Somases, Procv, Cont.se, Cont.ses, Pgto, Concat, Texto, Esquerda, Direita e Seerro.
Utilizaremos para nosso exemplo o modelo de dados abaixo (Power BI e Excel)




Nossos objetivos serão:
- Encontrar o total de Compras para veículos novos (ano de venda igual a 2018). - Encontrar o total de Compras para veículos novos e com valor de venda igual a R$ 1Mi. - Encontrar qual o veículo ve…

Power BI - Colocando sua dCalendario em "Ordem"

Power BI - Colocando sua dCalendario em "Ordem"
Olá Princesas e Princesos.

Hoje iremos brincar, novamente, com dCalendario.

É um assunto legal, uma estrutura praticamente obrigatória, então vamos explora-la ainda mais.

Se você já entende o conceito de ordenar as linhas da coluna da dCalendário de forma a ficar sempre tudo na ORDEM crescente ou DECRESCENTE de Datas, Meses, Anos, Semanas, e etc esse artigo pode ser um tanto quanto boring pra você, então aconselho a procurar outro meio de vida.

MAS ANTES... adivinhem?

Não tá inscrito no canal se inscreve lá www.youtube.com/rafaelmendonca

Exemplo 1 - Ordenando coluna de Nome do Mês.
Uma das colunas que costumamos criar na dCalendario é a Mês Nome (janeiro, fevereiro, março...)

Por padrão a ordenação de uma coluna sempre é ela mesmo, ou seja numa coluna com dados de texto a ordenação vai ser alfabética, e seus meses serão ordenados da seguinte forma:

abril, agosto, dezembro, fevereiro, janeiro, julho, junho, maio, março, novembro…