powershell - Power BI - 数据集刷新完成数据 PowerShell
问题描述
我正在使用 PowerShell 以编程方式刷新我的 powerbi.com 数据集。这一切都很好。但是,如果有一种方法可以从 Microsoft 检索刷新完成时间数据,这将是有帮助的。我可以列出我用来启动刷新的过程,但这是有据可查的,与这个问题无关。
由于 powerbi.com 显示数据集刷新完成时间,因此我可以获取该数据是有道理的,但我找不到任何关于此的文档。这里有没有人试图获取这些数据(下面的截图)?
解决方案
代替将触发刷新的 POST 方法,即这是Refresh Dataset In Group API,将方法更改为 GET 以使用Get Refresh History In Group API。这将返回有关此数据集刷新的信息。所以 PowerShell 代码可能是这样的:
Import-Module MicrosoftPowerBIMgmt
$username = "my super strong password"
$password = "user@domain.com" | ConvertTo-SecureString -asPlainText -Force
$groupId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$datasetId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Connect-PowerBIServiceAccount -Credential $credential
$refreshes_response = Invoke-PowerBIRestMethod -Url "https://api.powerbi.com/v1.0/myorg/groups/$groupId/datasets/$datasetId/refreshes" -Method Get
Disconnect-PowerBIServiceAccount
$refreshes_response_json = ConvertFrom-Json $refreshes_response
foreach ($refresh in $refreshes_response_json.value)
{
Write-Output "refreshType: $($refresh.refreshType), startTime: $($refresh.startTime), endTime: $($refresh.endTime), status: $($refresh.status)"
}
您还可以通过在 URL 中提供一个数字来限制返回的刷新次数:
GET https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes?$top={$top}
但如果最后一个没有成功,您可能需要查看较早的事件以找到最后一个成功的事件。还要查看刷新的状态,因为它可能仍在进行中(Unknown
在这种情况下会说)。
推荐阅读
- java - 什么是更好的 sql 或使用 spring 注入属性
- android - 图表 Rest Api 数据未实时更新,
- python - 使python显示错误消息的文件来源
- java - Eclipse 程序崩溃/Java TM 没有响应
- c# - 如何确定为什么 C# 中 LibUsbDotNet 的 ControlTransfer 方法返回 false?
- python - For 循环耗时过长
- javascript - 将获得响应的 NODEJS 导出为“未定义”
- javascript - 在 p5.js 中在屏幕上移动一个球
- java - Java:误解泛型和通配符
- java - Spring boot:java.lang.IllegalStateException:响应提交后无法调用 sendError()