回忆是一座桥
却是通往寂寞的牢

PowerBI开发者模式之PBIP文件与Git的使用

前言

在开发PowerBI报表时,由于用户的需求变更或其它原因,通常会保存很多的版本,以方便备份和回滚操作,而这通常是以复制PBIX文件并在文件名上添加版本后缀的方式来保存多版本的。但随着文件版本的增加,以及时间的流逝,几乎不可能回想起每个版本的具体情况,因此还要手工维护一个版本说明的文件,非常的不方便。

此外,开发PowerBI报表时一般都是单人独立开发的,如果是多人协作开发的话,除非是线性的共用同一个文件进行开发(比如张三开发完某部分功能后,将PBIX文件给到李四去开发另一部分),否则后期进行文件合并时也是非常麻烦的,而且多人线性合作开发也不会提升效率,因此一般都是单人独立开发整个报表。

但在2023年6月后这个问题得到了解决,PowerBI新增了导出开发者模式文件(*.pbip)的功能,将pbip文件与Git相结合,不仅可以做到版本控制,并且还能实现多人协作开发,让开发体验与效率都得到提升,但前提是需要掌握Git的使用。

本篇文章介绍的内容涉及到了Azure Devops,这是一个云端的Git仓库服务,且PowerBI Server的工作区连接Git仓库时只能使用Azure Devops,因此建议先阅读我的另一篇文章,简单了解Azure Devops的使用:https://www.xifenghhh.top/posts/640.html

使用Git控制版本

首先新建一个文件夹,并打开Git Bash命令行终端,然后运行以下命令,将文件夹初始化成Git仓库,让Git接管文件夹下的所有变更。

git init

然后打开PowerBI报表文件,先在设置里打开导出pbip文件的预览功能,然后将报表另存为pbip格式,并放入到刚创建的文件夹下。

然后在Git Bash命令行终端中运行以下命令,可以查看此时的状态。

git status

然后分别运行以下命令,保存第一个报表版本。

git add .
git commit -m 'first version'

此时,打开pbip格式的报表文件,新增一个卡片图与度量值,如下图所示:

然后保存并关闭文件,在Git中提交第二个报表版本。

此时,Git中总共记录了两个版本的报表文件,可以用以下命令查看记录的所有版本:

git log --oneline --graph --all

假如现在想查看第一个版本的报表的内容,那么只需要在Git中运行以下命令即可:

git checkout head^ .

其中head代表当前版本,即第二个版本的报表,而head^则代表倒数第二个版本,即第一个版本的报表,而head^^则代表倒数第三个版本,以此类推,或者直接使用版本编号代替head^也可以。此时再打开pbip文件,即可看到添加的卡片图与度量值都不见了,即回到了第一个版本的状态:

此时如果想回到第二个版本的报表,那么运行以下命令即可:

git checkout head

上面介绍的checkout命令只是从Git记录的每个版本中提取文件,不影响版本的回滚与恢复,主要用于查看历史版本的文件内容。如果想彻底回退版本,那么可以用以下的命令,此时则不能恢复第二个版本的内容:

git reset --hard head^

另外,在查看历史版本的文件内容时,通常还希望与现在的内容做对比,而前面介绍的命令是会覆盖现在的内容的,因此可以考虑使用下面的命令,将提取的历史版本文件放到另一个路径,这样就可以同时打开两个版本的文件进行对照。

git --work-tree='存放的另一个路径' checkout head^ .

最后,在Azure Devops中创建一个云端仓库,并将本地仓库推送上去,即可实现多人协作开发。

将PowerBI工作区连接到云端Git仓库

报表开发完后通常需要发布到PowerBI Server的工作区,这可以使用主页选项卡下的发布按钮,但也可以将PowerBI Server工作区与云端Git仓库进行连接,这样只需要把更改提交到云端Git仓库即可,所有更改都会在后台会自动同步到PowerBI Server中,从而不再需要手动点击发布按钮进行发布。

注意:将PowerBI Server的工作区连接到云端Git仓库时,需要高级容量许可。


首先,在工作区设置的Git集成中,配置Azure Devops的云端仓库(PowerBI与Azure Devops需要使用同一个账号),如下图所示:

点击连接和同步后,将从云端Git仓库中同步最新更改到工作区。

刚同步到工作区中的报表或数据集是不含任何数据的,需要配置网关并进行刷新后才会有数据。此时云端的报表如下图所示:

然后在本地打开pbip文件,从数据源中添加新的表,并添加一个表格展示新表的数据,如下图所示:

然后保存并使用Git提交第三个版本,并推送到云端Git仓库。

此时回到PowerBI工作区,将看到更新提示,点击全部更新后,即可将更改同步到工作区中。

但需要注意,如果最新的更改中新增了数据源或表,那么还是需要刷新一次,否则新增的表无任何数据,如下图所示:

此外,也可以在工作区中更新报表内容,再将更新同步到云端Git仓库。如下图所示,在云端编辑报表,将卡片图复制一个,然后保存。

然后回到工作区界面,即可看到提交最新更改到云端Git仓库的提示,如下图所示:

在工作区进行提交后,在本地可以使用以下命令同步最新的更改。

git pull

最后打开本地仓库里的pbip文件,即可看到报表内容与云端的最新更改是一致的。

总结

通过导出pbip开发者模式文件,能够将报表和数据集解耦,配合Git后还能实现版本控制与多人协作开发,让PowerBI也能够走团队开发的路线,从单人开发到团队开发,这是一个零到一的突破。但同时也给一般用户带来了一些门槛,比如Git的学习与使用等等,但总的来说,还是利大于弊,有功能不用和想用但不支持是两回事。

未经允许不得转载:夕枫 » PowerBI开发者模式之PBIP文件与Git的使用
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论