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?

Report Folder

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 defaultPage 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.

[Content_Types].xml File

This XML file contains all the content within the PBIX file

DataMashup 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.

DataModel 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.

DiagramState File

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.

BI-NSIGHT – Power BI (Meet 1:1 with Microsoft Expert – May & June Webinars, Sample files as PBIX, Quick Measures Gallery, Mobile App Update – April)

Here are this week’s updates, with May starting next week I am looking forward to some interesting updates with regards to Power BI.

Power BI – Meet 1:1 with Microsoft Expert

If you are attending the Microsoft Data Insights Summit you now have the opportunity to have a 1:1 session with a Microsoft Engineer for 15 minutes. If I was attending this is something that I would have already signed up to before blogging.

You can find the details here: Meet 1:1 with a Microsoft expert at Microsoft Data Insights Summit – book your appointment today!

Power BI – May & June Webinars

As you can see below here are the May & June Power BI Webinars

You can find all the details for the Webinars here: May and June Webinars: Power BI Security, Best Practices from the Microsoft Operations Team, Power BI Embedded, Marco Russo on Design and more!

Power BI – Download Samples as PBIX Files

I have to say that in the past when I was using the Power BI Sample data, I did wonder why there were not any sample PBIX files.

Now they have created and enabled the downloading of the PBIX files in the link below.

The Power BI samples as .pbix files

Power BI – Quick Measures Gallery

After the success and implementation of the Quick Measures in Power BI Desktop there now is the Quick Measures Gallery.

In this gallery you can now submit what you would like to see added to the future Quick Measures in Power BI. I think that this is a great initiative, because it not only allows people to have their own measures featured in the Power BI Desktop, but it also allows people to view the Gallery, view the measures and use them for their own requirements.

You can find the blog post here: Introducing the Quick Measures Gallery

Power BI – Mobile App Update April

In this month’s Mobile App update they have released to all the platforms the capability to be able to have the background colour. As well as a lot of bug improvements and performance fixes.

Also in the blog post they did mention the option to develop custom visuals for Mobile phones. Which I thought was quite interesting.

You can view the blog post here: Power BI Mobile apps feature summary – April 2017

Power BI – On-Premise Gateway Configuration steps to an Oracle Database

I was recently working in an environment where the requirement was to connect to an Oracle database using the On-Premise Gateway, so that we could either DirectQuery or import the data and then refresh it using the On-Premise Gateway. So the steps below detail how to complete this successfully.

The example below was connecting to an Oracle databased called TRID

Downloading and installing Oracle Data Access Components (ODAC)

The installation of the ODAC is fairly straight forward and already has been very well documented in the Power BI website.

You can view the link below in order to download and install the correct ODAC version for your Power BI Desktop Installation.

Connect to an Oracle database

NOTE: Part of the installation is that you will need to setup and configure your tnsnames.ora file in order to successfully connect to the Oracle Database.

Configuration of tnsnames.ora

These steps below were configured by the Oracle DBA where I am currently working, I thought I would highlight what needs to be configured below in order to successfully connect to the Oracle Database.

I found this out when trying to connect to the Oracle database and it appears that this is what is required to ensure that I could connect successfully.

Below is a working version of my tnsnames.ora file


The important things that I needed to have configured were the following:

  • The first part is the name which is highlighted in GREEN above with my server called TRID
  • The other important part is to ensure that you have got the SERVICE_NAME
    configured and resolves back to the actual server with the Fully Qualified Domain Name (FQDN) highlighted in PURPLE.
    • As with my above example this was SERVICE_NAME=trid.domain.com.au

Setting the connection to the Oracle database in Power BI Desktop

The next step was for me to set up or create the connection to my Oracle Database.

NOTE: In my example below we connected using a database user and password and not integrated Windows Authentication.

  • I clicked on Get Data and then selected Oracle database
  • Then I clicked Connect.
  • NOTE: In my instance I got the following window shown, which explains that I have an older version of ODAC, I clicked Ok to continue
  • On the Oracle database window it now prompted me for the Server and if I am going to use the Import or DirectQuery Data Connectivity mode, as well as additional advanced options.
    • In my example I simply put in the Server Name and left it defaulted to Import
    • I then clicked Ok
  • The first time I connected it prompted me for the Security Connection details.
    • As mentioned before I used the Database security connection details
    • I then clicked Connect.
  • This then brought up the Navigator, which from then I could then connect to my required tables.
  • And then loaded the data into my data model and completed my Power BI Desktop File.
  • Once I had completed my Power BI Desktop file I then uploaded it into the Power BI Service.

Configuration of the Power BI Service Gateway

In the steps below I now will show how I created and configured the Gateway to connect to the Oracle database.

NOTE: I had already installed and configured the On-Premise Gateway within the domain I am working in. You can reference this installation guide: On-premises data gateway

  • I logged into the Power BI Service and then clicked on Manage Gateways
  • I then clicked on Add Data Source
  • Now this is one of the MOST IMPORTANT configuration steps when I was configuring the Data Source Name
    • This Data Source Name MUST be identical to the Server Name I created in my Power BI Desktop File Data Source Connection.
    • As I did previously I used the Oracle Server name TRID
    • So now when I created my new Data Source I configured it with the following below, again NOTING that the Data Source Name is identical to my Power BI Desktop File Server Name as highlighted below.
    • Then I clicked Apply.
    • And as you can see above it says Connection Successful which means that my Gateway successfully connected to the Oracle database.
  • The final step that I did was to give the required users access to the Gateway
    • NOTE: You must add the users in here that you want to be able to connect to the Gateway Data Source and configure the data refresh.

Configuring the dataset to use the Gateway connection

The final step that I had to complete was to configure my dataset to use the Gateway connection.

  • I went into the Power BI Service.
  • Then clicked on Settings and selected Settings
  • Then I clicked on Datasets
  • I then went to my dataset that I had previously uploaded, where I wanted to connect to it using the Gateway connection.
    • I then expanded the Gateway connection
    • Now I had the option to Use a data gateway
    • And in here I selected my Gateway that I had previously configured.
    • I then clicked Apply.
  • Then the final step was to test that it was all working and I did this by going into the Datasets and clicking Refresh now
  • Once that had completed I went back into Settings, then Datasets and clicked on my dataset.
    • Then at the top I clicked on Refresh History
    • And then I could view that my refresh completed successfully.

This will hopefully guide you to get your Oracle connected with the On-Premise Gateway.

Another quick note is that the steps when connecting to a SQL Server are very similar, especially the steps in the Power BI Service.

Any comments or suggestions are welcome and please leave them in the section below.

BI-NSIGHT – Power BI (Community Blog Highlights – Power BI Germany – Latest Updates for Power BI Desktop – How Microsoft uses Power BI to run its Cloud Business – Connecting Datasets to Power BI Service) – SQL Saturday Brisbane (I’m presenting) – SQL Server (SQL Server 2017 – DAX Editor for SSDT – New Get Data Experience for SSDT)

I thought that this might be a quieter week, but once again there are a whole host of updates from Power BI updates, to SQL Server 2017 announcements. Quite a bit to read through so I hope you enjoy it.

Power BI – Community Blog Highlights

I actively participate in the Power BI Community, as well as when I feel like I have something meaningful that will also contribute to the Power BI Community get it published onto the Power BI Community Blog. And in this month’s highlights I am thrilled to have my latest blog post as part of the highlight.

The other posts are below:

Power BI – Infographic for Power BI from an end to end perspective, by Gilbert Quevauvilliers

Design Pattern – Groups and Super Groups!, by Greg Deckler

Get Your Own Power Query Editor using Notepad++, by Lars Schreiber

What I Learnt Building Power BI Custom Visuals, by Chamara Ranasinghe

A Simple and Fun Guide to Microsoft Flow and Power BI, by Ruth Pozuelo

The Ultimate Waterfall Chart , by Klaus Birringer

Power BI – Germany

I know from personal experience that having your data reside in the same country you are working from means a much easier and broader adoption of Power BI. Now for people living in Germany they are able to fully comply with all the requirements in terms of having data hosted within Power BI.

As a side note I also saw that Microsoft is the first company to offer a data centre in South Korea which is great to see.

You can find the blog post details here: Experience your data with Power BI Germany and meet your compliance and regulatory needs

Power BI – Latest Updates for Power BI Desktop

I recently came across this link below, which always will point to the latest details with regards to the Power BI Desktop.

I would suggest bookmarking this page, to ensure you always have the latest information available.


Power BI – How Microsoft uses Power BI to run its Cloud Business

This is a really interesting blog post where they details how Microsoft uses Power BI to monitor Power BI as well as all the other BI components that fall under James Phillips. What amazes me is that for each of the KPIs shown in the screen there is a General Manager responsible for that particular product.

What this also shows is how to build an effective KPI dashboard which is easy to view and know when something is not going as it should.

You can find the interesting read here: How Microsoft uses Power BI to run its growing cloud business

Power BI – Connecting to the dataset in the Power BI Service

In this blog post from the Power BI team they go into some details around how and why you would want to use the Power BI Dataset in the Power BI Service.

One thing that I found interesting and I guess I had never thought of is that you can now connect to ANY dataset that has been published to the Power BI Service. This includes datasets from Curated Content Packs which makes the development experience that much easier.

You can find the details here: Connecting to datasets in the Power BI service from Desktop

SQL Saturday Brisbane – I’m Presenting on Power BI Real World Tips and Tricks

I am so excited that I will presenting for the first time at SQL Saturday Brisbane on Saturday 27 May 2017.

The session details are Power BI Real world tips and tricks. Below is the session excerpt:

Out in the real world, people are starting to use Power BI to gain insights into their data that were previously never seen. With Gilbert currently working full time in Power BI projects, he has first hand experience on how to leverage Power BI in work place.

By providing real world, real working examples I plan to show how some simple tips and tricks can make their reports and dashboards amazing and insightful. This will be an interactive and demo rich presentation.

The real world tips will cover the following sections of Power BI:

  • Query Editor
  • DAX
  • Visuals
  • Power BI Service

You can register for SQL Saturday here: SQL Saturday Brisbane – 27 May 2017

SQL Server – SQL Server 2017

I personally think that with the release date of SQL Server 2017, that Microsoft is looking to continue what it has been doing with the combination of experience with Power BI and deploying updates to Azure SQL Server.

This is allowing them to deploy and implement changes to SQL Server in at a faster pace. I do also personally think that with the deployment and testing with Azure, they can test real world scenario’s with a diverse environment to make sure that it works as expected. This allows them to then take all these learnings and put it into an On-Premise Solution.

You can find the details here: SQL Server 2017

SQL Server – DAX Editor for SSDT

It was just a matter of time before the DAX editor became part of SSDT (SQL Server Data Tools) and now it is finally here.

This will no doubt make the creation and editing of measures and calculated columns a lot easier and quicker to develop.

They are planning to have Intellisense as well as Code Formatting in future releases

You can find the details here: Introducing a DAX Editor Tool Window for SSDT Tabular

SQL Server – What’s new in SQL Server 2017 for Analysis Services

As you can see above there have been a whole host of enhancements for Analysis Services in SQL Server 2017.

The new Object-Level Security to secure more data looks really interesting in that you can now also secure it on a column level. As well as performance improvements for the developer experience, which I personally know in the past at times was particularly slow.

Along with improvements to the DMV’s, similar Date Hierarchy implementations that are currently in Power BI.

As well as other improvements you can read about here: What’s new in SQL Server 2017 CTP 2.0 for Analysis Services

Server – New Get Data Experience

With the new release of SSDT they have updated the Get Data Experience for SSAS models with level 1400.

It appears that they are looking to align with what is currently being implemented in Power BI, which is fantastic to see because it will mean a more consistent developer experience.

They are continuing to add more data sources with each release.

You can find all the details here: New Get Data Capabilities in the GA Release of SSDT Tabular 17.0 (April 2017)

Power BI Dataset tips and potential pitfalls

There has been a lot of hype around the new feature in the Power BI Service where you can connect directly to the Dataset in the Power BI Service

There have also been quite a few blog posts on how to connect and leverage the datasets in the Power BI Service, what I am going to focus on is around the tips and potential pitfalls to be aware of when using the dataset in the Power BI Service, which could make this experience as efficient and beneficial as possible.

Quick Overview of the Power BI Dataset

In my opinion the Power BI Dataset is very similar to SQL Server Analysis Services Tabular Models. Which I have been fortunate to having worked with the Tabular Models for quite some time.

This is due to the fact that you first have to first plan and look at all the requirements
before building your Tabular Model or in this instance the Power BI Dataset.

Without having a solid plan in terms of your fact tables, dimension tables, column names, measure names, hierarchies this could result in having to change the Dataset, which in turn could lead to reports failing or ceasing to operate due to changes being made.

Tip – Changing dataset columns or measures

One of the biggest things that I experienced in the past was when there was a change to the dataset columns or measures. This would result in the report failing to load or the particular visual failing to load.

In the steps below I will show what this looks like when it fails and then how to resolve the issue.

What happens when the dataset column or measure changes

What I have done is uploaded a Power BI Desktop file to the Power BI Service and gave it the name of DATASET – Data Gateway Refresh. This is so that I know that this is my Dataset that I want to connect to and work with.

I have then connected a new Power BI Desktop file to my Power BI Dataset to DATASET – Data Gateway Refresh as shown below.

I then created a simple report and uploaded it into the Power BI Service as shown below called Data Gateway Report

As you can see from above I have used a measure called [Total Value] and a column from my Date table called “Calendar Year“. As well as the overall Total Value which also uses the [Total Value] measure.

Now as explained previously if I was required to change the measure from [Total Value] to [Total] and I did this in my Power BI Dataset Model and upload the changes to the Power BI Service.

So in my Power BI Dataset Model I changed the following as shown below:

To the new measure called [Total]

I then uploaded this to the Power BI Service. I did get prompted to replace the existing dataset to which I clicked in Replace.

I then went into my report previously created Data Gateway Report from the DATASET – Data Gateway Refresh, and clicked on Refresh, and what I got was shown below.

When I clicked on See details I got the following as shown below.

The error description I must say is a lot better than it used to be in the SSAS Tabular Models. As you can see from above it is referring to a field that needs to be fixed. Along with that it is giving you the field name that it no longer can find. And with my example this is called [Total Value].

How to resolve or fix a column or measure name change

The first option to resolve this issue is I went back to my Power BI Dataset and renamed the measure or column to what it previously was.

As with our example I then go back to my Power BI Desktop file where I have the dataset and rename it back from [Total] to [Total Value].

I then re-published the dataset to the Power BI Service.

I then once again go back to my report previously created Data Gateway Report from the DATASET – Data Gateway Refresh, and clicked on Refresh, and what I got was shown below.

This is by far the quickest and easiest way to resolve the issue.

The second and more timely and longer solution is if for some reason you must keep the new measure or column name (could be something as simple as a typo) then what you will have to do is to then re-create the reports again. This can be rather time consuming but I have experienced this in the past and have had to rebuild the reports.

Pitfall – Deleting dataset

A potential pitfall is if I decided for some reason that I needed to delete the dataset. Possibly because there is a requirement for it to be renamed something else, or for some other valid reason.

The pitfall is what when I deleted the associated dataset it not only deletes that dataset, but also the existing reports and dashboard tiles that are connected to that dataset.

As with my example, below you can see the existing Dataset and the report that it connects to using the new feature in the Power BI Service called View Related, which shows us all the related content to the DATASET – Data Gateway Refresh

Now when I go and delete the Power BI Dataset called DATASET – Data Gateway Refresh, I do get prompted with the following shown below.

I have highlighted that it does indicate that it will delete all reports and dashboard tiles.

Once I have clicked Delete, not only does it delete the dataset but also my report previously created call “Data Gateway Report”

How to resolve a deleted Dataset

This could result in a potential issue where users of the existing report can no longer access or view the report. A workaround that I would do is to re-upload the dataset, as well as I would re-upload the Power BI Desktop file which contained the report that connected to the dataset. (As there should always be the original Power BI Desktop file for the Dataset and the Report)


Whilst the new Power BI Service dataset is a great new feature. As well as improve over time. It is also important to know what tips and pitfalls could make this experience as efficient and beneficial as possible.

I would be interested to hear if anyone else has any tips or pitfalls when using the Power BI Datasets?

BI-NSIGHT – Power BI (Service March Update – New Navigation Experience, Desktop Terms & Definitions – Whitepapers) – BI Survey (BARC BI Survey 2017) – Excel – (Get & Transform Updates for April 2017)

There has been a variety of updates and blog posts in the past week, so here are my BI updates.

Power BI – Service March Update

There were quite a few service updates for March within the Power BI Service.

The first was the granular controls which was a very welcome feature. And I know that something that a lot of companies have been asking for. (As well as where I am currently consulting)

Another great new feature was the capability to view related content. This gives the user the ability to see how their content is related, as well as to quickly go into additional items from the view related content.

There was also an improvement for the troubleshooting for DAX queries, which helps with the diagnosis of errors or issues.

Then there was the custom scheduled cache refresh which is really handy in terms of how to handle this for DirectQuery sources.

As well as the ability for Amazon Redshift, and finally the move of the Custom Visuals into the Office Store.

You can find the blog post here: Power BI Service March Feature Summary

Power BI – New Navigation Experience

I have enabled the preview features on Power BI for quite some time, and I have to say with each iteration it has gotten easier and better. The new navigation experience is awesome. And makes interacting with Power BI in the service a lot easier. This is especially true when you start to have multiple workspaces, compounded with multiple dashboards, reports, workbooks and datasets.

This new navigation experience makes it a lot simpler to use and navigate.

You can find the blog post details here: Get ready for the new Power BI navigation experience

Power BI – Desktop Terms & Definitions

There is a really insightful blog post by Sam Lester from Microsoft where he goes into the terms and definitions when using Power BI Desktop.

If someone new is starting out in Power BI and using the Power BI Desktop this is a great place to start.

You can find Sam’s blog post here: Power BI Desktop – Terms and Definitions

Power BI – Whitepapers

There is now a central location for all the related whitepapers for Power BI.

This will be really handy because it will be easy to reference this for customers and clients going forward.

As well as I enjoy reading and learning from released whitepapers, so this means that I now have a central location for some great reading material.

Here is the link to where you can find the whitepapers: Whitepapers for Power BI

BI Survey

Every year I have been working in the Business Intelligence space I have been participating in the BARC BI Survey, and due to being a participant I get a copy of the results once completed. I find this invaluable to see what is happening in the BI space.

If you are interested please follow the link to complete the survey: BARC BI SURVEY 2017

Excel – Get & Transform Updates for April 2017

It is great to see the changes and updates that are made to Power BI filter down into the Excel Get & Transform.

In the April update they have included the following updates:

  • Support for the same file extensions in Text and CSV connectors.
  • ODBC and OLE DB connectors—support for Select Related Tables
  • Enhanced Folder connector—support for Combine Binaries from the Data Preview dialog
  • New Change Type Using Locale option in Column Type drop-down menu inside Query Editor
  • New Insert Step After option in the Steps pane inside Query Editor

You can read up about it here: April 2017 updates for Get & Transform in Excel 2016 and the Power Query add-in

Power BI – Free vs Pro Infographic

I have been active on the Power BI Community Page for quite some time, and what I have often seen is people not quite sure what options are free and what options require a Pro license.

So here is my infographic in which I have put down which options are free and which options will require a Pro license.

I am hopeful that people will find this useful in understanding which options are free and which options require a Pro license.

If I have left anything out, or something is wrong please let me know and I will update it.

As well as I will keep this infographic up to date as there no doubt will be some additions to the Power BI Service.

















You can access the images from the following link: Power BI Free vs Pro Infographic – Latest Version