Perguntas Frequentes

Como usar API Power BI com scripts PowerShell (e Python) para atualizar seu conjunto de dados?
Última atualização 3 meses atrás

Origem do artigo: https://www.fourmoo.com/2018/06/05/using-the-power-bi-api-with-powershell-scripts-refreshing-your-dataset/

Eu sei que quando comecei a tentar usar as APIs do Power BI, eu não tinha certeza do que estava fazendo, e como eu poderia fazê-lo funcionar.

Não só isso, mas eu pude ver que, como com a construção de qualquer plataforma de nuvem, as APIs têm que estar lá antes que eles possam colocar a pele e facilitar o uso.

Há sempre novos recursos ou funcionalidades disponíveis através das APIs power BI.

Nesta série de posts no Blog, vou mostrar como você pode usar recursos adicionais no Power BI usando a API e o PowerShell.

Deixe-me começar dizendo que não sou especialista em codificação ou scripting.

Meu objetivo neste post no blog, é mostrar que usar os scripts do PowerShell pode ser bastante fácil, uma vez que alguém (eu, escolha ME) mostrou como colocar os detalhes necessários.

Exemplo

Como sempre, gosto de usar um exemplo, que eu acho que facilita a seguiram.

Neste exemplo, vou usar a API power BI Refresh para atualizar um conjunto de dados usando o PowerShell.

Meu conjunto de dados será "Fourmoo Google Analytics"

image

Obtendo os detalhes necessários para o Script PowerShell

Eu tenho os detalhes sobre como atualizar um Conjunto de Dados power BI a partir do seguinte local abaixo. Aqui ele explica o que a API Power BI espera receber para atualizar o conjunto de dados.

https://msdn.microsoft.com/en-us/library/mt784652.aspx

Em seguida, baixei o Script PowerShell daqui: Power BI Dataset Refresh API Sample Code

Você acredita que há apenas 3 informações necessárias para atualizar o Script PowerShell e fazê-lo funcionar?

Abaixo eu vou explicar como obter esses dados e colocá-lo no Script PowerShell

Registrando-se para um ClientID

O primeiro passo que eu tinha que fazer era me registrar para um ClientID

Groupid

NOTA: O grupo é o que era chamado no Power BI antes de ser alterado para App Workspaces. Então, quando qualquer coisa se refere ao Grupo, ele está realmente agora se referindo a um Espaço de Trabalho do aplicativo.

Este é o grupo onde seu conjunto de dados está atualmente.

Para encontrar o GroupID, você pode completar as seguintes etapas abaixo.

  • Faça login no serviço power BI, e então eu fui para o App Workspace onde eu tenho o conjunto de dados que eu quero atualizar.
  • No meu exemplo, entrei no espaço de trabalho "Site Analytics"
  • Em seguida, na URL você verá que ele vai dizer grupos, ea seção imediatamente depois disso é o GroupID
    • image
    • Como você pode ver acima meu GroupID começa com 0084
    • Anote o GroupID

Conjunto de dadosID

Em seguida, é onde eu precisava encontrar o Dataset ID, que eu mostro nos passos abaixo.

  • Eu me certifiquei de que eu já estava no meu site Analytics App Workspace.
  • Em seguida, eu cliquei em Configurações e, em seguida, Configurações e, em seguida, Configurações novamente
  • Em seguida, cliquei em Datasets e cliquei no conjunto de dados que quero atualizar.
    • Como no meu exemplo, foi chamado de "Fourmoo Google Analytics"
    • image
  • Agora na URL eu agora tinha o meu DatasetID que é que é depois de conjuntos de dados, e destacado como mostrado abaixo.
  • Então eu fiz uma nota do DatasetID

Atualizando o Script PowerShell

Agora estou pronto para atualizar o script do PowerShell com os detalhes que recebi de cima.

NOTA: O script do PowerShell tem muita documentação nele, então se você se perder, há muitos comentários para ajudá-lo.

  • Abri o PowerShell ISE
  • Então abri meu script powershell.
  • Agora, onde diz $groupID eu coloquei no meu GroupID que eu tinha notado anteriormente.
  • Então, onde ele disse $datasetID, eu coloquei no meu DatasetID que eu tinha notado anteriormente.
  • A peça final é colocar no $clientID, que eu tinha notado anteriormente
  • Então eu salvei o arquivo PowerShell Script

Testando o script PowerShell e minha atualização do conjunto de dados

O passo final é agora executar o script PowerShell, garantir que ele seja executado, e meu conjunto de dados realmente seja atualizado.

  • Como você pode ver minha última atualização é mostrado abaixo
  • Então eu executo o Script PowerShell.
  • Recebi um aviso pedindo as permissões do aplicativo
    • image
    • Eu cliquei em Aceitar
  • Então eu tenho o seguinte resultado mostrando que foi executado com sucesso
  • image
  • Agora eu podia ver que estava em progresso
  • E, finalmente, foi refrescado com sucesso.

Conclusão

Embora este tenha sido um pouco mais longo post no blog, espero que você possa ver que se você seguir os passos como você pode aproveitar as APIs do Power BI para seus conjuntos de dados.

Eu planejo fazer posts adicionais no blog sobre as diferentes APIs power BI. Se houver algum interessado, por favor deixe um comentário abaixo.

E como eu digo em cada post no blog, por favor deixe qualquer comentário ou perguntas.

image

# adal is the azure-activedirectory-library-for-python. install it first.

# pip install adal

from adal import AuthenticationContext

import requests

import json

# get access token implictly with username and password.

def get_token():

client_id = "?"

resource_uri = "https://analysis.windows.net/powerbi/api"

user_name = "?"

user_password = "?"

auth_context = AuthenticationContext("https://login.microsoftonline.com/consultline.cnt.br")

token_response = auth_context.acquire_token_with_username_password(resource_uri, user_name, user_password, client_id)

token = "Bearer " + token_response["accessToken"]

#print(token_response)

return token

def refresh():

token = get_token()

headers = {"Authorization": token, "Content-type": "application/json"}

post_url = "https://api.powerbi.com/v1.0/myorg/groups/?/datasets/?/refreshes"

body = {

"notifyOption": "MailOnCompletion"

}

r = requests.post(post_url, headers = headers, data = json.dumps(body))

#print(r)

return r.status_code

if __name__ == "__main__":

refresh()


Usando a API Power BI com scripts PowerShell (e Python) – Atualizando seu conjunto de dados

Por favor, aguarde!

Por favor aguarde... vai levar um segundo!