使用Power BI Cmdlets部署或迁移报表

本文实际借迁移报表的需求为例讲解Cmdlets命令用法,属进阶内容,但实操极易

需求

在企业BI场景下,我们也许会遇到一种需求,即使用自动化方式将报表或数据集从一个Workspace(工作区)迁移到另一个Workspace。

场景

对于仅使用Pro License的组织,它们希望通过这种方式来模拟PBI管道部署,而对于拥有Premium License (无论是企业版还是PU版) 的组织,通常而言直接使用Deployment Pipeline即可,但依然有少数组织,尤其是对于合规性和安全性管控极严的企业,Deployment Pipeline有不能满足其需求的情况(此处略),而手动发布显然不是明智的做法,但利用Power BI Cmdlets命令,却可完美解决此问题。

注:Power BI Cmdlets是PowerShell的Modules之一, 其允许Power BI管理员以命令行形式管理Power BI Workspace并与其交互,包括为获取和更改工作区信息,为指定工作区增减用户,指派角色,新建或删除工作区内报表等,其本质上是利用了REST API,但它比REST API更简洁易用

思路

依据需求,案例情况及方案思路如下:
账号1是部署管道的管理员,负责将项目从开发环境(D-BI-C1)发布到准测试环境 (D-BI-C1[test]),账号2是工作区D-BI-TEST的管理员,并具有对D-BI-C1[test]的访问权限。建立一个程序,每当其检测到Deployment Pipeline对指定的数据集发布完成,即验证D-BI-C1[test]指定内容是否已更新,即执行迁移命令。流程图如下:
在这里插入图片描述

实践

首先,根据文档安装必要的模块。然后以管理员模式运行PowerShell,跟随文档输入命令登录具备Power BI管理员的账号。依据以上思路,迁移报表,分两部分:

  • 检测迁出工作区的更新状态
  • 若迁出工作区更新,执行报表的导出与上传

其中第一部分需要使用如下命令获取工作区所有(或指定)数据集的更新时间:

Get-PowerBIImport -Scope Individual -WorkspaceId  <your workspace ID>

第二部分则需要用到两个命令:

以下仅展示第二部分流程。如下,内容从开发环境发布到准测试环境

在这里插入图片描述
为验证效果,此处使用了参数规则,对于开发环境内容仅取数据集前100行,发布到准测试环境后则取完整数据集:

在这里插入图片描述
执行导出命令

Export-PowerBIReport -Id <Input your report ID> -WorkspaceId <workspace ID> -OutFile .\Customer_Test.pbix

报表被导出至指定目录下:

在这里插入图片描述

然后上传至测试环境工作区(D-BI-TEST)

在这里插入图片描述
至此,自动迁移完成:

在这里插入图片描述
需要注意的是,由于迁出工作区具备Premium License (或PPU) , 目标工作区也要求拥有同样的License,否则打开报表将报错:

This operation is not allowed...Please try again later or contact support...

验证

报表显示了完整的数据集,而非仅100行,迁移成功。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44794714/article/details/116902016
今日推荐