我正在使用PowerShell以编程方式刷新powerbi.com数据集。一切都很好。但是,如果有一种方法可以从Microsoft检索刷新完成时间数据,将会很有帮助。我可以列出我要开始进行刷新的过程,但这是有据可查的,并且与该问题无关。
由于powerbi.com显示了数据集的刷新完成时间,因此可以抓住该数据是有理由的,但是我找不到关于此的任何文档。这里有没有人试图获取这些数据(下面的截图)?
答案 0 :(得分:1)
代替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
)。