In my experience working in IT industry from early 2000 one aspect of dealing with data that is always taken very seriously is data governance.
For many years the industry learnt how important it is to have a data governance process in place to keep your data safe and healthy so you get the most out of your data. Power BI is no different to any other data platforms, so data governance is an important part of it. However, the concept of self-service data management which offers all the beauties and power an agile approach caused some organisations not to think about their governance approach from the outset.
On the other hand, some people find governance as a burden which slows down the adoption. Some people think even worse, they think governance is a stopper which puts a lot of unnecessary restrictions in place which decreases efficiency.
But in reality if you start data governance planning sooner than later you can protect your organisation from a lot of risks down the road which can get really nasty and costly like:
Risk of law suits due to data leakage and privacy issues
Untrusted data analysis and reporting due to poor quality of data
Poor performing solution due to lack of auditing
Inefficient development outcomes due to undefined environments
Power BI is taking off, and it’s fast becoming the most popular business intelligence platform on the market. It’s easy to engage with and get professional results quickly, making it the perfect tool for organisations looking to beef up their BI prowess and make data driven decisions through-out the organisation.
In this post we’re going to look at three good practices for implementation and give you the tips you need to make sure you avoid common pitfalls so you are on the fast track to success with Power BI on your organisation.
1. Setup multiple environments
When working on a Power BI implementation project, it’s wise to have multiple environments to manage the lifecycle of your BI assets. Below we’ve listed several environments that should be considered depending on the complexity of the project and your organisation’s needs.
Development (aka Dev)
Being able to keep on top of the many reports you’re testing, and having the ability to track changes that occur, is essential as you get setup. Without a specific Dev environment, your production environment will quickly become overwhelmed with assets, making it hard to maintain and manage.
When working in the dev environment, make sure that you have data sources specifically for development. We’ve seen production data used in dev on many occasions which can lead to serious privacy and data sovereignty issues. Your dev data sources shouldn’t contain sensitive data.
These development environments can be on your local network or in cloud storage (like OneDrive for Business or GitHub). It is recommended to have separate Workspaces in Power BI Service for each environment.
Tip: The data sources of all published reports to Power BI Service must be sufficient for development use only and should avoid including confidential data.
User Acceptance Testing (aka UAT)
The people who will be using the reports daily are the ones who should be testing them – they know the business best, and will be able to identify opportunities and gaps that the development team may not be able to identify themselves. By making sure the user is brought into the process early on, it maximises the value added to the business.
User acceptance testing is the last phase of testing. The UAT environment should only be created once the solution has been fully tested in Dev and approved by senior Power BI developers.
I was working on a project a wee bit ago that the customer had conditional formatting requirement on a Column Chart. They wanted to format the columns in the chart conditionally based on the average value based on the level of hierarchy you are at. Here is the scenario, I have a Calendar hierarchy as below:
Now I activate “Average Line” from “Analytics” tab of the Line chart.
When I drill down in the line chart the Average line shows the average of that particular hierarchy level that I am in. This is quite cool that I get the average base on the level that I’m in code free.
Now, the requirement is to show the above behaviour in a “Column Chart” (yes! visualising time series with column chart, that’s what the customer wants) and highlight the columns with values below average amount in Orange and leave the rest in default theme colour.
So, I need to create Measures to conditionally format the column chart. I also need to add a bit of intelligent in the measures to:
Detect which hierarchy level I am in
Calculate the average of sales for that particular hierarchy level
Change the colour of the columns that are below the average amount
Let’s get it done!
Detecting Hierarchy Level with ISINSCOPE() DAX Function
So I try to keep it as simple as possible. Here is how is works, the ISINSCOPE() function returns “True” when a specified column is in a level of a hierarchy. As stated earlier, we have a “Calendar Hierarchy” including the following 5 levels:
So, to determine if we are in each of the above hierarchy levels we just need to create DAX measures like below:
ISINSCOPE Year = ISINSCOPE('Date'[Year])
ISINSCOPE Semester = ISINSCOPE('Date'[Semester])
ISINSCOPE Quarter = ISINSCOPE('Date'[Quarter])
ISINSCOPE Month = ISINSCOPE('Date'[Month])
ISINSCOPE Day = ISINSCOPE('Date'[Day])
Now let’s do an easy experiment.
Put a Matrix on the canvas
Put the “Calendar Hierarchy” to “Rows”
Put the above measures in “Values”
As you see the “ISINSCOPE Year” shows “True” for the “Year” level. Let’s expand to the to the next level and see how the other measures work:
When you create a report it’s highly likely that you’d like to copy other visuals’ formats from an already formatted visual using “Format Painter” tool in Power BI. Perhaps you already used this awesome tool available in Power BI Desktop.
As you see in the tooltip shown while hovering over the “Format Painter” tool you can simply copy formats from an already formatted visual to another visual. But what if you have a lot of similar visuals to be formatted (painted) like shown in the below screenshot that I have several card visuals on top of my page. One of them is formatted as desired but the rest must still be formatted.
It would be good if I could paint all of them in one go right? So continue reading to see how we can do that.