在数据工厂中刷新PowerBI数据集

一开始因为部门使用的是坚果云来同步资料,而坚果云同步SSIS工程总是会报错,一气之下就把所有的SSIS迁移到了Azure云上,本来部门使用的就是Azure SQL,所以迁到Data Factory(数据工厂)也不需要过多的配置。

但是,最近又比较烦,报表太多了,不同的报表又有不同的Pipeline,为了保证及时刷新数据,执行完管道后,还要再手动去触发刷新PowerBI数据集的操作,这就很不智能,能不能在数据工厂里,执行完ETL后就直接刷新PowerBI数据集呢?

都是微软家产品,自然是可以的。

管理门户设置

使用PowerBI的管理员,在管理门户中启动API功能

创建应用

还不知道怎么创建应用的,可以查看官方文档

用于嵌入式分析和自动化的 Power BI REST API – Power BI REST API | Microsoft Learn[1]

也可以阅读PowerBI REST API 进阶,注册好应用后,登陆Azure云,然后赋予相应的权限,一定要记得点击授予管理员同意。

数据工厂

看过先前分享内容的,会比较熟悉,和在Power Query中调用REST API差不多,只是有些地方的填写的方式不一样而已。都需要先获取token,然后使用获取到的token,再去调用相应的api,

  • • 新建一个web活动

这里使用的认证url如下,这种方式需要用到tenantid

https://login.microsoftonline.com/{tenantid}/oauth2/token/

这些信息可以在注册的应用概述那里找到

同时这里创建了应用密钥,这样就不用使用账号密码了,但是密钥有效期最长只能24个月,且只在首次创建时显示,一定要注意保存(比如我,就是因为先前的忘记了,又创建了一个)

可以先在postman中测试是否可以正确拿到token

再次提醒,国际和国内使用的相应的url会有不同

Authority Url
https://login.microsoftonline.com/common/(国际)
https://login.partner.microsoftonline.cn/common/(国内)

Resource Url
https://analysis.windows.net/powerbi/api (国际)
https://analysis.chinacloudapi.cn/powerbi/api (国内)

Api Url
https://api.powerbi.com (国际)
https://api.powerbi.cn (国内)

Access Token URL
https://login.microsoftonline.com/common/oauth2/token(国际)
https://login.partner.microsoftonline.cn/common/oauth2/token (国内)

拿到token后,再新那一个web活动来刷新数据,刷新数据的新口如下

国际:https://api.powerbi.com/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes
国内:https://api.powerbi.cn/v1.0/myorg/groups/{groupId}/datasets/{datasetId}/refreshes

想了解更多的可直接在postman搜索界面搜索,然后复制到自己工作区就好

这里还要注意两点,Azure上Post的方法必须赶写正文部分,所以这里可以参考postman

之后是标头的部分,这里要使用函数来获取先前获取到的token,同时要注意,使用函数将前缀组合起来,不同直接使用&符来连接

@concat( 'Bearer ', activity('GetToken').output.access_token)

运行看看

回到工作区查看刷新历史

数据集确实有刷新,当然,还可以使用REST API去获取数据集刷新的状态。

引用链接

[1] 用于嵌入式分析和自动化的 Power BI REST API – Power BI REST API | Microsoft Learn: https://learn.microsoft.com/zh-cn/rest/api/power-bi/


本篇文章来源于微信公众号: PowerBI木小桼

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注