Source Control with Power BI - Can it be done?

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
- Yooo! Adam Saxton with Guy in a Cube, and in this video, let's talk about source control or version control and what that means for Power BI "cause I know you wanna know. Let's do this. (upbeat music) If you're finding us for the first time, be sure to hit that subscribe button to stay up to date with all the videos from both Patrick and myself. Alright, Source control, version control, Power BI. What does this all mean? We get this question a lot. So anytime we're doing a live stream or we're doing some sort of Q&A for some user group or conference or whatever, this question comes up at least one time. Sometimes more than once. Really what people are asking for is, they want a separation of the report, the data model and the power query elements. And be able to save those from a versioning perspective to do rollbacks or divs between the files to see what changed. And then be able to deploy those in a consistent manner, so continuous integration or continuous deployment also referred to as CI/CD. So if you hear that term, that's what that means. So this is just like a deployment operation for your source files. That would be the magical state of Power BI but it's not quite there yet. And hopefully it will be someday. So let me show you what's available today. And then let's talk about some things that are coming down the pipeline that we can explore a little bit. Right, enough of all this talking. You know how we like to do it here in Guy in a Cube, is to what? Head over to my machine. I've got my lovely report right here. What I wanna do is have some sort of version control or source control. The thing to understand here is that the Power BI desktop file itself, the PBIX file, is just a binary file, right. So we can't do divs on this file. It includes everything. It includes the reports. It includes the model definition. It includes all those power query elements. And we can't separate that from a source control perspective. So all we can do is stick this binary file into some sort of source control system. What I've seen a lot of people do, and this works well. They'll stick it into like a OneDrive folder or a SharePoint document library. And so this is a OneDrive folder that's connected to the Cloud. And when I do this, I can right click and I can say, hey, show me the version history. And this will show the OneDrive version history as part of it, so you can see that I've got multiple items here that are available and I can click on that. I can say, hey, restore this version or download it independently. And this tracks changes. This is probably the easiest thing that a business user can do 'cause it's readily available. Most folks have either OneDrive or SharePoint from an office integration perspective. If they're using office 365, I'm sure that there's some sort of functionality with Google Drive as well or Dropbox or things of that nature. So you could explore those if that's what you're using but this is a great option for just anyone, right? So if we wanna take this up a level and what we can do there is GitHub or Azure DevOps or something of that nature where we can actually have items that are in here. Let me go ahead and refresh this. And we can see that in a different branch here, go to my version demo here. And I've got a models folder, right? And I've got items that are here so I can have PBIX files that are stored inside of GitHub. And then those can be tracked from a version history as well. And you can go based on your commits and things of that nature, you can track the versions of those items. But again, this is just the binary file, right? I can't do divs. I can't extract different components of it or see what changed. So you're just stuck to the binary file. What we can do is, the model side of this. So the model piece, we have some options here that take this a little further especially if you're using Power BI premium. Let me show you what I mean. So if I'm inside of my report, I've got a tool called Tabular Editor that's installed and so I can just go to external tools. I can go to Tabular Editor. And when I'm inside of that, I could do file save as and I can save the BIM file. So this is the BI model, right? This is the model definition of my report. And when I look at that, right, I can just right click and open it with code or notepad here. Let me just open it with our friendly tool notepad. It's just a JSON file, right? So this is the model definition. This is a text file. I can work with text files. I can do divs on text files. I can do any extraction of that text file. Text files work really good with source control. And so from a model definition perspective if we can get that BIM file you can actually do tracking and changes on that. There is some process you need to put around that in terms of check-ins and making sure people are actually following the steps to do it. There's no direct integration with Power BI desktop to do this. So you have to go a little extra steps to go through that process. And that can be a little bit of a struggle especially if you're working with a business team that doesn't understand how all of this works. One advantage of this is, I'm using GitHub in this case and I can go through and as I make changes on these items I can see that, hey, something's been modified here. When those modifications happen, you may be like, I wonder what changed. So let me do this, open it up in Visual Studio Code. When I've got the file inside of Visual Studio Code. If I go to my GitHub integration and I right click and then I'm gonna say, what changed in this file? And so I can see these are the changes. This is what's actually being committed to my GitHub repo at this point. In the original file I can see that we had is hidden, true, but in the version that has the changes, I can see that, that's been removed. Another one that was originally hidden but now it's removed and we can go through and see, okay what were those changes? Do I wanna actually commit those? So again, doing that div operation to understand what's been changing. And this is what I think everyone wants in terms of the report definition, the model the power query, all of those things. Just being able to explore what actually changed. So we can technically do it from a model perspective. One word of caution on this, is when you start doing this you can't necessarily deploy these changes back into Power BI desktop. So that's not technically supported. What you can do is if you're using Power BI premium you've got the xmla endpoint. You can start using tools like ALM toolkit and be able to deploy that to the xmla end point. So if you're going through an actual development process of your data model, this can be effective and be done for the modeling piece specifically, that's the only part of Power BI that really you can do that with today. Let's look at what's coming down the pipeline to do that. We have to talk about deployment pipelines. There's already been announcements that Azure DevOps and GitHub integration is coming for deployment pipelines. What that means is that you'll be able to tie in your CI/CD or your continuous deployment operations, with Azure DevOps and GitHub and push those into the deployment pipelines from a Power BI perspective. So if you have some sort of change operation, hey, there's file's there I wanna update the file. And then I wanna actually push that from dev to test to prod and or update the app. Those are the things that are gonna be available in that update. What this is not gonna give you is that separation of those items, give you that full div capabilities and things of that nature. So, those are items that I know a lot of people have been asking for. I'm hoping that at some point in the future we will get that type of separation and level of detail that we can work with that but today it's just not available. And I've also got a link to an idea item from ideas.powerbi.com in the description below too it's got almost a thousand votes. You can vote that up as well if that's something that you're interested in. I think there's some other ideas that are out there as well that you can vote up as well, just to lend your voice to the product and just say, this is what we want. Hopefully this helps you wrap your head around what's available from a version control or source control perspective. I'd love to know your thoughts. Let me know in the comments below. How have you've been working with this? Do you have like techniques that you're using to actually accomplish these operations in your environment? I'd love to know. If you liked this video be sure to hit that big thumbs up button, smash it if you so desire. If it's your first time here, hit that subscribe button. And as always from both Patrick and myself thank you so much for watching, keep being awesome. And we'll see you in the next video.
Info
Channel: Guy in a Cube
Views: 67,760
Rating: undefined out of 5
Keywords: power bi, power bi dashboard, power bi deployment best practices, power bi deployment pipeline, power bi for beginners, power bi reports, power bi source control, power bi training, power bi tutorial, power bi tutorial for beginners, power bi version control, version control in power bi, azure devops, business intelligence, github, source control, version control
Id: fCGd5qID-dY
Channel Id: undefined
Length: 8min 16sec (496 seconds)
Published: Thu Apr 29 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.