- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
My business has had a massive data overhaul in the last 18 months, with all of it being supported by Power BI with SQL server backend. I wanted to detail here my experience with going from literally nothing, to full use of Power BI, what problems we encountered, and how PBI and the Community helped us to overcome them.
Power BI has completly changed the way in which the business views and accesses data. Power BI has truly changed our workplace for the better.
First, a bit of background details.
Me: I am a 33yr old SQL Server Data Architect, that spends my spare time watching videos of Power BI and SQL
Who I work for: A medium B2B wholesaler
Starting tech: 2 SQL servers (1 production, 1 reporting) with an ODS database, SSRS
Current tech: 2 SQL servers (1 production, 1 reporting)
50 Power BI Pro licences
SSRS
As you can see in terms of "up front cost" of the our reporting solution, its literally just Pro licences (and time).
Day 1 - It begins
I started with my employer 18th February 2018, by the end of my first week, the recommendation I handed to the Head of IT was simple. "Delete everything, start again".
Around 75% of all reporting was done from querying the live system, (on-prem Microsoft Dynamics), the other 25% was from a copy of the live database for day-1 reporting. We had data silos everywhere and nobody got the same number as the person next to them when reporting figures. This was accepted as business as usual. As long as the number was about what was expected, it was good enough. Which meant when the right figure was lower/higher, proving it was correct was a chore.
After putting forward my proposal for a data warehouse to be built I was given only 2 instructions:
- We had to use SQL Server. Great, that's my bread and butter.
- Power BI was the main reporting tool going forward, with SSRS as a subscription based reporting tool.
Number 2 was a little mild panic. I had only ever really glanced at Power BI and that was way back when it first got started and was, to be fair, lacking in some basic features.
Phase 1 - Everything is awesome
So I got to work, did my ETL processes using change tracking in SQL Server. Dimensioned up the data and by the end of it had produced a good snowflake schema'd data warehouse. The days were happy and joyous. SSRS gave me the ability to write some very good reports, but, I knew that Power BI was on the horizon. So I did what all developers do to start with, I made some mistakes, big ones.
Phase 2 - Mistakes have been made
Mistake 1 - Not building a proper model
Coming from SSRS, i thought, "hey lets just throw everything in here as one big table, it works for SSRS". I created a view in SQL server that gave me the current years sales, imported it, and tried to write reports of the back of that. This approach is very deceptive, because, it does work, kind of. When testing out this approach I did some basic SUMs, COUNTs etc and they all returned the numbers i was expecting.
The problem came later down the line when I needed to do things like time intelligence, slicers that had all dimension values even if there was no data for them.
***Enter stage right - community.powerbi.com***
It didn't take long to realise that every post I looked at mentioned the phrase "Data Model". This lead me to the conclusion that I was being stupid! My data is already prepared for data modeling just sitting there in SQL server. I could just bring those tables in and then jobs a good'n.
Once I had this realisation, modelling just became select table X and Y and Power BI linked them on its own because it reads the foreign key constraints from the DB.
Mistake 2 - Renaming columns, EVERY TIME
In my data warehouse all of my columns have nice developer friendly names like 'CustomerBusinessName', 'DayOfYear'. So I import these dimension tables and spend a good while going through and renaming my columns to more user friendly naming. Great, i have a working model, my new funky time intelligence functions work and champagne corks are flying.
***Enter - "The Users"***
It doesn't take long before the dreaded question comes your way. "It's good, but, I need to see......". **bleep**, that data doesn't fit into the model, its completely unrelated and doesn't belong.
No matter, I'll build another model for this one. That's when it dawned on me. I'm going to have to go through all my dimension tables and rename them all again. What if i name it different to the other one? Will it confuse the users?
My solution. SQL Views. Select from my dimension tables changing the column names (and adding any columns are that are to difficult in DAX at the time ).
So, now I have multiple models.......great, now what?
Phase 3 - "You can do better than that"
This is where the Power BI Service really kicks the competition to the curb. Realising that the reports I am now writing are literally just dragging and dropping fields onto a canvas, I decided to give control over to some "Power Users".
I started holding internal Power BI training sessions (ironic as my own skill was still very much beginner). We would go over quick measures, creating tables, charts, slicers, filters etc and then I would make a point of getting to the end of the training and saying "Notice i have spent the last hour using the mouse alone".
It surprised me more than the users at first. Everybody always talks about "Drag and Drop Reporting" and "Self-Service" but every implementation I had come across was still just a bit to, tecky.
The introduction of certified datasets meant I could let people connect to these datasets from outside of the workspace and create to their hearts content.
So, we now have centralised models, accessible by anybody in the business (with a licence), and 9 times out of 10 if 2 people write the same report, they come out with the same answer. With the 10th time being different filters. For some this is nivarna and the end of the story. I wanted more. By this point I was sold on Power BI and all the different things it could do and was researching everything I could find about it (shout out to Adam and Patrick @GuyInACube and Sam @EnterpriseDNA on youtube and on here, you guys have saved me more times than i can count).
Phase 4 - Now that's impressive
There were 2 main things that we as a business were not utilising (besides all the features that are locked behind premium). 1 was Dataflows, I'll hold my hands up here and say they still confuse me and i need to look into them again soon. The second was Dashboards.
When i originally looked at dashboards right back at the beginning I thought, "Why would you want the ability to take a tile out of context". Then, one night as I was watching a film on Netflix, as the main characters were talking about who killed the victim. I found myself looking at the TV screen behind the characters. It was showing a daily figures and graphs for this fictitious company. I thought, "That would be cool". Then i remembered the Power BI dashboards and started playing with those.
As a POC I built a quick dashboard that links to a streaming dataset (again @GuyInACube on youtube helped with this) that gets refreshed from Microsoft Flow every 5min with warehouse pick/pack stats.
Our Operations Manager was thrilled with the end product and is now being live updated on a 32" TV in his office. He doesn't have to go down into the warehouse just to gauge how busy the day is.
This then lead to the owner of the business wanting one similar. So that's what he got. A dashboard with 48 tiles that he views on his iPhone just by asking Siri to show him his "Magic numbers", a trick he loves to pull out to impress friends.
Long story short, (too late), we now have six 55" TVs around the business with departmental dashboards with a plan for a further four over the course of the year.
Conclusion
With Power BI we have manged to move our business from being a reactive workplace, to a proactive workplace.
We can now say that we truly have a self-serve, drag-and-drop reporting facility that is changing the way in which we work. Gone are the days where 1,000 line spreadsheets get e-mailed out every morning just so the first half of the day is spent analysing it row by row to find problems. The problems are now flagged and ready to be actioned before anybody has entered the building.
The Power BI apps on iPhone and Android have been brilliant for on the go, out of the office updates. Alerts for set conditions are great (although could use some work in how timely they are delivered on mobile devices) and help keep me updated when things are starting to go a bit pear shaped.
Dashboards have led to more transparency between departments. Workspace apps (especially with the new navigation layout) have given our business overview reports a very professional, high-end, feel to them. Certified datasets has enabled end users to get the right dataset for what they need.
All of this combined has created a workspace where people agree on the figures they present to each other and discuss their impact, not whether they are correct or not.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
- 🏆 Power BI DataViz World Championships | Week 2 F...
- 🏆 Power BI DataViz World Championships | Week 2 W...
- How to Append Queries in Power BI
- Basic Power BI accessibility is easier than you th...
- Microsoft Fabric: A Comprehensive Guide to Workspa...
- 🏆 Power BI DataViz World Championships | Week 3 C...
- Understanding TMDL in Power BI: A Game-Changer for...
- 🏆 Power BI DataViz World Championships | Week 1 F...
- 🏆 Power BI DataViz World Championships | Week 1 W...
- 🏆 Power BI DataViz Campeonato mundial! Semana 1!
-
Takami
on: Basic Power BI accessibility is easier than you th...
-
edchuy
on: 🏆 Power BI DataViz World Championships | Week 3 C...
- santhakumar1182 on: Understanding TMDL in Power BI: A Game-Changer for...
-
Pragati11 on: 🏆 Power BI DataViz World Championships | Week 1 W...
-
slindsay on: 🏆 Power BI DataViz World Championships | Week 2 C...
- Gokul_Saraboji on: Securing Data using Sensitivity Labels in Power BI
-
slindsay on: 🏆 Power BI Data Visualization World Championships...
-
slindsay on: 🏆 Power BI DataViz World Championships | Week 1 C...
- Jalə on: Developing an Azerbaijan Shape Map
-
ccarawan_1
on: Frequently Asked Questions | Power BI DataViz Worl...
-
How to
652 -
Tips & Tricks
620 -
Events
124 -
Support insights
121 -
Opinion
80 -
DAX
66 -
Power BI
65 -
Power Query
62 -
Power BI Dev Camp
45 -
Power BI Desktop
40 -
Roundup
37 -
Power BI Embedded
20 -
Time Intelligence
19 -
Tips&Tricks
18 -
Featured User Group Leader
15 -
PowerBI REST API
12 -
Dataflow
9 -
Power Query Tips & Tricks
8 -
finance
8 -
Power BI Service
8 -
Data Protection
7 -
Direct Query
7 -
Power BI REST API
6 -
Auto ML
6 -
financial reporting
6 -
Data Analysis
6 -
Power Automate
6 -
Data Visualization
6 -
Python
6 -
Machine Learning
5 -
Income Statement
5 -
Dax studio
5 -
powerbi
5 -
service
5 -
Power BI PowerShell
5 -
Bookmarks
4 -
Line chart
4 -
Group By
4 -
community
4 -
RLS
4 -
M language
4 -
Paginated Reports
4 -
External tool
4 -
Power BI Goals
4 -
PowerShell
4 -
Desktop
4 -
Data Science
3 -
Azure
3 -
Data model
3 -
Conditional Formatting
3 -
Visualisation
3 -
Administration
3 -
M code
3 -
Visuals
3 -
SQL Server 2017 Express Edition
3 -
R script
3 -
Aggregation
3 -
calendar
3 -
Gateways
3 -
R
3 -
M Query
3 -
Webinar
3 -
CALCULATE
3 -
R visual
3 -
Reports
3 -
PowerApps
3 -
Date
2 -
SharePoint
2 -
Power BI Installation and Updates
2 -
How Things Work
2 -
Tabular Editor
2 -
rank
2 -
ladataweb
2 -
Troubleshooting
2 -
Date DIFF
2 -
Transform data
2 -
Tips and Tricks
2 -
Incremental Refresh
2 -
Number Ranges
2 -
Query Plans
2 -
Power BI & Power Apps
2 -
Random numbers
2 -
Day of the Week
2 -
Custom Visual
2 -
VLOOKUP
2 -
pivot
2 -
calculated column
2 -
M
2 -
hierarchies
2 -
Power BI Anniversary
2 -
Language M
2 -
inexact
2 -
Date Comparison
2 -
Power BI Premium Per user
2 -
Forecasting
2 -
REST API
2 -
Editor
2 -
Split
2 -
Life Sciences
2 -
measure
2 -
Microsoft-flow
2 -
Paginated Report Builder
2 -
Working with Non Standatd Periods
2 -
powerbi.tips
2 -
Custom function
2 -
Reverse
2 -
PUG
2 -
Custom Measures
2 -
Filtering
2 -
Row and column conversion
2 -
Python script
2 -
Nulls
2 -
DVW Analytics
2 -
parameter
2 -
Industrial App Store
2 -
Week
2 -
Date duration
2 -
Formatting
2 -
Weekday Calendar
2 -
Support insights.
2 -
construct list
2 -
slicers
2 -
SAP
2 -
Power Platform
2 -
Workday
2 -
external tools
2 -
index
2 -
RANKX
2 -
PBI Desktop
2 -
Date Dimension
2 -
Integer
2 -
Visualization
2 -
Power BI Challenge
2 -
Query Parameter
2 -
Report Server
1 -
Audit Logs
1 -
analytics pane
1 -
step by step
1 -
Top Brand Color on Map
1 -
Tutorial
1 -
Previous Date
1 -
XMLA End point
1 -
color reference
1 -
Date Time
1 -
Marker
1 -
Lineage
1 -
CSV file
1 -
conditional accumulative
1 -
Matrix Subtotal
1 -
Check
1 -
null value
1 -
Excel
1 -
Cumulative Totals
1 -
Report Theme
1 -
Bookmarking
1 -
oracle
1 -
mahak
1 -
pandas
1 -
Networkdays
1 -
Button
1 -
Dataset list
1 -
Keyboard Shortcuts
1 -
Fill Function
1 -
LOOKUPVALUE()
1 -
Tips &Tricks
1 -
Plotly package
1 -
Healthcare
1 -
Sameperiodlastyear
1 -
Office Theme
1 -
matrix
1 -
bar chart
1 -
Measures
1 -
powerbi argentina
1 -
Canvas Apps
1 -
total
1 -
Filter context
1 -
Difference between two dates
1 -
get data
1 -
OSI
1 -
Query format convert
1 -
ETL
1 -
Json files
1 -
Merge Rows
1 -
CONCATENATEX()
1 -
take over Datasets;
1 -
Networkdays.Intl
1 -
refresh M language Python script Support Insights
1 -
Governance
1 -
Fun
1 -
Power BI gateway
1 -
gateway
1 -
Elementary
1 -
Custom filters
1 -
Vertipaq Analyzer
1 -
powerbi cordoba
1 -
Model Driven Apps
1 -
REMOVEFILTERS
1 -
XMLA endpoint
1 -
translations
1 -
OSI pi
1 -
Parquet
1 -
Change rows to columns
1 -
remove spaces
1 -
Get row and column totals
1 -
Retail
1 -
Power BI Report Server
1 -
School
1 -
Cost-Benefit Analysis
1 -
DIisconnected Tables
1 -
Sandbox
1 -
Honeywell
1 -
Combine queries
1 -
X axis at different granularity
1 -
ADLS
1 -
Primary Key
1 -
Microsoft 365 usage analytics data
1 -
Randomly filter
1 -
Week of the Day
1 -
Azure AAD
1 -
query
1 -
Dynamic Visuals
1 -
KPI
1 -
Intro
1 -
Icons
1 -
ISV
1 -
Ties
1 -
unpivot
1 -
Practice Model
1 -
Continuous streak
1 -
ProcessVue
1 -
Create function
1 -
Table.Schema
1 -
Acknowledging
1 -
Postman
1 -
Text.ContainsAny
1 -
Power BI Show
1 -
Get latest sign-in data for each user
1 -
API
1 -
Kingsley
1 -
Merge
1 -
variable
1 -
Issues
1 -
function
1 -
stacked column chart
1 -
ho
1 -
ABB
1 -
KNN algorithm
1 -
List.Zip
1 -
optimization
1 -
Artificial Intelligence
1 -
Map Visual
1 -
Text.ContainsAll
1 -
Tuesday
1 -
help
1 -
group
1 -
Scorecard
1 -
Json
1 -
Tops
1 -
financial reporting hierarchies RLS
1 -
Featured Data Stories
1 -
MQTT
1 -
Custom Periods
1 -
Partial group
1 -
Reduce Size
1 -
FBL3N
1 -
Wednesday
1 -
Power Pivot
1 -
Quick Tips
1 -
data
1 -
PBIRS
1 -
Usage Metrics in Power BI
1 -
Multivalued column
1 -
Pipeline
1 -
Path
1 -
Yokogawa
1 -
Dynamic calculation
1 -
Data Wrangling
1 -
native folded query
1 -
transform table
1 -
UX
1 -
Cell content
1 -
General Ledger
1 -
Thursday
1 -
Table
1 -
Natural Query Language
1 -
Infographic
1 -
automation
1 -
Prediction
1 -
newworkspacepowerbi
1 -
Performance KPIs
1 -
HR Analytics
1 -
keepfilters
1 -
Connect Data
1 -
Financial Year
1 -
Schneider
1 -
dynamically delete records
1 -
Copy Measures
1 -
Friday
1 -
Q&A
1 -
Event
1 -
Custom Visuals
1 -
Free vs Pro
1 -
Format
1 -
Active Employee
1 -
Custom Date Range on Date Slicer
1 -
refresh error
1 -
PAS
1 -
certain duration
1 -
DA-100
1 -
bulk renaming of columns
1 -
Single Date Picker
1 -
Monday
1 -
PCS
1 -
Saturday
1 -
update
1 -
Slicer
1 -
Visual
1 -
forecast
1 -
Regression
1 -
CICD
1 -
Current Employees
1 -
date hierarchy
1 -
relationship
1 -
SIEMENS
1 -
Multiple Currency
1 -
Power BI Premium
1 -
On-premises data gateway
1 -
Binary
1 -
Power BI Connector for SAP
1 -
Sunday
1 -
Training
1 -
Announcement
1 -
Features
1 -
domain
1 -
pbiviz
1 -
sport statistics
1 -
Intelligent Plant
1 -
Circular dependency
1 -
GE
1 -
Exchange rate
1 -
Dendrogram
1 -
range of values
1 -
activity log
1 -
Decimal
1 -
Charticulator Challenge
1 -
Field parameters
1 -
deployment
1 -
ssrs traffic light indicators
1 -
SQL
1 -
trick
1 -
Scripts
1 -
Color Map
1 -
Industrial
1 -
Weekday
1 -
Working Date
1 -
Space Issue
1 -
Emerson
1 -
Date Table
1 -
Cluster Analysis
1 -
Stacked Area Chart
1 -
union tables
1 -
Number
1 -
Start of Week
1 -
Tips& Tricks
1 -
Workspace
1 -
Theme Colours
1 -
Text
1 -
Flow
1 -
Publish to Web
1 -
Extract
1 -
Topper Color On Map
1 -
Historians
1 -
context transition
1 -
Custom textbox
1 -
OPC
1 -
Zabbix
1 -
Label: DAX
1 -
Business Analysis
1 -
Supporting Insight
1 -
rank value
1 -
Synapse
1 -
End of Week
1 -
Tips&Trick
1 -
Showcase
1 -
custom connector
1 -
Waterfall Chart
1 -
Power BI On-Premise Data Gateway
1 -
patch
1 -
Top Category Color
1 -
A&E data
1 -
Previous Order
1 -
Substring
1 -
Wonderware
1 -
Power M
1 -
Format DAX
1 -
Custom functions
1 -
accumulative
1 -
DAX&Power Query
1 -
Premium Per User
1 -
GENERATESERIES
1