在数据工厂中刷新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木小桼