What makes up a Power BI Desktop PBIX File
I know that I personally have been interested in what makes up a PBIX file and in this blog post below I will explain from my understanding what are the different parts that make up the PBIX file. It is rather interesting in that it is actually made up of a few different aspects.
How to view the contents of a PBIX file
The starting place, as well as a question some people might have, is how do you view or know what the contents of the PBIX file are?
From my understanding the PBIX file is loosely based on the XLSX file, in that there is a very simple way to see the underlying contents.
So in order to view the contents of a PBIX file you can do the following below.
Either right click on the PBIX file and select Rename, or double click the File to get the option to rename.
Then rename the file from the extension of PBIX to ZIP
You will get prompted with the following Window asking “Are you sure you want to change it?”
- Click Yes
So now the file will have the ZIP extension
Now if you double click the ZIP file you will see all the contents, which I will go through the known contents in this blog post. How awesome is that?
The report folder contains the following 2 files below.
The Layout file contains all the information with regards to the Report Layout. Which is essentially the report sheets, as well as the placement of the visuals and all of their related properties.
This is a snippet of what the contents of the file looks like below, and as you can see it stores a lot of information that is not very friendly to read.
The LignuisticSchema file appears to hold the contents for the Sheet names if you rename them from the default “Page 1”
As you can see above I renamed a sheet to “Item count on Slicer” and when I open the LignuisticSchema file I see the following below.
This XML file contains all the content within the PBIX file
The DataMashup file contains all of your Query Editor information.
From my understanding it contains all of the following.
- Connection Details to your Source Data
- File Names or database names
All the Table information
- Within each table it also contains all the steps
As you can see below here is a snippet from the DataMashup file and in the content
highlighted below it is where it has a step called “Calculated Week of Month”
And here is the identical step in the Query Editor.
With the same syntax from the Query Editor.
It is important to note that you can actually copy the DataMashup file and send it to someone who is working with the same data, and get them to replace it with your copy. This will mean that they now have got all the Query Editor information in their
Power BI Desktop file.
The DataModel file is the file that actually stores all of your data in a highly compressed format.
Essentially this is your Power BI In-Memory Analysis Services model. As you can see below it has some detail information and then the stored data. This is where I think to myself a lot of the Power BI Magic happens because it is where the blazing fast query performance comes from.
The size of this file also is an indication of how much memory your Power BI Desktop file will consume.
As with my example the file size is 486KB, which once again shows how good the Vertipaq Compression Engine is.
If you are interested there is a great book which goes into much more details around the Vertipaq engine, in which you can read a snippet in terms of how the Vertipaq engine works here: The VertiPaq Engine in DAX
And I would suggest getting a copy of the book if you are interested in the finer details.
The DiagramState file appears to store the information for the Table and Matrix locations, but not for the Matrix Preview from what I can gather.
It would appear that the Metadata file contains all the names with regards to what you see when in the Report View.
As you can see below from my Metadata file I have highlighted the Table names in Green below. I have modified the source data so that it is easier to read.
And highlighted the Parameter Names in highlighted the Table names in GREY below.
Here is a list of my tables
Here is the list of my Parameters
SecurityBindings, Settings & Version Files
When I opened up the files SecuritySettings, Settings and Version they appeared to not have any meaningful content or details to talk about. Possibly someone else might have some input as to what these files are responsible for.
I do hope that having a look at the contents that make up the PBIX file has provided a bit more insight as to how a PBIX file works and pieces together.
NOTE: You can rename the file from a ZIP back to a PBIX to get back to your original file and open it again with Power BI Desktop.