Como automatizar Refresh de Power BI em Fabric: passo a passo
Este tutorial mostra como automatizar o refresh de relatórios Power BI no Microsoft Fabric usando Pipelines e a REST API para agendar atualizações e tratar erros comuns. A automatização evita refresh manual, garante dados actualizados e permite alertas quando algo falha.
Pré-requisitos
- Conta com acesso ao workspace no Microsoft Fabric e permissões de Admin/Manage.
- Relatório Power BI já publicado no workspace do Fabric.
- Azure Active Directory App registada com permissões para Power BI (Dataset.ReadWrite.All) e Client Secret.
- Familiaridade básica com HTTP e ficheiros JSON; ferramenta curl ou PowerShell disponível.
Passo 1: Registar uma AAD App e obter Client Secret
Precisamos de uma AAD App para autenticar e chamar a Power BI REST API a partir do Pipeline. No Azure Portal crie uma App, defina Redirect URI (opcional para client credentials) e gere um Client Secret. Anote o Tenant ID, Client ID e Client Secret — serão usados depois.
Passo 2: Conceder permissões Power BI à AAD App
No portal do Azure, em API permissions da App, adicione a permissão "Power BI Service" -> "Application" -> "Dataset.ReadWrite.All" e clique em "Grant admin consent". Isto permite à app gerir o refresh de datasets.
Passo 3: Obter token de acesso (exemplo com curl)
Use o fluxo client_credentials para obter um token OAuth2. Substitua os placeholders pelo seu Tenant ID, Client ID e Client Secret.
curl -X POST https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "client_id={CLIENT_ID}&scope=https%3A%2F%2Fanalysis.windows.net%2Fpowerbi%2Fapi%2F.default&client_secret={CLIENT_SECRET}&grant_type=client_credentials"
Passo 4: Identificar Dataset ID e Group (workspace) ID
Para acionar o refresh precisamos do datasetId e do groupId (workspace). Use a API para listar datasets no workspace. Substitua {ACCESS_TOKEN} e {GROUP_ID}.
curl -H "Authorization: Bearer {ACCESS_TOKEN}" \ https://api.powerbi.com/v1.0/myorg/groups/{GROUP_ID}/datasets
Passo 5: Criar um Pipeline no Fabric para chamar a API
No Microsoft Fabric crie um Pipeline (Data Factory) simples que execute uma actividade Web. O Pipeline organiza e agenda a chamada. Crie um Linked Service do tipo "REST" ou use uma actividade Web com cabeçalhos e payload apropriados.
Passo 6: Configurar a actividade Web para disparar o refresh
Configure a actividade Web para fazer um POST para a endpoint de refresh do dataset:
POST https://api.powerbi.com/v1.0/myorg/groups/{GROUP_ID}/datasets/{DATASET_ID}/refreshes
Headers:
Authorization: Bearer {ACCESS_TOKEN}
Content-Type: application/json
Body:
{ "notifyOption": "MailOnCompletion" }
Opcionalmente use {notifyOption: "NoNotification"} e trate notificações através de outro sistema.
Passo 7: Tratar resposta e erros comuns
Adicione lógica no Pipeline para verificar o código HTTP e o corpo JSON. Erros comuns: 401 (token inválido), 403 (permissões insuficientes), 404 (dataset ou workspace errados). Se receber 202, o refresh foi aceite; terá de consultar o estado posteriormente.
Passo 8: Consultar estado do refresh
Se quiser confirmar o resultado do refresh, chame a API de refresh history ou status do dataset:
GET https://api.powerbi.com/v1.0/myorg/groups/{GROUP_ID}/datasets/{DATASET_ID}/refreshes
Headers:
Authorization: Bearer {ACCESS_TOKEN}
Verifique o campo "status" (Completed, Failed, Unknown) e o "endTime" para validar o sucesso.
Verificar o resultado
Valide que o Pipeline corre sem erros no Microsoft Fabric e que a chamada à REST API retorna 202 ou 200 conforme o endpoint. Verifique no serviço Power BI: o relatório deve mostrar dados actualizados e o histórico de refresh do dataset deve registar a execução com status Completed. Em caso de falha, reveja token, permissões e IDs usados.
Conclusão
Automatizar o refresh de Power BI em Microsoft Fabric usando Pipelines e a REST API permite agendar e monitorizar atualizações de datasets sem intervenção manual. Próximos passos: acrescentar retries, notificação por e-mail/Teams e integração com logs do Workspace para diagnóstico. Experimente monitorizar o tempo de refresh e pergunte-se: qual é a janela de atualização aceitável para os utilizadores?