美文网首页PowerBI专栏
利用git实现对Power BI文件的版本控制

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

作者: PowerBI星球 | 来源:发表于2020-04-26 20:50 被阅读0次

    ​你有没有这样的烦恼:多次修改或者迭代数次的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的长篇分享,大家如果在实践过程中有什么问题,可以在知识星球中向她提问。

    如果你刚开始接触Power BI,可在微信公众号后台回复"PowerBI",获取《七天入门PowerBI》电子书,轻松上手。

    -精彩推荐-

    PowerBI数据分析和可视化实战案例

    PowerBI时间相关的度量值,都在这里了

    PDF转Excel,这个秘籍推荐给你

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/mxfswhtx.html