利用这个方法,实现Power BI文件的版本控制

你有没有这样的烦恼:多次修改或者迭代数次的PowerBI报告,如果打算保留每个版本,都需要在每次修改前,复制一份并重新命名,到最后可能自己都不知道需要的哪一版?

星球嘉宾AgnesJ给大家带来的一个解决方案:利用git实现对PowerBI文件的版本控制。

本文技术性较强,如果你正好也有这个困扰请慢慢欣赏;如果暂时用不上,也可以先存着,知道有这么个技术,有需要了再翻回来看。


利用git实现对Power BI文件的版本控制

作者:AgnesJ

在开始介绍git的安装之前,我想先和大家聊一下“为什么我们要关心版本控制?”

对于任何开发人员,无论是小白还是资深,版本控制都是必不可少的。版本控制可以让我们跟踪源文件的更改。通过跟踪更改,开发人员可以快速识别何时发生了更改,发生了什么更改。使用git,开发人员可以“区分”旧文件与新文件的区别,了解到发生了什么更改。

同时,Git是一个分布式版本控制系统。这意味着它没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你在工作的时候,就不需要联网去读取文件啦,因为版本库就在你自己的电脑上。这也提高了它的安全性。

但是目前的问题是:Power BI Desktop创建的PBIX或PBIT是.zip二进制文件。

这意味着,使用版本控制的系统,我们无法“区别”不同的文件,也无法跟踪更改。比如当你将[价格]度量值更改为[价格-不含增值税]时,我们没有办法通过git看到这个更改。此外,由于我们无法“进行差异化”,那么如果有一个以上的开发人员来从事一个项目时,就没有办法合并你们所做的更改。这也就导致了限制了Power BI项目的开发人员数量。

然而,虽然有上述的这些限制,我们还是可以通过对文件进行“注释”的方法来实现对新旧文件的区分。

所以,在这里我想和大家(像我一样的GitHub新手)分享一下,如何一步一步创建GitHub仓库,并实现对.pbix文件的版本控制。

重要概念:(这里引用廖雪峰老师的话)

什么是版本库?

版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。

什么是分支?

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习dax的时候,另一个你正在另一个平行宇宙里努力学习git。

如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了dax又学会了git!

Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成。

了解完重要概念,那就开始吧。

首先,下载安装git

进入官网下载

https://git-scm.com/

点击next直至安装完成。

接下来,注册一个GitHub账户。

注册好账户之后,登陆GitHub,点击创建一个新的仓库。 

注:可以创建一个私密的仓库,这样就可以保证数据的安全。

至此,用来存储和管理我的.pbix文件的仓库创建成功。接下来,需要在本地创建一个仓库,并把本地仓库关联到远程仓库。

Git的仓库你可以建在你电脑的任何目录下(最好不要包含有中文目录)。在这里,我先新建一个文件夹 “GitTest”,然后打开这个文件夹,在空白处鼠标右击:Git bash here:

连接远程仓库,有这几种做法:

下面我打算在 GitTest 下面创建本地库,使用第二种方法:

在git面板里输入命令行:

echo "# PowerBIFiles" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/aision06/PowerBIFiles.git
git push -u origin master

这里提示,第一条 commit 已经添加并成功推送至远程仓库的当前分支 “master” 中。

之后,我们就可以往仓库里添加文件啦。

添加文件的时候,可以直接把你要管理的.pbix文件拖至本地仓库中。

然后打开git bash,输入 git status 查看仓库的状态:这里提示我们新添加了一个名为 “FFT KPI.pbix”文件。

接下来,我们把这个pbix文件推送到远程仓库中去,这个步骤使用三个命令行实现:

git add xxxxx ->文件名
git commit -m “xxxxxxxxx” -> “xxxxxxx”为你添加的注释·
git push

打开你的远程仓库,就可以看到你成功推送的文件啦:

在这里,如果你遇到了文件无法推送的情况,例如,你在控制面板收到了这样的消息:

是因为想要推送的文件超过了最大文件大小的限制,这时,会提示你需要使用git

lfs插件来解决。

什么是Git LFS?

Git LFS(Large File Storage) 是 Github 开发的一个 Git 的扩展,用于实现 Git 对大文件的支持。简单的说,就是如果你想传超过100M的二进制文件到GitHub,你就要用Git LFS。

根据提示,进入 https://git-lfs.github.com/,下载安装扩展件,依据官方页面的指示进行操作:

注:如果对于同一个文件,你已经遇到了不能推送的情况,此时,需要撤回之前的commit。所以,如果你要上传的文件大于100M,那么建议你在对新文件进行操作之前就配置好git lfs。
假设我对这个文件进行了修改,那么我只需要把这些修改 commit 并 push 到远程仓库。

在修改并保存了文件之后,先用git status查看一下状态:看到提示 FFT KPI.pbix被修改。

使用git add 添加这个修改到仓库中,

commit,并添加一段注释用来标明:

push到远程仓库里:

在远程仓库里查看新的版本,以及注释:

点击文件名,还可以继续添加描述,我又在此处添加了 ”Data updated. 15/12/2019”。

点击查看你所有的commit,你就可以轻松找回自己的注释:

其实,实现版本控制的方法就是,通过阅读每一个 commit 的注释,查询对文件进行的更改,之后,再使用git checkout,就可以找回想要的那一个版本啦。

使用git找回自己想要的文件,以及其他工具推荐

首先,需要获得你想要的那一条commit sha,(sha就类似于id,每一条commit都有自己独特的sha)比如我现在想要看到我的“第一版”文件:

打开git bash后 输入 git log,

复制sha:8cf7494dfe37c18dc0495afda3c72ea619a6eda9

或者直接在github页面上复制:

此时,假设你有两种想法:

第一种,你想要保留你其余的commit,只是想单独取出这一条commit中的文件,就需要:

git fetch origin xxxxxxxshaxxxxxxx

git checkout FETCH_HEAD

执行完上述命令,再打开你的本地仓库,你会发现,你回到了这一条commit时的所存储的文件状态。

这时,你可以使用下面的命令创建一个新的分支,用来存储你想要的文件版本:

git checkout -b “develope”按照提示,将你取出的这一条commit推送到新的分支里,这样你就可以单独获得你想要的文件了。

而且,你推送到仓库里所有的文件都不会丢失,你只需要切换分支就可以找到其他文件。

注:如何切换分支?使用 git checkout xxxxx (xxxxx为分支的名字)

第二种,如果你不再需要这条commit之后的提交或修改,则可使用reset强制回到这条提交。

git reset --hard commit_sha

我在这里只是简单地描述了一下我是如何利用git对pbix文件实现版本控制的,只是git强大功能的凤毛麟角。

同时,如果你觉得git对你来说过于复杂或者不顺手,还有其他的方式来做版本控制:

第一种,使用One drive business。

在One drive for Business中,服务器会把同名文件在不同时间的上传自动识别为不同的版本。

可以在文件详情中查看不同的历史版本,并恢复(restore)某一个历史版本。

如果你有一个office 365账号,并且可以使用One drive for business,固然好啦,简单好用,不需要额外安装其他工具。这也是微软官方建议的一种方式。

但缺点是,付费。

另外还有一个工具,做开发的朋友可能会熟悉:AzureDevOps, 以前的Team Foundation Server。

TFS通常被用来持续整合一个开发项目,所以它也整合了git的功能。可以使用git或通过Visual studio来联结使用。和OneDrive for Business不同,TFS可以注册账号,免费试用。感兴趣的朋友可以自己深入了解一下。在这里就不多说啦。

如果你也和我一样,看到那么多的version就头疼,那就赶快实践一下版本控制吧。


老实说,上面的内容我看了一遍头都是晕晕的,但是,这确实为解决PowerBI版本控制的问题,提供了一个很好的思路,感谢AgnesJ的长篇分享,大家如果在实践过程中有什么问题,可以在知识星球中向她提问。


(0)

相关推荐

  • IntelliJ IDEA(八) :git的使用

    项目管理离不开版本控制,目前主流版本控制工具大概就是SVN和Git,至于两者有啥区别这里就不详细介绍了,如果有不明白的可以上网查资料,后期如果有机会我再开篇栏目细说,而且现在市场上Git的使用率已经远 ...

  • 【效率】超详细!手把手带你快速入门 GitHub!

    作者:Peter     编辑:JackTian 来源:公众号「杰哥的IT之旅」 快速入门GitHub GitHub在程序开发领域家喻户晓,现在几乎整个互联网的开发者都将版本管理工具GitHub作为版 ...

  • Power BI文件太大无法发布?这个方法推荐给你

    文/瓶子 目前从事职考行业的数据运营,喜欢钻研power bi和excel来实现自动化. 最近经常在工作中遇到报表太大发布不了,或者明明使用相同的数据集,却因为要做不同的报告,需另外花费时间制作同一份 ...

  • 秘籍 | 利用黑科技学习Power BI最前沿技术

    你还在到处找学习视频吗?是不是发现很多视频是英文原声听不懂?这篇文章天行老师就送你个秘籍,带你发现一个更广阔的Power BI知识海洋. 利用黑科技学习Power BI最前沿技术 天行 首先感谢星主给 ...

  • 利用外部工具,在Power BI中实现Excel PowerPivot的KPI功能

    文/陆文捷 物流供应链优化分析师,Power BI爱好者 知乎:Beethovenist Power BI Desktop在2020年7月的更新中支持外部工具后,可以很方便的使用一些新功能和对模型及度 ...

  • 如何在Power BI文件之间批量复制度量值?

    文/瓶子 目前从事职考行业的数据运营,喜欢钻研power bi和excel来实现自动化. 这几天在星球里面分享关于Tabular Editor内容比较多,应星主邀请,编辑一篇关于TabularEdit ...

  • 利用这个方法,帮你搞定Power BI"增量刷新"

    本文来自AgnesJ的分享,关于PowerBI增量数据的刷新,一直是令人头疼的问题,今天AgnesJ介绍了一个小技巧,帮你变相实现"增量刷新". 利用这个方法,帮你搞定Power ...

  • Power BI:利用“同步切片器”加密免费账户公开发布的数据分析!

    虽然Power BI Pro的账户不是很贵(反正我没有买,都是注册了个免费的结果微软一再延长我的pro用户体验时间--所以我就站着说会儿话-- ). 但是,对于大多数的用户来说,还没搞懂是咋肥四呢,就 ...

  • Power BI导出数据到Excel的方法及相关限制

    前些天,有朋友留言说:Power BI里导出数据只能30000行,导出的数据不完整,怎么办-- 我其实很少直接在Power BI里导出如此大量的数据,所以,我原来并没有注意到这个限制. 现在刚好有人问 ...

  • Power BI怎么接入dbf文件数据?

    dbf文件是一种比较经典(就是说很老的意思咯)的数据库文件,以前用FoxPro开发程序的老朋友应该很熟悉,有兴趣了解的新朋友也可以百度知道一下: 也可能因为实在太经典,现在Power BI没有提供直接 ...

  • 电脑被别人打开过?利用这个方法就能知道他动了你的什么文件

    工作的时候,为了防止他人偷看我们电脑上的文件,一般都会选择给重要文件加上密码,或者给电脑加上锁屏密码.如果在没有密码保护的情况下,想查看他人动了电脑里的什么软件,那么可以这样做: 首先,按住键盘上的快 ...