Power BI PDF
Power BI PDF
Power BI Desktop
Overview
What is Power BI Desktop?
Quickstarts
Connect to data
Tutorials
Shape and combine multiple data sources
Importing and analyzing data from a Web Page using Power BI Desktop
Analyzing sales data from Excel and an OData feed
Create your own measures in Power BI Desktop
Create calculated columns in Power BI Desktop
Facebook analytics using Power BI Desktop
Dynamic row level security with Analysis Services tabular model
Samples
Samples for Power BI
Using the sample content packs
Customer Profitability sample: Take a tour
IT Spend Analysis sample: Take a tour
Human Resources sample: Take a tour
Opportunity Analysis sample: Take a tour
Procurement Analysis sample: Take a tour
Retail Analysis sample: Take a tour
Sales and Marketing sample: Take a tour
Supplier Quality Analysis sample: Take a tour
Download the Financial Sample workbook
Concepts
What's new in the latest Power BI Desktop update?
Modeling view in Power BI Desktop (Preview)
Aggregations in Power BI Desktop (Preview)
Composite models in Power BI Desktop
Many-to-many relationships in Power BI Desktop (Preview)
Storage mode in Power BI Desktop (Preview)
Bidirectional cross-filtering in Power BI Desktop
Power BI and DirectQuery
Data sources supported by DirectQuery
Power BI data source prerequisites
Default member in multidimensional models in Power BI
Custom visuals FAQ
How to
Get Power BI Desktop
Getting started guide for Power BI Desktop
Common query tasks in Power BI Desktop
Create and manage relationships in Power BI Desktop
Data view in Power BI Desktop
Query overview in Power BI Desktop
DAX basics in Power BI Desktop
Relationship view in Power BI Desktop
Report view in Power BI Desktop
Connect to multiple data sources in Power BI Desktop
Publish from Power BI Desktop
Part I, Add visualizations to a Power BI report
Part 2, Add visualizations to a Power BI report
Customize visualization title, background, and legend
Show items with no data in Power BI
Connect to data
Data sources in Power BI Desktop
Connect to a Web page by example (preview)
Connect to datasets in the Power BI service
Import Excel workbooks into Power BI Desktop
Connect to data using generic interfaces
Connect to a PDF file
Connect to Adobe Analytics
Connect to an Oracle database
Running Python scripts in Power BI Desktop
Using Python in Power Query Editor
Use an external Python IDE with Power BI
Create Power BI visuals using Python
Running R scripts in Power BI Desktop
Using R in Query Editor
Use an external R IDE with Power BI
Supported R packages
Enter data directly into Power BI Desktop
Connect to Excel in Power BI Desktop
Analysis Services multidimensional data in Power BI Desktop
Connect to CSV files in Power BI Desktop
Connect to a Google BigQuery database in Power BI Desktop
Connect to an Impala database in Power BI Desktop
Connect to an OData feed in Power BI Desktop
Connect to an Amazon Redshift database in Power BI Desktop
Connect to a Web page from Power BI Desktop
Connect to a Snowflake computing warehouse in Power BI Desktop
Connect to Azure Consumption Insights data
Use SAP HANA in Power BI Desktop
Analysis Services tabular data in Power BI Desktop
Use DirectQuery in Power BI Desktop
DirectQuery for Oracle and Teradata databases
DirectQuery and SAP Business Warehouse (BW)
DirectQuery and SAP HANA
Assume referential integrity setting in Power BI Desktop
Use the SAP BW connector in Power BI Desktop (Preview)
Use OneDrive for Business links in Power BI Desktop
Third-party service: Facebook connector for Power BI Desktop
Third-party service: Google Analytics connector for Power BI Desktop
Project Online: connect to data through Power BI Desktop
Transform and shape data
Use Shape Maps in Power BI Desktop (Preview)
Combine binaries
Model your data
Data categorization in Power BI Desktop
Tag a barcode field for the mobile apps
Set geographic filtering for the mobile apps
Calculated columns in Power BI Desktop
Calculated tables in Power BI Desktop
Measures in Power BI Desktop
Edit Q&A linguistic schema
Import and display KPIs (Preview)
Create reports
Visual elements for reports
Create tooltips based on report pages
Export to PDF and print reports
Q&A in Power BI Desktop
Analytics pane in Power BI Desktop
Using insights to explain increases and decreases
Using insights to find where distribution is different in charts
Bookmarks in Power BI
Use Report themes
Try the new filter experience
Use Quick Measures
Using What if parameters
Use drillthrough
Use a relative date slicer and filter
Use grouping and binning
Create Power BI visuals using R
Use R-powered custom visuals
Use gridlines and snap-to-grid
Page display settings in a Power BI report
Add a column from an example
Add a custom column
Create responsive visuals in Power BI
Use inline hierarchy labels in Power BI Desktop (Preview)
Use the numeric range slicer
Create a slicer you can resize
Create custom answer cards for Cortana
Row-level security
Customizing tooltips
Text boxes and shapes in reports
Add a hyperlink to a text box
Hyperlinks in tables
Conditional table formatting
Sort by column in Power BI Desktop
Create reports optimized for mobile apps
Use See Data and See Records
Tips for creating reports
Visualizations
Visualizations in Power BI
Visualization best practices
Change the type of visualization in a report
Data point limits by visual type
Show the data used to create the visual
Getting started with color formatting and axis properties
Tips and tricks for color formatting
Copy and paste a visualization
Export the data used to create the visualization
Move, resize, and pop out a visualization in a report
Change how visuals interact in a report
Tips and tricks for Power BI map visualizations
Customize X-axis and Y-axis properties
ArcGIS maps
Basic area chart
Cards (big number tiles) in Power BI
Combo chart in Power BI
Doughnut charts in Power BI
Filled maps (Choropleths) in Power BI
Funnel charts in Power BI
Key influencers charts in Power BI
High density line sampling
KPI Visuals
Matrix visual
Create advanced analytics and visualizations using R scripts in Power BI
Radial gauge charts in Power BI
Ribbon charts
Scatter charts in Power BI
High density scatter charts
Slicers in Power BI
Tables in Power BI
Treemaps in Power BI
Waterfall charts in Power BI
Create dynamic reference lines
Troubleshoot
Resolve issues importing Access Databases and Excel spreadsheets in Power BI
Desktop and Power Query
Resolve issues when starting Power BI Desktop
Reference
Data types in Power BI Desktop
Formula editor shortcuts for Power BI Desktop
Power BI Desktop privacy levels
Connector extensibility in Power BI
Resources
Power BI Desktop videos
Previous monthly updates to Power BI Desktop
Power BI Desktop Send a Smile privacy statement
Accessibility in Power BI reports
Manage the Power BI Desktop sign-in form
Power BI service
Overview
What is Power BI?
Comparing Power BI Desktop and the service
Tutorials
Get started with Power BI
Connect to a GitHub sample
Using Cognitive Services in Power BI
Machine Learning integration with Power BI
Build a Machine Learning model with Power BI (Preview)
Concepts
What's new in the Power BI service
Basic concepts
Basic concepts for designers
Kinds of data in Power BI
Tour the report editor
Workflow in Power BI
Organizing your work
Ways to share your work
Keeping data fresh
Monitoring usage
Licensing
Self-service sign-up
Licensing in your organization
Features by license type
More concepts
10 tips for getting help
Power BI support options
Licensing special cases
Extended Pro Trial activation
Power BI for US Government
FAQ for Germany Cloud customers
Other
Microsoft Flow and Power BI
Get started with third-party apps
How to
Get data from files
Getting data from files
From Excel to stunning report
Get data from Excel workbook files
Get data from Power BI Desktop files
Edit parameters
Get data from comma separated value (.csv) files
Real-time streaming in Power BI
Publish to Power BI from Excel
Reduce the size of an Excel workbook
Get data from databases
Azure and Power BI
Power BI and Azure egress
Azure SQL Data Warehouse with DirectQuery
Azure SQL Database with DirectQuery
SQL Server Analysis Services live data in Power BI
Refresh data
Configure scheduled refresh
Refresh a dataset from a Power BI Desktop file - local
Refresh a dataset from a Power BI Desktop file - cloud
Refresh a dataset from an Excel workbook - local
Refresh a dataset from an Excel workbook - cloud
Refresh a dataset created from a .csv file on OneDrive
Troubleshooting refresh scenarios
Dashboards
Intro to dashboards
Dashboard tiles
Create a dashboard from a report
Create a copy of a dashboard
Pin a tile to a dashboard from a report
Pin a tile from one dashboard to another
Pin a tile to a dashboard from Excel
Pin a tile to a dashboard from Q&A
Pin an entire report page to a dashboard
Data alerts in Power BI service
Add an image, text box, video, or code to a dashboard
Edit a tile
Tips for designing a great dashboard
Create a phone view of a dashboard
Create a QR code for a tile
Add an image to a dashboard
Dashboard data classification
Dashboard themes
Reports
Create a report from a dataset
About filters and highlighting in reports
Add a filter to a report
Save a report in Power BI
Interact with a report in Editing View
Analyze in Excel
Tips and tricks for creating reports
Work with aggregates in the service
Usage metrics for reports
Create a QR code for a report
Export a report to Power BI Desktop (Preview)
Filter a report using parameters in the URL
Best practices for building fast and reliable reports
Ask questions of your data
Get started with Power BI Q&A
Use Q&A to create visuals and reports
Make your data work well with Q&A
Create featured questions for Q&A
Visualization types in Q&A
Use Q&A with live connections
Intro to Cortana for Power BI
Enable Cortana for Power BI
Quick Insights in Power BI
Optimize your data for Quick Insights
Collaborate in Power BI
Create app workspaces
Create the new workspaces (preview)
Create and share apps
Manage data storage in workspaces
Connect to files on your group's OneDrive
Collaborate in your group workspace
Manage your group in Power BI and Office 365
Publish and share your work
Share dashboards and reports
Share a filtered report
Subscribe yourself and others
Embed report in SharePoint Online
Embed report in a secure portal or website
Publish from Power BI to the web
Share a dashboard that links to an Excel workbook on OneDrive
Power BI publisher for Excel
Self-service data prep
Self-service data prep with dataflows
Create and use dataflows
Computed entities with Power BI Premium
Connect to data sources with dataflows
Using dataflows with on-premises data sources
Link entities between dataflows
Using incremental refresh with dataflows
Developer resources for dataflows
Connect to dataflows in Power BI Desktop
Dataflows and Azure Data Lake integration (Preview)
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview)
Configure workspace dataflow settings (Preview)
Add a CDM folder to Power BI as a dataflow (Preview)
Integrate Machine Learning in Power BI (Preview)
Use Cognitive Services in Power BI (Preview)
Automated Machine Learning in Power BI (Preview)
Paginated reports in Power BI
What are paginated reports? (Preview)
Paginated reports FAQ (Preview)
Create a paginated report and upload it (Preview)
Get around Report Design View (Preview)
Enter data directly in a paginated report (Preview)
Create an embedded data source (Preview)
Create an embedded dataset (Preview)
Create parameters (Preview)
Publish a paginated report (Preview)
View a paginated report (Preview)
Interact with parameters (Preview)
Template apps
Template apps overview
Create template apps
Tips for creating template apps
Install & distribute template apps
Troubleshoot
Forgot your password for Power BI?
Capturing additional diagnostic information for Power BI
Alternate email address for Power BI
How to use the same account login for Power BI and Azure
Office 365 dedicated - known issues
Troubleshoot Cortana
Troubleshooting analyze in Excel
Troubleshooting the on-premises data gateway
Troubleshooting Power BI gateway - personal
Troubleshooting unsupported data source for refresh
Troubleshooting scheduled refresh for Azure SQL Databases
Error: We couldn't find any data in your Excel workbook
Troubleshooting tile errors
How to refresh your Xero content pack credentials if refresh failed
Can't sign in
Other tasks
Rename content within Power BI
Enroll your US Government organization
Delete almost anything in Power BI
Connect to services
Acumatica
Acumatica
Adobe Analytics
Alpine Metrics Sales Predictions
appFigures
Application Insights
AT Internet Bridge
Azure Audit Logs
Azure Mobile Engagement
Microsoft Azure Consumption Insights
Azure Search
Circuit ID
ClickDimensions
comScore Digital Analytix
GitHub
Google Analytics
Insightly
IntelliBoard
Lithium
MailChimp
Mandrill
Marketo
Microsoft Dynamics AX
Microsoft Dynamics CRM
Microsoft Dynamics NAV
Office365Mon
Planview Enterprise
Prevedere
Project Online
Projectplace
QuickBooks Online
Salesforce
SendGrid
ServiceNow Incidents
Smartsheet
SparkPost
SQL Database Auditing
SQL Sentry
Stripe
SweetIQ
Troux
Twilio
tyGraph
UserVoice
VMob
Webtrends
Windows Dev Center
Xero
Zendesk
Ziosk
Zuora
Organizational content packs
Intro to organizational content packs
Create and publish a content pack
Copy, refresh, get access to content packs
Manage, update, delete content packs
Remove a connection to a content pack
Resources
Videos
Webinars
Supported languages and countries/regions
Whitepapers
Whitepapers overview
Power BI security whitepaper
Power BI premium deployment
Distribute Power BI externally using Azure Active Directory B2B
Power BI for developers
What can developers do with Power BI
Embedded Analytics
Overview
What is embedding with Power BI
What is Power BI Embedded in Azure
Quickstarts
Manage capacities in Azure
Create a capacity in Azure
Create a capacity using Multi-Geo in Azure
Scale a capacity in Azure
Pause and start a capacity in Azure
Tutorials
Embed content for customers
Embed content for your organization
Embed content for national clouds
Concepts
Performance best practices
Service principal
Row-level security
Manage multi-tenants
Azure diagnostic logging for Power BI Embedded
Embedding FAQ
Power BI permissions
How to
Embed from an app
Create an Azure Active Directory tenant
Register an application
Get an Azure AD access token
Embedding Q&A
Manage capacities in Azure
Create a capacity in Azure
Create a capacity using Multi-Geo in Azure
Scale a capacity in Azure
Pause and start a capacity in Azure
Troubleshoot your embedded application
Migrate from Workspace Collections
How to migrate from Power BI Workspace Collections
Migration tool
Migration code snippets
Reference
APIs
Azure Resource Management REST APIs
Power BI REST APIs
Power BI REST API Reference
.NET SDK Download
Embed custom layouts into an app
Resources
Dev Center
Embedding setup tool
JavaScript Playground Sample
Power BI JavaScript wiki
JavaScript Git Repo
Power BI C# Git Repo
Samples
Power BI community
Stack Overflow
Custom Visuals
Overview
Custom visuals in Power BI
Tutorials
Developing a Power BI custom visual
Adding formatting options
Concepts
Custom visuals for organizations in Power BI
Guidelines for Power BI visuals
Custom visuals FAQ
Using Capabilities
Data View Mappings
Objects and Properties
Advanced Edit Mode
Migrating to versioned API guide
How to
Get a custom visual certified
Publish custom visuals to AppSource
Use R-powered custom visuals in Power BI
Troubleshoot
Troubleshoot developing custom visuals
Reference
APIs
Resources
Dev Center
Samples
Custom Visuals Git Repo
Automation
Overview
What can I do with the Power BI API?
Tutorials
Push data into a dataset
Register an app with Azure AD
Get an authentication access token
Create a dataset
Get a dataset to add rows
Add rows to a table
Concepts
Automatic retention policy for real-time data
Push data
Power BI REST API limitations
Dataset properties
Data model versioning
How to
Configure credentials
Encrypt credentials
Reference
REST APIs
Power BI REST API Reference
Complete code listing
Resources
Dev Center
Power BI C# Git Repo
.NET SDK Download
Power BI Report Server
Overview
What is Power BI Report Server?
Compare Power BI Report Server and the service
Tutorials
Explore Power BI Report Server in a VM
Concepts
What's new
Change log
Support timeline
Hardware and software requirements
Browser support
Administrator overview
Report server basics
Power BI report scheduled refresh
Power BI report data sources
Paginated report data sources
Subscriptions
Using the mobile app
Troubleshoot scheduled refresh
Report server for developers
Report server for developers
Report Viewer control
Develop extensions
Embed reports
How to
Install Power BI Desktop
Report server basics
Create a Power BI report for a report server
Manage content in the report server
Row-level security (RLS) in the report server
Create a paginated report for a report server
Enter data directly in a paginated report
Work with KPIs
Access shared datasets as OData feeds
Configure scheduled refresh
Add comments to a report
Report server for admins
Install a report server
Find your product key
Upgrade a report server
Migrate a report server
Configure Kerberos to use Power BI reports
Configure mobile app access remotely
Host Excel workbooks
Reference
REST API
WMI
SOAP APIs
URL Access
Extensions
Resources
Capacity planning whitepaper
Gateways
Overview
What are Power BI gateways?
Tutorials
Connect to SQL Server data
Concepts
Guidance for deploying a data gateway
On-premises data gateway FAQ
How to
Install gateways
Manage gateways
Manage your enterprise data source - Analysis Services
Manage your enterprise data source - SAP HANA
Manage your enterprise data source - SQL
Manage your data source - Oracle
Manage your enterprise data source - import/scheduled refresh
Merge on-premises and cloud data sources
Enable single sign-on (SSO)
Single sign-on (SSO) - overview
Single sign-on (SSO) - Kerberos
Single sign-on (SSO) - Kerberos - resource-based
Single sign-on (SSO) - SAML
Configuring proxy settings
High availability clusters for on-premises data gateway
On-premises data gateway
On-premises data gateway - in-depth
On-premises data gateway (personal mode)
Custom Connectors
Troubleshooting the on-premises data gateway
Administration
Overview
What is Power BI administration?
Concepts
Power BI Premium
What is Power BI Premium?
Premium capacity memory use, optimization
Purchase Power BI Premium
Monitor capacities with the app
Monitor capacities in the Admin portal
Configure workloads
Restart a Premium capacity
Support for large datasets
Incremental refresh
Multi-Geo support
Connect to datasets with client applications and tools
Power BI Premium FAQ
Administration role in Office 365
Frequently asked questions (FAQ)
High availability and failover FAQ
How to
Licensing and sign-up
Licensing for your organization
Purchase Power BI Pro
Sign up with an Office 365 Trial
Add Power BI with an Office 365 partner
Using the admin portal
Where is my tenant located?
Find users that have signed in
Auditing Power BI
Track service health
Closing your Power BI account
Power BI and ExpressRoute
Using Azure AD B2B
Row-level security with Power BI
Power BI archived workspace
Configure mobile apps with Intune
Reference
PowerShell, REST APIs, and .NET SDK
Power BI cmdlets for PowerShell
Service URL reference
Resources
Power BI governance and deployment approaches
Power BI security
What is Power BI Desktop?
1/14/2019 • 4 minutes to read • Edit Online
Power BI Desktop is a free application you can install on your local computer that lets you connect to,
transform, and visualize your data. With Power BI Desktop, you can connect to multiple different sources of
data, and combine them (often called modeling) into a data model that lets you build visuals, and collections of
visuals you can share as reports, with other people inside your organization. Most users who work on Business
Intelligence projects use Power BI Desktop to create reports, and then use the Power BI service to share
their reports with others.
The most common uses for Power BI Desktop are the following:
Connect to data
Transform and clean that data, to create a data model
Create visuals, such as charts or graphs, that provide visual representations of the data
Create reports that are collections of visuals, on one or more report pages
Share reports with others using the Power BI service
People most often responsible for such tasks are often considered data analysts (sometimes just referred to as
analysts) or Business Intelligence professionals (often referred to as report creators). However, many people
who don't consider themselves an analyst or a report creator use Power BI Desktop to create compelling
reports, or to pull data from various sources and build data models, which they can share with their coworkers
and organizations.
With Power BI Desktop you can create complex and visually rich reports, using data from multiple sources, all
in one report that you can share with others in your organization.
Connect to data
To get started with Power BI Desktop, the first step is to connect to data. There are many different data
sources you can connect to from Power BI Desktop. To connect to data, simply select the Home ribbon, then
select Get Data > More. The following image shows the Get Data window that appears, showing the many
categories to which Power BI Desktop can connect.
When you select a data type, you're prompted for information, such as the URL and credentials, necessary for
Power BI Desktop to connect to the data source on your behalf.
Once you connect to one or more data sources, you may want to transform the data so it's useful for you.
Once your data is how you want it, you can create visuals.
Create visuals
Once you have a data model, you can drag fields onto the report canvas to create visuals. A visual is a graphic
representation of the data in your model. The following visual shows a simple column chart.
There are many different types of visuals to choose from in Power BI Desktop. To create or change a visual, just
select the visual icon from the Visualizations pane. If you have a visual selected on the report canvas, the
selected visual changes to the type you selected. If no visual is selected, a new visual is created based on your
selection.
Create reports
More often, you'll want to create a collection of visuals that show various aspects of the data you have used to
create your model in Power BI Desktop. A collection of visuals, in one Power BI Desktop file, is called a report.
A report can have one or more pages, just like an Excel file can have one or more worksheets. In the following
image you see the first page of a Power BI Desktop report, named Overview (you can see the tab near the
bottom of the image). In this report, there are ten pages.
Share reports
Once a report is ready to share with others, you can Publish the report to the Power BI service, and make it
available to anyone in your organization who has a Power BI license. To publish a Power BI Desktop report, you
select the Publish button from the Home ribbon in Power BI Desktop.
Once you select Publish, Power BI Desktop connects you to the Power BI service using your Power BI
account, and then prompts you to select where in the Power BI service you would like to share the report, such
as your workspace, a team workspace, or some other location in the Power BI service. You must have a Power
BI license to share reports to the Power BI service.
Next steps
To get started with Power BI Desktop, the first thing you need is to download and install the application.
There are two ways to get Power BI Desktop:
Download Power BI Desktop from the web
Get Power BI Desktop from the Windows Store
Quickstart: Connect to data in Power BI Desktop
1/21/2019 • 2 minutes to read • Edit Online
In this quickstart, you connect to data using Power BI Desktop, which is the first step in building data models and
creating reports.
If you're not signed up for Power BI, sign up for a free trial before you begin.
Prerequisites
To complete the steps in this article, you need the following:
Download and install Power BI Desktop, which is a free application that runs on your local computer. You can
download Power BI Desktop directly, or you can get it from the Microsoft Store.
Download this sample Excel workbook, and create a folder called C:\PBID -qs where you can store the Excel file.
Subsequent steps in this quickstart assume that is the file location for the downloaded Excel workbook.
The Get Data window appears, where you can choose from the many different data sources to which Power BI
Desktop can connect. In this quickstart we use the Excel workbook that you downloaded, described in the
Prerequisites section at the beginning of this article.
Since this is an Excel file, we select Excel from the Get Data window, then select the Connect button.
We're prompted to provide the location of the Excel file to which we want to connect. The downloaded file is called
Financial Sample so we select that file, and then select Open.
Power BI Desktop then loads the workbook and reads its contents, and shows you the available data in the file
using the Navigator window, where you can choose which data you would like to load into Power BI Desktop. You
select the tables by marking the checkboxes beside each table you want to import. In this case, we'll import both
available tables.
Once you've made your selections, select Load to import the data into Power BI Desktop.
Next steps
There are all sorts of things you can do with Power BI Desktop once you've connected to data, such as creating
visuals and reports. Take a look at the following resource to get you going:
Getting Started Guide for Power BI Desktop
Tutorial: Shape and combine data in Power BI
Desktop
1/14/2019 • 15 minutes to read • Edit Online
With Power BI Desktop, you can connect to many different types of data sources, then shape the data to meet
your needs, enabling you to create visual reports that you can share with others. Shaping data means
transforming the data – such as renaming columns or tables, changing text to numbers, removing rows, setting
the first row as headers, and so on. Combining data means connecting to two or more data sources, shaping
them as needed, then consolidating them into one useful query.
In this tutorial, you'll learn to:
Shape data using Query Editor
Connect to a data source
Connect to another data source
Combine those data sources, and create a data model to use in reports
This tutorial demonstrates how to shape a query using Power BI Desktop, highlighting some of the most
common tasks. The query used here is described in more detail, including how to create the query from
scratch, in Getting Started with Power BI Desktop.
It’s useful to know that the Query Editor in Power BI Desktop makes ample use of right-click menus, as well
as the ribbon. Most of what you can select in the Transform ribbon is also available by right-clicking an item
(such as a column) and choosing from the menu that appears.
Shape data
When you shape data in the Query Editor, you’re providing step-by-step instructions (that Query Editor carries
out for you) to adjust the data as Query Editor loads and presents it. The original data source is not affected;
only this particular view of the data is adjusted, or shaped.
The steps you specify (such as rename a table, transform a data type, or delete columns) are recorded by Query
Editor, and each time this query connects to the data source those steps are carried out so that the data is
always shaped the way you specify. This process occurs whenever you use the Query Editor feature of Power BI
Desktop, or for anyone who uses your shared query, such as on the Power BI service. Those steps are
captured, sequentially, in the Query Settings pane, under Applied Steps.
The following image shows the Query Settings pane for a query that has been shaped – we’ll go through
each of those steps in the next few paragraphs.
Using the retirement data from Getting Started with Power BI Desktop, which we found by connecting to a
Web data source, let’s shape that data to fit our needs.
For starters, let's add a custom column to calculate rank based on all data being equal factors and compare this
to the existing column Rank. Here's the Add Column ribbon, with an arrow pointing toward the Custom
Column button, which lets you add a custom column.
In the Custom Column dialog, in New column name, enter New Rank, and in Custom column formula,
enter the following:
([Cost of living] + [Weather] + [Health care quality] + [Crime] + [Tax] + [Culture] + [Senior] + [#"Well-
being"]) / 8
Make sure the status message reads 'No syntax errors have been detected.' and click OK.
To keep column data consistent, lets transform the new column values to whole numbers. Just right-click the
column header, and select Change Type > Whole Number to change them.
If you need to choose more than one column, first select a column then hold down SHIFT, select additional
adjacent columns, and then right-click a column header to change all selected columns. You can also use the
CTRL key to choose non-adjacent columns.
You can also transform column data types from the Transform ribbon. Here’s the Transform ribbon, with an
arrow pointing toward the Data Type button, which lets you transform the current data type to another.
Note that in Query Settings, the Applied Steps reflect any shaping steps applied to the data. If I want to
remove any step from the shaping process, I simply select the X to the left of the step. In the following image,
Applied Steps reflects the steps so far: connecting to the website ( Source); selecting the table (Navigation);
and while loading the table, Query Editor automatically changed text-based number columns from Text to
Whole Number (Changed Type). The last two steps show our previous actions with Added Custom and
Changed Type1.
Before we can work with this query, we need to make a few changes to get its data where we want it:
Adjust the rankings by removing a column - we have decided Cost of living is a non-factor in our results.
After removing this column, we find the issue that the data remains unchanged, though it's easy to fix using
Power BI Desktop, and doing so demonstrates a cool feature of Applied Steps in Query.
Fix a few errors – since we removed a column, we need to readjust our calculations in the New Rank
column. This involves changing a formula.
Sort the data - based on the New Rank and Rank columns.
Replace data - we will highlight how to replace a specific value and the need of inserting an Applied Step.
Change the table name – that Table 0 is not a useful descriptor, but changing it is simple.
To remove the Cost of living column, simply select the column and choose the Home tab from the ribbon,
then Remove Columns as shown in the following figure.
Notice the New Rank values have not changed; this is due to the ordering of the steps. Since Query Editor
records the steps sequentially, yet independently of each other, you can move each Applied Step up or down
in the sequence. Just right-click any step, and Query Editor provides a menu that lets you do the following:
Rename, Delete, Delete Until End (remove the current step, and all subsequent steps too), Move Up, or
Move Down. Go ahead and move up the last step Removed Columns to just above the Added Custom step.
Next, select the Added Custom step. Notice the data now shows Error which we will need to address.
There are a few ways to get more information about each error. You can select the cell (without clicking on the
word Error), or click the word Error directly. If you select the cell without clicking directly on the word Error,
Query Editor displays the error information on the bottom of the window.
If you click the word Error directly, Query creates an Applied Step in the Query Settings pane and displays
information about the error. We do not want to go this route, so select Cancel.
To fix the errors, select the New Rank column, then display the column's data formula by opening the View
ribbon and selecting the Formula Bar checkbox.
Now you can remove the Cost of living parameter and decrement the divisor, by changing the formula to the
following:
Table.AddColumn(#"Removed Columns", "New Rank", each ([Weather] + [Health care quality] + [Crime] + [Tax] +
[Culture] + [Senior] + [#"Well-being"]) / 7)
Select the green checkmark to the left of the formula box or press Enter, and the data should be replaced by
revised values and the Added Custom step should now complete with no errors.
NOTE
You can also Remove Errors (using the ribbon or the right-click menu), which removes any rows that have errors. In this
case it would’ve removed all the rows from our data, and we didn’t want to do that – we like all our data, and want to
keep it in the table.
Now we need to sort the data based on the New Rank column. First select the last applied step, Changed
Type1 to get to the most recent data. Then, select drop-down located next to the New Rank column header
and select Sort Ascending.
Notice the data is now sorted according to New Rank. However, if you look in the Rank column, you will
notice the data is not sorted properly in cases where the New Rank value is a tie. To fix this, select the New
Rank column and change the formula in the Formula Bar to the following:
Select the green checkmark to the left of the formula box or press Enter, and the rows should now be ordered
in accordance with both New Rank and Rank.
In addition, you can select an Applied Step anywhere in the list, and continue shaping the data at that point in
the sequence. Query Editor will automatically insert a new step directly after the currently selected Applied
Step. Let's give that a try.
First, select the Applied Step prior to adding the custom column; this would be the Removed Columns step.
Here we will replace the value of the Weather ranking in Arizona. Right-click the appropriate cell that contains
Arizona's Weather ranking and select Replace Values... from the menu that appears. Note which Applied Step
is currently selected (the step prior to the Added Custom step).
Since we're inserting a step, Query Editor warns us about the danger of doing so - subsequent steps could
cause the query to break. We need to be careful, and thoughtful! Since this is a tutorial, and we're highlighting a
really cool feature of Query Editor to demonstrate how you can create, delete, insert, and reorder steps, we'll
push ahead and select Insert.
Change the value to 51 and the data for Arizona is replaced. When you create a new Applied Step, Query
Editor names it based on the action - in this case, Replaced Value. When you have more than one step with
the same name in your query, Query Editor adds a number (in sequence) to each subsequent Applied Step to
differentiate between them.
Now select the last Applied Step, Sorted Rows, and notice the data has changed regarding Arizona's new
ranking. This is because we inserted the Replaced Value step in the right place, before the Added Custom step.
Okay that was a little involved, but it was a good example of how powerful and versatile Query Editor can be.
Lastly, we want to change the name of that table to something descriptive. When we get to creating reports, it’s
especially useful to have descriptive table names, especially when we connect to multiple data sources, and
they’re all listed in the Fields pane of the Report view.
Changing the table name is easy: in the Query Settings pane, under Properties, simply type in the new name
of the table, as shown in the following image, and hit Enter. Let’s call this table RetirementStats.
Okay, we’ve shaped that data to the extent we need to. Next let’s connect to another data source, and combine
data.
Combine data
That data about various states is interesting, and will be useful for building additional analysis efforts and
queries. But there’s one problem: most data out there uses a two-letter abbreviation for state codes, not the full
name of the state. We need some way to associate state names with their abbreviations.
We’re in luck: there’s another public data source that does just that, but it needs a fair amount of shaping
before we can connect it to our retirement table. Here’s the Web resource for state abbreviations:
http://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations
From the Home ribbon in Query Editor, we select New Source > Web and type the address, select Connect,
and the Navigator shows what it found on that Web page.
We select Codes and abbreviations... because that includes the data we want, but it’s going to take quite a bit
of shaping to pare that table’s data down to what we want.
TIP
Is there a faster or easier way to accomplish the steps below? Yes, we could create a relationship between the two tables,
and shape the data based on that relationship. The following steps are still good to learn for working with tables, just
know that relationships can help you quickly use data from multiple tables.
NOTE
If Power BI accidentally imports the table headers as a row in your data table, you can select Use First Row As Headers
from the Home tab, or from the Transform tab in the ribbon, to fix your table.
Remove the bottom 26 rows – they’re all the territories, which we don’t need to include. From the Home
ribbon, select Reduce Rows > Remove Rows > Remove Bottom Rows.
Since the RetirementStats table doesn't have information for Washington DC, we need to filter it from our
list. Select the drop-down arrow beside the Region Status column, then clear the checkbox beside Federal
district.
Remove a few unneeded columns – we only need the mapping of state to its official two-letter abbreviation,
so we can remove the following columns: Column1, Column3, Column4, and then Column6 through
Column11. First select Column1, then hold down the CTRL key and select the other columns to be
removed (this lets you select multiple, non-contiguous columns). From the Home tab on the ribbon, select
Remove Columns > Remove Columns.
NOTE
This is a good time to point out that the sequence of applied steps in Query Editor is important, and can affect how the
data is shaped. It’s also important to consider how one step may impact another subsequent step; if you remove a step
from the Applied Steps, subsequent steps may not behave as originally intended, because of the impact of the query’s
sequence of steps.
NOTE
When you resize the Query Editor window to make the width smaller, some ribbon items are condensed to make the
best use of visible space. When you increase the width of the Query Editor window, the ribbon items expand to make the
most use of the increased ribbon area.
Rename the columns, and the table itself – as usual, there are a few ways to rename a column; first select the
column, then either select Rename from the Transform tab on the ribbon, or right-click and select
Rename… from the menu that appears. The following image has arrows pointing to both options; you only
need to choose one.
Let’s rename them to State Name and State Code. To rename the table, just type the name into the Name box
in the Query Settings pane. Let’s call this table StateCodes.
Now that we’ve shaped the StateCodes table the way we want, let’s combine these two tables, or queries, into
one; since the tables we now have are a result of the queries we applied to the data, they’re often referred to as
queries.
There are two primary ways of combining queries – merging and appending.
When you have one or more columns that you’d like to add to another query, you merge the queries. When
you have additional rows of data that you’d like to add to an existing query, you append the query.
In this case, we want to merge queries. To get started, from the left pane of Query Editor we select the query
into which we want the other query to merge, which in this case is RetirementStats. Then select Combine >
Merge Queries from the Home tab on the ribbon.
You may be prompted to set the privacy levels, to ensure the data is combined without including or transferring
data you didn't want transferred.
Next the Merge window appears, prompting us to select which table we’d like merged into the selected table,
and then, the matching columns to use for the merge. Select State from the RetirementStats table (query), then
select the StateCodes query (easy in this case, since there’s only one other query – when you connect to many
data sources, there are many queries to choose from). When we select the correct matching columns – State
from RetirementStats, and State Name from StateCodes – the Merge window looks like the following, and the
OK button is enabled.
A NewColumn is created at the end of the query, which is the contents of the table (query) that was merged
with the existing query. All columns from the merged query are condensed into the NewColumn, but you can
select to Expand the table, and include whichever columns you want.
To Expand the merged table, and select which columns to include, select the expand icon ( ). The Expand
window appears.
In this case, we only want the State Code column, so we select only that column and then select OK. We clear
the checkbox from Use original column name as prefix because we don’t need or want that; if we leave that
selected, the merged column would be named NewColumn.State Code (the original column name, or
NewColumn, then a dot, then the name of the column being brought into the query).
NOTE
Want to play around with how to bring in that NewColumn table? You can experiment a bit, and if you don’t like the
results, just delete that step from the Applied Steps list in the Query Settings pane; your query returns to the state
prior to applying that Expand step. It’s like a free do-over, which you can do as many times as you like until the expand
process looks the way you want it.
We now have a single query (table) that combined two data sources, each of which has been shaped to meet
our needs. This query can serve as a basis for lots of additional, interesting data connections – such as housing
cost statistics, demographics, or job opportunities in any state.
To apply changes and close Query Editor, select Close & Apply from the Home ribbon tab. The transformed
dataset appears in Power BI Desktop, ready to be used for creating reports.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check
out the following resources:
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Common Query Tasks in Power BI Desktop
Tutorial: Analyze web page data using Power BI
Desktop
1/14/2019 • 7 minutes to read • Edit Online
As a long-time soccer fan, you want to report on the UEFA European Championship (Euro Cup) winners over the
years. With Power BI Desktop, you can import this data from a web page into a report and create visualizations
that show the data. In this tutorial, you learn how to use Power BI Desktop to:
Connect to a web data source and navigate across its available tables,
Shape and transform data in the Power Query Editor,
Name a query and import it into a Power BI Desktop report, and
Create and customize a map and a pie chart visualization.
Note that Web connections are only established using basic authentication. Web sites requiring authentication may
not work properly with the Web connector.
To import the data:
1. In the Power BI Desktop Home ribbon tab, drop down the arrow next to Get Data, and then select Web.
NOTE
You can also select the Get Data item itself, or select Get Data from the Power BI Get started dialog, then select
Web from the All or Other section of the Get Data dialog box, and then select Connect.
After connecting to the Wikipedia web page, the Power BI Navigator dialog box shows a list of available
tables on the page. You can select any of the table names to preview its data. The Results[edit] table has the
data you want, although it is not exactly in the shape you want. You will reshape and clean up the data before
loading it into your report.
NOTE
The Preview pane shows the most recent table selected, but all selected tables will load into the Power Query
Editor when you select Edit or Load.
3. Select the Results[edit] table in the Navigator list, and then select Edit.
A preview of the table opens in the Power Query Editor, where you can apply transformations to clean up
the data.
or
Next, remove the extra word Details from the Year column cells.
1. Select the Year column.
2. Right-click, and select Replace Values from the dropdown, or select Replace Values from the Transform
group in the Home tab of the ribbon (also found in the Any Column group in the Transform tab).
or
3. In the Replace Values dialog box, type Details in the Value To Find text box, leave the Replace With text
box empty, and then select OK to delete the word "Details" from the Year entries.
Some Year cells only contain the word "Year" rather than year values. You can filter the Year column to only display
rows that do not contain the word "Year".
1. Select the filter drop-down arrow on the Year column.
2. In the drop-down, scroll down and clear the checkbox next to the Year option, and then select OK, to remove
the rows that only have the word "Year" in the Year column.
Now that you have cleaned up the data in the Year column, you can work on the Final Winner column. Since you
are only looking at the final winners data now, you can rename this column to Country. To rename the column:
1. Double-click or tap and hold in the Final Winner column header, or
Right-click the Final Winners column header, and select Rename from the dropdown, or
Select the Final Winners column and select Rename from the Any Column group in the Transform
tab of the ribbon.
or
2. Type Country in the header and press Enter to rename the column.
You also want to filter out rows like "2020" that have null values in the Country column. You could use the filter
menu as you did with the Year values, or you can:
1. Right-click on the Country cell in the 2020 row, which has the value null.
2. Select Text Filters > Does not Equal in the context menu to remove any rows that contain that cell's value.
2. Select Close & Apply > Close & Apply from the Home tab of the ribbon.
The query loads into the Power BI Desktop Report View, where you can see it in the Fields pane.
TIP
You can always get back to the Power Query Editor to edit and refine your query by:
Selecting the More options ellipsis (...) next to Euro Cup Winners in the Fields pane, and selecting Edit Query from the
dropdown, or
Selecting Edit Queries > Edit Queries in the External data group of the Home ribbon tab in Report view.
Create a visualization
To create a visualization based on your data:
1. Select the Country field in the Fields pane, or drag it to the report canvas. Power BI Desktop recognizes the
data as country names, and automatically creates a Map visualization.
2. Enlarge the map by dragging the handles in the corners so all the winning country names are visible.
3. The map shows identical data points for every country that won a Euro Cup tournament. To make the size of
each data point reflect how often the country has won, drag the Year field to Drag data fields here under
Size in the lower part of the Visualizations pane. The field automatically changes to a Count of Year
measure, and the map visualization now shows larger data points for countries that have won more
tournaments.
2. Turn Show All to On, and then select the dropdown next to West Germany and choose a yellow color.
3. Select Title to expand the title options, and in the Title text field, type Euro Cup Winners in place of the
current title.
4. Change Font color to red, Text size to 12, and Font family to Segoe (Bold).
Your map visualization now looks like this:
Power BI Desktop provides a seamless end-to-end experience, from getting data from a wide range of data sources
and shaping it to meet your analysis needs, to visualizing this data in rich and interactive ways. Once your report is
ready, you can upload it to Power BI and create dashboards based on it, which you can share with other Power BI
users.
See also
Read other Power BI Desktop tutorials
Watch Power BI Desktop videos
Visit the Power BI Forum
Read the Power BI Blog
Tutorial: Combine sales data from Excel and an
OData feed
1/14/2019 • 11 minutes to read • Edit Online
It's common to have data spread across multiple data sources, such as product information in one database and
sales information in another. With Power BI Desktop, you can combine data from different sources to create
interesting, compelling data analyses and visualizations.
In this tutorial, you learn how to combine data from two data sources: an Excel workbook that includes product
information, and an OData feed that contains orders data. After you import each dataset and perform
transformation and aggregation steps, you use data from both sources to produce a sales analysis report with
interactive visualizations. These techniques can also be applied to SQL Server queries, CSV files, and any other
data sources in Power BI Desktop.
NOTE
In Power BI Desktop, there are often a few ways to accomplish a task. For example, many ribbon selections are also available
by using a right-click or More options menu on a column or cell. Several alternate methods are described in the steps below.
3. In the Open dialog box, navigate to and select the Products.xlsx file, and then select Open.
4. In the Navigator pane, select the Products table and then select Edit.
A preview of the table opens in the Power Query Editor, where you can apply transformations to clean up the
data.
NOTE
You can also open the Power Query Editor by selecting Edit Queries > Edit Queries from the Home ribbon in Power BI
Desktop, or by right-clicking or choosing More options next to any query in Report View, and selecting Edit Query.
3. In the Navigator pane, select the Orders table, and then select OK to load the data into Power Query
Editor.
NOTE
In Navigator, you can select any table name, without selecting the checkbox, to see a preview.
After you expand the Order_Details table, the Order_Details column is replaced by the three new columns from
the nested table, and there are new rows in the table for the added data from each order.
The new LineTotal field appears as the last column in the Orders table.
TIP
Underlying the Applied Steps are formulas written in the Power Query Language, also known as the M language. To see
and edit the formulas, select Advanced Editor in the Query group of the Home tab of the ribbon.
2. In the Manage Relationships dialog, note that Power BI Desktop has already detected and listed an active
relationship between the Products and Orders tables. To view the relationship, select Edit.
The Edit Relationship dialog opens, showing details about the relationship.
3. Power BI Desktop has autodetected the relationship correctly, so you can select Cancel and then Close to
exit the relationship dialogs.
You can also view and manage the relationships between your queries by selecting the Relationship view at the
left side of the Power BI Desktop window. Double-click the arrow on the line connecting the two queries to open
the Edit Relationship dialog and view or change the relationship.
To get back to Report View from Relationships View, select the Report View icon.
Next, create a chart showing order dollar amounts ( LineTotal) over time (OrderDate).
1. With nothing selected on the canvas, select LineTotal from Orders in the Fields pane, or drag it to a blank
space on the canvas. The stacked column chart shows the total dollar amount of all orders.
2. With the chart selected, select OrderDate from Orders, or drag it onto the chart. The chart now shows line
totals for each order date.
3. Resize the visualization by dragging the corners to be able to see more data.
TIP
If you only see Years on the chart (only three data points), drop down the arrow next to OrderDate in the Axis field
of the Visualizations pane, and select OrderDate instead of Date Hierarchy.
Finally, create a map visualization showing order amounts from each country.
1. With nothing selected on the canvas, select ShipCountry from Orders in the Fields pane, or drag it to a
blank space on the canvas. Power BI Desktop detects that the data is country names, and automatically
creates a map visualization, with a data point for each country that had orders.
2. To make the sizes of the data points reflect the order amounts for each country, drag the LineTotal field
onto the map (or drag it to Drag data fields here under Size, in the bottom half of the Visualizations
pane). The sizes of the circles on the map now reflect the dollar amounts of the orders from each country.
Interact with your report visuals to analyze further
Power BI Desktop lets you uncover further trends by interacting with visuals that cross-highlight and filter each
other. For more information, see Filtering and Highlighting in Reports.
Because of the relationship between your queries, interactions with one visualization will affect all the other
visualizations on the page.
On the map visualization, select the circle centered in Canada. Note that the other two visualizations filter to
highlight the line totals and order quantities just for Canada.
If you select one of the products in the Quantity by ProductName chart, the map and the date chart filter to
reflect the data for that product, and if you select one of the dates in the LineTotal by OrderDate chart, the map
and the product chart filter to show the data for that date.
TIP
To deselect a selection, select it again, or select one of the other visualizations.
Next steps
Read other Power BI Desktop tutorials
Watch Power BI Desktop videos
Visit the Power BI Forum
Read the Power BI Blog
Tutorial: Create your own measures in Power BI
Desktop
1/14/2019 • 10 minutes to read • Edit Online
You can create some of the most powerful data analysis solutions in Power BI Desktop by using measures.
Measures help you by performing calculations on your data as you interact with your reports. This tutorial will
guide you through understanding measures and creating your own basic measures in Power BI Desktop.
Prerequisites
This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more
advanced models. You should already be familiar with using Get Data and Query Editor to import data,
working with multiple related tables, and adding fields to the Report Canvas. If you’re new to Power BI
Desktop, be sure to check out Getting Started with Power BI Desktop.
Download the Contoso Sales Sample for Power BI Desktop file, which includes online sales data from the
fictitious company Contoso, Inc. This data was imported from a database, so you won’t be able to connect
to the datasource or view it in Query Editor. Extract the file on your own computer, and then open it in
Power BI Desktop.
Understand measures
Measures are most often created for you automatically. In the Contoso Sales Sample file, select the checkbox next
to the SalesAmount field in the Sales table in the Fields well, or drag SalesAmount onto the report canvas. A
new column chart visualization appears, showing the sum total of all values in the SalesAmount column of the
Sales table.
Any field that appears in the Fields well with a sigma icon is numeric, and its values can be aggregated. Rather
than showing a table with all two million rows of SalesAmount values, Power BI Desktop detected a numeric
datatype and automatically created and calculated a measure to aggregate the data. Sum is the default
aggregation for a numeric datatype, but you can easily apply different aggregations like average or count.
Understanding aggregations is fundamental to understanding measures, because every measure performs some
type of aggregation.
To change the chart aggregation to average, in the Value area of the Visualizations pane, click the down arrow
next to SalesAmount and select Average. The visualization changes to an average of all sales values in the
SalesAmount field.
You can change the type of aggregation depending on the result you want, but not all types of aggregation apply
to every numeric datatype. For example, for the SalesAmount field, Sum and Average make sense. Minimum and
Maximum have their place as well. But Count won’t really make much sense for the SalesAmount field, because
while its values are numeric, they’re really currency.
Values calculated from measures change in response to your interactions with your report. For example, dragging
the RegionCountryName field from the Geography table to your chart shows the average sales amounts for
each country.
When the result of a measure changes because of an interaction with your report, you have affected your
measure’s context. Every time you interact with your report visualizations, you are changing the context in which a
measure calculates and displays its results.
TIP
Starting with the February 2018 release of Power BI Desktop, many common calculations are available as quick measures,
which write the DAX formulas for you based on your inputs to a dialog box. These quick, powerful calculations are also great
for learning DAX or seeding your own customized measures. To create or explore quick measures, select New quick
measure in a table's More options list or under Calculations in the Home tab of the ribbon. See Use quick measures for
more about creating and using quick measures.
Create a measure
You want to analyze your net sales by subtracting discounts and returns from total sales amounts. For whatever
context exists in your visualization, you need a measure that subtracts the sum of DiscountAmount and
ReturnAmount from the sum of SalesAmount. There's no field for Net Sales in the Fields list, but you have the
building blocks to create your own measure to calculate net sales.
1. Right-click the Sales table in the Fields well, or hover over the table and select the More options ellipsis
(...), and then select New Measure. This will save your new measure in the Sales table, where it will be
easier to find.
You can also create a new measure by selecting New Measure in the Calculations group on the Home tab
of the Power BI Desktop ribbon.
TIP
When you create a measure from the ribbon, it could be created in any of the tables, but it will be easier to find if
you create it where you plan to use it. In this case, select the Sales table first to make it active, and then select New
Measure.
The formula bar appears along the top of the Report canvas, where you can rename your measure and
enter a DAX formula.
2. By default, a new measure is simply named Measure. If you don’t rename it, additional new measures will
be named Measure 2, Measure 3, and so on. You want your measures to be more identifiable, so highlight
Measure in the formula bar, and then type Net Sales.
3. Now you can begin entering your formula. After the equals sign, start to type Sum. As you type, a drop-
down suggestion list appears, showing all the DAX functions beginning with the letters you type. Scroll
down if necessary to select SUM from the list, and then press Enter.
An opening parenthesis appears, along with another drop-down suggestion list of all of the available
columns you can pass to the SUM function.
Expressions always appear between opening and closing parentheses. Your expression will contain a single
argument to pass to the SUM function: the SalesAmount column. Begin typing "SalesAmount" until only
one value is left in the list: Sales(SalesAmount). The column name preceded by the table name is called the
fully-qualified name of the column. Fully-qualified column names make your formulas easier to read.
TIP
Syntax errors are most often caused by a missing or misplaced closing parenthesis.
6. Press Enter or click the checkmark in the formula bar to complete and validate the formula. The validated
measure is now ready to use in the Field list for the Sales table.
If you run out of room for entering a formula or want it to be on separate lines, select the down chevron on the
right side of the formula bar to open up more space.
You can separate parts of your formula on different lines by pressing Alt-Enter, or move things over by using
Tab.
To see the difference between net sales and total sales by country, select the SalesAmount field or drag it into the
chart.
The chart now uses two measures: SalesAmount, which was summed automatically, and the Net Sales measure
you created. Each measure was calculated in the context of another field, RegionCountryName.
Use your measure with a slicer
You can add a slicer to further filter net sales and sales amounts by calendar year.
1. Click a blank area next to the chart, then in Visualizations, select the Table visualization. This creates a
blank table visualization on the report canvas.
2. Drag the Year field from the Calendar table into the new blank table visualization. Because Year is a
numeric field, Power BI Desktop sums up its values, but that doesn’t make much sense as an aggregation.
3. In Values in the Visualizations pane, select the down arrow next to Year, and then select Don't
summarize. The table now lists individual years.
4. Select the Slicer icon in the Visualizations pane to convert the table into a slicer.
5. Select any value in the Year slicer to filter the Net Sales and Sales Amount by Country chart
accordingly. The Net Sales and SalesAmount measures recalculate and display results in the context of the
selected Year field.
You can also reference measures by just typing an opening bracket ([). The suggestion list will show only
measures to add to your formula.
3. Enter a space, a divide operator (/), another space, a SUM function, and then type Quantity. The
suggestion list shows all the columns with Quantity in the name. Select Sales[SalesQuantity], type the
closing parenthesis, and press ENTER or select the checkmark to validate your formula. The formula should
look like this:
Net Sales per Unit = [Net Sales] / SUM(Sales[SalesQuantity])
4. Select the Net Sales per Unit measure from the Sales table, or drag it onto a blank area in the report
canvas. The chart shows the net sales amount per unit over all products sold, which is not very informative.
6. Select the Product Category field, or drag it into the treemap or into the Group field of the Visualizations
pane. Now you have some good info!
7. Try removing the ProductCategory field, and dragging the ProductName field into the chart instead.
Ok, now we're just playing, but you have to admit that's cool! Experiment with other ways to filter and format the
visualization.
Next steps
To learn more about Power BI Desktop quick measures, which provide many common measure calculations
for you, see Use quick measures to easily perform common and powerful calculations.
If you want to take a deeper dive into DAX formulas and create some more advanced measures, see DAX
basics in Power BI Desktop. This article focuses on fundamental concepts in DAX, such as syntax, functions,
and a more thorough understanding of context.
Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. This is where you'll find
detailed info on DAX syntax, operators, and the over 200 DAX functions.
Tutorial: Create calculated columns in Power BI
Desktop
1/14/2019 • 7 minutes to read • Edit Online
Sometimes the data you’re analyzing doesn’t contain a particular field you need to get the results you’re after. This
is where calculated columns come in. Calculated columns use Data Analysis Expressions (DAX) formulas to define
a column’s values, anything from putting together text values from a couple of different columns to calculating a
numeric value from other values. For example, let’s say your data has City and State fields, but you want a single
Location field that has both, like "Miami, FL". This is precisely what calculated columns are for.
Calculated columns are similar to measures in that both are based on DAX formulas, but they differ in how they
are used. You often use measures in a visualization's Values area, to calculate results based on other fields. You use
calculated columns as new Fields in the rows, axes, legends, and group areas of visualizations.
This tutorial will guide you through understanding and creating some calculated columns and using them in report
visualizations in Power BI Desktop.
Prerequisites
This tutorial is intended for Power BI users already familiar with using Power BI Desktop to create more
advanced models. You should already know how to use Get Data and the Power Query Editor to import
data, work with multiple related tables, and add fields to the Report canvas. If you’re new to Power BI
Desktop, be sure to check out Getting Started with Power BI Desktop.
The tutorial uses the Contoso Sales Sample for Power BI Desktop, the same sample used for the Create
your own measures in Power BI Desktop tutorial. This sales data from the fictitious company Contoso, Inc.
was imported from a database, so you won’t be able to connect to the data source or view it in the Power
Query Editor. Download and extract the file on your own computer, and then open it in Power BI Desktop.
1. Select the More options ellipsis (...), or right-click, on the ProductSubcategory table in the Fields list, and
then select New Column. This creates your new column in the ProductSubcategory table.
The formula bar appears along the top of the Report canvas, ready for you to name your column and enter a
DAX formula.
2. By default, a new calculated column is simply named Column. If you don’t rename it, additional new
columns will named Column 2, Column 3, and so on. You want your column to be more identifiable, so
since the Column name is already highlighted in the formula bar, rename it by typing
ProductFullCategory, and then type an equals (=) sign.
3. You want the values in your new column to start with the ProductCategory name. Because this column is in
a different but related table, you can use the RELATED function to help you get it.
After the equals sign, type r. A dropdown suggestion list shows all of the DAX functions beginning with the
letter R. Selecting each function shows a description of its effect. As you type, the suggestion list scales
closer to the function you need. Select RELATED, and then press Enter.
An opening parenthesis appears, along with another suggestion list of the related columns you can pass to
the RELATED function, with descriptions and details on expected parameters.
4. You want the ProductCategory column from the ProductCategory table. Select
ProductCategory[ProductCategory], press Enter, and then type a closing parenthesis.
TIP
Syntax errors are most often caused by a missing or misplaced closing parenthesis, although sometimes Power BI
Desktop will add it for you.
5. You want dashes and spaces to separate the ProductCategories and ProductSubcategories in the new
values, so after the closing parenthesis of the first expression, type a space, ampersand (& ), double-quote
("), space, dash (-), another space, another double-quote, and another ampersand. Your formula should now
look like this:
ProductFullCategory = RELATED(ProductCategory[ProductCategory]) & " - " &
TIP
If you need more room, select the down chevron on the right side of the formula bar to expand the formula editor. In
the editor, press Alt + Enter to move down a line, and Tab to move things over.
6. Enter an opening bracket ([), and then select the [ProductSubcategory] column to finish the formula.
You didn’t need to use another RELATED function to call the ProductSubcategory table in the second
expression, because you are creating the calculated column in this table. You can enter
[ProductSubcategory] with the table name prefix (fully-qualified) or without (non-qualified).
7. Complete the formula by pressing Enter or selecting the checkmark in the formula bar. The formula
validates, and the ProductFullCategory column name appears in the ProductSubcategory table in the
Fields list.
NOTE
In Power BI Desktop, calculated columns get a special icon in the field list, showing that they contain formulas. In the
Power BI service (your Power BI site), there’s no way to change formulas, so calculated columns don't have icons.
3. The first argument for IF is a logical test of whether a store's Status is "On". Type an opening bracket [ ,
which lists columns from the Stores table, and select [Status].
4. Right after [Status], type ="On", and then type a comma (,) to end the argument. The tooltip suggests that
you now need to add a value to return when the result is TRUE.
5. If the store's status is "On", you want to show the store’s name. Type an opening bracket ([) and select the
[StoreName] column, and then type another comma. The tooltip now indicates that you need to add a
value to return when the result is FALSE.
6. You want the value to be Inactive, so type "Inactive", and then complete the formula by pressing Enter or
selecting the checkmark in the formula bar. The formula validates, and the new column's name appears in
the Stores table in the Fields list.
7. You can use your new Active StoreName column in visualizations just like any other field. To show
SalesAmounts by Active StoreName, select the Active StoreName field or drag it onto the canvas, and
then select the SalesAmount field or drag it into the table. In this table, active stores appear individually by
name, but inactive stores are grouped together at the end as Inactive.
Next steps
If you want to take a deeper dive into DAX formulas and create calculated columns with more advanced formulas,
see DAX Basics in Power BI Desktop. This article focuses on fundamental concepts in DAX, such as syntax,
functions, and a more thorough understanding of context.
Be sure to add the Data Analysis Expressions (DAX) Reference to your favorites. This is where you'll find detailed
info on DAX syntax, operators, and the over 200 DAX functions.
Tutorial: Facebook analytics using Power BI Desktop
2/13/2019 • 9 minutes to read • Edit Online
In this tutorial you learn how to import data from Facebook and use it in Power BI Desktop. You'll connect and
import data from the Power BI Facebook page, apply transformations to the imported data, and use the data in
report visualizations.
5. When prompted for credentials, sign in to your Facebook account, and allow Power BI access through your
account.
After connecting to the Power BI Facebook page, you see a preview of the page's Posts data.
Shape and transform the imported data
You want to see and show which posts have the most comments over time, but you notice in the Posts data
preview that the created_time data is hard to read and understand, and there is no comments data at all. You need
to perform some shaping and cleansing of the data to pull the most out of it. You can use the Power BI Desktop
Power Query Editor to edit the data, before or after importing it into Power BI Desktop.
Split the date/time column
First, separate the date and time values in the created_time column to be more readable.
1. In the Facebook data preview, select Edit.
The Power BI Desktop Power Query Editor opens in a new window and displays the data preview from
the Power BI Facebook page.
2. Select the created_time column. Note that it is currently a Text data type, denoted by an ABC icon in the
column header. Right-click the header and select Split Column > By Delimiter in the dropdown, or select
Split Column > By Delimiter under Transform in the Home tab of the ribbon.
3. In the Split column by delimiter dialog, select Custom from the dropdown, enter T (the character that
starts the time part of the created_time values) in the input field, and select OK.
The column splits into two columns that contain the strings before and after the T delimiter and are named
created_time.1 and created_time.2, respectively. Note that Power BI has automatically detected and
changed the data types to Date for the first column and Time for the second column, and formatted the
date and time values to be more readable.
4. Rename the columns by double-clicking each column header, or selecting each column and then selecting
Rename in the Any Column Group of the Transform tab in the ribbon, and typing new column headers
created_date and created_time, respectively.
The column now displays the number of comments for each message.
4. Rename the Count of object_link.connections.comments.id column to Number of comments.
5. Select the down arrow next to the Number of comments header and select Sort Descending to see the
Posts sorted from most to fewest comments.
A dialog displays the progress of loading the data into the Power BI Desktop data model.
Once the data is loaded, it appears in the Report view as a new Query in the Fields list.
Use the data in report visualizations
Now that you have imported data from the Facebook page, you can quickly and easily gain insights about your
data by using visualizations. Creating a visualization is easy; just select a field or drag it from the Fields list onto
the report canvas.
Create a bar chart
1. In Power BI Desktop Report view, select message from the field list, or drag it onto the canvas. A table
showing all post messages appears on the canvas.
2. With that table selected, also select Number of comments from the Fields list, or drag it into the table.
3. Select the Stacked bar chart icon in the Visualizations pane. The table changes to a bar chart showing the
number of comments per post.
4. Select the ellipsis (...) in the upper right of the visualization, and then select Sort by Number of comments
to sort the table by descending number of comments.
5. Note that the most comments were associated with Blank messages (these posts may have been stories,
links, videos, or other non-text content). To filter out the Blank row, select message (all) under Filters at the
bottom of the Visualizations pane, select Select All, and then select Blank to deselect it. The Filters entry
changes to message is not (Blank), and the Blank row disappears from the chart visualization.
The X axis (number of comments) of the chart does not show exact values, and looks lost at the bottom of the
chart. You decide to use data labels instead.
1. Select the Format icon, and then select the slider next to X-axis to turn it Off.
2. Select the slider next to Data labels to turn them On. Now the chart shows the exact number of comments
for each post.
2. In the Power Query Editor, select the Number of comments column, and change the data type to Whole
Number by either:
Selecting the 1.2 icon next to the Number of comments column header, and selecting Whole number
from the dropdown, or
Right-clicking the column header and selecting Change type > Whole Number, or
Selecting Data type: Decimal Number in the Transform group of the Home tab, or the Any Column
group of the Transform tab, and selecting Whole Number.
The icon in the column header changes to 123, denoting a Whole Number data type.
3. Select Close & Apply, or just Apply to apply the changes while keeping the Power Query Editor window
open. Once the changes load, the data labels on the chart become whole numbers.
3. Move the slider handles to select different date ranges, and note how the chart data filters accordingly. You
can also select the date fields in the slicer and type in specific dates, or choose them from a calendar popup.
Next steps
Read other Power BI Desktop tutorials
Watch Power BI Desktop videos
Visit the Power BI Forum
Read the Power BI Blog
Dynamic row level security with Analysis services
tabular model
1/14/2019 • 8 minutes to read • Edit Online
This tutorial demonstrates the steps necessary to implement row level security within your Analysis Services
Tabular Model, and shows how to use it in a Power BI report. The steps in this tutorial are designed to let you
follow along and learn the steps necessary by completing on a sample dataset.
During this tutorial, the following steps are described in detail, helping you understand what you need to do to
implement dynamic row level security with Analysis Services tabular model:
Create a new security table in the AdventureworksDW2012 database
Build the tabular model with necessary fact and dimension tables
Define the roles and permissions for the users
Deploy the model to an Analysis Services tabular instance
Use Power BI Desktop to build a report that displays the data corresponding to the user accessing the report
Deploy the report to Power BI service
Create a new dashboard based on the report, and finally,
Share the dashboard with your coworkers
To follow the steps in this tutorial you need the AdventureworksDW2012 database, which you can download
from the repository.
Task 1: Create the user security table and define data relationship
There are many published articles describing how to define row level dynamic security with SQL Server Analysis
Services (SSAS ) tabular model. For our sample, we follow the article Implement Dynamic Security by Using Row
Filters. The following steps walk you through the first task in this tutorial:
1. For our sample, we're using AdventureworksDW2012 relational database. In that database, create the
DimUserSecurity table, as shown in the following image. For this sample, we're using SQL Server
Management Studio (SSMS ) to create the table.
2. Once the table is created and saved, we need to create the relationship between the DimUserSecurity
table's SalesTerritoryID column and DimSalesTerritory table's SalesTerritoryKey column, as shown in
the following image. This can be done from SSMS by right-clicking on the DimUserSecurity table, and
selecting Design. Then select Table Designer -> Relationships... from the menu.
3. Save the table, then add few rows of user information in to the table by again right clicking on the
DimUserSecurity table and then selecting Edit Top 200 Rows. Once you’ve added those users, the rows of
the DimUserSecurity table look like they do in the following image:
5. Notice that the above image shows information such as which user is responsible for which sales region.
That data is displayed because of the relationship that we created in Step 2. Also, note that the user Jon
Doe is part of the Australia sales region. We’ll revisit John Doe in upcoming steps and tasks.
Task 2: Create the tabular model with facts and dimension tables
1. Once your relational data warehouse is in place, it’s time to define your tabular model. The model can be
created using SQL Server Data Tools (SSDT). To get more information about how to define a tabular
model, please refer to Create a New Tabular Model Project.
2. Import all the necessary tables into the model as shown below.
3. Once you’ve imported the necessary tables, you need to define a role called SalesTerritoryUsers with
Read permission. This can be achieved by clicking on the Model menu in SQL Server Data Tools, and then
clicking Roles. In the Role Manager dialog box, click New.
4. Under Members tab in the Role Manager, add the users that we defined in the DimUserSecurity table in
Task 1 - step 3.
5. Next, add the proper functions for both DimSalesTerritory and DimUserSecurity tables, as shown below
under Row Filters tab.
6. In this step, we use the LOOKUPVALUE function to return values for a column in which the Windows user
name is the same as the user name returned by the USERNAME function. Queries can then be restricted
where the values returned by LOOKUPVALUE match values in the same or related table. In the DAX Filter
column, type the following formula:
=DimSalesTerritory[SalesTerritoryKey]=LOOKUPVALUE(DimUserSecurity[SalesTerritoryID],
DimUserSecurity[UserName], USERNAME(), DimUserSecurity[SalesTerritoryID],
DimSalesTerritory[SalesTerritoryKey])
In this formula, the LOOKUPVALUE function returns all values for the
DimUserSecurity[SalesTerritoryID ] column, where the DimUserSecurity[UserName] is the same as
the current logged on Windows user name, and DimUserSecurity[SalesTerritoryID ] is the same as the
DimSalesTerritory[SalesTerritoryKey].
IMPORTANT
Be aware that the DAX function USERELATIONSHIP is not supported when using row level security.
The set of Sales SalesTerritoryKey's returned by LOOKUPVALUE is then used to restrict the rows shown in
the DimSalesTerritory. Only rows where the SalesTerritoryKey for the row is in the set of IDs returned by
the LOOKUPVALUE function are displayed.
7. For the DimUserSecurity table, in the DAX Filter column, type the following formula:
=FALSE()
This formula specifies that all columns resolve to the false Boolean condition; therefore, no columns for the
DimUserSecurity table can be queried.
8. Now we need to process and deploy the model. You can refer to the Deploy article for assistance in
deploying the model.
4. With the previous step complete, the gateway is configured and ready to interact with your on-premises
Analysis Services data source.
4. You'll see that the model that was deployed is in the Analysis Services instance. Select the respective
model and select OK.
5. Power BI Desktop now displays all the available fields, to the right of the canvas in the Fields pane.
6. In the Fields pane on the right, select the SalesAmount measure from the FactInternetSales table and the
SalesTerritoryRegion dimension from the SalesTerritory table.
7. We’ll keep this report simple, so right now we won’t add any more columns. To have a more meaningful
representation of the data, we'll change the visualization to Donut chart.
8. Once your report is ready, you can directly publish it to the Power BI portal. From the Home ribbon in
Power BI Desktop, select Publish.
3. When Jon Doe logs in to the Power BI service and views the shared dashboard that Sumit created, Jon Doe
should see only the sales from his region for which he is responsible. So Jon Doe logs in, accesses the
dashboard that Sumit shared with him, and Jon Doe sees only the sales from the Australia region.
4. Congratulations! The dynamic row level security that was defined in the on-premises Analysis Services
tabular model has been successfully reflected and observed in the Power BI service. Power BI uses the
effectiveusername property to send the current Power BI user credential to the on-premises data source
to run the queries.
<PropertyList><Catalog>DefinedSalesTabular</Catalog><Timeout>600</Timeout><Content>SchemaData</Content>
<Format>Tabular</Format><AxisFormat>TupleFormat</AxisFormat><BeginRange>-1</BeginRange><EndRange>-
1</EndRange><ShowHiddenCubes>false</ShowHiddenCubes><VisualMode>0</VisualMode>
<DbpropMsmdFlattened2>true</DbpropMsmdFlattened2><SspropInitAppName>PowerBI</SspropInitAppName>
<SecuredCellValue>0</SecuredCellValue><ImpactAnalysis>false</ImpactAnalysis>
<SQLQueryMode>Calculated</SQLQueryMode><ClientProcessID>6408</ClientProcessID><Cube>Model</Cube>
<ReturnCellProperties>true</ReturnCellProperties><CommitTimeout>0</CommitTimeout>
<ForceCommitTimeout>0</ForceCommitTimeout><ExecutionMode>Execute</ExecutionMode>
<RealTimeOlap>false</RealTimeOlap><MdxMissingMemberMode>Default</MdxMissingMemberMode>
<DisablePrefetchFacts>false</DisablePrefetchFacts><UpdateIsolationLevel>2</UpdateIsolationLevel>
<DbpropMsmdOptimizeResponse>0</DbpropMsmdOptimizeResponse><ResponseEncoding>Default</ResponseEncoding>
<DirectQueryMode>Default</DirectQueryMode><DbpropMsmdActivityID>4ea2a372-dd2f-4edd-a8ca-
1b909b4165b5</DbpropMsmdActivityID><DbpropMsmdRequestID>2313cf77-b881-015d-e6da-
eda9846d42db</DbpropMsmdRequestID><LocaleIdentifier>1033</LocaleIdentifier>
<EffectiveUserName>[email protected]</EffectiveUserName></PropertyList>
3. Based on the effective user name request, Analysis Services converts the request to the actual
moonneo\jondoe credential after querying the local Active Directory. Once Analysis Services gets the
actual credential from Active Directory, then based on the access and permissions the user has for the data,
Analysis Services returns only the data for which he or she has permission.
4. If more activity occurs with the dashboard, for example, if Jon Doe goes from the dashboard to the
underlying report, with SQL Profiler you would see a specific query coming back to the Analysis Services
tabular model as a DAX query.
5. You can also see below the DAX query that is getting executed to populate the data for the report.
EVALUATE
ROW(
"SumEmployeeKey", CALCULATE(SUM(Employee[EmployeeKey]))
)
<PropertyList xmlns="urn:schemas-microsoft-com:xml-analysis">``
<Catalog>DefinedSalesTabular</Catalog>
<Cube>Model</Cube>
<SspropInitAppName>PowerBI</SspropInitAppName>
<EffectiveUserName>[email protected]</EffectiveUserName>
<LocaleIdentifier>1033</LocaleIdentifier>
<ClientProcessID>6408</ClientProcessID>
<Format>Tabular</Format>
<Content>SchemaData</Content>
<Timeout>600</Timeout>
<DbpropMsmdRequestID>8510d758-f07b-a025-8fb3-a0540189ff79</DbpropMsmdRequestID>
<DbPropMsmdActivityID>f2dbe8a3-ef51-4d70-a879-5f02a502b2c3</DbPropMsmdActivityID>
<ReturnCellProperties>true</ReturnCellProperties>
<DbpropMsmdFlattened2>true</DbpropMsmdFlattened2>
<DbpropMsmdActivityID>f2dbe8a3-ef51-4d70-a879-5f02a502b2c3</DbpropMsmdActivityID>
</PropertyList>
Considerations
There are a few considerations to keep in mind when working with row level security, SSAS, and Power BI:
1. On-premises row level security with Power BI is only available with Live Connection.
2. Any changes in the data after processing the model would be immediately available for the users (who are
accessing the report with Live Connection) from the Power BI service.
What sample data is available to use with Power BI?
1/14/2019 • 11 minutes to read • Edit Online
Say you're new to Power BI and want to try it out but don't have any data. Or maybe you have a dataset, but
because you don't understand (yet) how Power BI works, you worry that you might somehow damage your
dataset?
No need to stress out! obviEnce (www.obvience.com) and Microsoft have created samples for you to use until
you feel more comfortable with Power BI. The data is anonymized and represents different industries: finance,
HR, sales, and more. And as you read through our online documentation you'll discover tutorials and examples
that use these same samples which means that you'll be able to follow along.
Each of these samples is available in several formats: as a content pack, as an individual Excel workbook, and as
a .pbix file. If you don't know what these things are, or how to get your hands on them -- don't worry. We'll
explain it all later in this article. And for each sample we've created a tour which is a type of article that tells the
story behind the sample and walks you through different scenarios. One scenario might be answering questions
for your manager, another might be looking for competitive insights, or creating reports and dashboards to
share, or explaining a business shift.
But before we get started, please read through these legal guidelines for using the samples. When you're done
we'll introduce the samples and show you how to use them.
Available samples
Eight samples are available for you to use. Each one represents a different industry.
3. On the Get Data page that appears, select the Samples icon.
4. Select one of the samples to open a description of that sample. Then choose Connect.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk. Use the samples to take Power BI for a test
run.
Now that you have data, you're on your way. Try out some of our tutorials using the sample content packs or just
open Power BI service and explore.
Local - If you save your file to a local drive on your computer or another location in your
organization, from Power BI, you can import your file into Power BI. Your file will actually remain on
your local drive, so the whole file isn’t really imported into Power BI. What really happens is a new
dataset is created in your Power BI site and data, and in some cases the data model, are loaded into
the dataset. If your file has any reports, those will appear in your Power BI site under Reports.
OneDrive - Business – If you have OneDrive for Business and you sign into it with the same
account you sign into Power BI with, this is by-far the most effective way to keep your work in Excel,
Power BI, or a .CSV file in-sync with your dataset, reports, and dashboards in Power BI. Because both
Power BI and OneDrive are in the cloud, Power BI connects to your file on OneDrive about every
hour. If any changes are found, your dataset, reports, and dashboards are automatically updated in
Power BI.
OneDrive - Personal – If you save your files to your own OneDrive account, you’ll get many
of the same benefits as you would with OneDrive for Business. The biggest difference is when you
first connect to your file (using Get Data > Files > OneDrive – Personal) you’ll need to sign in to your
OneDrive with your Microsoft account, which is usually different from what you use to sign in to
Power BI. When signing in with your OneDrive with your Microsoft account, be sure to select the Keep
me signed in option. This way, Power BI will be able to connect to your file about every hour and make
sure your dataset in Power BI is in-sync.
SharePoint Team -Sites Saving your Power BI files to SharePoint – Team Sites is much the
same as saving to OneDrive for Business. The biggest difference is how you connect to the file from
Power BI. You can specify a URL or connect to the root folder.
3. Open Power BI service (app.powerbi.com) and log in.
TIP
At this point you may want to create a new dashboard and name it after the file you plan on importing.
Otherwise, when you import the Excel dataset, Power BI won't create a new dashboard named after the sample
but instead will add a tile to the dashboard that you currently have open. Selecting that tile will take you to the
dataset's report. This isn't a major big deal as you can always create a new dashboard later, but starting with a new
dashboard saves you a step or two.
5. On the Get Data page that appears, select Files > Get.
6. Navigate to the location where you downloaded and saved the sample.
7. Select the file, in this case Procurement Analysis Sample.xlsx which was saved on OneDrive for
Business, and choose Connect.
8. Choose whether to import the data or to bring the workbook into Power BI and see it exactly as it is in
Excel online.
9. If you select Import, Power BI imports the sample workbook and adds it as a new dataset named
Procurement Analysis Sample. If the workbook has any Power View sheets, tables or ranges, or a data
model, Power BI also creates a report (with the same name). And if you don't already have a dashboard
open, Power BI creates a new dashboard. (If you had a dashboard open when you clicked Get Data,
you'll see a new blank tile on that dashboard. Clicking that tile will take you to the report for the dataset
you just added). The new content is named after the sample and is marked with a yellow asterisk.
10. When the Your dataset is ready! screen appears, select View dataset or Get Quick Insights or simply
use your Power BI left navbar to locate and open the associated report or dashboard.
(Optional) Take a look at the Excel samples from inside Excel itself
Want to understand how the data in an Excel workbook gets converted to Power BI datasets and reports?
Opening the Excel samples in Excel and exploring the worksheets provides some of the answers.
When you first open a sample workbook in Excel, you may see two warnings. The first says the workbook
is in Protected View. Select Enable Editing. The second may say that the workbook has external data
connections. Select Enable Content.
Each workbook contains several sheets. Because these Excel samples all have at least one Power View
sheet with visualizations, when you import the Excel file into Power BI you'll end up with a dataset and a
report.
You may need to enable the Power View add-in.
So where's the actual data? It's in the Power Pivot data model. To see the data, on the PowerPivot tab,
select Manage Data Model.
Don't see the PowerPivot tab? Enable the Power Pivot add-in.
The Info tab provides information about obviEnce, the company that created the sample.
Next steps
Power BI basic concepts
Tutorial: Connect to the Power BI samples
Data sources for Power BI
More questions? Try the Power BI Community
Connect to the samples in the Power BI service
1/14/2019 • 5 minutes to read • Edit Online
Prerequisites
The samples are available for Power BI service and Power BI Desktop. To follow along, we'll be using the Retail
analysis sample.
The Retail Analysis sample content pack used in this tutorial consists of a dashboard, report, and dataset. To
familiarize yourself with this particular content pack and its scenario, you may want to take a tour of the Retail
Analysis sample before you begin.
3. Select Samples.
2. Open the Reports tab. Here you'll see a new report named Retail Analysis Sample.
And check out the Datasets tab. There's a new dataset as well.
Explore your new content
Now explore the dashboard, dataset, and report on your own. There are many different ways to navigate to your
dashboards, reports, and datasets, and just one of those many ways is described below.
TIP
Want a little hand-holding first? Try the Tour of the Retail Analysis sample for a step-by-step walkthrough of this sample.
1. Navigate back to your Dashboards tab and select the Retail Analysis Sample dashboard to open it.
3. Select one of the tiles to open the underlying report. In this example, we'll select the area chart (outlined in
pink in the previous image). The report opens to the page that contains that area chart.
NOTE
If the tile had been created using Power BI Q&A, the Q&A page would've opened instead. If the tile was pinned from
Excel, Excel Online would've opened inside of Power BI.
4. Back on your Datasets tab, you have several options for exploring your dataset. You won't be able to open
it and see all the rows and columns (as you can in Power BI Desktop or Excel). When someone shares a
content pack with colleagues, they typically want to share the insights, not give their colleagues direct
access to the data. But that doesn't mean you can't explore the dataset.
One way of exploring the dataset is by creating your own visualizations and reports from scratch.
Select the chart icon to open the dataset in report editing mode.
Another way of exploring the dataset is to run Quick Insights. Select the ellipses (...) and choose Get
insights. When the insights are ready, select View insights.
2. The file opens in Report view. Notice the 4 tabs at the bottom of the report editor? That means that there
are 4 pages in this report, and the "New Stores" page is currently selected.
.
3. For a deep dive into the report editor, see Take a tour of the report editor
Data View helps you inspect, explore, and understand data in your Power BI Desktop model. It's different
from how you view tables, columns, and data in Query Editor. With Data View, you’re looking at your data
after it has been loaded into the model.
When you’re modeling your data, sometimes you want to see what’s actually in a table or column without
creating a visual on the report canvas, often right down to the row level. This is especially true when you’re
creating measures and calculated columns, or you need to identify a data type or data category.
Relationship view shows all of the tables, columns, and relationships in your model. From here you can
view, change, and create relationships.
Next steps
Power BI basic concepts
Samples for Power BI service
Data sources for Power BI
More questions? Try the Power BI Community
Customer Profitability sample for Power BI: Take a
tour
2/13/2019 • 9 minutes to read • Edit Online
This sample is part of a series that illustrates how you can use Power BI with business-oriented data, reports and
dashboards. This is real data from obviEnce (www.obvience.com) that has been anonymized. The data is available
in several formats: content pack/app, Excel workbook, or .pbix Power BI Desktop file. See Sample datasets.
Prerequisites
Want to follow along? This tutorial uses Power BI service and the "Customer Profitability" sample content pack.
Because the report experiences are so similar, you can also follow along using Power BI Desktop and the sample
PBIX file. Instructions for connecting to the content pack and the PBIX file are below.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk. Use the samples to take Power BI for a test
run.
4. Continue exploring, and if you find something interesting, select Pin from the upper-right corner to
pin it to a dashboard.
5. Use your browser's back arrow to return to the dashboard.
Open the underlying Power BI report
The majority of the tiles on the Customer Profitability sample dashboard were pinned from the underlying
Customer Profitability sample report.
1. Select one of these tiles to open the report in Reading view.
2. The report has 3 pages. Each tab at the bottom of the report represents a page.
"Team Scorecard" focuses on the performance of the 5 managers and their "books of business."
"Industry Margin Analysis" provides a way to analyze our profitability compared to what's going on in
our entire industry.
"Executive Scorecard" provides a view of each of our managers formatted for viewing in Cortana.
Team Scorecard page
Let’s look at two of the team members in detail and see what insights can be gained. In the slicer on the left, select
Andrew's name to filter the report page to display only data about Andrew.
For a quick KPI, look at Andrew’s Revenue Status - he is green. He’s performing well.
The “Revenue Var % to Budget by Month” Area chart shows that except for a dip in February, Andrew is doing
pretty well overall. His dominant region is East and he handles 49 customers and 5 (out of 7) products. His
GM% isn’t the highest or lowest.
The “RevenueTY and Revenue Var % to Budget by Month” shows a steady even profit story.But when you filter
by clicking on the square for Central in the region treemap, you discover that Andrew has revenue only in
March and only in Indiana. Is this intentional or is this something that needs looking into?
Now on to Valery. In the slicer, select Valery’s name to filter the report page to display only data about her.
Notice the red KPI for RevenueTY Status. This definitely needs further investigation.
Her revenue variance also paints a worrying picture – she is not meeting her revenue margins.
Valery has only 9 customers, handles only 2 products and works almost-exclusively with customers in the north.
This specialization could explain wide fluctuations in her metrics.
Selecting the North square in the treemap shows that Valery’s gross margin in the North is consistent with her
overall margin.
Selecting the other Region squares tells an interesting story: her GM% ranges from 23% to 79% and her
revenue numbers, in all regions except North, are extremely seasonal.
Continue digging to find out why Valery’s area is not performing well. Look at regions, the other business units,
and the next page in the report – “Industry Margin Analysis.”
Industry Margin Analysis
This report page provides a different slice of the data. It looks at gross margin for the entire industry, broken down
by segment. The CFO uses this page to compare company and business unit metrics to industry metrics to help
her explain trends and profitability. You might wonder why the “Gross Margin by Month and Executive Name” area
chart is on this page, since it is team-specific. Having it here lets us filter the page by business unit manager.
How does profitability vary by industry? How do the products and customers break down by industry? Select one
or more industries from the top left. (Start from the CPG industry) To clear the filter, select the eraser icon.
On the bubble chart, the CFO looks for the largest bubbles since these are the ones that have the biggest impact
on revenue. Filtering the page by manager by clicking on their names in the area chart makes it easy to see each
manager’s impact by industry segment.
Andrew's area of influence spans many different industry segments with widely varying GM% (most on the
positive side) and Var%.
Annelie's chart is similar, except that she concentrates on only a handful of industry segments with a focus on
the Federal segment and a focus on Gladius product.
Carlos has a clear focus on the Services segment, with good profit. He's greatly improved variance % for the
High Tech segment and a new segment for him, Industrial, performed exceptionally well compared to budget.
Tina works with a handful of segments and has the highest GM%, but the mostly small size of her bubbles
shows that her impact on the company's bottom line is minimal.
Valery, who is responsible for only one product, works in only 5 industry segments. Her industry influence is
seasonal, but always produces a large bubble, indicating a significant impact on the company’s bottom line.
Does industry explain her negative performance?
Executive Scorecard
This page is formatted as an Answer Card for Cortana. To learn more, see create Answer Cards for Cortana
3. Type total revenue by industry for Valery. Notice how the visualization updates as you type the question.
4. The "Gross margin by Month and Executive Name" area chart tells us that only Valery and Tina have
customers in this industry and Valery only worked with this industry from June to November.
5. Select Tina and then Valery in the "Gross Margin by Month and Executive" area chart legend. Notice Tina's
portion of "Total Revenue by Product" is really small compared to Valery.
6. To see actual revenue, use Q&A to ask total revenue by executive for distribution by scenario.
We can similarly explore other industries and even add customers to our visuals to understand causes for
Valery's performance.
This is a safe environment to play in. You can always choose not to save your changes. But if you do save them, you
can always go to Get Data for a new copy of this sample.
You can also download just the dataset (Excel workbook) for this sample.
This sample is part of a series that illustrates how you can use Power BI with business-oriented data, reports and
dashboards. This is real data from obviEnce (http://obvience.com/) that has been anonymized.
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
But just looking at this chart and drawing conclusions can be misleading. We need to look at actual dollar amounts
to put things in perspective.
1. Select Aus and NZ in the Var Plan % by Sales Region chart, and observe Var Plan by IT Area chart.
2. Now select USA. You get the idea — Australia is a really small part of our overall spend as compared to US.
So we narrowed it down to the USA, now what? Let’s explore which category in the USA is causing the
variance.
In the first IT area, Infrastructure, the percentage has changed drastically between the initial variance plan
and the variance plan latest estimate.
3. Click the name of each Cost Element Group in the slicer to find the cost element with a large variance.
4. With Other selected, click Infrastructure in the IT Area and click the sub areas in the IT Sub Area slicer to
find the sub area with the largest variance.
We see a huge variance in Networking.
Apparently the company decided to give its employees phone services as a benefit but this move was not
planned for.
This sample is part of a series that illustrates how you can use Power BI with business-oriented data, reports, and
dashboards. This is real data from obviEnce (www.obvience.com) that has been anonymized. The data is available
in several formats: content pack/app, Excel workbook, or .pbix Power BI Desktop file. To learn more, see Sample
datasets.
Prerequisites
Before you can use the sample, you must first download it as a content pack, pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
4. Select the Human Resources Sample, then choose Connect.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk.
New hires
Let’s explore new hires first.
1. In your workspace, select the Dashboards tab, and open the Human Resources dashboard.
2. On the dashboard, select the New Hire Count, New Hires Same Period Last Year, Actives YoY %
Change By Month tile.
The Human Resources Sample report opens to the New Hires page.
The Human Resources Sample report opens to the Active Employees vs. Separations page.
Items of interest:
Combo charts on the left show year-over-year change for active employees and separates. We have more
actives this year due to rapid hiring, but also more separates than last year.
In August we had more separates compared to other months. Select the different age groups, genders, or
regions to see if you can find any outliers.
Looking at the pie charts, we notice we have a pretty even split in our active employees by gender and age
groups. Select different age groups to see the gender split differs by age. Do we have an even split by gender in
every age group?
Notice the trend in the 50+ age group? During the latter part of the year more employees over age 50 are
leaving voluntarily. This would be an area to investigate further with more data.
6. You can follow the same steps for the Active Employee Count by Gender pie chart too, changing it to
separations instead of active employees. Look at the voluntary separation data by gender to see if you find
any other insights.
7. Click Power BI in the top navigation bar to return to the dashboard. You can save the changes you’ve made
to the report or not.
Bad hires
The last area to explore is bad hires. Bad hires are defined as employees who didn’t last for more than 60 days.
We’re hiring rapidly. Are we hiring good candidates?
1. Select the Bad Hires as % of Actives by Age Group dashboard tile. This opens the report to page 3, “Bad
Hires”.
2. Select the Northwest check box in the Region slicer on the left and the Male slice in the Bad Hire Count by
Gender donut chart. Look at other charts on the “Bad Hires” page. More male bad hires than females and
lot of Group A bad hires.
3. Looking at the Bad Hires by Gender donut chart and clicking through the Region slicer we notice that
East is the only region with more female than male bad hires.
4. Select the name of the dashboard from the top navbar to return to the dashboard.
This sample is part of a series that illustrates how you can use Power BI with business-oriented data, reports and
dashboards. This is real data from obviEnce (www.obvience.com) that has been anonymized.
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk.
Filtering by East (select East in the pie chart) reveals that the opportunities in the east are split almost equal
between partner driven and non-partner driven.
Large opportunities are most common in the central region, small opportunities are most common in the east
region, and medium opportunities are most common in the west region.
Page 4 of our report is titled “Upcoming Opportunities”
Again, we’re looking at similar factors, but this time from a date/time perspective.
Our CFO uses this page to manage workload. By looking at the revenue opportunities by sales stage and month,
she can plan appropriately.
Average revenue for the Finalize stage is the highest. Closing these deals is a top priority.
Filtering by month (by selecting the month name in the left slicer) shows that January has a high proportion of
large deals in the Finalize stage with factored revenue of $75M. February, on the other hand, has mostly
medium deals in Solution and Proposal stage.
In general, the factored revenue numbers fluctuate based on sales stage, number of opportunities, and deal
size. Add filters (using the filter pane on the right) for these factors to discover further insights.
This is a safe environment to play in. You can always choose not to save your changes. But if you do save them,
you can always go to Get Data for a new copy of this sample.
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk.
Spending trends
Let’s first look for trends in spending by category and location.
1. From your workspace, open the Dashboards tab and select the Procurement Analysis dashboard.
2. Select the dashboard tile Total Invoice by Country/Region. It opens to the "Spend Overview" page of the
“Procurement Analysis Sample” report.
Notice a few things:
In the Total Invoice by Month and Category line chart: The Direct category has pretty consistent spending,
Logistics has a peak in December, and Other has a spike in February.
In the Total Invoice by Country/Region map: Most of our spending is in the USA.
In the Total Invoice by Sub Category column chart: Hardware and Indirect Goods & Services are the
biggest spend categories.
In the Total Invoice by Tier bar chart: Most of our business is done with our Tier 1 (top 10) vendors. This helps
in managing vendor relationships better.
Spending in Mexico
Let’s explore the spending areas in Mexico.
1. In the pie chart, select the Mexico bubble in the map. Notice that in the “Total Invoice by Sub Category”
column chart, most of it is in the Indirect Goods & Services sub category.
3. Select the up arrow on the upper-left corner of the chart to drill back up .
4. Select the arrow again to turn drill down off.
5. Select Power BI in the top navigation bar to return to your workspace.
Discount by city
Another area to explore is discount by city. Select each city in the treemap and see how the other charts change.
St. Louis, MO had a big spike in total invoice in February and a big dip in discount savings in April.
Mexico City, Mexico has the highest discount % (11.05%) and Atlanta, GA has the smallest (0.08%).
Edit the report
Select Edit report in the upper-left corner and explore in Editing View.
See how the pages are made
Add pages and charts based on the same data
Change the visualization type for a chart – for example, change the treemap to a donut chart
Pin them to your dashboard
This is a safe environment to play in. You can always choose not to save your changes. If you do save them, you
can always go to Get Data for a new copy of this sample.
This industry sample dashboard and underlying report analyze retail sales data of items sold across multiple
stores and districts. The metrics compare this year’s performance to last year’s in these areas: sales, units, gross
margin, and variance, as well as new store analysis. This is real data from obviEnce (www.obvience.com) that has
been anonymized.
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
This takes you to the "Store Sales Overview" page in the report. You see we have 104 total stores, 10 of
them new. We have two chains, Fashions Direct and Lindseys. Fashions Direct stores are larger on average.
2. In the pie chart, select Fashions Direct.
Notice the result in the bubble chart:
FD -01 district has the highest Average Sales per Square Foot, FD -02 has the lowest Variance in Sales
compared to last year, FD -03 and FD -04 are worst performers overall.
3. Select individual bubbles or other charts to see cross highlighting, revealing the impact of your selections.
4. To return to the dashboard, select its name from the top navbar (breadcrumbs).
5. On the dashboard, select the tile that has "This Year’s Sales."
Let’s see if we can narrow down where the issues might be.
2. Select the bubble chart, and choose 020-Mens.
Observe the men's category wasn't as severely affected in April as the business overall, but January and
July were still problem months.
3. Now, select the 010-Womens’ bubble.
Notice the women's category performed much worse than business overall across all months, and much
worse in almost every month compared to the previous year.
4. Select the bubble again to clear the filter.
Note that Allan’s district outperformed Last Year in March and June.
2. Now, while Allan is still selected, select the Women’s bubble.
Note that for the Women’s category, his district never met last year’s volume.
3. Explore the other district managers and categories – what other insights can you find?
4. When you are ready – return to the dashboard.
As evident from the tile – more Fashions Direct stores than Lindseys stores opened this year.
2. Observe the 'Sales Per Sq Ft by Name' chart:
There is quite a bit of difference in Average Sales per SQF across the new stores.
3. Click on the Fashions Direct legend item in the top right chart. Notice, even for the same chain, the best
store (Winchester Fashions Direct) significantly outperforms the worst store (Cincinnati 2 Fashions Direct)
$21.22 vs $12.86 respectively.
4. Click Winchester Fashions Direct in the slicer and observe the line chart. The first sales numbers were
reported in February.
5. Click on Cincinnati 2 Fashions Direct in the slicer and you will see in the line chart that it was opened in
June and it seems to be the worst performing store.
6. As before, explore by clicking on other bars, lines and bubbles throughout the charts and see what insights
you can discover.
This is a safe environment to play in. You can always choose not to save your changes. But if you do save them,
you can always go to Get Data for a new copy of this sample.
Next steps
Download the Retail Analysis sample content pack
Download a zip file of all the sample files
Download the Excel workbook for this Power BI sample
Get data (for Power BI)
Power BI - Basic Concepts
More questions? Try the Power BI Community
Sales and Marketing sample for Power BI: Take a tour
1/14/2019 • 7 minutes to read • Edit Online
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk.
3. Our share in the Moderation and Convenience categories is very high; these are the segments where we
compete.
4. Navigate back to the dashboard by selecting the dashboard name in the top navbar (breadcrumbs).
What does total unit market share look like for category (versus region )?
1. Notice the “Total Units YTD by Manufacturer, Region” tile. I wonder how the total unit market share looks
by category?
2. In the question box at the top of the dashboard, type the question total units by manufacturer and
category for 2014 as a treemap. Notice how the visualization updates as you type the question.
3. To compare the findings, pin the chart to your dashboard. Very interesting; in 2014 VanArsdel only sold
products that fall into the Urban category.
4. Navigate back to the dashboard.
Dashboards are also an entry point into reports. If a tile was created from an underlying report, clicking that tile
opens the report.
On our dashboard, the R12M (Rolling 12 Months) line shows that our market share is no longer increasing over
time, it’s even declining a bit. And why do we have a big market share dip in June? To investigate further, click this
visualization to open the underlying report.
Our report has 4 pages
Page 1 of our report focuses on VanArsdel’s market share.
1. Look at the “Total Units by Month and isVanArsdel” column chart at the bottom. The black column
represents VanArsdel (our products) and green is our competition. The drop in June 2014 that VanArsdel
experienced is not experienced by the competition.
2. The “Total Category Volume by Segment” bar chart in the middle on the right, is filtered to show
VanArsdel’s top 2 segments. Take a look at how this filter was created:
a. Expand the Filters pane on the right.
b. Click to select the visualization.
c. Under Visual Level Filters, notice that Segment is filtered to include only Convenience and
Moderation.
d. Modify the filter by selecting Segment to expand that section and then checking Productivity to add that
segment as well.
3. In “Total Units by Month and isVanArsdel”, select the black “Yes” in the legend to cross-filter the page by
VanArsdel. Notice that we don’t compete in the Productivity segment.
4. Select the black “Yes” again to remove the filter.
5. Take a look at the line chart. It shows our monthly market share and 12 month rolling market shares. Rolling
12 months data help in smoothing out monthly fluctuations and shows the long term trends. Select
Convenience and then Moderation in the bar chart to see how much fluctuation in market share there is for
each segment. The Moderation segment shows much more fluctuation in market share than the
Convenience segment.
We’re still looking to find out why our market share dipped so low in June. Let’s check Sentiment.
Page 3 of our report focuses on Sentiment.
Tweets, Facebook, blogs, articles, etc. contribute to sentiment which is shown in the two line charts. The sentiment
chart in the top left shows that sentiment for our products were pretty much neutral up until February. Then a big
drop started in February and bottomed out in June. What happened to cause this drop in sentiment? We need to
look at external sources. In February, several articles and blog posts rated VanArsdel’s customer service the worst
in the industry. This bad press had a direct correlation to customer sentiment and sales. VanArsdel worked hard to
improve customer service and customers and the industry took note. In July positive sentiment started to rise and
then reached an all-time high in the 60s. This uptick in sentiment can be seen reflected in “Total Units by Month”
on pages 1 and 3. Perhaps this partially explains our market share dips for June?
Sentiment gap would be another area to explore: which districts have the highest sentiment gap, how can
management capitalize on this, and discover ways to replicate it in other districts.
Page 2 of our report focuses on YTD Category Trend
Of all the companies in this category, VanArsdel is the largest and our biggest competitors are Natura, Aliqui,
and Pirium. We’ll keep our eyes on them.
Aliqui is growing, but product volume compared to us is still low.
The treemap shows VanArsdel in green. In the East, customers prefer our competition, in Central we’re doing
OK, and our share in the East is our lowest.
Geography has an impact on units sold. East is the dominant region for most manufacturers and VanArsdel has
a strong presence in the Central region as well.
On the chart “Total Units YTD Var % by Month and Manufacturer” in the bottom right– we have positive
variance and that is a good sign, we are doing better than last year but so is another competitor, Aliqui.
Page 4 of our report focuses on competitive product analysis.
The bottom left chart shows all the category segments except for VanArsdel’s two strongest segments. Filtering
by category by clicking on the bars helps identify potential expansion areas for VanArsdel. The Extreme and
Productivity segments are growing faster than others.
But we don’t compete in these segments. If we want to move into these areas, we can use our data to see which
segments are popular in which regions. We can further investigate questions like which region is growing faster
and who would be our biggest competitor in that segment.
Remember our market share dip in June? June is a huge month for the Productivity segment – a segment we
don’t compete in at all. This could help explain our market share dip in June.
By filtering the visualizations by VanArsdel, by segment, by month, and by region, we can discover growth
opportunities for VanArsdel.
This is a safe environment to play in. You can always choose not to save your changes. But if you do save them, you
can always go to Get Data for a new copy of this sample.
This sample is part of a series that illustrates how you can use Power BI with business-oriented data, reports, and
dashboards. This is real data from obviEnce (www.obvience.com) that has been anonymized.
Prerequisites
Before you can use the sample, you must first download it as a content pack, .pbix file, or Excel workbook.
Get the content pack for this sample
1. Open the Power BI service (app.powerbi.com) and log in.
2. In the bottom left corner select Get data.
3. On the Get Data page that appears, select the Samples icon.
4. Select the Supplier Quality Analysis Sample, then choose Connect.
5. Power BI imports the content pack and adds a new dashboard, report, and dataset to your current
workspace. The new content is marked with a yellow asterisk.
4. Select individual plants in the map to see which vendor or material is responsible for the downtime at that
plant.
Which are the worst suppliers?
We want to find the worst eight suppliers and determine what percentage of the downtime they are responsible
for creating. We can do this by changing the Downtime (min) by Vendor area chart to a treemap.
1. On page 3 of the report, “Downtime Analysis,” select Edit Report in the upper-left corner.
2. Select the Downtime (min) by Vendor area chart, and in the Visualizations pane select Treemap.
Notice in the bubble chart that Logistics is the most troubled category – it’s the largest in terms of total
defect quantity, total defect reports, and total downtime minutes. Let’s explore this category more.
3. Select the Logistics bubble in the bubble chart and observe the plants in Springfield, IL and Naperville, IL.
Naperville seems to be doing a much better job of managing defective supplies as it has a high number of
rejects and few impacts, compared to Springfield’s large number for impacts.
4. Select Supplier Quality Analysis Sample in the top navigation bar to return to your active workspace.
Notice that Raw Materials have a lot of total defects, but most of the defects are either rejected or have no impact.
Let’s verify that raw materials don’t cause a lot of downtime, despite high defect quantity.
In the dashboard, look at the Total Defect Qty, Total Downtime Minutes by Material Type tile.
Apparently raw materials are well managed: they have more defects, but lower total downtime minutes.
Compare defects to downtime by year
1. Select the Total Defect Reports by Plant, Defect Type map tile to open the report to the first report
page, Supplier Quality.
2. Notice that Defect Qty is higher in 2014 than in 2013.
3. Do more defects translate into more downtime? We can ask questions in the Q&A box to find out.
4. Select Supplier Quality Analysis Sample in the top navigation bar to go back to the dashboard.
5. Since we know Raw Materials have the highest number of defects, in the question box, type “show material
types, year and total defect qty”.
There were many more raw materials defects in 2014 than in 2013.
6. Now change the question to “show material types, year and total downtime minutes”.
Raw materials downtime was about the same in 2013 and 2014, even though there were many more raw
materials defects in 2014.
It turns out more raw materials defects in 2014 didn’t lead to much more raw materials downtime in 2014.
Compare defects to downtime month to month
Let’s look at another dashboard tile related to total defective quantity.
1. Select the back arrow in the upper-left corner above the question box to get back to the dashboard.
Looking more closely at the Total Defect Quantity by Month, Year tile shows that the first half of 2014
had a similar number of defects as 2013, but in the second half of 2014, the number of defects jumped
significantly.
Let’s see if this increase in defect quantity led to an equal increase in downtime minutes.
2. In the question box, type “total downtime minutes by month and year as a line chart”.
We do see a jump in downtime minutes during June and Oct, but other than that, the jump in the number of
defects didn’t result in significantly more downtime. This shows we’re managing defects well.
3. To pin this chart to your dashboard, select the pin icon to the right of the question box.
4. To explore the outlier months, check out the downtime minutes during Oct by material type, plant location,
category, etc. by asking questions such as "total downtime minutes in October by plant".
5. Select the back arrow in the upper-left corner above the question box to get back to the dashboard.
This is a safe environment to play in. You can always choose not to save your changes. But if you do save them,
you can always go to Get Data for a new copy of this sample.
Need some data to try with Power BI service? We have a simple Excel workbook of sample financial data available
for download. Here's how to download it:
Financial sample Excel workbook: download the sample directly.
This workbook has one table of data of sales and profit data by market segment and country/region.
Next steps
Get Data
How to import Excel data
Other data you can try with Power BI -- Sample datasets and content packs
More questions? Try the Power BI Community
What's new in the latest Power BI Desktop update?
3/29/2019 • 2 minutes to read • Edit Online
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video channel describes and shows each of these updates. You can also see the videos from the blog
post.
https://www.youtube.com/embed/rBPGH6eYlT0
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
More videos
Like learning about Power BI through videos and other engaging content? Check out the following collection of
video sources and content.
Power BI channel - Power BI on YouTube
Guy in a Cube channel - fresh videos on Power BI features and capabilities
Guided Learning for Power BI - a sequential learning tour of Power BI, in bite-size pieces
With the Modeling view in Power BI Desktop, you can view and work with complex datasets that contain many
tables. With Modeling view, you can do the following:
You'll be prompted that you need to restart Power BI Desktop for the preview feature to be enabled.
Using Modeling view
To access Modeling view, select the Modeling view icon found on the left side of Power BI Desktop, as shown in
the following image.
You can then drag a table from the Fields list onto the diagram surface. Right click the table, and then select Add
related tables from the menu that appears.
When you do, tables that are related to the original table are displayed in the new diagram. The following image
shows how related tables are displayed after selecting the Add related tables menu option.
Using aggregations in Power BI enables interactive analysis over big data in ways that previously weren't
possible. Aggregations can dramatically reduce the cost of unlocking large datasets for decision making.
Instead, we create the Sales Agg table as an aggregation table. It's at a higher granularity than Sales, so it'll
contain far fewer rows. The number of rows should equal the sum of SalesAmount grouped by CustomerKey,
DateKey, and ProductSubcategoryKey. Instead of billions, it might be millions of rows, which are much easier
to manage.
Let's assume that the following dimension tables are the most commonly used for the queries with high business
value. They're the tables that can filter Sales Agg using one-to -many (or many-to -one) relationships.
Geography
Customer
Date
Product Subcategory
Product Category
The following image shows this model.
NOTE
The Sales Agg table is just another table, so it has the flexibility of being loaded in a variety of ways. For example,
aggregation can be performed in the source database using ETL/ELT processes, or by the M expression for the table. It can
use Import storage mode with or without incremental refresh in Power BI Premium, or it can be DirectQuery and optimized
for fast queries using columnstore indexes. This flexibility enables balanced architectures that spread query load to avoid
bottlenecks.
Storage mode
Let's continue with the example we're using. We set the storage mode of Sales Agg to Import to speed up
queries.
When we do so, the following dialog appears, letting us know that the related dimension tables can be set to
storage mode Dual.
Setting them to Dual allows the related dimension tables to act as either Import or DirectQuery depending on the
subquery.
Queries that aggregate metrics from the Sales Agg table, which is Import, and group by attribute(s) from the
related Dual tables can be returned from the in-memory cache.
Queries that aggregate metrics in the Sales table, which is DirectQuery, and group by attribute(s) from the
related Dual tables can be returned in DirectQuery mode. The query logic including the group by operation will
be passed down to the source database.
For more information on the Dual storage mode, see the storage mode article.
Strong vs. weak relationships
Aggregations hits based on relationships require strong relationships.
Strong relationships include the following combinations where both tables are from a single source.
Dual Dual
The only case where a cross-source relationship is considered strong is if both tables are Import. Many-to-many
relationships are always considered weak.
For cross-source aggregation hits that don't depend on relationships, see section below on aggregations based on
group-by columns.
Aggregation table is hidden
The Sales Agg table is hidden. Aggregation tables should always be hidden from consumers of the dataset.
Consumers and queries refer to the detail table, not the aggregation table; they don't even need to know the
aggregation table exists.
Manage aggregations dialog
Next we define the aggregations. Select the Manage aggregations context menu for the Sales Agg table, by
right-clicking on the table.
The Manage aggregations dialog is displayed. It shows a row for each column in the Sales Agg table, where we
can specify the aggregation behavior. Queries submitted to the Power BI dataset that refers to the Sales table are
internally redirected to the Sales Agg table. Consumers of the dataset don't need to know the Sales Agg table
even exists.
The following table shows the aggregations for the Sales Agg table.
Summarization function
The Summarization drop-down offers the following values for selection.
Count
GroupBy
Max
Min
Sum
Count table rows
Validations
The following notable validations are enforced by the dialog:
The detail column selected must have the same datatype as the aggregation column except for the Count and
Count table rows summarization functions. Count and Count table rows are only offered for integer
aggregation columns, and don't require a matching datatype.
Chained aggregations covering three or more tables aren't allowed. For example, it is not possible to set up
aggregations on Table A referring to Table B that has aggregations referring to Table C.
Duplicate aggregations where two entries use the same summarization function and refer to the same detail
table/column aren't allowed.
During this public preview for aggregations, the following validations are also enforced. We intend to remove
these validations upon releasing for general availability.
Aggregations cannot be used with row -level security (RLS ). Public preview limitation.
Detail table must be DirectQuery, not Import. Public preview limitation.
Most such validations are enforced by disabling dropdown values and showing explanatory text in the tooltip, as
shown in the following image.
Group by columns
In this example, the three GroupBy entries are optional; they do not affect aggregation behavior (except for the
DISTINCTCOUNT example query, shown in the upcoming image). They are included primarily for readability
purposes. Without these GroupBy entries, the aggregations would still get hit based on the relationships. This is
different behavior from using aggregations without relationships, which is covered by the big data example that
follows later in this article.
Detecting whether aggregations are hit or missed by queries
For more information about how to detect whether queries are returned from the in-memory cache (storage
engine), or DirectQuery (pushed to the data source) using SQL Profiler, see the storage mode article. That process
can also be used to detect whether aggregations are being hit, too.
Additionally, the following extended event is provided in SQL Profiler.
The following JSON snippet shows an example of the output of the event when an aggregation is used.
matchingResult shows that an aggregation was used for the subquery.
dataRequest shows the group-by column(s) and aggregated column(s) used by the subquery.
mapping shows the columns in the aggregation table that were mapped to.
Query examples
The following query hits the aggregation, because columns in the Date table are at the granularity that can hit the
aggregation. The Sum aggregation for SalesAmount will be used.
The following query doesn't hit the aggregation. Despite requesting the sum of SalesAmount, it's performing a
group by operation on a column in the Product table, which is not at the granularity that can hit the aggregation.
If you observe the relationships in the model, a product subcategory can have multiple Product rows; the query
wouldn't be able to determine which product to aggregate to. In this case, the query reverts to DirectQuery and
submits a SQL query to the data source.
Aggregations aren't just for simple calculations that perform a straightforward sum. Complex calculations can also
benefit. Conceptually, a complex calculation is broken down into subqueries for each SUM, MIN, MAX and
COUNT, and each subquery is evaluated to determine if the aggregation can be hit. This logic doesn't hold true in
all cases due to query-plan optimization, but in general it should apply. The following example hits the
aggregation:
The COUNTROWS function can benefit from aggregations. The following query hits the aggregation because
there is a Count table rows aggregation defined for the Sales table.
The AVERAGE function can benefit from aggregations. The following query hits the aggregation because
AVERAGE internally gets folded to a SUM divided by a COUNT. Since the UnitPrice column has aggregations
defined for both SUM and COUNT, the aggregation is hit.
In some cases, the DISTINCTCOUNT function can benefit from aggregations. The following query hits the
aggregation because there is a GroupBy entry for CustomerKey, which maintains the distinctness of
CustomerKey in the aggregation table. This technique is still subject to the performance threshold where over
approximately two to five million distinct values can affect query performance. However, it can be useful in
scenarios where there are billions of rows in the detail table and two to five million distinct values in the column. In
this case, the distinct count can perform faster than scanning the table with billions of rows, even if it were cached
into memory.
Aggregations based on group-by columns
Hadoop-based big data models have different characteristics than dimensional models. To avoid joins between
large tables, they often don't rely on relationships. Instead, dimension attributes are often denormalized to fact
tables. Such big data models can be unlocked for interactive analysis using aggregations based on group-by
columns.
The following table contains the Movement numeric column to be aggregated. All other columns are attributes to
group by. It contains IoT data and a massive number of rows. The storage mode is DirectQuery. Queries on the
data source that aggregate across the whole dataset are slow because of the sheer volume.
To enable interactive analysis on this dataset, we add an aggregation table that groups by most of the attributes
but excludes the high cardinality attributes like longitude and latitude. This dramatically reduces the number of
rows, and is small enough to comfortably fit into an in-memory cache. The storage mode of Driver Activity Agg
is Import.
Next, we define the aggregation mappings in the Manage aggregations dialog. It displays a row for each column
in the Driver Activity Agg table, where we can specify the aggregation behavior.
The following table shows the aggregations for the Driver Activity Agg table.
Group by columns
In this example, the GroupBy entries are not optional; without them the aggregations wouldn't get hit. This is
different behavior to using aggregations based on relationships, which is covered by the dimensional model
example provided previously in this article.
Query examples
The following query hits the aggregation because the Activity Date column is covered by the aggregation table.
The Count table rows aggregation is used by the COUNTROWS function.
Especially for models that contain filter attributes in fact tables, it's a good idea to use Count table rows
aggregations. Power BI may submit queries to the dataset using COUNTROWS in cases where it is not explicitly
requested by the user. For example, the filter dialog shows the count of rows for each value.
Aggregation precedence
Aggregation precedence allows multiple aggregation tables to be considered by a single subquery.
Consider the following example. It's a composite model containing multiple DirectQuery sources.
The Driver Activity Agg2 Import table is at a high granularity because the group-by attributes are few and
low cardinality. The number of rows could be as low as thousands, so it can easily fit into an in-memory cache.
These attributes happen to be used by a high-profile executive dashboard, so queries referring to them should
be as fast as possible.
The Driver Activity Agg table is an intermediate aggregation table in DirectQuery mode. It contains over a
billion rows and is optimized at the source using columnstore indexes.
The Driver Activity table is DirectQuery and contains over a trillion rows of IoT data sourced from a big-data
system. It serves drillthrough queries to view individual IoT readings in controlled filter contexts.
The memory footprint of this model is relatively small, but it unlocks a huge dataset. It represents a balanced
architecture because it spreads the query load across components of the architecture utilizing them based on their
strengths.
The Manage aggregations dialog for Driver Activity Agg2 shows the Precedence field is 10, which is higher
than that of Driver Activity Agg, which means it will be considered first by queries using aggregations.
Subqueries that are not at the granularity that can be answered by Driver Activity Agg2 will consider Driver
Activity Agg instead. Detail queries that cannot be answered by either aggregation table will be directed to
Driver Activity.
The table specified in the Detail Table column is Driver Activity, not Driver Activity Agg because chained
aggregations are not allowed (see validations earlier in this article).
The following table shows the aggregations for the Driver Activity Agg2 table.
Note: This model requires that the Date table be in DirectQuery mode to fill in the manage aggregations
dialog, because it is a detail table. This is a Preview limitation that we intend to remove for General Availability.
Query examples
The following query hits the aggregation because CalendarMonth is covered by the aggregation table, and
CategoryName is accessible via one-to-many relationships. The Sum aggregation for SalesAmount is used.
The following query doesn't hit the aggregation because CalendarDay is not covered by the aggregation table.
The following time-intelligence query will not hit the aggregation because the DATESYTD function generates a
table of CalendarDay values, which is not covered by the aggregation table.
Next steps
The following articles describe more about composite models, and also describe DirectQuery in detail.
Composite models in Power BI Desktop (Preview )
Many-to-many relationships in Power BI Desktop (Preview )
Storage Mode in Power BI Desktop (Preview )
DirectQuery articles:
Using DirectQuery in Power BI
Data sources supported by DirectQuery in Power BI
Use composite models in Power BI Desktop
1/14/2019 • 11 minutes to read • Edit Online
Previously in Power BI Desktop, when you used a DirectQuery in a report, no other data connections—whether
DirectQuery or Import—were allowed for that report. With composite models, that restriction is removed. A
report can seamlessly include data connections from more than one DirectQuery or Import data connection, in
any combination you choose.
The composite models capability in Power BI Desktop consists of three related features:
Composite models: Allows a report to have multiple data connections, including DirectQuery
connections or Import, in any combination. This article describes composite models in detail.
Many-to-many relationships: With composite models, you can establish many-to -many relationships
between tables. This approach removes requirements for unique values in tables. It also removes previous
workarounds, such as introducing new tables only to establish relationships. For more information, see
Many-to-many relationships in Power BI Desktop (preview ).
Storage mode: You can now specify which visuals require a query to back-end data sources. Visuals that
don't require a query are imported even if they're based on DirectQuery. This feature helps improve
performance and reduce back-end load. Previously, even simple visuals such as slicers initiated queries
that were sent to back-end sources. For more information, see Storage mode in Power BI Desktop
(preview ).
NOTE
Beginning with the October 2018 release of Power BI Desktop, you can publish composite models to the Power BI service.
For scheduled refresh and dashboard tile refresh, composite models in the Power BI service behave in the same way as
Import models.
You can create relationships between tables as you always have, even when those tables come from different
sources, with the following restriction: any relationships that are cross-source must be defined as having a
cardinality of many-to -many, regardless of their actual cardinality. The behavior of such relationships is then the
same as normal for many-to -many relationships, as described in Many-to-many relationships in Power BI
Desktop (preview ).
NOTE
Within the context of composite models, all imported tables are effectively a single source, regardless of the actual
underlying data source from which they are imported.
At this point, you could build simple visuals by using fields from this source. For example, the following image
shows total sales by ProductName, for a selected quarter.
But what if you have data in an Office Excel spreadsheet about the product manager who's assigned to each
product, along with the marketing priority? If you want to view Sales Amount by Product Manager, it might not
be possible to add this local data to the corporate data warehouse. Or it might take months at best.
It might be possible to import that sales data from the data warehouse, instead of using DirectQuery. And the
sales data could then be combined with the data that you imported from the spreadsheet. However, that
approach is unreasonable, for the reasons that lead to using DirectQuery in the first place. The reasons could
include:
Some combination of the security rules enforced in the underlying source.
The need to be able to view the latest data.
The sheer scale of the data.
Here's where composite models come in. Composite models let you connect to the data warehouse by using
DirectQuery and then use GetData for additional sources. In this example, we first establish the DirectQuery
connection to the corporate data warehouse. We use GetData, choose Excel, and then navigate to the
spreadsheet that contains our local data. Finally, we import the spreadsheet that contains the Product Names, the
assigned Sales Manager, and the Priority.
In the Fields list, you can see two tables: the original Bike table from SQL Server and a new ProductManagers
table. The new table contains the data that's imported from Excel.
Similarly, in the Relationship view in Power BI Desktop, we now see an additional table called
ProductManagers.
We now need to relate these tables to the other tables in the model. As always, we create a relationship between
the Bike table from SQL Server and the imported ProductManagers table. That is, the relationship is between
Bike[ProductName] and ProductManagers[ProductName]. As discussed earlier, all relationships that go across
source must have the default many-to -many cardinality.
Now that we've established this relationship, it's displayed in the Relationship view in Power BI Desktop, as we
would expect.
We can now create visuals by using any of the fields in the Fields list. This approach seamlessly blends data from
multiple sources. For example, the total SalesAmount for each Product Manager is displayed in the following
image:
The following example displays a common case of a dimension table—such as Product or Customer—that's
extended with some extra data imported from somewhere else. It's also possible to have tables use DirectQuery
to connect to various sources. To continue with our example, imagine that Sales Targets per Country and Period
are stored in a separate departmental database. As usual, you can use GetData to connect to that data, as shown
in the following image:
As we did earlier, we can create relationships between the new table and other tables in the model and then
create visuals that combine the table data. Let's look again at the Relationships view, where we've established
the new relationships:
The next image is based on the new data and relationships we created. The visual at the lower left shows total
Sales Amount versus Target, and the variance calculation shows the difference. The Sales Amount and Target
data come from two different SQL Server databases.
Set the storage mode
Each table in a composite model has a storage mode that indicates whether the table is based on DirectQuery or
Import. The storage mode can be viewed and modified in the Property pane. To display the storage mode, right-
click a table in the Fields list, and then select Properties. The following image shows the storage mode for the
SalesTargets table.
The storage mode can also be viewed on the tooltip for each table.
For any Power BI Desktop file (a .pbix file) that contains some tables from DirectQuery and some Import tables,
the status bar displays a storage mode called Mixed. You can click that term in the status bar and easily switch all
tables to Import.
For more information about storage mode, see Storage mode in Power BI Desktop (preview ).
Calculated tables
You can add calculated tables to a model that uses DirectQuery. The Data Analysis Expressions (DAX) that define
the calculated table can reference either imported or DirectQuery tables or a combination of the two.
Calculated tables are always imported, and their data is refreshed when you refresh the tables. If a calculated
table refers to a DirectQuery table, visuals that refer to the DirectQuery table always show the latest values in the
underlying source. Alternatively, visuals that refer to the calculated table show the values at the time when the
calculated table was last refreshed.
Security implications
Composite models have some security implications. A query sent to one data source can include data values that
have been retrieved from another source. In the earlier example, the visual that shows Sales Amount by Product
Manager sends a SQL query to the Sales relational database. That SQL query might contain the names of
Product Managers and their associated Products.
Consequently, information that's stored in the spreadsheet is now included in a query that's sent to the relational
database. If this information is confidential, you should consider the security implications. In particular, consider
the following points:
Any administrator of the database who can view traces or audit logs could view this information, even
without permissions to the data in its original source. In this example, the administrator would need
permissions to the Excel file.
The encryption settings for each source should be considered. You want to avoid retrieving information
from one source via an encrypted connection and then inadvertently including it in a query that's sent to
another source via an unencrypted connection.
To allow confirmation that you have considered any security implications, Power BI Desktop displays a warning
message when you create a composite model.
For similar reasons, be careful when you open a Power BI Desktop file that's sent from an untrusted source. If the
file contains composite models, information that someone retrieves from one source by using the credentials of
the user who opens the file would be sent to another data source as part of the query. The information could be
viewed by the malicious author of the Power BI Desktop file. Therefore, when you initially open a Power BI
Desktop file that contains multiple sources, Power BI Desktop displays a warning. The warning is similar to the
one that's displayed when you open a file that contains native SQL queries.
Performance implications
When you use DirectQuery, you should always consider performance, primarily to ensure that the back-end
source has sufficient resources to provide a good experience for users. A good experience means that the visuals
refresh in five seconds or less. You should also follow the performance advice in the Use DirectQuery in Power BI
article.
Using composite models adds additional performance considerations. A single visual can result in sending
queries to multiple sources, which often passes the results from one query across to a second source. This
situation can result in the following forms of execution:
A SQL query that includes a large number of literal values: For example, a visual that requests total
Sales Amount for a set of selected Product Managers would first need to find which Products were
managed by those product managers. This sequence must happen before the visual sends a SQL query
that includes all of the product IDs in a WHERE clause.
A SQL query that queries at a lower level of granularity, with the data then being aggregated
locally: As the number of Products that meet the filter criteria on Product Manager grows large, it can
become inefficient or unfeasible to include all products in a WHERE clause. Instead, you can query the
relational source at the lower level of Product and then aggregate the results locally. If the cardinality of
Products exceeds a limit of 1 million, the query fails.
Multiple SQL queries, one per group by value: When the aggregation uses DistinctCount and is
grouped by a column from another source, and if the external source does not support efficient passing of
many literal values that define the grouping, it's necessary to send one SQL query per group by value.
For example, a visual that requests a distinct count of CustomerAccountNumber (from the SQL Server
table) by Product Manager (imported from the spreadsheet) would need to pass in the details from the
Product Managers table in the query that's sent to SQL Server. Over other sources (Redshift, for
example), this action is unfeasible. Instead, there would be one SQL query sent per Sales Manager—up to
some practical limit, at which point the query would fail.
Each of these cases has its own implications on performance, and the exact details vary for each data source.
Although the cardinality of the columns used in the relationship that joins the two sources remains low (a few
thousand), performance should not be affected. As this cardinality grows, you should pay more attention to the
impact on the resulting performance. Apply this guidance as a good rule of thumb.
Additionally, the use of many-to -many relationships means that separate queries must be sent to the underlying
source for each total or subtotal level, rather than aggregating the detailed values locally. A simple table visual
with totals would send two SQL queries, rather than one.
Next steps
For more information about composite models and DirectQuery, see the following articles:
Many-to-many relationships in Power BI Desktop (preview )
Storage mode in Power BI Desktop (preview )
Use DirectQuery in Power BI
Data sources supported by DirectQuery in Power BI
Relationships with a many-many cardinality in Power
BI Desktop
2/13/2019 • 8 minutes to read • Edit Online
With the relationships with a many-many cardinality feature in Power BI Desktop, you can join tables that use a
cardinality of Many to Many. You can more easily and intuitively create data models that contain two or more
data sources. The relationships with a many-many cardinality feature is part of the larger composite models
capabilities in Power BI Desktop.
The relationships with a many-many cardinality capability in Power BI Desktop is one of three related features:
Composite models: Allows a report to have two or more data connections, including DirectQuery
connections or Import, in any combination. For more information, see Composite models in Power BI
Desktop (preview ).
Relationships with a many-many cardinality: With composite models, you can establish relationships
with a many-many cardinality between tables. This approach removes requirements for unique values in
tables. It also removes previous workarounds, such as introducing new tables only to establish
relationships. The feature is described further in this article.
Storage mode: You can now specify which visuals require a query to back-end data sources. Visuals that
don't require a query are imported even if they're based on DirectQuery. This feature helps improve
performance and reduce back-end load. Previously, even simple visuals such as slicers began queries that
were sent to back-end sources. For more information, see Storage mode in Power BI Desktop (preview ).
Now, imagine that the Product table displays just two rows, as shown:
Also imagine that the Sales table has just four rows, including a row for a product C. Because of a referential
integrity error, the product C row doesn't exist in the Product table.
The ProductName and Price (from the Product table), along with the total Qty for each product (from the
ProductSales table), would be displayed as shown:
As you can see in the preceding image, there's blank ProductName row that's associated with sales for product C.
This blank row accounts for the following:
Any rows in the ProductSales table for which no corresponding row exists in the Product table. There's a
referential integrity issue, as we see for product C in this example.
Any rows in the ProductSales table for which the foreign key column is null.
For these reasons, the blank row in both cases accounts for sales where the ProductName and Price are
unknown.
It sometimes happens that the tables are joined by two columns, yet neither column is unique. For example,
consider the following two tables:
The Sales table displays sales data by State, and each row contains the sales amount for the type of sale in
that state. The states include CA, WA, and TX.
The CityData table displays data on cities, including the population and state (including CA, WA, and New
York).
Although there's a column for State in both tables and it's reasonable to want to report on both total sales by
state and total population of each state, a problem exists: the State column isn't unique in either table.
A visual that displays State (from the CityData table), along with total Population and total Sales, would then
appear as follows:
NOTE
Because the state from the CityData table is used in this workaround, only the states in that table are listed and, therefore,
TX is excluded. Also, unlike Many-1 relationships, while the total row includes all Sales (including those of TX), the details do
not include a blank row covering such mismatched rows. Similarly, there would be no blank row covering Sales for which
there's a null value for the State.
If you also add City to that visual, although the population per City is known, the Sales shown for City simply
repeats the Sales for the corresponding State. This is normally the case when the grouping in a column is
unrelated to some aggregate measure, as shown in the following image:
If we define the new Sales table as the combination of all States in this workaround and we make it visible in the
Fields list, the same visual would display both State (on the new table) and the total Population and total Sales,
as shown in the following image:
As you can see, TX—with Sales data but unknown Population data—and New York—with known Population
data but no Sales data—would be included. This workaround isn't optimal, and it has many issues. With the
creation of the relationships with a many-many cardinality, the resulting issues are addressed as described in the
next section.
The major differences between relationships with a many-many cardinality and the more typical Many-1
relationships are as follows:
The values shown don't include a blank row that accounts for mismatched rows in the other table. Nor do
the values account for rows where the column used in the relationship in the other table is null.
It isn't possible to use the RELATED() function, because more than one row could be related.
Using the ALL() function on a table doesn't remove filters that are applied to other, related tables by a
many-to-many relationship. In the preceding example, a measure that's defined as shown in the following
script would not remove filters on columns in the related CityData table:
A visual showing State, Sales, and Sales total data would result in the following:
With the preceding differences in mind, make sure that the calculations that use ALL(\<Table>) , such as % of
grand total, are returning the intended results.
Next steps
For more information about composite models and DirectQuery, see the following articles:
Composite models in Power BI Desktop (preview )
Storage mode in Power BI Desktop (preview )
Use DirectQuery in Power BI Desktop
Data sources supported by DirectQuery in Power BI Desktop
Storage mode in Power BI Desktop
3/6/2019 • 8 minutes to read • Edit Online
In Microsoft Power BI Desktop, you can specify the storage mode of tables. Storage mode lets you control
whether Power BI Desktop caches table data in-memory for reports.
Setting the storage mode provides many advantages. You can set storage mode for each table individually in
your model. This action enables a single dataset, which provides the following benefits:
Query performance: As users interact with visuals in Power BI reports, Data Analysis Expressions
(DAX) queries are submitted to the dataset. Caching data into memory by properly setting the storage
mode can boost the query performance and interactivity of your reports.
Large datasets: Tables that aren't cached don't consume memory for caching purposes. You can enable
interactive analysis over large datasets that are too big or expensive to completely cache into memory.
You can choose which tables are worth caching, and which aren't.
Data refresh optimization: Tables that aren't cached don't need to be refreshed. You can reduce refresh
times by caching only the data that's necessary to meet your service level agreements and your business
requirements.
Near-real time requirements: Tables with near-real time requirements might benefit from not being
cached, to reduce data latency.
Writeback: Writeback enables business users to explore what-if scenarios by changing cell values.
Custom applications can apply changes to the data source. Tables that aren't cached can display changes
immediately, which allows instant analysis of the effects.
The storage mode setting in Power BI Desktop is one of three related features:
Composite models: Allows a report to have two or more data connections, including DirectQuery
connections or Import, in any combination. For more information, see Composite models in Power BI
Desktop.
Many-to-many relationships: With composite models, you can establish many-to -many relationships
between tables. Many-to -many relationships removes requirements for unique values in tables. It also
removes prior workarounds, such as introducing new tables only to establish relationships. For more
information, see Many-to-many relationships in Power BI Desktop.
Storage mode: You can now specify which visuals require a query to back-end data sources. Visuals that
don't require a query are imported even if they're based on DirectQuery. This feature helps improve
performance and reduce back-end load. Previously, even simple visuals, such as slicers, initiated queries
that were sent to back-end sources. Storage mode is described further in this article.
The current property is displayed in the Storage mode drop-down list in the table's Field properties pane. You
can view the current storage mode or modify it there.
There are three values for storage mode:
Import: When the value is set to Import, imported tables are cached. Queries submitted to the Power BI
dataset that return data from Import tables can be fulfilled only from cached data.
DirectQuery: With this setting, DirectQuery tables aren't cached. Queries that you submit to the Power
BI dataset - for example, Data Analysis Expressions (DAX) queries - and that return data from
DirectQuery tables can be fulfilled only by executing on-demand queries to the data source. Queries that
you submit to the data source use the query language for that data source - for example, SQL.
Dual: Dual tables can act as either cached or not cached, depending on the context of the query that's
submitted to the Power BI dataset. In some cases, you fulfill queries from cached data. In other cases, you
fulfill queries by executing an on-demand query to the data source.
Changing a table to Import is an irreversible operation. This property can't be changed back to either
DirectQuery or Dual.
Propagation of Dual
Consider the following simple model, where all the tables are from a single source that supports Import and
DirectQuery.
Let’s say all tables in this model are DirectQuery to begin with. If we then change the storage mode of the
SurveyResponse table to Import, the following warning window is displayed:
The dimension tables (Customer, Geography and Date) may be set to Dual to reduce the number of weak
relationships in the dataset, and improve performance. Weak relationships normally involve at least one
DirectQuery table where join logic cannot be pushed to the source systems. The fact that Dual tables can act as
either DirectQuery or Import helps avoid this.
The propagation logic is designed to help with models that contain many tables. Let’s say you have a model
with 50 tables and only certain fact (transactional) tables need to be cached. The logic in Power BI Desktop
calculates the minimum set of dimension tables that must be set to Dual, so you don’t have to.
The propagation logic traverses only to the one side of 1-to-many relationships.
Sales DirectQuery
SurveyResponse Import
Date Dual
Customer Dual
Geography Dual
Setting these storage mode properties results in the following behaviors, assuming that the Sales table has
significant data volume.
Power BI Desktop caches dimension tables - Date, Customer, and Geography - so load times of initial
reports should be fast when they retrieve slicer values to display.
By not caching the Sales table, Power BI Desktop provides the following results:
Data-refresh times are improved, and memory consumption is reduced.
Report queries that are based on the Sales table run in DirectQuery mode. These queries might take
longer but are closer to real-time because no caching latency is introduced.
Report queries that are based on the SurveyResponse table are returned from the in-memory cache and,
therefore, should be relatively fast.
The following query refers only to a column from the Sales table, which is in DirectQuery mode. Therefore, it
should not hit the cache.
The following query is interesting because it combines both columns. This query doesn't hit the cache. You
might initially expect it to retrieve CalendarYear values from the cache and SalesAmount values from the source
and then combine the results, but this approach is less efficient than submitting the SUM/GROUP BY operation
to the source system. If the operation is pushed down to the source, the number of rows returned will likely be
far less.
NOTE
This behavior is different from many-to-many relationships in Power BI Desktop when cached and non-cached tables are
combined.
Data view
If at least one table in the dataset has its storage mode set to either Import or Dual, the Data view tab is
displayed.
When they are selected in Data view, the Dual and Import tables show cached data. DirectQuery tables don't
show data, and a message is displayed that states that DirectQuery tables cannot be shown.
Next steps
For more information about composite models and DirectQuery, see the following articles:
Composite models in Power BI Desktop
Many-to-many relationships in Power BI Desktop
Use DirectQuery in Power BI
Data sources supported by DirectQuery in Power BI
Bidirectional cross-filtering using DirectQuery in
Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
When filtering tables to create the appropriate view of data, report creators (and data modelers) face challenges
when determining how filtering is applied to a report; the filter context of a table was held on one side of the
relationship, but not the other, often requiring complex DAX formulas to get the desired results.
With bidirectional cross-filtering, report creators (and data modelers) now have more control over how filters are
applied when working with related tables, enabling those filters to be applied on both sides of a table relationship.
This is accomplished by having the filter context propagated to a second related table on the other side of a table
relationship.
For more information, and for examples of how bidirectional cross-filtering works, check out the whitepaper
mentioned earlier in this article.
Using DirectQuery in Power BI
2/13/2019 • 44 minutes to read • Edit Online
You can connect to all sorts of different data sources when using Power BI Desktop or the Power BI service,
and make those data connections in different ways. You can import data to Power BI, which is the most
common way to get data, or connect directly to data in its original source repository, which is known as
DirectQuery. This article describes DirectQuery and its capabilities:
Different connectivity options for DirectQuery
Guidance for when you should consider using DirectQuery rather than import
Drawbacks of using DirectQuery
Best practice for using DirectQuery
In short, the best practice for using import versus DirectQuery is the following:
You should import data to Power BI wherever possible. Import takes advantage of the high-performance
query engine of Power BI, and provides a highly interactive and fully featured experience over your data.
If your goals can't be met by importing data, then consider using DirectQuery. For example, if the data is
changing frequently and reports must reflect the latest data, DirectQuery may be best. However, using
DirectQuery is generally only feasible when the underlying data source can provide interactive queries (less
than 5 seconds) for the typical aggregate query, and is able to handle the query load that will be generated.
Additionally, the list of limitations that accompany use of DirectQuery should be considered carefully.
The set of capabilities offered by Power BI for both connectivity modes – import and DirectQuery - will evolve
over time. This will include providing more flexibility when using imported data, such that import can be used
in more cases, as well as eliminating some of the drawbacks of using DirectQuery. Regardless of
improvements, when using DirectQuery the performance of the underlying data source will always remain a
major consideration. If that underlying data source is slow, then using DirectQuery for that source will remain
unfeasible.
This topic covers DirectQuery with Power BI, and not SQL Server Analysis Services. DirectQuery is also a
feature of SQL Server Analysis Services, and many of the details described below apply to its use, though
there are also important differences. For information about using DirectQuery with SQL Server Analysis
Services, see the whitepaper that details DirectQuery in SQL Server Analysis Services 2016.
This article focuses on the recommended workflow for DirectQuery, where the report is created in Power BI
Desktop, but also covers connecting directly in the Power BI service.
LIMITATION DESCRIPTION
Data is changing frequently, and near ‘real-time’ reporting is Models with Imported data can be refreshed at most once
needed per hour. Hence, if the data is continually changing, and it is
necessary for reports to show the latest data, then using
Import with scheduled refresh might simply not meet those
needs. Note also that it is also possible to stream data
directly into Power BI, though there are limits on the data
volumes supported for this case.
Data is very large If the data is very large, then it certainly would not be
feasible to import it all. DirectQuery, by contrast, requires
no large transfer of data, as it is queried in place.
Security rules are defined in the underlying source When the data is imported, Power BI will connect to the
data source using the current user's credentials (from Power
BI Desktop), or the credentials defined as part of configuring
scheduled refresh (from the Power BI service). Thus, in
publishing and sharing such a report, care must be taken to
only share with users allowed to see the same data, or to
define Row Level Security as part of the dataset.
Data sovereignty restrictions apply Some organizations have policies around data sovereignty,
meaning that data cannot leave the organization premises.
A solution based on import would clearly present issues. By
contrast, with DirectQuery that data remains in the
underlying source.
Underlying data source is an OLAP source, containing If the underlying data source contains measures (such as
measures SAP HANA or SAP Business Warehouse), then importing the
data brings other issues. It means that the data imported is
at a particular level of aggregation, as defined by the query.
For example, measures TotalSales by Class, Year, and City.
Then if a visual is built asking for data at a higher level
aggregate (such as TotalSales by Year), it is further
aggregating the aggregate value. This is fine for additive
measures (such as Sum, Min), but it's an issue for non-
additive measures (such as Average, DistinctCount).
So in summary, given the current capabilities of DirectQuery in Power BI, the scenarios where it offers benefits
are the following:
Data is changing frequently, and near ‘real-time’ reporting is needed
Handling very large data, without the need to pre-aggregate
Data sovereignty restrictions apply
The source is a multidimensional source containing measures (such as SAP BW )
The details in the previous list relate to the use of Power BI alone. There is always the option of instead using
an external SQL Server Analysis Services (or Azure Analysis Services) model to import data, and then using
Power BI to connect to that model. While that approach would require additional skills, it does provide greater
flexibility. For example, much larger volumes of data can be imported, and there is no restriction on how
frequently the data can be refreshed.
It would not be possible to author a measure that then averaged that SalesAmount over all
of the Items:
The reason is that such a measure could result in poor performance if there were a large number
of items.
Calculated tables are not supported: The ability to define a calculated table using a DAX expression
is not supported in DirectQuery mode.
Relationship filtering is limited to a single direction: When using DirectQuery, it is not possible to
set the Cross Filter direction on a relationship to “Both”. For example, with the three tables below, it
would not be possible to build a visual showing each Customer[Gender], and the number of
Product[Category] bought by each. Use of such bi-directional filtering is described in this detailed
whitepaper (the paper presents examples in the context of SQL Server Analysis Services, but the
fundamental points apply equally to Power BI).
Again, the limitation is imposed due to the performance implications. One particularly important
application of this is when defining Row Level Security as part of the report, as a common pattern is to
have a many-many relationship between the users and the entities they are allowed access to, and use of
bi-directional filtering is necessary to enforce this. However, use of bi-directional filtering for
DirectQuery models should be used judiciously, with careful attention paid to any detrimental impact on
performance.
No Clustering: When using DirectQuery, it is not possible to use the Clustering capability, to
automatically find groups
Reporting limitations
Almost all reporting capabilities are supported for DirectQuery models. As such, so long as the underlying
source offers a suitable level of performance, the same set of visualizations can be used. However, there are
some important limitations in some of the other capabilities offered in the Power BI service after a report is
published, as described in the following bullets:
Quick Insights is not supported: Power BI Quick Insights searches different subsets of your dataset while
applying a set of sophisticated algorithms to discover potentially interesting insights. Given the need for
very high-performance queries, this capability is not available on datasets using DirectQuery.
Q&A is not supported: Power BI Q&A enables you to explore your data using intuitive, natural language
capabilities and receive answers in the form of charts and graphs. However, it is currently not supported on
datasets using DirectQuery.
Using Explore in Excel will likely result in poorer performance: It is possible to explore your data by
using the “Explore in Excel” capability on a dataset. This will allow Pivot Tables and Pivot Charts to be
created in Excel. While this capability is supported on datasets using DirectQuery, the performance is
generally slower than creating visuals in Power BI, and therefore if the use of Excel is important for your
scenarios, this should be accounted for in your decision to use DirectQuery.
Security
As discussed earlier in this article, a report using DirectQuery will always use the same fixed credentials to
connect to the underlying data source, after publish to the Power BI service. Again, note this refers specifically
to DirectQuery, not to live connections to SQL Server Analysis Services, which is different in this respect.
Hence immediately after publish of a DirectQuery report, it is necessary to configure the credentials of the user
that will be used. Until this is done, opening the report on the Power BI service would result in an error.
Once the user credentials are provided, then those credentials will be used, irrespective of the user who opens
the report. In this regard, it is exactly like imported data, in that every user will see the same data, unless Row
Level Security has been defined as part of the report. Hence the same attention must be paid to sharing the
report, if there are any security rules defined in the underlying source.
Behavior in the Power BI service
This section describes the behavior of a DirectQuery report in the Power BI service, primarily so as to be
able to understand the degree of load that will be placed on the back-end data source, given the number of
users that the report and dashboard will be shared with, the complexity of the report, and whether Row Level
Security has been defined in the report.
Reports – opening, interacting with, editing
When a report is opened, then all the visuals on the currently visible page will refresh. Each visual will generally
require at least one query to the underlying data source. Some visuals might require more than one query (for
example, if it showed aggregate values from two different fact tables, or contained a more complex measure, or
contained totals of a non-additive measure like Count Distinct). Moving to a new page will result in those
visuals being refreshed, resulting in a new set of queries to the underlying source.
Every user interaction on the report might result in visuals being refreshed. For example, selecting a different
value on a slicer will require sending a new set of queries to refresh all of the affected visuals. The same is true
for clicking on a visual to cross-highlight other visuals, or changing a filter.
Similarly of course, editing a new report will require queries to be sent for each step on the path to produce the
final desired visual.
There is some caching of results, so that the refresh of a visual will be instantaneous if the exact same results
have recently been obtained. Such caches are not shared across users, if there is any Row Level Security
defined as part of the report.
Dashboard Refresh
Individual visuals, or entire pages, can be pinned to dashboard as tiles. Tiles based on DirectQuery datasets
are then refreshed automatically according to a schedule, resulting in queries being sent to the backend data
source. By default, this occurs every hour, but can be configured as part of Dataset settings to be between
weekly, and every 15 minutes.
If no Row Level Security is defined in the model, this means that each tile would be refreshed once, and the
results shared across all users. If Row Level Security is defined, then there can be a large multiplier effect –
each tile requires separate queries per user to be sent to the underlying source.
Hence a dashboard with ten tiles, shared with 100 users, created on a dataset using DirectQuery with Row
Level Security, and configured to refresh every 15 minutes, would result in at least 1000 queries being sent
every 15 minutes to the back-end source.
Hence careful consideration must be paid to the use of Row Level Security, and the configuring of the refresh
schedule.
Timeouts
A timeout of four minutes is applied to individual queries in the Power BI service, and queries taking longer
than that will simply fail. As stressed earlier, it is recommended that DirectQuery be used for sources that
provide near interactive query performance, so this limit is intended to prevent issues from overly long
execution times.
Other implications
Some other general implications of using DirectQuery are the following:
If data is changing, it is necessary to Refresh to ensure the latest data is shown: Given the use of
caches, there is no guarantee that the visual is always showing the latest data. For example, a visual
might show the transactions in the last day. Then due to a slicer being changed, it might refresh to show
the transactions for the last two days, including some very recent, newly arrived transactions. Returning
the slicer to its original value would result in it again showing the cached value previously obtained, that
would not include the newly arrived transaction seen before.
Selecting Refresh will clear any caches, and refresh all the visuals on the page to show the latest data.
If data is changing, there is no guarantee of consistency between visuals: Different visuals,
whether on the same page or on different pages, might be refreshed at different times. Thus if the data
in the underlying source is changing, there is no guarantee that each visual will be showing the data at
the exact same point of time. Indeed, given that sometimes more than one query is required for a single
visual (for example, to obtain the details and the totals) then consistency even within a single visual is
not guaranteed. To guarantee this would require the overhead of refreshing all visuals whenever any
visual refreshed, in tandem with the use of costly features like Snapshot Isolation in the underlying data
source.
This issue can be mitigated to a large extent by again selecting Refresh, to refresh all of the visuals on
the page. And it should be noted that even if using Import mode, there is a similar problem of
guaranteeing consistency if importing data from more than one table.
Refresh in Power BI Desktop is needed to reflect any metadata changes: After a report is
published, Refresh will simply refresh the visuals in the report. If the schema of the underlying source
has changed, then those changes are not automatically applied to change the available fields in the field
list. Thus if tables or columns have been removed from the underlying source, it might result in query
failure upon refresh. Opening the report in Power BI Desktop, and choosing Refresh, will update the
fields in the model to reflect the changes.
Limit of one million rows returned on any query: There is a fixed limit of one million rows placed
on the number of rows that can be returned in any single query to the underlying source. This generally
has no practical implications, and visuals themselves aren’t going to display that many points. However,
the limit can occur in cases where Power BI is not fully optimizing the queries sent, and there is some
intermediate result being requested that exceeds the limit. It can also occur whilst building a visual, on
the path to a more reasonable final state. For example, including Customer and TotalSalesQuantity
would hit this limit if there were more than 1m customers, until some filter were applied.
The error that would be returned would be “The resultset of a query to external data source has
exceeded the maximum allowed size of '1000000' rows.”
Cannot change from import to DirectQuery mode: While it's possible to switch a model from
DirectQuery mode to use import mode, this means all the necessary data must be imported. It is also
not possible to switch back (primarily due to the set of features not supported in DirectQuery mode).
DirectQuery models over multidimensional sources like SAP BW, also cannot be switched from
DirectQuery to import, due to the completely different treatment of external measures.
The reason for doing this is simply to avoid a performance issue that can occur otherwise if a visual
includes the primary key column.
Examine all uses of calculated columns and data type changes. Use of these capabilities are not
necessarily harmful, they result in the queries sent to the underlying source containing expressions
rather than simple references to columns, that again might result in indexes not being used.
Avoid use of the (preview) bi-directional cross filtering on relationships.
Experiment with setting Assume referential integrity. The Assume Referential Integrity setting on
relationships enables queries to use INNER JOIN statements rather than OUTER JOIN. This generally
improves query performance, though it does depend on the specifics of the data source.
Do not use the relative data filtering in Query Editor. It's possible to define relative date filtering in
Query Editor. For example, to filter to the rows where the date is in the last 14 days.
However, this will be translated into a filter based on the fixed date, as at the time the query was
authored. This can be seen from viewing the native query.
This is almost certainly not what was wanted. To ensure the filter is applied based upon the date as at
the time the report is executed then instead apply the filter in the report as a Report Filter. Currently this
would be done by creating a calculated column calculating the number of days ago (using the DAX
DATE () function), and then using that calculated column in a filter.
Report Design Guidance
When creating a report using a DirectQuery connection, adhere to the following guidance:
Consider use of Query Reduction options: Power BI provides options in the report to send fewer
queries, and to disable certain interactions that would result in a poor experience if the resulting queries
take a long time to execute. To access these options in Power BI Desktop, go to File > Options and
settings > Options and select Query reduction.
Checking box selections on the Query reduction let you disable cross-highlighting throughout your
entire report. You can also show an Apply button to slicers and/or filter selections, which lets you then
make many slicer and filter selections before applying them, which results in no queries being sent until
you select the Apply button on the slicer. Your selections can then be used to filter the data.
These options will apply to your report while you interact with it in Power BI Desktop, as well as when
your users consume the report in the Power BI service.
Apply filters first: Always apply any applicable filters at the start of building a visual. For example,
rather than drag in the TotalSalesAmount, and ProductName, then filter to a particular year, apply the
filter on Year at the very start. This is because each step of building a visual will send a query, and whilst
it is possible to then make another change before the first query has completed, this still leaves
unnecessary load on the underlying source. By applying filters early, it generally makes those
intermediate queries less costly. Also, failing to apply filters early can result in hitting the 1m row limit
above.
Limit the number of visuals on a page: When a page is opened (or some page level slicer or filter
changed) then all of the visuals on a page are refreshed. There is also a limit on the number of queries
that are sent in parallel, hence as the number of visuals increases, some of the visuals will be refreshed
in a serial manner, increasing the time taken to refresh the entire page. For this reason it's recommended
to limit the number of visuals on a single page, and instead have more, simpler pages.
Consider switching off interaction between visuals: By default, visualizations on a report page can
be used to cross-filter and cross-highlight the other visualizations on the page. For example, having
selected “1999” on the pie chart, the column chart is cross highlighted to show the sales by category for
“1999”.
In DirectQuery such cross-filtering and cross-highlighting require queries to be submitted to the
underlying source, so the interaction should be switched off if the time taken to respond to users'
selections would be unreasonably long. However, this interaction can be switched off, either for the
entire report (as described above for Query reduction options), or on a case-by-case basis as described
in this article.
In addition to the above list of suggestions, note that each of the following reporting capabilities can cause
performance issues:
Measure filters: Visuals containing measures (or aggregates of columns) can contain filters in those
measures. For example, the visual below shows SalesAmount by Category, but only including those
Categories with more than 20M of sales.
This will result in two queries being sent to the underlying source:
The first query will retrieve the Categories meeting the condition (Sales > 20M )
The second query will then retrieve the necessary data for the visual, including the Categories that
met the condition in the WHERE clause.
This generally performs just fine if there are hundreds or thousands of categories, as in this example.
Performance can degrade if the number of categories is much larger (and indeed, the query will fail if
there were more than a million categories meeting the condition, due to the one million row limit
discussed earlier).
TopN filters: Advanced filters can be defined to filter on only the Top (or Bottom) N values ranked by
some measure, for example, to only include the Top 10 Categories in the visual above. This will again
result in two queries being sent to the underlying source. However, the first query will return all
categories from the underlying source, and then the TopN are determined based on the returned results.
Depending on the cardinality of the column involved, this can lead to performance issues (or query
failures due to the 1m row limit).
Median: Generally, any aggregation (Sum, Count Distinct, so on) is pushed to the underlying source.
However, this is not true for Median, as this aggregate is generally not supported by the underlying
source. In such cases, the detail data is retrieved from the underlying source, and the Median calculated
from the returned results. This is reasonable when the median is to be calculated over a relatively small
number of results, but performance issues (or query failures due to the 1m row limit) will occur if the
cardinality is large. For example, Median Country Population might be reasonable, but Median Sales
Price might not be.
Advanced text filters (‘contains’ and similar): When filtering on a text column, the advanced filtering
allows filters like ‘contains’ and ‘begins with’ and so on. These filters can certainly result in degraded
performance for some data sources. In particular, the default ‘contains’ filter should not be used if what
is really required is an exact match (‘is’ or ‘is not’). Although the results might be the same, depending
on the actual data, the performance might be drastically different due to the use of indexes.
Multi select slicers: By default, slicers only allow a single selection to be made. Allowing multi selection
in filters can cause some performance issues, because as the user selects a set of items in the slicer (for
example, the ten products they are interested in), then each new selection will result in queries being
sent to the backend source. Whilst the user can select the next item prior to the query completing, this
does result in extra load on the underlying source.
Consider switching off totals on visuals: By default, tables and matrices display totals and subtotals.
In many cases, separate queries must be sent to the underlying source to obtain the values for such
totals. This applies whenever using DistinctCount aggregation, or in all cases when using DirectQuery
over SAP BW or SAP HANA. Such totals should be switched off (by using the Format pane) if not
required.
Maximum number of connections option for DirectQuery
You can set the maximum number of connections DirectQuery opens for each underlying data source, and
thereby control the number of queries concurrently sent to each data source.
The default maximum number of concurrent connections DirectQuery opens is then. You can change this for
the current file in Power BI Desktop by going to File > Options and Settings > Options, then in the
Current File section in the left pane, select DirectQuery.
The setting is only enabled when there's at least one DirectQuery source in the current report. The value
applies to all DirectQuery sources, and to any new DirectQuery sources added to the same report.
Increasing the maximum connections value ensures more queries (up to the maximum number specified)
can be sent to the underlying data source, which is useful when numerous visuals are on a single page, or
many users access a report at the same time. Once the maximum number of connections is reached, further
queries are queued until a connection becomes available. Increasing this limit does result in more load on the
underlying source, so the setting isn't guaranteed to improve overall performance.
Once a report is published, the maximum number of concurrent queries sent to the underlying data source
also depend upon fixed limits, which depend on the target environment to which the report is published.
Different environments (such as Power BI, Power BI Premium, or Power BI Report Server) each can impose
different limits.
Diagnosing performance issues
This section describes how to diagnose performance issues, or how to get more detailed information to allow
the reports to be optimized.
It's strongly recommended that any diagnosis of performance issues starts in Power BI Desktop, rather than
in the Power BI service. It's commonly the case that performance issues are simply based on the level of
performance of the underlying source, and these are more easily identified and diagnosed in the much more
isolated environment of Power BI Desktop, and initially eliminates certain components (such as the Power BI
gateway). Only if the performance issues are found to not be present with Power BI Desktop should
investigation focus on the specifics of the report in the Power BI service.
Similarly, it is recommended to first try to isolate any issues to an individual visual, rather than many visuals on
a page.
So, let's say those steps (in the previous paragraphs in this section) have been taken - we now have a single
visual on a page in Power BI Desktop that is still sluggish. To determine the queries that are sent to the
underlying source by Power BI Desktop, it's possible to view traces/diagnostic information that might be
emitted by that source. Such traces might also contain useful information about the details of how the query
was executed, and how it can be improved.
Further, even in the absence of such traces from the source, it's possible to view the queries sent by Power BI,
along with their execution times, as described next.
Determining the queries sent by Power BI Desktop
By default, Power BI Desktop logs events during a given session to a trace file called
FlightRecorderCurrent.trc.
For some DirectQuery sources, this log includes all queries sent to the underlying data source (the remaining
DirectQuery sources will be included in the future). The sources that send queries to the log are the following:
SQL Server
Azure SQL Database
Azure SQL Data warehouse
Oracle
Teradata
SAP HANA
The trace file can be found in the AppData folder for the current user:
\<User>\AppData\Local\Microsoft\Power BI Desktop\AnalysisServicesWorkspaces
Here's an easy way to get to this folder: In Power BI Desktop select File > Options and settings > Options,
and then select Diagnostics. The following dialog window appears:
When you select the Open traces folder link, under Diagnostic Options, the following folder opens:
\<User>\AppData\Local\Microsoft\Power BI Desktop\Traces
Navigating to that folder's parent folder displays the folder containing AnalysisServicesWorkspaces, which will
contain one workspace subfolder for every open instance of Power BI Desktop. These subfolders are named
with an integer suffix, such as AnalysisServicesWorkspace2058279583.
Inside that folder is a \Data subfolder that contains the trace file FlightRecorderCurrent.trc for the current
Power BI session. The corresponding workspace folder is deleted when the associated Power BI Desktop
session ends.
The trace files can be read using the SQL Server Profiler tool, which is available as a free download as part of
SQL Server Management Studio. You can get that from this location.
Once you download and install SQL Server Management Studio, run SQL Server Profiler.
To open the trace file, take the following steps:
1. In SQL Server Profiler, select File > Open > Trace file
2. Enter the path to the trace file for the currently open Power BI session, such as:
C:\Users\<user>\AppData\Local\Microsoft\Power BI
Desktop\AnalysisServicesWorkspaces\AnalysisServicesWorkspace2058279583\Data
3. Open FlightRecorderCurrent.trc
All events from the current session are displayed. An annotated example is shown below, which highlights
groups of events. Each group has the following:
A Query Begin and Query End event, which represent the start and end of a DAX query generated by the UI
(for example, from a visual, or from populating a list of values in the filter UI)
One or more pairs of DirectQuery Begin and DirectQuery End events, which represent a query sent to the
underlying data source, as part of evaluating the DAX query.
Note that multiple DAX queries can be executed in parallel, so events from different groups can be interleaved.
The value of the ActivityID can be used to determine which events belong to the same group.
Other columns of interest are the following:
TextData: The textual detail of the event. For “Query Begin/End” events this will be the DAX query. For
“DirectQuery Begin/End” events this will be the SQL query sent to the underlying source. The TextData for
the currently selected event is also displayed in the region at the bottom.
EndTime: When the event completed.
Duration: The duration, in milliseconds, taken to execute the DAX or SQL query.
Error: Indicates if an error occurred (in which case the event is also displayed in red).
In the image above, some of the less interesting columns have been narrowed, to allow the interesting columns
to be seen more easily.
The recommended approach to capturing a trace to help diagnose a potential performance issue is the
following:
Open a single Power BI Desktop session (to avoid the confusion of multiple workspace folders)
Perform the set of actions of interest in Power BI Desktop. Include a few additional actions beyond that, to
ensure that the events of interest are flushed into the trace file.
Open SQL Server Profiler and examine the trace, as described earlier. Remember that the trace file will be
deleted upon closing Power BI Desktop. Also, further actions in Power BI Desktop will not immediately
appear – the trace file should be closed and re-opened to see the new events.
Keep individual sessions reasonably small (10 seconds of actions, not hundreds) to make it easier to
interpret the trace file (and because there is a limit on the size of the trace file, thus for long sessions there is
a chance of early events being dropped).
Understanding the form of query sent by Power BI Desktop
The general format of queries created and sent by Power BI Desktop use subselects for each of the tables
referenced, where the subselect is as defined by the query defined in Query Editor. For example, assume the
following TPC -DS tables in SQL Server:
Consider the following query:
Power BI Desktop and the Power BI service have many data sources to which you can connect and get
access to data. This article describes which data sources for Power BI support the connection method known as
DirectQuery. For more information about DirectQuery, see DirectQuery in Power BI.
The following data sources support DirectQuery in Power BI:
Amazon Redshift
Azure HDInsight Spark (Beta)
Azure SQL Database
Azure SQL Data Warehouse
Google BigQuery (Beta)
IBM DB2 database
IBM Netezza (Beta)
Impala (version 2.x)
Oracle Database (version 12 and above)
SAP Business Warehouse Application Server
SAP Business Warehouse Message Server (Beta)
SAP HANA
Snowflake
Spark (Beta) (version 0.9 and above)
SQL Server
Teradata Database
Vertica (Beta)
Data sources that have (Beta) or (Preview) after their name are subject to change, and are not supported for
production use. They might also not be supported after publishing a report to the Power BI service, which
means that opening a published report or exploring the dataset can result in an error.
The only difference between (Beta) and (Preview) data sources is that (Preview) sources must be enabled as
a Preview feature before they become available for use. To enable a (Preview) data connector, in Power BI
Desktop go to File > Options and Settings > Options, and then select Preview features.
NOTE
DirectQuery queries to SQL Server require authentication using current Windows authentication credentials or database
credentials to establish access. Alternate credentials are not supported.
Amazon Redshift No
Snowflake Yes
SAP Business Warehouse Message Server Not yet supported in the Power BI service
Google BigQuery No
Next steps
For more information about DirectQuery, check out the following resources:
DirectQuery in Power BI
DirectQuery and SAP HANA
DirectQuery and SAP BW
On-premises data gateway
Power BI Data Source Prerequisites
1/14/2019 • 2 minutes to read • Edit Online
For each data provider, Power BI supports a specific provider version on objects. For more information about data
sources available to Power BI, see Data Sources. The following table describes these requirements.
MINIMUM
PROVIDER MINIMUM DATA SUPPORTED DATA
DATA SOURCE PROVIDER VERSION SOURCE VERSION SOURCE OBJECTS DOWNLOAD LINK
SQL Server ADO.net (built .NET Framework SQL Server Tables/Views, Included in .NET
into .Net 3.5 (only) 2005+ Scalar functions, Framework 3.5 or
Framework) Table functions above
Access Microsoft Access ACE 2010 SP1 No restriction Tables/Views Download link
Database Engine
(ACE)
Excel (.xls files Microsoft Access ACE 2010 SP1 No restriction Tables, Sheets Download link
only) (see note 1) Database Engine
(ACE)
Oracle (see note ODP.NET ODAC 11.2 9.x+ Tables/Views Download link
2) Release 5
(11.2.0.3.20)
NOTE
The Oracle providers also require Oracle client software (version 8.1.7+).
Default member in multidimensional models in Power
BI
1/14/2019 • 4 minutes to read • Edit Online
You can connect to multidimensional models in Power BI, and create reports that visualize all sorts of data within
the model. When working with multidimensional models, Power BI applies rules to how it processes data, based on
which column is defined as the default member.
When working with multidimensional models, Power BI handles data from the model based on where the column
that contains the DefaultMember is used. The DefaultMember attribute is set in CSDL (Conceptual Schema
Definition Language) for a particular column in a multidimensional model. You can learn more about the default
member in its attribute properties article. When a DAX query is executed, the default member specified in the
model is applied automatically.
This article described how Power BI behaves under various circumstances when working with multidimensional
models, based on where the default member is found.
Grouping behavior
In Power BI, whenever you group a visual on a column that has a default member, Power BI clears the default
member for that column and its attribute relationship path. This ensures the visual displays all values, rather than
just the default values.
NOTE
Population is not in the ARP path of City, it is solely related to State and thus Power BI doesn't clear it.
State - Power BI displays all the States by clearing all default members for City, State, Country and
Population.
Country - Power BI displays all the countries by clearing all default members for City, State and Country, but
preserves the default member for Population.
City and State - Power BI clears all default members for all columns.
Groups displayed in the visual have their entire ARP path cleared.
If a group is not displayed in the visual, but is part of the ARP path of another grouped-on column, the following
applies:
Not all branches of the ARP path are cleared automatically.
That group is still filtered by that uncleared default member.
Slicers and filter cards
When working with slicers or filter cards, the following behavior occurs:
When a slicer or filter card is loaded with data, Power BI groups on the column in the visual, so the display
behavior is the same as described in the previous section.
Since slicers and filter cards are often used to interact with other visuals, the logic of clearing default members for
the affected visuals occurs as explained in the following table.
For this table, we use the same example data used earlier in this article:
The following rules apply for how Power BI behaves in these circumstances.
Power BI clears a default member for a given column if:
Power BI groups on that column
Power BI groups on a column related to that column (anywhere in the ARP, up or down)
Power BI filters on a column that is in the ARP (up or down)
The column has a filter card with ALL state
The column has a filter card with any value selected (Power BI receives a filter for the column)
Power BI does not clear a default member for a given column if:
The column has a filter card with default state, and Power BI is groupings on a column in its ARP.
The column is above another column in the ARP, and Power BI has a filter card for that other column in default
state.
Next steps
This article described the behavior of Power BI when working with default members in multidimensional models.
You might also be interested in the following articles:
Show items with no data in Power BI
Data sources in Power BI Desktop
Frequently asked questions about Power BI custom
visuals
3/14/2019 • 7 minutes to read • Edit Online
NOTE
All free visuals should keep same free features previously offered. You may add optional advanced paid features on top of the
old free features. We recommend to submit the IAP visuals with the advanced features as new visuals and not to update the
old free ones.
Additional questions
How to get support?
Feel free to contact the custom visuals support team:*[email protected]*with any questions, comments,
or issues you have.
Next steps
For more information, visit Troubleshooting your Power BI custom visuals.
Get Power BI Desktop
2/13/2019 • 6 minutes to read • Edit Online
Power BI Desktop lets you build advanced queries, models, and reports that visualize data. With Power BI
Desktop, you can build data models, create reports, and share your work by publishing to the Power BI service.
Power BI Desktop is a free download.
You can get Power BI Desktop in two ways, each of which is described in the following sections:
Download directly (an MSI package you download and install on your computer)
Install as an app from the Microsoft Store
Either approach will get the latest version of Power BI Desktop onto your computer, but there are a few
differences worth noting, which are described in the following sections.
You can also download the latest version of Power BI Desktop from the following download page:
Power BI Desktop download (both 32- and 64-bit versions).
Regardless of which way you choose to download, once Power BI Desktop is downloaded you're prompted to
run the installation file:
There are a few advantages to getting Power BI Desktop from the Microsoft Store:
Automatic updates - Windows downloads the latest version automatically in the background as soon as it's
available, so your version will always be up to date.
Smaller downloads - The Microsoft Store ensures only components that have changed in each update are
downloaded to your machine, resulting in smaller downloads for each update.
Admin privilege is not required - when you download the MSI directly and install, you must be an
administrator for the installation to complete successfully. When you get Power BI Desktop from the
Microsoft Store, admin privilege is not required.
IT roll-out enabled - the Microsoft Store version can more easily be deployed, or rolled -out, to everyone in
your organization, and can make Power BI Desktop available through the Microsoft Store for Business.
Language detection - the Microsoft Store version includes all supported languages, and checks which
languages is being used on the computer each time it is launched. This also affects the localization of models
created in Power BI Desktop; for example, built-in date hierarchies will match the language that Power BI
Desktop was using when the .pbix file was created.
There are a few consideration and limitations for installing Power BI Desktop from the Microsoft Store, which
include the following:
If you use the SAP connector, you may need to move your SAP driver files to the Windows\System32 folder.
Installing Power BI Desktop from the Microsoft Store doesn't copy user settings from the MSI version. You
might have to reconnect to your recent datasources and re-enter your data source credentials.
NOTE
Installing the downloaded (MSI) version, and the Microsoft Store version of Power BI Desktop on the same computer
(sometimes referred to as a side-by-side installation) is not supported. You should manually uninstall Power BI Desktop
before downloading it from the Microsoft Store
NOTE
The Power BI Report Server version of Power BI Desktop is a separate and different installation from the versions
discussed in this article. For information about the Report Server version of Power BI Desktop, see Create a Power BI
report for Power BI Report Server.
If this is your first time using Power BI Desktop (if the installation is not an upgrade), you'll be prompted to fill
out a form and answer a few questions, or sign in to the Power BI service before you'll be able to proceed.
From there, you can begin creating data models or reports, then share them with others on the Power BI service.
Check out the More information links at the end of this article for links to guides that can help you get started
using Power BI Desktop.
Minimum requirements
The following list provides the minimum requirements to run Power BI Desktop:
Windows 7 / Windows Server 2008 R2, or later
.NET 4.5
Internet Explorer 9 or later
Memory (RAM ): At least 1 GB available, 1.5 GB or more recommended.
Display: At least 1440x900 or 1600x900 (16:9) recommended. Lower resolutions such as 1024x768 or
1280x800 are not recommended, as certain controls (such as closing the startup screen) display beyond those
resolutions.
Windows Display settings: If your display settings are set to change the size of text, apps, and other items
to more than 100%, you may not be able to see certain dialogs that must be closed or responded to in order
to proceed using Power BI Desktop. If you encounter this issue, check your Display settings by going to
Settings > System > Display in Windows, and use the slider to return display settings to 100%.
CPU: 1 gigahertz (GHz) or faster x86- or x64-bit processor recommended.
Updating to the current version of Power BI Desktop usually solves this issue.
Disabling notifications
We recommend updating to the most recent version of Power BI Desktop to take advantage of advances in
features, performance, stability, and other improvements. Some organizations may not want users to update to
each new version. You can disable notifications by modifying the registry with the following steps:
1. Using the Registry Editor, navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Power BI
Desktop
2. Create a new entry there with the following settings: REG_DWORD : DisableUpdateNotification
3. Set the value of that new entry to 1.
You'll need to restart your computer for the change to take effect.
Power BI Desktop loads with a partial screen
In certain circumstances, including certain screen resolution configurations, some users may see Power BI
Desktop render content with large black areas. This is generally a result of recent operating system updates that
affect how items are rendered, rather than a direct result of how Power BI Desktop presents content. Regardless,
large black areas are not as compelling as great visuals, so to address this issue, take the following steps:
1. Press the Start key and type the world blurry into the search bar that appears.
2. In the dialog that appears, select the option: Let Windows fix apps that are blurry.
3. Restart Power BI Desktop.
This issue may resolve after subsequent Windows updates are released.
Next steps
Once you get Power BI Desktop installed, the following content can help you get up and running quickly:
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Getting started with Power BI Desktop
1/14/2019 • 18 minutes to read • Edit Online
Welcome to the Power BI Desktop Getting Started Guide. This short tour of Power BI Desktop gets you
acquainted with how it works, demonstrates what it can do, and accelerates your ability to build robust data
models — along with amazing reports — that amplify your business intelligence efforts.
Prefer to watch instead of read? Feel free to take a look at our getting started video. And if you want to follow
along with the video with matching sample data, you can download this sample Excel workbook.
Power BI Desktop lets you create a collection of queries, data connections, and reports that can easily be shared
with others. Power BI Desktop integrates proven Microsoft technologies – the powerful Query engine, data
modeling, and visualizations – and works seamlessly with the online Power BI service.
With the combination of Power BI Desktop (where analysts and others can create powerful data connections,
models and reports) and the Power BI service (where Power BI Desktop reports can be shared so users can
view and interact with them), new insights from the world of data are easier to model, build, share, and extend.
Data analysts will find Power BI Desktop a powerful, flexible, and a highly accessible tool to connect with and
shape the world of data, build robust models, and craft well-structured reports.
NOTE
There is also a separate and specialized version of Power BI called Power BI Report Server, which is for customers who
need their data and reporting to remain on-premises. For use with that specialized version, there's also a separate and
specialized version of Power BI Desktop called Power BI Desktop for Power BI Report Server, which works only with
the Report Server version of Power BI. This article describes the standard Power BI Desktop.
You can Get Data, see Recent Sources, or Open Other Reports directly from the Welcome screen (from the
links in the left pane). If you close the screen (select the x in the top right corner), the Report view of Power BI
Desktop is displayed.
There are three views in Power BI Desktop: Report view, Data view, and Relationships view. Power BI Desktop
also includes Query Editor, which opens in a separate window. In Query Editor, you can build queries and
transform data, then load that refined data model into Power BI Desktop, and create reports.
The following screen shows the three view icons along the left of Power BI Desktop: Report, Data, and
Relationships, from top to bottom. The currently displayed view is indicated by the yellow bar along the left. In
this case, Report view is currently displayed. You can change views by selecting any of those three icons.
With Power BI Desktop installed you’re ready to connect to data, shape data, and build reports (usually in that
order). In the next few sections, we take a tour through each in turn.
Connect to data
With Power BI Desktop installed, you’re ready to connect to the ever expanding world of data. There are all sorts
of data sources available in the Query window. The following image shows how to connect to data, by selecting
the Home ribbon, then Get Data > More.
For this quick tour, we'll connect to a couple different Web data sources.
Imagine you’re retiring – you want to live where there’s lots of sunshine, preferable taxes, and good health care –
or perhaps you’re a data analyst, and you want that information to help your customers. For example, perhaps
you want to help your sunglasses retailer target sales where the sun shines most frequently.
Either way, the following Web resource has interesting data about those topics, and more:
http://www.bankrate.com/finance/retirement/best-places-retire-how -state-ranks.aspx
Select Get Data > Web and paste the address.
When you select OK, the Query functionality of Power BI Desktop goes to work. Query contacts the Web
resource, and the Navigator window returns what it found on that Web page. In this case, it found a table (Table
0) and the overall Web Document. We’re interested in the table, so we select it from the list. The Navigator
window displays a preview.
At this point we can edit the query before loading the table, by selecting Edit from the bottom of the window, or
we can load the table.
When we select Edit, Query Editor launches and a representative view of the table is presented. The Query
Settings pane is displayed (if it’s not, you can select View from the ribbon, then Show > Query Settings to
display the Query Settings pane). Here’s what that looks like.
For more information about connecting to data, see Connect to Data in Power BI Desktop.
In the next section, we adjust the data so it meets our needs. The process of adjusting connected data is called
shaping data.
Shape data
When you shape data in the Query Editor, you’re providing step-by-step instructions (that Query Editor
carries out for you) to adjust the data as Query Editor loads and presents it. The original data source is not
affected; only this particular view of the data is adjusted, or shaped.
The steps you specify (such as rename a table, transform a data type, or delete columns) are recorded by Query
Editor, and each time this query connects to the data source those steps are carried out so that the data is
always shaped the way you specify. This process occurs whenever you use the query in Power BI Desktop, or for
anyone who uses your shared query, such as in the Power BI service. Those steps are captured, sequentially, in
the Query Settings pane under Applied Steps.
The following image shows the Query Settings pane for a query that has been shaped – we’ll go through each
of those steps in the next few paragraphs.
Let’s get back to our retirement data, which we found by connecting to a Web data source, and shape that data
to fit our needs.
For starters, most ratings were brought into Query Editor as whole numbers, but not all of them (one column
contained text and numbers, so it wasn't automatically converted). We need the data to be numbers. No problem
– just right-click the column header, and select Change Type > Whole Number to change the data type. If we
needed to choose more than one column, we could first select a column then hold down SHIFT, select additional
adjacent columns, and then right-click a column header to change all selected columns. You can also use CTRL
to select non-adjacent columns.
You can also change, or transform, those columns from text to header by using the Transform ribbon. Here’s the
Transform ribbon, with an arrow pointing toward the Data Type button, which lets you transform the current
data type to another.
Note that in Query Settings, the Applied Steps reflect the changes that were made. If I want to remove any
step from the shaping process, I simply select that step, and then select the X to the left of the step.
We need to make a few more changes to get the query where we want it:
Remove the first column – we don’t need it, it just includes redundant rows that say “Check out how your
state ranks for retirement” which is an artifact of this being a Web based table
Fix a few Errors – on the Web page, one column had text mixed in with the numbers (some states tied in one
category). That works well in the website, but not for our data analysis. It's easy (in this case) to fix, and shows
some cool features and capabilities of Query Editor and its Applied Steps
Change the Table Name – that Table 0 is not a useful descriptor, but changing it simple
Each of these steps is demonstrated in Shape and Combine Data in Power BI Desktop. Feel free to check
out that page, or keep going in this document to see what you would do next. The next section picks up after the
changes above are applied.
Combine data
That data about various states is interesting, and will be useful for building additional analysis efforts and
queries. But there’s one problem: most data out there uses a two-letter abbreviation for state codes, not the full
name of the state. We need some way to associate state names with their abbreviations.
We’re in luck: there’s another public data source that does just that, but it needs a fair amount of shaping before
we can connect it to our retirement table. Here’s the Web resource for state abbreviations:
http://en.wikipedia.org/wiki/List_of_U.S._state_abbreviations
From the Home ribbon in Query Editor, we select Get Data > Web and type the address, select OK, and the
Navigator window shows what it found on that Web page.
We select Table[edit] because it includes the data we want, but it’s going to take quite a bit of shaping to pare
that table’s data down. Each of these steps is also demonstrated in Shape and Combine Data in Power BI
Desktop. To summarize those steps, here's what we do:
We select Edit, then:
Remove the top two rows – they’re a result of the way that Web page’s table was created, and we don’t need
them.
Remove the bottom 26 rows – they’re all the territories, which we don’t need to include.
Filter out Washington DC – the retirement stats table doesn't include DC, so we'll exclude it from our list.
Remove a few unneeded columns – we only need the mapping of state to its official two-letter abbreviation,
so we can remove the other columns.
Use the first row as headers – since we removed the top three rows, the current top row is the header we
want.
NOTE
This is a good time to point out that the sequence of applied steps in Query Editor is important, and can affect
how the data is shaped. It’s also important to consider how one step may impact another subsequent step; if you
remove a step from the Applied Steps, subsequent steps may not behave as originally intended, because of the
impact of the query’s sequence of steps.
Rename the columns, and the table itself – as usual, there are a couple ways to rename a column, you can
choose whichever you prefer.
With the StateCodes table shaped, we can combine these two tables, or queries, into one; since the tables we
now have are a result of the queries we applied to the data, they’re often referred to as queries.
There are two primary ways of combining queries – merging and appending.
When you have one or more columns that you’d like to add to another query, you merge the queries. When you
have additional rows of data that you’d like to add to an existing query, you append the query.
In this case we want to merge queries. To get started, we select the query into which we want the other query to
merge, then select Merge Queries from the Home tab on the ribbon.
The Merge window appears, prompting us to select which table we’d like merged into the selected table, and
then, the matching columns to use for the merge. Select State from the RetirementStats table (query), then select
the StateCodes query (easy in this case, since there’s only one other query – when you connect to many data
sources, there are many queries to choose from). When we select the correct matching columns – State from
RetirementStats, and State Name from StateCodes – the Merge window looks like the following, and the OK
button is enabled.
A NewColumn is created at the end of the query, which is the contents of the table (query) that was merged
with the existing query. All columns from the merged query are condensed into the NewColumn, but you can
select to Expand the table, and include whichever columns you want. To expand the merged table, and select
which columns to include, select the expand icon ( ). The Expand window appears.
In this case, we only want the State Code column, so we select only that column and then select OK. We clear the
checkbox from Use original column name as prefix because we don’t need or want that; if we leave that
selected, the merged column would be named NewColumn.State Code (the original column name, or
NewColumn, then a dot, then the name of the column being brought into the query).
NOTE
Want to play around with how to bring in that NewColumn table? You can experiment a bit, and if you don’t like the
results, just delete that step from the Applied Steps list in the Query Settings pane; your query returns to the state
prior to applying that Expand step. It’s like a free do-over, which you can do as many times as you like until the expand
process looks the way you want it.
We now have a single query (table) that combined two data sources, each of which has been shaped to meet our
needs. This query can serve as a basis for lots of additional, interesting data connections – such as housing cost
statistics, demographics, or job opportunities in any state.
For a more complete description of each of these shape and combine data steps, see Shape and Combine Data
in Power BI Desktop.
For now, we have enough data to create a few interesting reports, all within Power BI Desktop. Since this is a
milestone let’s save this Power BI Desktop file – we’ll call it Getting Started with Power BI Desktop. To apply
the changes in Query Editor and load them into Power BI Desktop, select Close & Apply from the Home
ribbon.
Build reports
Additional changes can be made after the table is loaded, and you can reload a model to apply any changes you
make. But for now this will do. In Power BI Desktop Report view, you can begin to build reports.
The Report view has five main areas:
1. The ribbon, which displays common tasks associated with reports and visualizations
2. The Report view, or canvas, where visualizations are created and arranged
3. The Pages tab area along the bottom, which lets you select or add a report page
4. The Visualizations pane, where you can change visualizations, customize colors or axes, apply filters,
drag fields, and more
5. The Fields pane, where query elements and filters can be dragged onto the Report view, or dragged to
the Filters area of the Visualizations pane
The Visualizations and Fields pane can be collapsed by selecting the small arrow along the edge, providing
more space in the Report view to build cool visualizations. When modifying visualizations, you'll also see these
arrows pointing up or down, which means you can expand or collapse that section, accordingly.
To create a visualization, just drag a field from the Fields list onto the Report view. In this case, let’s drag the
State field from RetirementStats, and see what happens.
Look at that... Power BI Desktop automatically created a map-based visualization, because it recognized that the
State field contained geolocation data.
Notice that in the Visualizations pane, I can select different types of visualizations, and in the area below those
icons, I can drag fields to different areas to apply a Legend, or otherwise modify the visualization.
Let’s fast-forward a bit, and see what the Report view looks like after a handful of visualizations have been
added, as well as a few new Report pages. For more information about reports, see Report View in Power BI
Desktop.
The first Report page provides a perspective of the data based on Overall rank. When we select one of the
visualizations, the Fields and Filters pane shows which fields are selected, and the structure of the visualization
(which fields are applied to the Shared Axis, Column Values, and Line Values).
There are six Pages in this Report, each visualizing certain elements of our data.
1. The first page, shown above, shows all states based on Overall rank.
2. The second page focuses on the top ten states based on Overall rank.
3. For the third page, the best 10 states for cost of living (and associated data) are visualized.
4. Weather is the focus of the fourth page, filtered to the 15 sunniest states.
5. On the fifth page, Community well-being is charted and visualized for the top 15 states.
6. Lastly, crime statistics are visualized, showing the best (and well, the last) ten states.
Here’s what the cost of living-focused Report page looks like.
There are all sorts of interesting reports and visualizations you can create.
When you've signed in and the publish process is complete, you see the following dialog.
When you sign in to Power BI, you'll see Power BI Desktop file you just loaded in the Dashboards, Reports, and
Datasets sections of the service.
Another way to share your work is to load it from within the Power BI service. The following link brings up the
Power BI service in a browser:
https://app.powerbi.com
Select Get Data to start the process of loading your Power BI Desktop report.
The Get Data page appears, from which you can select where to get your data from. In this case, we select Get
from the Files box.
Once the file is uploaded, you can select the file from the Reports in the left pane of the Power BI service.
The Power BI service displays the first page of the report. Along the bottom of the page, you can select any tab
to display that page of the report.
You can make changes to a report in the Power BI service by selecting Edit Report from the top of the report
canvas.
To save your report, select File > Save As from the service. There are all sorts of interesting visuals you can
create in the Power BI service from your report, which you can pin to a dashboard. To learn about dashboards
in the Power BI service, see Tips for designing a great dashboard.
From here, you can send an email to colleagues with whom you’d like to share the dashboard.
For more information about creating, sharing, and modifying dashboards, see Share a dashboard.
There are all sorts of compelling data-related mash-ups and visualizations you can do with Power BI Desktop,
and with the Power BI service. Check out the next section for more information.
Diagnostics
Power BI desktop supports connecting to a diagnostics port. The diagnostic port allows for other tools to
connect to and perform traces for diagnostic purposes. Making any changes to the model is not supported!
Changes to the model may lead to corruption and data loss.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check
out the following resources:
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Common query tasks in Power BI Desktop
2/13/2019 • 8 minutes to read • Edit Online
When working in the Query Editor window of Power BI Desktop, there are a handful of commonly used tasks.
This document demonstrates those common tasks, and provides links for additional information.
The common query tasks demonstrated here are the following:
Connect to data
Shape and combine data
Group rows
Pivot columns
Create custom columns
Query formulas
We’ll use a few data connections to complete these tasks. The data is available for you to download or connect to,
in case you want to step through these tasks yourself.
The first data connection is an Excel workbook, which you can download from this link. The other is a Web
resource (which is also used in other Power BI Desktop help content) which can be accessed from here:
http://www.bankrate.com/finance/retirement/best-places-retire-how -state-ranks.aspx
The steps necessary to connect to both of those data sources is where the common Query tasks begin.
Connect to data
To connect to data in Power BI Desktop, select the Get Data button from the Home tab on the ribbon. Power BI
Desktop presents a menu with the most common data sources. For a complete list of data sources to which
Power BI Desktop can connect, select the More... button at the bottom of the menu. For more information, see
Data Sources in Power BI Desktop.
To start with, select Excel and navigate to the workbook, then select it. Query inspects the workbook, then
presents the data it found in the Navigator window.
You can select Edit to adjust, or shape, the data before loading it into Power BI Desktop. Editing a query before
loading is especially useful when working with large data sets that you intend to pare down before loading. We
want to do that, so we select Edit.
Connecting to different types of data is just as easy. We also want to connect to a Web resource. Select Get Data
> More... and then select Other > Web.
The From Web window appears, where you can type in the URL of the Web page.
Select OK, and like before, Power BI Desktop inspects the workbook and presents the data it finds in the
Navigator window.
Other data connections are similar. If authentication is required to make a data connection, Power BI Desktop
prompts you for the appropriate credentials.
For a step-by-step demonstration of connecting to data in Power BI Desktop, see Connect to Data in Power BI
Desktop.
When you shape data, you transform a data source into the form and format that meets your needs. In this case,
we don’t need that first column, titled Header, so we’ll remove it.
In Query Editor, many commands can be found in the ribbon, and in a context-sensitive right-click menu. For
example, when you right-click on the Header column, the menu that appears lets you remove the column. You
could also select the column and then select the Remove Columns button from the ribbon.
There are many other ways you could shape the data in this query; you could remove any number of rows from
the top, or from the bottom; you could add columns, split columns, replace values, and perform other shaping
tasks to direct Query Editor to get the data how you want it.
Group rows
In Query Editor, you can group the values in multiple rows into a single value. This can be useful when
summarizing the number of products offered, the total sales, or the count of students.
In this example, we group rows in an education enrollment data set. The data is from an Excel workbook, and has
been shaped in Query Editor to get just the columns we need, rename the table, and perform a few other
transforms.
Let’s find out how many Agencies (this includes school districts, and other education agencies such as regional
service districts, and so on) each state has. We select the State Abbr column then select the Group By button in
the Transform tab or the Home tab of the ribbon (Group By is available in both tabs).
The Group By… window appears. When Query Editor groups rows, it creates a new column into which it places
the Group By results. You can adjust the Group By operation in the following ways:
1. Group by – this is the column to be grouped; Query Editor chooses the selected column, but you can change it
in this window to be any column in the table.
2. New column name – Query Editor suggests a name for the new column, based on the operation it applies to
the column being grouped, but you can name the new column anything you want.
3. Operation – here you specify the operation that Query Editor applies.
4. Add grouping and Add aggregation – these options appear after selecting the Advanced option. You can
perform grouping operations (Group By actions) on multiple columns, and perform multiple aggregations, all
within the Group By window, and all in one operation. Query Editor creates a new column (based on your
selections in this window ) that operates on multiple columns.
Select the Add grouping or Add aggregation button to add more groupings or aggregations to a Group By
operation. You can remove a grouping or aggregation by selecting the ... icon and selecting Delete, so go ahead
and try it and see what it looks like.
When we select OK, Query performs the Group By operation, and returns the results. Whew, look at that – Ohio,
Texas, Illinois, and California now each have over a thousand agencies!
And with Query Editor, you can always remove the last shaping operation by selecting the X next to the step just
completed. So go ahead and experiment, redo the step if you don’t like the results, until Query Editor shapes
your data just the way you want it.
Pivot columns
With Power BI Desktop, you can pivot columns, and create a table that contains aggregated values for each
unique value in a column. For example, if you need to know how many different products you have in each
product category, you can quickly create a table the does precisely that.
Let’s look at an example. The following Products table has been shaped to only show each unique product (by
name), and which category each product falls under. To create a new table that shows a count of products for
each category (based on the CategoryName column), select the column, then select Pivot Column from the
Transform tab on the ribbon.
The Pivot Column window appears, letting you know which column’s values will be used to create new columns
(1), and when you expand Advanced options (2), you can select the function that will be applied to the
aggregated values (3).
When you select OK, Query displays the table according to the transform instructions provided in the Pivot
Column window.
Create custom columns
In Query Editor you can create custom formulas that operate on multiple columns in your table, then place the
results of such formulas into a new (custom) column. Query Editor makes it easy to create custom columns.
In Query Editor, select Custom Column from the Add Column tab on the ribbon.
The following window appears. In the following example, we create a custom column called Percent ELL that
calculates the percentage of total students that are English Language Learners (ELL ).
Like any other applied step in Query Editor, if the new custom column doesn’t provide the data you’re looking
for, you can simply delete the step from the Applied Steps section of the Query Settings pane by selecting the
X next to the Added Custom step.
Query formulas
You can edit the steps that Query Editor generates, and you can create custom formulas to get precise control
over connecting to and shaping your data. Whenever Query Editor performs an action on data, the formula
associated with the action is displayed in the Formula Bar. To view the Formula Bar, select the checkbox next to
Formula Bar in the View tab of the ribbon.
Query Editor keeps all applied steps for each query as text that you can view or modify. You can view or modify
the text for any query using the Advanced Editor, which is displayed when you select Advanced Editor from
the View tab of the ribbon.
Here's a look at the Advanced Editor, with the query steps associated with the USA_StudentEnrollment
query displayed. These steps are created in the Power Query Formula Language, often referred to as M. For
information, see Learn about Power Query formulas. To view the language specification itself, see Microsoft
Power Query for Excel Formula Language Specification.
Power BI Desktop provides an extensive set of formula categories. For more information, and a complete
reference of all Query Editor formulas, visit Power Query Formula Categories.
The formula categories for Query Editor are the following:
Number
Constants
Information
Conversion and formatting
Format
Rounding
Operations
Random
Trigonometry
Bytes
Text
Information
Text comparisons
Extraction
Modification
Membership
Transformations
Logical
Date
Time
DateTime
DateTimeZone
Duration
Record
Information
Transformations
Selection
Serialization
List
Information
Selection
Transformation
Membership
Set operations
Ordering
Averages
Addition
Numerics
Generators
Table
Table construction
Conversions
Information
Row operations
Column operations
Membership
Values
Arithmetic operations
Parameter Types
Metadata
Accessing data
URI
Binary formats
Reading numbers
Binary
Lines
Expression
Function
Error
Comparer
Splitter
Combiner
Replacer
Type
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check
out the following resources:
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Create and manage relationships in Power BI
Desktop
2/13/2019 • 16 minutes to read • Edit Online
When you import multiple tables, chances are you’re going to do some analysis using data from all those tables.
Relationships between those tables are necessary in order to accurately calculate results and display the correct
information in your reports. Power BI Desktop makes creating those relationships easy. In-fact, in most cases you
won’t have to do anything, the Autodetect feature can do it for you. However, in some cases you might have to
create relationships yourself, or you might need to make some changes to a relationship. Either way, it’s important
to understand relationships in Power BI Desktop and how to create and edit them.
By default, Power BI Desktop will automatically configure the Cardinality (direction), Cross filter direction, and
Active properties for your new relationship; however, you can change these if necessary. To learn more, see the
Understanding additional options section later in this article.
Note that you'll see an error that states One of the columns must have unique values if none of the tables selected
for the relationship has unique values. At least one table in a relationship must have a distinct, unique list of key
values, which is a common requirement for all relational database technologies.
If you encounter that error, there are a couple ways to fix the issue:
Use "Remove Duplicate Rows" to create a column with unique values. The drawback to this approach is that
you will lose information when duplicate rows are removed, and often a key (row ) is duplicated for good
reason.
Add an intermediary table made of the list of distinct key values to the model, which will then be linked to both
original columns in the relationship.
For more detailed information, see the blog post that discusses this in detail.
Edit a relationship
1. On the Home tab, click Manage Relationships.
2. In the Manage Relationships dialog, select the relationship, then click Edit.
Configure additional options
When you create or edit a relationship, you can configure additional options. By default, additional options are
automatically configured based on a best guess. This can be different for each relationship based on the data in
the columns.
Cardinality
Many to One (*:1) - This is the most common, default type. This means the column in one table can have more
than one instance of a value, and the other related table, often know as the Lookup table, has only one instance of
a value.
One to One (1:1) - This means the column in one table has only one instance of a particular value, and the other
related table has only one instance of a particular value.
Many-to-many relationships: With composite models, you can establish many-to-many relationships between
tables. This approach removes requirements for unique values in tables. It also removes previous workarounds,
such as introducing new tables only to establish relationships. For more detailed information, see Relationships
with a many-many cardinality.
See the Understanding additional options section later in this article for more details about when to change
cardinality.
Understanding relationships
Once you have connected two tables together with a relationship, you can work with the data in both tables as if
they were a single table, freeing you from having to worry about relationship details, or flattening those tables into
a single table before importing them. In many situations, Power BI Desktop can automatically create relationships
for you, so creating those relationships yourself might not even be needed. However, if Power BI Desktop can’t
determine with a high-degree of certainty that a relationship between two tables should exist, it will not
automatically create the relationship. In that case, you will need to create the relationship.
Let’s do a little tutorial, to better show you how relationships work in Power BI Desktop.
TIP
You can complete this lesson yourself. Copy the ProjectHours table below into an Excel worksheet, select all of the cells, click
INSERT > Table. In the Create Table dialog, just click OK. Then in Table Name, type ProjectHours. Do the same for the
CompanyProject table. You can then import the data by using Get Data in Power BI Desktop. Select your workbook and
tables as a data source.
This first table, ProjectHours, is a record of work tickets that record the number of hours a person has worked on a
particular project.
ProjectHours
PROJNAME PRIORITY
Blue A
Red B
Green C
Yellow C
PROJNAME PRIORITY
Purple B
Orange C
Notice that each table has a project column. Each is named slightly different, but the values look like they’re the
same. That’s important, and we’ll get back to it in a little bit.
Now that we have our two tables imported into a model, let’s create a report. The first thing we want to get is the
number of hours submitted by project priority, so we select Priority and Hours from Fields.
If we look at our table in the Report canvas, you’ll see the number of hours is 256.00 for each project, and it’s also
the total. Clearly this isn’t correct. Why? It’s because we can’t calculate a sum total of values from one table (Hours
in the Project table), sliced by values in another table (Priority in the CompanyProject table) without a relationship
between these two tables.
So, let’s create a relationship between these two tables.
Remember those columns we saw in both tables with a project name, but with values that look alike? We’re going
to use these two columns to create a relationship between our tables.
Why these columns? Well, if we look at the Project column in the ProjectHours table, we see values like Blue, Red,
Yellow, Orange, and so on. In fact, we see several rows that have the same value. In-effect, we have many color
values for Project.
If we look at the ProjName column in the CompanyProject table, we see there’s only one of each of the color
values for project. Each color value in this table is unique, and that’s important, because we can create a
relationship between these two tables. In this case, a many-to-one relationship. In a many-to-one relationship, at
least one column in one of the tables must contain unique values. There are some additional options for some
relationships, and we’ll look at those later, but for now, let’s create a relationship between the Project columns in
each of our two tables.
To create the new relationship
1. Click Manage Relationships.
2. In Manage Relationships, click New. This opens the Create Relationship dialog, where we can select the
tables, columns, and any additional settings we want for our relationship.
3. In the first table, select ProjectHours, then select the Project column. This is the many side of our relationship.
4. In the second table, select CompanyProject, then select the ProjName column. This is the one side of our
relationship.
5. Go ahead and click OK in both the Create Relationship dialog and the Manage Relationships dialog.
In the interest of full disclosure, you really just created this relationship the hard way. You could've just clicked on
the Autodetect button in the Manage Relationships dialog. In fact, Autodetect would have already done it for you
when you loaded the data if both columns had the same name. But, what’s the challenge in that?
Now, let’s look at the table in our Report canvas again.
As we said, these are usually set automatically and you won’t need to mess with them; however, there are several
situations where you might want to configure these options yourself.
CompanyProjectPriority
PROJECT PRIORITY
Blue A
Red B
Green C
Yellow C
Purple B
Orange C
If we create a relationship between the Project column in the CompanyProjectPriority table and ApprovedProjects
column in the ProjectBudget table, like this:
Cardinality is automatically set to One-to-One (1:1), and cross filtering to be Both (as shown). This is because to
Power BI Desktop, the best combination of the two tables really looks like this:
Yellow C
Purple B
Orange C
There is a one-to-one relationship between our two tables because there are no repeating values in the combined
table’s Project column. The Project column is unique, because each value occurs only once, so, the rows from the
two tables can be combined directly without any duplication.
But, let’s say you know the data will change the next time you refresh it. A refreshed version of the ProjectBudget
table now has additional rows for Blue and Red:
ProjectBudget
APPROVED PROJECTS BUDGETALLOCATION ALLOCATIONDATE
This means the best combination of the two tables now really looks like this:
Yellow C
Purple B
Orange C
In this new combined table, the Project column has repeating values. The two original tables won’t have a one-to-
one relationship once the table is refreshed. In this case, because we know those future updates will cause the
Project column to have duplicates, we want to set the Cardinality to be Many-to-One (*:1), with the Many on the
ProjectBudget side and the One on the CompanyProjectPriority side.
With single direction cross filtering, if you create a report that summarizes the project hours, you can then choose
to summarize (or filter) by CompanyProject, Priority or CompanyEmployee, City. If however, you want to count
the number of employees per projects (a less common question), it won’t work. You’ll get a column of values that
are all the same. In the example below, both relationships cross filtering direction is set to a single direction –
towards the ProjectHours table:
Filter specification will flow from CompanyProject to CompanyEmployee (as shown in the image below ) but, it
won’t flow up to CompanyEmployee. However, if you set the cross filtering direction to Both it will work. The Both
setting allows the filter specification to flow up to Employee.
With the cross filtering direction set to Both, our report now appears correct:
Cross filtering both directions works well for a pattern of table relationships that look like the pattern above. This
is most commonly called a star schema, like this:
Cross filtering direction does not work well with a more general pattern often found in databases, like in this
diagram:
If you have a table pattern like this, with loops, then cross filtering can create an ambiguous set of relationships.
For instance, if you sum up a field from TableX and then choose to filter by a field on TableY, then it’s not clear how
the filter should travel, through the top table or the bottom table. A common example of this kind of pattern is
with TableX as a Sales table with actuals data and for TableY to be budget data. Then, the tables in the middle are
lookup tables that both tables use, such as Division or Region.
Just like with active/inactive relationships, Power BI Desktop won’t allow a relationship to be set as Both if it will
create ambiguity in reports. There are several different ways you can deal with this and here are the two most
common:
Delete or mark relationships as inactive to reduce ambiguity. Then you might be able to set a relationship cross
filtering as Both.
Bring in a table twice (with a different name the second time) to eliminate loops. This makes the pattern of
relationships like a star schema. With a star schema, all of the relationships can be set to Both.
EmployeeRole
EMPLOYEE ROLE
There are actually two relationships here. One is between SubmittedBy in the ProjectTickets table and Employee
in the EmployeeRole table, and the other is between OpenedBy in the ProjectTickets table and Employee in the
EmployeeRole table.
If we add both relationships to the model (OpenedBy first), then the Manage Relationships dialog will show that
OpenedBy is active:
Now, if we create a report that uses Role and Employee fields from EmployeeRole, and the Hours field from
ProjectTickets in a table visualization in the Report canvas, we’ll see only project sponsors because they’re the only
ones that opened a project ticket.
We can change the active relationship and get SubmittedBy instead of OpenedBy. In Manage Relationships, we
uncheck the ProjectTickets(OpenedBy) to EmployeeRole(Employee) relationship, and then we check the Project
Tickets(SubmittedBy) to EmployeeRole(Employee) relationship.
Data View helps you inspect, explore, and understand data in your Power BI Desktop model. It's different from
how you view tables, columns, and data in Query Editor. With Data View, you’re looking at your data after it has
been loaded into the model.
When you’re modeling your data, sometimes you want to see what’s actually in a table or column without creating
a visual on the report canvas, often right down to the row level. This is especially useful when you’re creating
measures and calculated columns, or you need to identify a data type or data category.
Let’s take a closer look at some of the elements found in Data View.
You can filter individual values, or use advanced filtering based on the data in the column.
NOTE
When a Power BI model is created in a different culture than your current user interface (for example, the model was created
in US English and you are viewing it in Spanish), the search box will not appear in the Data View user interface for anything
other than text fields.
Query overview in Power BI Desktop
1/14/2019 • 6 minutes to read • Edit Online
With Power BI Desktop you can connect to the world of data, create compelling and foundational reports, and
share your efforts with others – who can then build on your work, and expand their business intelligence
efforts.
Power BI Desktop has three views:
Report view – where you use queries you create to build compelling visualizations, arranged as you want
them to appear, and with multiple pages, that you can share with others
Data view – see the data in your report in data model format, where you can add measures, create new
columns, and manage relationships
Relationships view – get a graphical representation of the relationships that have been established in your
data model, and manage or modify them as needed.
These views are accessed by selecting one of the three icons along the left side of Power BI Desktop. In the
following image, Report view is selected, indicated by the yellow band beside the icon.
Power BI Desktop also comes with Query Editor, where you can connect to one or many data sources, shape
and transform the data to meet your needs, then load that model into Power BI Desktop.
This document provides an overview of the work with data in the Query Editor. There's more to learn, of
course, so at the end of this document you’ll find links to detailed guidance about supported data types,
connecting to data, shaping data, creating relationships, and how to get started.
But first, let’s see get acquainted with Query Editor.
Once a query is loaded, Query Editor view becomes more interesting. If we connect to the following Web data
source, Query Editor loads information about the data, which you can then begin to shape.
http://www.bankrate.com/finance/retirement/best-places-retire-how -state-ranks.aspx
Here’s how Query Editor appears once a data connection is established:
1. In the ribbon, many buttons are now active to interact with the data in the query
2. In the left pane, queries are listed and available for selection, viewing, and shaping
3. In the center pane, data from the selected query is displayed and available for shaping
4. The Query Settings window appears, listing the query’s properties and applied steps
We’ll look at each of these four areas – the ribbon, the queries pane, the data view, and the Query Settings pane
– in the following sections.
To connect to data and begin the query building process, select the Get Data button. A menu appears,
providing the most common data sources.
For more information about available data sources, see Data Sources. For information about connecting to
data, including examples and steps, see Connect to Data.
The Transform tab provides access to common data transformation tasks, such as adding or removing
columns, changing data types, splitting columns, and other data-driven tasks. The following image shows the
Transform tab.
For more information about transforming data, including examples, see Combine and Shape Data.
The Add Column tab provides additional tasks associated with adding a column, formatting column data, and
adding custom columns. The following image shows the Add Column tab.
The View tab on the ribbon is used to toggle whether certain panes or windows are displayed. It’s also used to
display the Advanced Editor. The following image shows the View tab.
It’s useful to know that many of the tasks available from the ribbon are also available by right-clicking a column,
or other data, in the center pane.
You can directly edit the code in the Advanced Editor window. To close the window, select the Done or Cancel
button.
Once you have your query where you want it, or if you just want to make sure your work is saved, Power BI
Desktop can save your work in the form of a .pbix file.
To save your work, select File > Save (or File > Save As), as shown in the following image.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check
out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
DAX basics in Power BI Desktop
1/14/2019 • 14 minutes to read • Edit Online
This article is for users new to Power BI Desktop. It’s meant to give you a quick and easy introduction on how you
can use Data Analysis Expressions (DAX) to solve a number of basic calculation and data analysis problems. We’ll
go over some conceptual information, a series of tasks you can complete, and a few quizzes to test what you’ve
learned. After completing this article, you should have a good understanding of the most important fundamental
concepts in DAX.
What is DAX?
DAX is a collection of functions, operators, and constants that can be used in a formula, or expression, to calculate
and return one or more values. Stated more simply, DAX helps you create new information from data already in
your model.
Prerequisites
You might already be familiar with creating formulas in Microsoft Excel. That knowledge will be helpful in
understanding DAX, but even if you have no experience with Excel formulas, the concepts described here will help
you get started creating DAX formulas and solving real-world BI problems right away.
We’re going to focus on understanding DAX formulas used in calculations, more specifically, in measures and
calculated columns. You should already be familiar with Power BI Desktop, importing data, adding fields to a
report, and you should also be familiar with fundamental concepts of Measures and Calculated columns.
Example Workbook
The best way to learn DAX is to create some basic formulas, use it with some actual data, and see the results for
yourself. The examples and tasks here use the Contoso Sales Sample for Power BI Desktop Preview file. This is
the same sample file used in the Tutorial: Create your own measures in Power BI Desktop article. Here is the
sample file to download.
Let's begin!
We will frame our understanding of DAX around three fundamental concepts: Syntax, Functions, and Context. Of
course, there are other important concepts in DAX, but understanding these three concepts will provide the best
foundation on which to build your DAX skills.
Syntax
Before you create your own formulas, let’s take a look at DAX formula syntax. Syntax includes the various
elements that make up a formula, or more simply, how the formula is written. For example, let’s look at a simple
DAX formula for a measure.
For the measure named Total Sales, calculate (=) the SUM of values in the [SalesAmount ] column in the
Sales table.
When added to a report, this measure calculates and returns values by summing up sales amounts for each of the
other fields we include, for example, Cell Phones in the USA.
You might be thinking ‘Isn’t this measure doing the same thing as if I were to just add the SalesAmount field to
my report?’ Well, yes. But, there’s a good reason to create our own measure that sums up values from the
SalesAmount field: We can use it as an argument in other formulas. This may seem a little confusing now, but as
your DAX formula skills grow, knowing this will make your formulas and your model more efficient. In fact, you’ll
see the Total Sales measure showing up as an argument in other formulas later on.
Let’s go over a few more things about this formula. In particular, we introduced a function, SUM. Functions are
pre-written formulas that make it easier to do complex calculations and manipulations with numbers, dates, time,
text, and more. You will learn more about functions later.
You also see the column [SalesAmount] was preceded by the table Sales in which the column belongs. This is
known as a fully qualified column name in that it includes the column name preceded by the table name.
Columns referenced in the same table do not require the table name be included in the formula. This can make
long formulas that reference many columns shorter and easier to read. However, it's good practice to include the
table name in your measure formulas, even when in the same table.
NOTE
If a table name contains spaces, reserved keywords, or disallowed characters, you’ll need to enclose the table name in single
quotation marks. You’ll also need to enclose table names in quotation marks if the name contains any characters outside
the ANSI alphanumeric character range, regardless of whether your locale supports the character set or not.
It’s important your formulas have the correct syntax. In most cases, if the syntax is not correct, a syntax error will
be returned. In other cases, the syntax may be correct, but the values returned might not be what you are
expecting. The DAX editor in Power BI Desktop includes a suggestions feature, used to create syntactically correct
formulas by helping you select the correct elements.
Let’s create a simple formula. This task will help you further understand formula syntax and how the suggestions
feature in the formula bar can help you.
Task: Create a measure formula
To complete this task, you’ll need to open the Contoso Sales Sample Power BI Desktop file.
1. In Report view, in the field list, right-click on the Sales table, and then click New Measure.
2. In the formula bar, replace Measure by typing a new measure name, Previous Quarter Sales.
3. After the equals sign, type the first few letters CAL, and then double-click the function you want to use. In
this formula, you want to use the CALCULATE function.
You’ll use the CALCULATE function to filter the amounts we want to sum by an argument we pass to the
CALCULATE function. This is what’s referred to as nesting functions. The CALCULATE function has at least
two arguments. The first is the expression to be evaluated, and the second is a filter.
4. After the opening parenthesis ( for the CALCULATE function, type SUM followed by another opening
parenthesis (. Now we need to pass an argument to the SUM function.
5. Begin typing Sal, and then select Sales[SalesAmount], followed by a closing parenthesis ). This is the
first expression argument for our CALCULATE function.
6. Type a comma (,) followed by a space to specify the first filter, and then type PREVIOUSQUARTER. This
will be our filter.
You’ll use the PREVIOUSQUARTER time intelligence function to filter SUM results by the previous
quarter.
7. After the opening parenthesis ( for the PREVIOUSQUARTER function, type Calendar[DateKey].
The PREVIOUSQUARTER function has one argument, a column containing a contiguous range of dates.
In our case, that's the DateKey column in the Calendar table.
8. Make sure both the arguments being passed to the PREVIOUSQUARTER function and the CALCULATE
function are closed by typing two closing parenthesis )).
Your formula should now look like this:
Previous Quarter Sales = CALCULATE (SUM (Sales[SalesAmount]),
PREVIOUSQUARTER(Calendar[DateKey]))
9. Click the checkmark in the formula bar or press Enter to validate the formula and add it to the model.
You did it! You just created a measure using DAX, and not an easy one at that. What this formula will do is
calculate the total sales for the previous quarter, depending on the filters applied in a report. For example, if we
put SalesAmount and our new Previous Quarter Sales measure in a chart, and then added Year and
QuarterOfYear as Slicers, we’d get something like this:
You were just introduced to several important aspects of DAX formulas. First, this formula included two functions.
Notice PREVIOUSQUARTER, a time intelligence function, is nested as an argument passed to CALCULATE, a
filter function. DAX formulas can contain up to 64 nested functions. It’s unlikely a formula would ever contain so
many nested functions. In fact, such a formula would be very difficult to create and debug, and it probably
wouldn’t be very fast either.
In this formula, you also used filters. Filters narrow down what will be calculated. In this case, you selected one
filter as an argument, which is actually the result of another function. You will learn more about filters later.
Finally, you used the CALCULATE function. This is one of the most powerful functions in DAX. As you author
models and create more complex formulas, you will likely use this function many times. Discussing the
CALCULATE function is outside the scope of this article, but as your knowledge of DAX grows, pay special
attention to this one.
Syntax QuickQuiz
1. What does this button on the formula bar do?
To better understand this formula, we can break it down, much like with other formulas.
This formula includes the following syntax elements:
A. The measure name Store Sales.
B. The equals sign operator (=) indicates the beginning of the formula.
C. The CALCULATE function evaluates an expression, as an argument, in a context that is modified by the
specified filters.
D. Parenthesis () surround an expression containing one or more arguments.
E. A measure [Total Sales] in the same table as an expression. The Total Sales measure has the formula:
=SUM (Sales[SalesAmount]).
F. A comma (,) separates the first expression argument from the filter argument.
G. The fully qualified referenced column, Channel[ChannelName]. This is our row context. Each row in this
column specifies a channel: Store, Online, etc.
H. The particular value, Store as a filter. This is our filter context.
This formula ensures only sales values defined by the Total Sales measure are calculated only for rows in the
Channel[ChannelName] column with the value “Store”, as a filter.
As you can imagine, being able to define filter context within a formula has immense and powerful capabilities.
Being able to reference only a particular value in a related table is just one such example. Don’t worry if you do
not completely understand context right away. As you create your own formulas, you will better understand
context and why it’s so important in DAX.
Context QuickQuiz
1. What are the two types of context?
2. What is filter context?
3. What is row context?
Answers are provided at the end of this article.
Summary
Now that you have a basic understanding of the most important concepts in DAX, you can begin creating DAX
formulas for measures on your own. DAX can indeed be a little tricky to learn, but there are many resources
available to you. After reading through this article and experimenting with a few of your own formulas, you can
learn more about other DAX concepts and formulas that can help you solve your own business problems. There
are many DAX resources available to you; most important is the Data Analysis Expressions (DAX) Reference.
DAX has been around for several years in other Microsoft BI tools such as Power Pivot and Analysis Services
Tabular models, so there’s a lot of great information out there. You can find more information in books,
whitepapers, and blogs from both Microsoft and leading BI professionals. The DAX Resource Center Wiki on
TechNet is also a great place to start.
QuickQuiz answers
Syntax:
1. Validates and enters the measure into the model.
2. Brackets [].
Functions:
1. A table and a column.
2. Yes. A formula can contain up to 64 nested functions.
3. Text functions.
Context:
1. Row context and filter context.
2. One or more filters in a calculation that determines a single value.
3. The current row.
Relationship View in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Relationship View shows all of the tables, columns, and relationships in your model. This can be especially
helpful when your model has complex relationships between many tables.
Let’s take a look.
If you’ve been working with Power BI, you know how easy it is to create reports providing dynamic perspectives
and insights into your data. Power BI also has more advanced features in Power BI Desktop. With Power BI
Desktop, you can create advanced queries, mashup data from multiple sources, create relationships between
tables, and more.
Power BI Desktop includes Report View, where you can create any number of report pages with visualizations.
Report View in provides pretty much the same design experience as a report’s Editing View in the Power BI
service. You can move visualizations around, copy and paste, merge, and so on.
The difference between them is when using Power BI Desktop, you can work with your queries and model your
data to make sure your data supports the best insights in your reports. You can then save your Power BI Desktop
file wherever you like, whether it's your local drive or to the cloud.
You can switch between Report View, Data View, and Relationship View by selecting the icons in the left-hand
navigation bar:
Once you’ve added some data, you can add fields to a new visualization in the canvas.
To change the type of visualization, you can select it from the Visualization group in the ribbon or you can right-
click and select a different type from the Change visualization type icon.
TIP
Be sure to experiment with different visualization types. It’s important your visualization convey information in your data
clearly.
A report will have at least one blank page to start. Pages appear in the navigator pane just to the left of the canvas.
You can add all sorts of visualizations to a page, but it's important not to overdo it. Too many visualizations on a
page will make it look busy and difficult to find the right information. You can add new pages to your report. Just
click New Page on the ribbon.
To delete a page, click the X on the page's tab at the bottom of the Report View.
NOTE
Reports and visualizations can’t be pinned to a dashboard from Power BI Desktop. To do that, you’ll need to Publish from
Power BI Desktop to your Power BI site.
If the fields in your model are different, you’ll see an error on the visual and a warning about which fields don’t
exist. The error is similar to the experience you see when you delete a field in the model that a visual is using. To
correct the error, just replace the broken fields with the fields you want to use from the model in the report to
which you pasted the visual. If you're using a custom visual, you must also import that custom visual to the
destination report.
Hide report pages
When you create a report, you can also hide pages from a report. This might be useful if you need to create
underlying data or visuals in a report, but you don't want those pages to be visible to others, such as when you
create tables or supporting visuals that are used in other report pages. There are many other creative reasons you
might want to create a report page, then hide it from a report you want to publish.
Hiding a report page is easy. Simply right-click on the report page tab, and select Hide from the menu that
appears.
There are a few considerations to keep in mind when hiding a report page:
You can still see a hidden report view when in Power BI Desktop, even though the page's title is grayed
out. In the following image, Page 4 is hidden.
You cannot see a hidden report page when viewing the report in the Power BI service.
Hiding a report page is not a security measure. The page can still be accessed by users, and its content is
still accessible using drill-through, and other methods.
When a page is hidden, when in View Mode, no view -mode navigation arrows are shown.
Connect to data in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
With Power BI Desktop, you can easily connect to the ever expanding world of data. If you don’t have Power BI
Desktop, you can download and install it.
There are all sorts of data sources available in Power BI Desktop. The following image shows how to connect to
data, by selecting the File ribbon, then Get Data > More.
At this point we can edit the query before loading the table, by selecting Edit from the bottom of the window, or
we can load the table.
If we select Edit, the table is loaded and Query Editor is launched. The Query Settings pane is displayed (if it’s
not, you can select View from the ribbon, then Show > Query Settings to display the Query Settings pane).
Here’s what that looks like.
All those scores are text rather than numbers, and we need them to be numbers. No problem – just right-click
the column header, and select Change Type > Whole Number to change them. To choose more than one
column, first select a column then hold down SHIFT, select additional adjacent columns, and then right-click a
column header to change all selected columns. Use CTRL to choose columns that are not adjacent.
In Query Settings, the Applied Steps will reflect any changes that were made. As you make additional
changes to the data, Query Editor will record those changes in the Applied Steps section, which you can adjust,
revisit, rearrange, or delete as necessary.
Additional changes to the table can still be made after it’s loaded, but for now this will do. When we're done we
select Close & Apply from the Home ribbon, and Power BI Desktop applies our changes and closes Query
Editor.
With the data model loaded, in Report view in Power BI Desktop, we can begin creating visualizations by
dragging fields onto the canvas.
Of course, this is a simple model with a single data connection; most Power BI Desktop reports will have
connections to different data sources, shaped to meet your needs, with relationships that produce a rich data
model.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check
out the following resources:
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Want to give us feedback? Great – use the Submit an Idea menu item in Power BI Desktop or visit Community
Feedback. We look forward to hearing from you!
Publish from Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
When you publish a Power BI Desktop file to the Power BI service, the data in the model and any reports you
created in Report view are published to your Power BI workspace. You’ll see a new dataset with the same name,
and any reports in your Workspace navigator.
Publishing from Power BI Desktop has the same effect as using Get Data in Power BI to connect to and upload
a Power BI Desktop file.
NOTE
Any changes you make to the report in Power BI, for example, add, delete, or change visualizations in reports, will not be
saved back to the original Power BI Desktop file.
When complete, you receive a link to your report. Click the link to open the report in your Power BI site.
Re-publish or replace a dataset published from Power BI Desktop
When you publish a Power BI Desktop file, the dataset and any reports you created in Power BI Desktop are
uploaded to your Power BI site. When you re-publish your Power BI Desktop file, the dataset in your Power BI
site will be replaced with the updated dataset from the Power BI Desktop file.
This is all pretty straightforward, but there are a few things you should know:
If you already have two or more datasets in Power BI with the same name as the Power BI Desktop file,
publish could fail. Make sure you have only one dataset in Power BI with the same name. You can also rename
the file and publish, creating a new dataset with same name as the file.
If you rename or delete a column or measure, any visualizations you already have in Power BI with that field
could be broken.
Power BI ignores some format changes of existing columns. For example, if you change a column’s format
from 0.25 to 25%.
If you have a refresh schedule configured for your existing dataset in Power BI and you add new data sources
to your file and then re-publish, you’ll have to sign into them in Manage Data Sources prior to the next
scheduled refresh.
Part I, Add visualizations to a Power BI report
1/14/2019 • 2 minutes to read • Edit Online
This article gives a quick introduction to creating a visualization in a report using either Power BI service or Power
BI Desktop. For more-advanced content, please see Part II. Watch Amanda demonstrate a few different ways to
create, edit, and format visuals on the report canvas. Then try it out yourself using the Sales and Marketing sample
to create your own report.
https://www.youtube.com/embed/IkJda4O7oGs
Or, start with a category field, such as Name or Product: Power BI creates a Table and adds that field to
the Values well.
Or, start with a geography field, such as Geo > City. Power BI and Bing Maps create a map visualization.
2. Create a visualization and then change its type. Select Product > Category and then Product > Count of
Product to add them both to the Values well.
3. Change the visualization to a column chart by selecting the column chart icon.
4. When you create visualizations in your report, you can pin them to your dashboard. To pin the visualization,
select the pin icon .
Next steps
Continue on to Part 2: Add visualizations to a Power BI report
Interact with the visualizations in the report.
Do even more with visualizations.
Save your report.
Part 2, Add visualizations to a Power BI report
1/14/2019 • 2 minutes to read • Edit Online
In Part 1, you created a basic visualization by selecting checkboxes next to field names. In Part 2 you'll learn how to
use drag-and-drop and make full use of the Fields and Visualizations panes to create and modify visualizations.
Prerequisites
Part 1
Power BI Desktop - visualizations can be added to reports using Power BI service or Power BI Desktop. This
tutorial uses Power BI Desktop.
Retail Analysis sample
2. Add a new page by selecting the yellow plus icon at the bottom of the canvas.
Add a visualization that looks at this year's sales compared to last year.
1. From the Sales table, select This Year Sales > Value and Last Year Sales. Power BI creates a column
chart. This is somewhat interesting, and you want to dig deeper. What do the sales look like by month?
2. From the Time table, drag FiscalMonth into the Axis area.
3. Change the visualization to an Area chart. There are many visualization types to choose from - see
descriptions of each, tips for best practices, and tutorials for help deciding which type to use. From the
Visualizations pane, select the Area chart icon .
4. Sort the visualization by selecting the ellipses and choosing Sort by FiscalMonth.
5. Resize the visualization by selecting the visualization, grabbing one of the outline circles and dragging.
Make it wide enough to eliminate the scrollbar and small enough to give us enough room to add another
visualization.
3. Add a legend. To see the data by store name, drag Chain into the Legend area.
Next steps
More about Visualizations in Power BI reports.
More questions? Try the Power BI Community
Customize visualization titles, legends, and
backgrounds
1/14/2019 • 3 minutes to read • Edit Online
In this tutorial you'll learn a few different ways to customize your visualizations. There are so many options for
customizing your visualizations, the best way to learn about them all is by exploring the Formatting pane (select
the paintroller icon). To get you started, this article shows you how to customize a visualization title, legend, and
background.
Not all visualizations can be customized, see the complete list.
Watch Amanda customize visualizations in her report (fast-forward to 4:50 in the video). Then follow the
instructions below the video to try it out yourself with your own data.
https://www.youtube.com/embed/IkJda4O7oGs
Prerequisites
Power BI service or Power BI Desktop
Retail Analysis sample
NOTE
When you pin a visualization to a dashboard, it becomes a dashboard tile. The tiles themselves can also be customized with
new titles and subtitles, hyperlinks, and resized.
1. Navigate to the "New Stores" page of the report and select the "Open Store Count by Open Month..."
column chart.
2. In the Visualizations pane, select the paintroller icon to reveal the formatting options. and select Title to
expand that section.
3. Turn Title on and off by selecting the On (or Off) slider. For now, leave it On.
4. Change Title Text by typing Store count by month opened in the text field.
5. Change Font color to orange and Background Color to yellow.
Select the dropdown and choose a color from the Theme Colors, Recent Colors, or Custom color.
Select the dropdown to close the color window.
You can always revert to the default colors by selecting Revert to default in the color window.
6. Increase the text size to 12.
7. The last customization we'll make to the chart title is to align it in the center of the visualization. The title
position defaults to left-aligned.
At this point in the tutorial, your column chart title should look like something like this:
To revert all the title customization we've done so far, select Revert To Default, at the bottom of the Title
customization pane.
To revert all the title background customization we've done so far, select Revert To Default, at the bottom
of the Background customization pane.
To revert all the legend customization we've done so far, select Revert To Default, at the bottom of the
Legend customization pane.
Next steps
Customize X-axis and Y -axis
Customize colors and axis properties
Power BI - Basic Concepts
More questions? Try the Power BI Community
Show items with no data in Power BI
1/14/2019 • 5 minutes to read • Edit Online
Power BI lets you visualize all sorts of data from various sources. When creating a visual, Power BI only shows
relevant data when creating a visual to properly manage how data is presented and displayed. Power BI
determines which data is relevant based on the configuration of the visual, and the underlying data model. This
article describes how Power BI behaves when determining relevant data, with examples that illustrate how
determinations are made.
PRODUCT[COLOR] PRODUCT[SIZE]
Blue Large
PRODUCT[COLOR] PRODUCT[SIZE]
Blue Medium
Blue Small
Red Large
In this example, Power BI displays the combinations of [Color-Size] that exist in the table [Product].
Now let's look at a different combination:
2. Groups from different but directly related tables and a measure: ProductStyle[Finish] - Product[Color ] -
Sum (Sales[Quantity ])
Gloss Blue 10
Matte Blue 15
In this example, Power BI displays only combinations that exist. For example, it will not display ("None" + "Blue")
or ("Matte" + "Red") because those combinations do not exist in the model. The condition that determines which
combinations exist is the value for Sum (Sales[Quantity ]) not being blank.
Let's look at a different case:
3. Groups from different but related tables and no measure: ProductStyle[Finish] - Product[Color ]
PRODUCTSTYLE[FINISH] PRODUCT[COLOR]
Gloss Blue
Gloss Red
Matte Blue
Since there is no explicit measure and the two tables are directly related, Power BI attempts to inject a measure to
constrain the combinations that result. In this case, Power BI injects a CALCULATE (COUNTROWS ('Product' ))
measure, which should not be blank, since Product is the table that is common to both tables.
As such, Power BI displays the combinations that do have entries in the Product table, which excludes the
combinations of ("None" + "Blue") and ("Matte" + "Red").
4. Groups from different and unrelated tables
The sample model doesn't have this combination, but if there were groups from different and unrelated tables,
Power BI would not be able to relate two columns. The result would be a crossjoin of all the values of each column.
In that situation, Power BI issues an error of type unconstrained join, because such cross joins are expensive to
compute in the database, and do not provide very much information to a user.
Showing items with no data
The previous section described how Power BI determines which data is relevant to display. But there may be times
when you want to show items with no data.
The Show items with no data feature enables you to do exactly that - include data rows and columns that don't
contain measure data (blank measure values).
To enable the Show items with no data feature select a visual, then in the Fields well, right-click the field and
select Show items with no data from the menu that appears, as shown in the following image:
The Show items with no data feature does not have effect in the following circumstances:
There's no measure added to the visual, and the grouping columns come from the same table
Groups are unrelated; Power BI doesn't run queries for visuals that have unrelated groups
The measure is unrelated to any of the groups; this is because the measure will never be blank for only some
group combinations
There's a user-defined measure filter that excludes blank measures - for example: SalesAmount > 0
How Show items with no data works
The most interesting use cases of Show items with no data are when measures are present. Let's look at the
situation when the groups are from the same table, or can be related through a path in the model. For example,
ProductStyle is directly related to Product and indirectly related to Sales, ProductStyle and ProductCategory can be
related through the Product table, and so on.
Let's look at a couple interesting cases, and compare when Show items with no data is off and then on.
1. Grouping columns from the same table: Product[Color ] - Product[Size] - Sum (Sales[Quantity ])
How it appears with Show items with no data feature off:
Blue Medium 15
Blue Small 10
How it appears with Show items with no data feature on:
Blue Large
Blue Medium 15
Blue Small 10
Red Large
Notice how two new combinations showed up with the feature turned on: Blue - Large and Red - Large. Both of
those entries have no corresponding Quantity in the Sales table. However, they show up in the Product table.
2. Grouping columns from related tables: ProductStyle[Finish] - Product[Color ] - Sum (Sales[Quantity ])
How it appears with Show items with no data feature off:
Gloss Blue 10
Matte Blue 15
Gloss Blue 10
Gloss Red
Matte Blue 15
None
Notice how (Gloss-Red ) and (None, blank) appeared as combinations. Here is the reason they appeared:
Power BI first considered ProductStyle[Finish] and selected all the values to display - this resulted in Gloss,
Matte, None.
Using each of these values, Power BI selected all the corresponding Product[Color ] entries
Since None does not correspond to any Product[Color ], a blank appears for that value
It's important to note that the mechanism of selecting values for the columns is order-dependent, and can be
thought of as a Left outer join operation between tables. If the order of the columns is changed, the results will
change as well.
Let's look at an example of changing the order, and how it impacts results. This is the same as item 2 in this section,
with the ordering changed.
Product[Color] - ProductStyle[Finish] - Sum (Sales[Quantity])
How it appears with Show items with no data feature on:
PRODUCT[COLOR] PRODUCTSTYLE[FINISH] [SUMQUANTITY]
Blue Gloss 10
Blue Matte 15
Red Gloss
In this case, notice how ProductStyle[Finish]=None does not appear in the table. This is because, in this case,
Power BI first selected all the Color values in the Product table. Then for each color, Power BI selected the
corresponding Finish values that contained data. Since None does not show up in any combination of Color, it is
not selected.
Data:
1 Phone
2 Camera
3 TV
1 Gloss Yes
2 Matte No
3 None No
1 1 1/1/2012 0:00 10
2 2 1/1/2013 0:00 15
Next steps
This article described how you can enable the Show items with no data feature in Power BI. You might also be
interested in the following articles:
Default member in multidimensional models in Power BI
Data sources in Power BI Desktop
2/13/2019 • 4 minutes to read • Edit Online
With Power BI Desktop, you can connect to data from many different sources. A full list of available data
sources is at the bottom of this page.
To connect to data, select Get Data from the Home ribbon. Selecting the down arrow, or the Get Data
text on the button, shows the Most Common data types menu shown in the following image:
Selecting More… from the Most Common menu displays the Get Data window. You can also bring up
the Get Data window (and bypass the Most Common menu) by selecting the Get Data icon button
directly.
NOTE
The Power BI team is continually expanding the data sources available to Power BI Desktop and the Power BI
service. As such, you'll often see early versions of work-in-progress data sources marked as Beta or Preview. Any
data source marked as Beta or Preview has limited support and functionality, and should not be used in
production environments.
Data Sources
Data types are organized in the following categories:
All
File
Database
Power BI
Azure
Online Services
Other
The All category includes all data connection types from all categories.
The File category provides the following data connections:
Excel
Text/CSV
XML
JSON
Folder
PDF (Beta)
SharePoint Folder
The following image shows the Get Data window for File.
NOTE
Some database connectors require that you enable them by selecting File > Options and settings > Options
then selecting Preview Features and enabling the connector. If you don't see some of the connectors mentioned
above and want to use them, check your Preview Features settings. Also note that any data source marked as
Beta or Preview has limited support and functionality, and should not be used in production environments.
The following image shows the Get Data window for Database.
NOTE
At this time, it's not possible to connect to custom data sources secured using Azure Active Directory.
Connecting to a Data Source
To connect to a data source, select the data source from the Get Data window and select Connect. In the
following image, Web is selected from the Other data connection category.
A connection window is displayed, specific to the type of data connection. If credentials are required,
you’ll be prompted to provide them. The following image shows a URL being entered to connect to a
Web data source.
When the URL or resource connection information is entered, select OK. Power BI Desktop makes the
connection to the data source, and presents the available data sources in the Navigator.
You can either load the data by selecting the Load button at the bottom of the Navigator pane, or edit
the query before loading data by selecting the Edit button.
That’s all there is to connecting to data sources in Power BI Desktop! Try connecting to data from our
growing list of data sources, and check back often - we continue to add to this list all the time.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities,
check out the following resources:
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Types in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Get data from a Web page by providing an example
1/14/2019 • 2 minutes to read • Edit Online
Getting data from a web page lets users easily extract data from web pages, and import that data into Power BI
Desktop. Often however, data on Web pages aren't in tidy tables that are easy to extract, so getting data from such
pages - even if it's structured and consistent - can be challenging.
There is a solution. With the Get Data from Web by example feature, you can essentially show Power BI
Desktop which data you want to extract by providing one or more examples within the connector dialog, and it
will gather other data on the page that match your examples. With this solution you can extract all sorts of data
from Web pages, including data found in tables and other non-table data.
https://www.microsoft.com/store/top-paid/games/xbox?category=classics
When you select OK, you're taken to the Navigator dialog where any auto-detected tables from the Web page are
presented. In the case shown in the image below, no tables were found, but there is a button on the bottom of the
page called Extract table using examples that lets you provide examples.
Selecting the Extract table using examples presents an interactive window where you can preview the content
of the Web page, and enter sample values of the data you would like to extract.
In this example, we'll extract the Name and Price for each of the games on the page. We can do that by specifying a
couple of examples from the page for each column, as shown in the following image. As those examples are typed
in, Power Query (which is the underlying technology that extracts the data from the Web page) is able to extract
data that fits the pattern of example entries using smart data extraction algorithms.
Note: Value suggestions only include values less than or equal to 128 characters in length.
Once we're happy with the data extracted from the Web page, we select OK to go to Query Editor, where we can
apply more transformations or shape the data, such as combining this data with other data our sources.
From there, you can create visuals or otherwise use the Web page data when creating your Power BI Desktop
reports.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
Add columny by example
Connect to a Web page
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Connect to CSV files in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to datasets in the Power BI service from
Power BI Desktop
1/14/2019 • 7 minutes to read • Edit Online
You can establish a live connection to a shared dataset in the Power BI service, and create many different reports
from the same dataset. This means you can create your perfect data model in Power BI Desktop, publish it to the
Power BI service, then you and others can create multiple different reports (in separate .pbix files) from that same,
common data model. This feature is called Power BI service Live connection.
There are all sorts of benefits of this feature, including best practices, which we’ll discuss during this article. There
are also a few considerations and limitations, so please make sure you read through those - they're found at the
end of this article.
If she isn't signed in to her Power BI service account, she's prompted to do so.
From there, she can choose the workspace destination to which the report and dataset will be published.
Remember, only members who have access to the workspace where a report is published can access its dataset
using a Power BI service live connection.
The publishing process begins, and Power BI Desktop shows the progress.
Once complete, Power BI Desktop shows you success, and provides a couple links to get you to the report itself
in the Power BI service, and a link to get Quick Insights on the report.
Next, let's see how other teammates who have access to the workspace where the report (and dataset) were
published can connect to the dataset and build our own reports.
Establish a Power BI service live connection to the published dataset
To establish a connection to the published report, and create your own report based on the published dataset,
select Get Data from the Home ribbon in Power BI Desktop, and select Power BI service. You can also select it
from Get Data > Online Services > Power BI service.
If you're not signed in to Power BI, you'll be prompted to do so. Once logged in, you're presented with a window
that shows which workspaces you're a member of, and you can select which workspace contains the dataset to
which you want to establish a Power BI service live connection.
The number in brackets beside the workspace shows how many shared datasets are available in that workgroup,
and selecting the triangle to the left expands the workspace, allowing you to select the shared dataset.
There are a few items to note from the previous Power BI service live connection window:
You can search for a shared dataset, but the search results are limited to the expanded items, and won't include
any workspaces that you have not expanded.
You can expand more than one workspace to expand your search.
When you select Load from the window, you establish a live connection to the selected dataset, which means the
data you see (the fields, and their values) are loaded into Power BI Desktop in real time.
Now you (and others) can create and share custom reports, all from the same dataset. This is a great way to have
one knowledgeable person create a well-formed dataset (such as what Anna does), and allow many teammates use
that shared dataset to create their own reports.
NOTE
When you create reports based on dataset using a live connection to the Power BI service, you can only publish that
report to the same Power BI service workspace that contains the dataset being used.
With Power BI Desktop, you can easily import Excel workbooks that contain Power Query queries, Power Pivot
models, and Power View worksheets into Power BI Desktop. Reports and visualizations are automatically created
based on the Excel workbook, and once imported, you can continue to improve and refine those reports using
Power BI Desktop, using the existing features and new features released with each Power BI Desktop monthly
update.
In the future, the plan is to provide additional communication between Excel and Power BI Desktop (such as
import/export); this current ability to import workbooks into Power BI Desktop lets existing Excel users get started
with Power BI Desktop.
A window appears, letting you select the workbook to import. There is currently no limitation on the size or
number of objects in the workbook, but larger workbooks take longer for Power BI Desktop to analyze and
import.
NOTE
To load or import Excel files from shared OneDrive for Business folders or from Office 365 group folders, use the URL of
the Excel file, and input it into the Web data source in Power BI Desktop. There are a few steps you need to follow to
properly format the OneDrive for Business URL, so check out Use OneDrive for Business links in Power BI Desktop for
more information and the correct series of steps.
Once a workbook is selected, Power BI Desktop analyzes the workbook and converts it into a Power BI Desktop
file (.pbix). This action is a one-time event; once the Power BI Desktop file is created with these steps, the Power BI
Desktop file has no dependence on the original Excel workbook, and can be modified or changed (and saved, and
shared) without affecting the original workbook.
Once the import is finished, a Summary page is displayed that describes the items that were converted, and also
lists any items that were not able to be imported.
When you select Close, the report is loaded in Power BI Desktop. The following image shows Power BI Desktop
after an Excel workbook was imported: Power BI Desktop automatically loaded the report based on the workbook
contents.
Now that the workbook is imported, you can continue working on the report – such as creating new visualizations,
adding data, or creating new report pages – using any of the features and capabilities included in Power BI
Desktop.
Power Query queries All Power Query queries from Excel are converted to queries
in Power BI Desktop. If there were Query Groups defined in
the Excel Workbook, the same organization will be replicated
in Power BI Desktop. All queries are loaded unless they were
set to “Only Create Connection” in Excel. The Load behavior
can be customized from the Properties dialog in the Home
tab of Query Editor in Power BI Desktop.
Power Pivot External Data Connections All Power Pivot External Data Connections will be converted
to queries in Power BI Desktop.
OBJECT IN EXCEL WORKBOOK FINAL RESULT IN POWER BI DESKTOP FILE
Linked Tables or Current Workbook tables If there is a worksheet table in Excel linked to the Data Model,
or linked to a query (by using From Table or the
Excel.CurrentWorkbook() function in M), the following options
are presented:
1. Import the table to the Power BI Desktop file. This
table is a one-time snapshot of the data, after which
you cannot edit the data in the table in Power BI
Desktop. There is a size limitation of 1 million
characters (total, combining all column headers and
cells) for tables created using this option.
2. Keep a connection to the original workbook.
Alternatively, you can keep a connection to the original
Excel Workbook and Power BI Desktop retrieves the
latest content in this table with each refresh, just like
any other query created against an Excel workbook in
Power BI Desktop.
Data Model Calculated Columns, Measures, KPIs, Data These Data Model objects are converted to the equivalent
Categories, and Relationships objects in Power BI Desktop. Note there are certain Data
Categories that are not available in Power BI Desktop, such as
Image. In these cases, the Data Category information will be
reset for the columns in question.
Power View Worksheets A new report page is created for each Power View worksheet
in Excel. The name and order of these report pages match the
original Excel workbook.
You can connect to a multitude of different data sources in Power BI Desktop, using built-in data connectors that
range from Access databases to Zendesk resources, as shown in the Get Data window. You can also connect to
all sorts of other data sources to further expand your connectivity options, by using the generic interfaces (such as
ODBC or REST APIs) built into Power BI Desktop.
The following list details a few examples of data sources to which Power BI Desktop can connect by using the
generic ODBC interface.
POWER BI DESKTOP GENERIC CONNECTOR EX TERNAL DATA SOURCE LINK FOR MORE INFORMATION
The following list details a few examples of the data sources to which Power BI Desktop can connect by using the
generic OLE DB interface.
POWER BI DESKTOP GENERIC CONNECTOR EX TERNAL DATA SOURCE LINK FOR MORE INFORMATION
The following list details a few examples of the data sources to which Power BI Desktop can connect by using the
generic OData interface.
POWER BI DESKTOP GENERIC CONNECTOR EX TERNAL DATA SOURCE LINK FOR MORE INFORMATION
The following list details a few examples of the data sources to which Power BI Desktop can connect by using the
generic REST APIs interface.
POWER BI DESKTOP GENERIC CONNECTOR EX TERNAL DATA SOURCE LINK FOR MORE INFORMATION
The following list details a few examples of the data sources to which Power BI Desktop can connect by using the
generic R scripts interface.
POWER BI DESKTOP GENERIC CONNECTOR EX TERNAL DATA SOURCE LINK FOR MORE INFORMATION
Next steps
There are all sorts of data sources you can connect to using Power BI Desktop. For more information on data
sources, check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to a PDF file in Power BI Desktop (Preview)
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to a PDF file and use the included data from the file, just like any other data
source in Power BI Desktop.
The following sections describe how to connect to a PDF file, select data, and bring that data into Power BI
Desktop.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to Adobe Analytics in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to Adobe Analytics and use the underlying data just like any other data
source in Power BI Desktop.
You can Load the selected table, which brings the entire table into Power BI Desktop, or you can Edit the query,
which opens Query Editor so you can filter and refine the set of data you want to use, and then load that refined
set of data into Power BI Desktop.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to an Oracle database
2/26/2019 • 2 minutes to read • Edit Online
In order to connect to an Oracle database with Power BI Desktop, the correct Oracle client software must be
installed on the computer running Power BI Desktop. Which Oracle client software you use depends on which
version of Power BI Desktop you have installed - the 32-bit version or the 64-bit version.
Supported versions: Oracle 9 and later, Oracle client software 8.1.7 and later.
TIP
If you're having trouble connecting in this step, try using the following format in the Server Name field:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=host_name)(PORT=port_num))(CONNECT_DATA=
(SERVICE_NAME=service_name)))
3. If you want to import data using a native database query, you can put your query in the SQL Statement
box, available by expanding the Advanced options section of the Oracle Database dialog.
4. Once your Oracle database information is entered into the Oracle Database dialog (including any optional
information such as a SID or a native database query), select OK to connect.
5. If the Oracle database requires database user credentials, input those credentials in the dialog when
prompted.
Troubleshooting
If you downloaded Power BI Desktop from the Microsoft Store, you might be unable to connect to Oracle
databases because of an Oracle driver issue. If you encounter this issue, the error message returned is "Object
reference not set". To address the issue, do one of the following:
Download Power BI Desktop from https://powerbi.microsoft.com/desktop instead.
If you want to use the version from the Microsoft Store: on your local computer, copy oraons.dll from
12.X.X\client_X into 12.X.X\client_X\bin. The X represents version and directory numbers.
Run Python scripts in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
You can run Python scripts directly in Power BI Desktop, and import the resulting datasets into a Power BI
Desktop data model.
Install Python
To run Python scripts in Power BI Desktop, you need to install Python on your local machine. You can download
and install Python for free from many locations, including the Official Python download page, and the Anaconda.
The current release of Python scripting in Power BI Desktop supports Unicode characters as well as spaces (empty
characters) in the installation path.
Install Required Python Packages
The Power BI Python integration requires two Python packages to be installed (Pandas and Matplotlib). Using the
pip command line tool, install the following two packages,
3. If Python is not installed, is not identified, or if there are multiple installations on your local machine,
warning will be displayed.
Python installation settings are centrally located in the Python Scripting section of the Options dialog. To
specify your Python installation settings, select File > Options and settings and then Options > Python
scripting. If multiple installations of Python are available, a drop-down menu appears that allows you to
select which installation to use. You can also select Other and give custom path.
4. Select OK to run the Python Script. When the script runs successfully, you can then choose the resulting
data frames to add to the Power BI model.
Refresh
You can refresh a Python script in Power BI Desktop. When you refresh a Python script, Power BI Desktop runs the
Python script again in the Power BI Desktop environment.
Next steps
Take a look at the following additional information about Python in Power BI.
Create Python Visuals in Power BI Desktop
Use an external Python IDE with Power BI
Using Python in Query Editor
2/13/2019 • 4 minutes to read • Edit Online
You can use Python, a programming language widely used by statisticians, data scientists, and data analysts, in the
Power BI Desktop Query Editor. This integration of Python into Query Editor lets you perform data cleansing
using Python, and perform advanced data shaping and analytics in datasets, including completion of missing data,
predictions, and clustering, just to name a few. Python is a powerful language, and can be used in Query Editor to
prepare your data model and create reports.
Installing Python
To use Python in Power BI Desktop's Query Editor, you need to install Python on your local machine. You can
download and install Python for free from many locations, including the Official Python download page, and the
Anaconda.
2. Select the file and select Open, and the CSV is displayed in the CSV file dialog.
3. Once the data is loaded, you'll see it in the Fields pane in Power BI Desktop.
4. Open Query Editor by selecting Edit Queries from the Home tab in Power BI Desktop.
5. In the Transform tab, select Run Python Script and the Run Python Script editor appears (shown in the
next step). Notice that rows 15 and 20 suffer from missing data, as do other rows you can't see in the
following image. The steps below show how Python can (and will) complete those rows for you.
import pandas as pd
completedData = dataset.fillna(method='backfill', inplace=False)
dataset["completedValues"] = completedData["SMI missing values"]
NOTE
You'll need to have the pandas library installed in your Python environment for the previous script code to work
properly. To install pandas, run the following command in your Python installation: | > pip install pandas
When put into the Run Python Script dialog, the code looks like the following:
7. After selecting OK, Query Editor displays a warning about data privacy.
8. For the Python scripts to work properly in the Power BI service, all data sources need to be set to public. For
more information about privacy settings and their implications, see Privacy Levels.
Notice a new column in the Fields pane called completedValues. Notice there are a few missing data
elements, such as on row 15 and 18. Take a look at how Python handles that in the next section.
With just five lines of Python script, Query Editor filled in the missing values with a predictive model.
Once that visual is complete, and any other visuals you might want to create using Power BI Desktop, you can
save the Power BI Desktop file (which saves as a .pbix file) and then use the data model, including the Python
scripts that are part of it, in the Power BI service.
NOTE
Want to see a completed .pbix file with these steps completed? You're in luck - you can download the completed Power BI
Desktop file used in these examples right here.
Once you've uploaded the .pbix file to the Power BI service, a couple more steps are necessary to enable data
refresh (in the service) and to enable visuals to be updated in the service (the data needs access to Python for
visuals to be updated). The additional steps are the following:
Enable scheduled refresh for the dataset - to enable scheduled refresh for the workbook that contains your
dataset with Python scripts, see Configuring scheduled refresh, which also includes information about Personal
Gateway.
Install the Personal Gateway - you need a Personal Gateway installed on the machine where the file is
located, and where Python is installed; the Power BI service must access that workbook and re-render any
updated visuals. You can get more information on how to install and configure Personal Gateway.
Limitations
There are some limitations to queries that include Python scripts created in Query Editor:
All Python data source settings must be set to Public, and all other steps in a query created in Query Editor
must also be public. To get to data source settings, in Power BI Desktop select File > Options and
settings > Data source settings.
From the Data Source Settings dialog, select the data source(s) and then select Edit Permissions... and
ensure that the Privacy Level is set to Public.
To enable scheduled refresh of your Python visuals or dataset, you need to enable Scheduled refresh and
have a Personal Gateway installed on the computer that houses the workbook and the Python installation.
For more information on both, see the previous section in this article, which provides links to learn more
about each.
Nested tables (table of tables) are currently not supported
There are all sorts of things you can do with Python and custom queries, so explore and shape your data just the
way you want it to appear.
Use an external Python IDE with Power BI
1/14/2019 • 4 minutes to read • Edit Online
With Power BI Desktop, you can use your external Python IDE (Integrated Development Environment) to create
and refine Python scripts, then use those scripts in Power BI.
If you have multiple Python IDEs installed, you can specify which will be launched by selecting it from the Detected
Python IDEs drop-down in the Options dialog.
By default, Power BI Desktop will launch Visual Studio Code as the external Python IDE if it's installed on your
local computer; if Visual Studio Code is not installed and you have Visual Studio, that will be launched instead.
If neither of those Python IDEs is installed, the application associated with .PY files is launched.
And if no .PY file association exists, it's possible to specify a path to a custom IDE in the Browse to your preferred
Python IDE section of the Options dialog. You can also launch a different Python IDE by selecting the Settings
gear icon beside the Launch Python IDE arrow icon, in Power BI Desktop.
3. When script visuals are enabled, you can select a Python visual from the Visualizations pane, which
creates a blank Python visual that's ready to display the results of your script. The Python script editor
pane also appears.
4. Now you can select the fields you want to use in your Python script. When you select a field, the Python
script editor field automatically creates script code based on the field or fields you select. You can either
create (or paste) your Python script directly in the Python script editor pane, or you can leave it empty.
NOTE
The default aggregation type for Python visuals is do not summarize.
5. You can now launch your Python IDE directly from Power BI Desktop. Select the Launch Python IDE
button, found on the right side of the Python script editor title bar, as shown below.
6. Your specified Python IDE is launched by Power BI Desktop, as shown in the following image (in this image,
Visual Studio Code is the default Python IDE ).
NOTE
Power BI Desktop adds the first three lines of the script so it can import your data from Power BI Desktop once
you run the script.
7. Any script you created in the Python script editor pane of Power BI Desktop appears starting in line 4
in your Python IDE. At this point, you can create your Python script in the Python IDE. Once your Python
script is complete in your Python IDE, you need to copy and paste it back into the Python script editor
pane in Power BI Desktop, excluding the first three lines of the script that Power BI Desktop
automatically generated. Do not copy the first three lines of script back into Power BI Desktop, those lines
were only used to import your data to your Python IDE from Power BI Desktop.
Known limitations
Launching a Python IDE directly from Power BI Desktop has a few limitations:
Automatically exporting your script from your Python IDE into Power BI Desktop is not supported.
Next steps
Take a look at the following additional information about Python in Power BI.
Running Python Scripts in Power BI Desktop
Create Power BI visuals using Python
Create Power BI visuals using Python
1/14/2019 • 5 minutes to read • Edit Online
With Power BI Desktop, you can use Python to visualize your data.
Install Python
Power BI Desktop does not include, deploy, or install the Python engine. To run Python scripts in Power BI
Desktop, you must separately install Python on your local computer. You can download and install Python for
free from many locations, including the Official Python download page, and the Anaconda. The current release of
Python scripting in Power BI Desktop supports Unicode characters as well as spaces (empty characters) in the
installation path.
Once you specify your Python installation, you’re ready to begin creating Python visuals.
Create Python visuals in Power BI Desktop
1. Select the Python Visual icon in the Visualization pane, as shown in the following image, to add a
Python visual.
When you add a Python visual to a report, Power BI Desktop does the following:
A placeholder Python visual image appears on the report canvas.
The Python script editor appears along the bottom of the center pane.
2. Next, add fields you want to consume in your Python script to the Values section in the Fields well, just as
you would with any other Power BI Desktop visual.
Only fields that have been added to the Fields well are available to your Python script. You can add new
fields or remove unneeded fields from the Fields well while working on your Python script in the Power BI
Desktop Python script editor. Power BI Desktop automatically detects which fields you have added or
removed.
NOTE
The default aggregation type for Python visuals is do not summarize.
3. Now you can use the data you selected to create a plot.
As you select fields, the Python script editor generates supporting Python script binding code based on
your selections in the gray section along the top of the editor pane. As you select or remove additional
fields, supporting code in the Python script editor is automatically generated or removed accordingly.
In the example shown in the following image, three fields were selected: hp, gear, and drat. As a result of
those selections, the Python script editor generated the following binding code:
A dataframe called dataset was created
That dataframe is comprised of the different fields selected by the user
The default aggregation is do not summarize
Similar to table visuals, fields are grouped and duplicate rows only appear once
TIP
In certain cases, you may not want automatic grouping to occur, or you may want all rows to appear, including
duplicates. In that case, you can add an index field to your dataset that causes all rows to be considered unique and
which prevents grouping.
The generated dataframe is called a dataset, and you can access selected columns by their respective
names. For example, access the gear field by writing dataset["gear"] in your Python script.
4. With the dataframe automatically generated by the fields you selected, you’re ready to write a Python script
that results in plotting to the Python default device. When the script is complete, select Run from the
Python script editor title bar (Run is on the right side of the title bar).
When you select Run, Power BI Desktop identifies the plot and presents it on the canvas. Since the
process is executed on your local Python installation, make sure the required packages are installed.
Power BI Desktop replots the visual when any of the following events occur:
When you select Run from the Python script editor title bar
Whenever a data change occurs, due to data refresh, filtering, or highlighting
The following image shows an example of the correlation plot code, and it plots the correlations between
attributes of different types of cars.
5. To get a larger view of the visualizations, you can minimize the Python script editor. And, of course, like
other visuals in Power BI Desktop, you can cross filter the correlation plot by selecting only sport cars in
the donut visual (the round visual on the right, in the above example image).
6. You can also modify the Python script to customize the visual, and take advantage of the power of Python
by adding parameters to the plotting command.
The original plotting command was the following:
plt.matshow (dataset.corr('pearson'))
With a few changes in the Python script, the command is now the following:
plt.matshow (dataset.corr('kendall'))
As a result, the Python visual now plots using Kendall Tau correlation coefficient, as shown in the following
image.
When executing a Python script that results in an error, the Python visual is not plotted and an error
message is displayed on the canvas. For details on the error, select See details from the Python visual error
on the canvas.
Python scripts security: Python visuals are created from Python scripts, which could contain code
with security or privacy risks. When attempting to view or interact with an Python visual for the first
time, a user is presented with a security warning message. Only enable Python visuals if you trust the
author and source, or after you review and understand the Python script.
Known limitations
Python visuals in Power BI Desktop has a few limitations:
Data size limitations – data used by the Python visual for plotting is limited to 150,000 rows. If more than
150,000 rows are selected, only the top 150,000 rows are used and a message is displayed on the image.
Calculation time limitation – if a Python visual calculation exceeds five minutes the execution times out,
resulting in an error.
Relationships – as with other Power BI Desktop visuals, if data fields from different tables with no defined
relationship between them are selected, an error occurs.
Python visuals are refreshed upon data updates, filtering, and highlighting. However, the image itself is not
interactive and cannot be the source of cross-filtering.
Python visuals respond to highlighting other visuals, but you cannot click on elements in the Python visual in
order to cross filter other elements.
Only plots that are plotted to the Python default display device are displayed correctly on the canvas. Avoid
explicitly using a different Python display device.
Next steps
Take a look at the following additional information about Python in Power BI.
Running Python Scripts in Power BI Desktop
Use an external Python IDE with Power BI
Run R scripts in Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
You can run R scripts directly in Power BI Desktop, and import the resulting datasets into a Power BI Desktop
data model.
Install R
To run R scripts in Power BI Desktop, you need to install R on your local machine. You can download and install R
for free from many locations, including the Revolution Open download page, and the CRAN Repository. The
current release of R scripting in Power BI Desktop supports Unicode characters as well as spaces (empty
characters) in the installation path.
Run R scripts
With just a few steps in Power BI Desktop, you can run R scripts and create a data model, from which you can
create reports, and share them on the Power BI service. R scripting in Power BI Desktop now supports number
formats that contain decimals (.) and commas (,).
Prepare an R script
To run an R script in Power BI Desktop, create the script in your local R development environment, and make sure
it runs successfully.
To run the script in Power BI Desktop, make sure the script runs successfully in a new and unmodified workspace.
This means that all packages and dependencies must be explicitly loaded and run. You can use source() to run
dependent scripts.
When preparing and running an R script in Power BI Desktop, there are a few limitations:
Only data frames are imported, so make sure the data you want to import to Power BI is represented in a data
frame
Columns that are typed as Complex and Vector are not imported, and are replaced with error values in the
created table
Values that are N/A are translated to NULL values in Power BI Desktop
Any R script that runs longer than 30 minutes times out
Interactive calls in the R script, such as waiting for user input, halts the script’s execution
When setting the working directory within the R script, you must define a full path to the working directory,
rather than a relative path
Run your R script and import data
1. In Power BI Desktop, the R Script data connector is found in Get Data. To run your R Script, select Get
Data > More..., then select Other > R script as shown in the following image:
2. If R is installed on your local machine, the latest installed version is selected as your R engine. Simply copy
your script into the script window and select OK.
3. If R is not installed, is not identified, or if there are multiple installations on your local machine, expand R
Installation Settings to display installation options, or to select which installation you want to run the R
script.
If R is installed and is not identified, you can explicitly provide its location in the text box provided when you
expand R Installation Settings. In the above image, the path C:\Program Files\R\R -3.2.0 is explicitly
provided in the text box.
R installation settings are centrally located in the R Scripting section of the Options dialog. To specify your
R installation settings, select File > Options and settings and then Options > R scripting. If multiple
installations of R are available, a drop-down menu appears that allows you to select which installation to
use.
4. Select OK to run the R Script. When the script runs successfully, you can then choose the resulting data
frames to add to the Power BI model.
Refresh
You can refresh an R script in Power BI Desktop. When you refresh an R script, Power BI Desktop runs the R script
again in the Power BI Desktop environment.
Next steps
Take a look at the following additional information about R in Power BI.
Create R Visuals in Power BI Desktop
Use an external R IDE with Power BI
Using R in Query Editor
2/13/2019 • 4 minutes to read • Edit Online
You can use R, a programming language widely used by statisticians, data scientists, and data analysts, in the
Power BI Desktop Query Editor. This integration of R into Query Editor lets you perform data cleansing using R,
and perform advanced data shaping and analytics in datasets, including completion of missing data, predictions,
and clustering, just to name a few. R is a powerful language, and can be used in Query Editor to prepare your data
model and create reports.
Installing R
To use R in Power BI Desktop's Query Editor, you need to install R on your local machine. You can download and
install R for free from many locations, including the Revolution Open download page, and the CRAN Repository.
2. Select the file and select Open, and the CSV is displayed in the CSV file dialog.
3. Once the data is loaded, you'll see it in the Fields pane in Power BI Desktop.
4. Open Query Editor by selecting Edit Queries from the Home tab in Power BI Desktop.
5. In the Transform tab, select Run R Script and the Run R Script editor appears (shown in the next step).
Notice that rows 15 and 20 suffer from missing data, as do other rows you can't see in the following image.
The steps below show how R can (and will) complete those rows for you.
library(mice)
tempData <- mice(dataset,m=1,maxit=50,meth='pmm',seed=100)
completedData <- complete(tempData,1)
output <- dataset
output$completedValues <- completedData$"SMI missing values"
NOTE
You'll need to have the mice library installed in your R environment for the previous script code to work properly. To
install mice, run the following command in your R installation: | > install.packages('mice')
When put into the Run R Script dialog, the code looks like the following:
7. After selecting OK, Query Editor displays a warning about data privacy.
8. For the R scripts to work properly in the Power BI service, all data sources need to be set to public. For more
information about privacy settings and their implications, see Privacy Levels.
Notice a new column in the Fields pane called completedValues. Notice there are a few missing data
elements, such as on row 15 and 18. Take a look at how R handles that in the next section.
With just five lines of R script, Query Editor filled in the missing values with a predictive model.
Creating visuals from R script data
Now we can create a visual to see how the R script code using the mice library completed the missing values, as
shown in the following image:
Once that visual is complete, and any other visuals you might want to create using Power BI Desktop, you can
save the Power BI Desktop file (which saves as a .pbix file) and then use the data model, including the R scripts
that are part of it, in the Power BI service.
NOTE
Want to see a completed .pbix file with these steps completed? You're in luck - you can download the completed Power BI
Desktop file used in these examples right here.
Once you've uploaded the .pbix file to the Power BI service, a couple more steps are necessary to enable data
refresh (in the service) and to enable visuals to be updated in the service (the data needs access to R for visuals to
be updated). The additional steps are the following:
Enable scheduled refresh for the dataset - to enable scheduled refresh for the workbook that contains your
dataset with R scripts, see Configuring scheduled refresh, which also includes information about Personal
Gateway.
Install the Personal Gateway - you need a Personal Gateway installed on the machine where the file is
located, and where R is installed; the Power BI service must access that workbook and re-render any updated
visuals. You can get more information on how to install and configure Personal Gateway.
Limitations
There are some limitations to queries that include R scripts created in Query Editor:
All R data source settings must be set to Public, and all other steps in a query created in Query Editor must
also be public. To get to data source settings, in Power BI Desktop select File > Options and settings >
Data source settings.
From the Data Source Settings dialog, select the data source(s) and then select Edit Permissions... and
ensure that the Privacy Level is set to Public.
To enable scheduled refresh of your R visuals or dataset, you need to enable Scheduled refresh and have a
Personal Gateway installed on the computer that houses the workbook and the R installation. For more
information on both, see the previous section in this article, which provides links to learn more about each.
There are all sorts of things you can do with R and custom queries, so explore and shape your data just the way
you want it to appear.
Use an external R IDE with Power BI
1/14/2019 • 4 minutes to read • Edit Online
With Power BI Desktop, you can use your external R IDE (Integrated Development Environment) to create and
refine R scripts, then use those scripts in Power BI.
If you have multiple R IDEs installed, you can specify which will be launched by selecting it from the Detected R
IDEs drop-down in the Options dialog.
By default, Power BI Desktop will launch R Studio as the external R IDE if it's installed on your local computer; if
R Studio is not installed and you have Visual Studio 2015 with R Tools for Visual Studio, that will be launched
instead. If neither of those R IDEs is installed, the application associated with .R files is launched.
And if no .R file association exists, it's possible to specify a path to a custom IDE in the Browse to your preferred R
IDE section of the Options dialog. You can also launch a different R IDE by selecting the Settings gear icon
beside the Launch R IDE arrow icon, in Power BI Desktop.
4. Now you can select the fields you want to use in your R script. When you select a field, the R script editor
field automatically creates script code based on the field or fields you select. You can either create (or paste)
your R script directly in the R script editor pane, or you can leave it empty.
NOTE
The default aggregation type for R visuals is do not summarize.
5. You can now launch your R IDE directly from Power BI Desktop. Select the Launch R IDE button, found
on the right side of the R script editor title bar, as shown below.
6. Your specified R IDE is launched by Power BI Desktop, as shown in the following image (in this image,
RStudio is the default R IDE ).
NOTE
Power BI Desktop adds the first three lines of the script so it can import your data from Power BI Desktop once
you run the script.
7. Any script you created in the R script editor pane of Power BI Desktop appears starting in line 4 in your
R IDE. At this point, you can create your R script in the R IDE. Once your R script is complete in your R IDE,
you need to copy and paste it back into the R script editor pane in Power BI Desktop, excluding the first
three lines of the script that Power BI Desktop automatically generated. Do not copy the first three lines of
script back into Power BI Desktop, those lines were only used to import your data to your R IDE from
Power BI Desktop.
Known limitations
Launching an R IDE directly from Power BI Desktop has a few limitations:
Automatically exporting your script from your R IDE into Power BI Desktop is not supported.
R Client editor (RGui.exe) is not supported, because the editor itself does not support opening files.
Next steps
Take a look at the following additional information about R in Power BI.
Running R Scripts in Power BI Desktop
Create Power BI visuals using R
R packages in the Power BI service
1/14/2019 • 15 minutes to read • Edit Online
You can use the powerful R programming language to create visuals in the Power BI service. Many R packages are
supported in the Power BI service (and more are being supported all the time), and some packages are not.
The following sections provide an alphabetical table of which R packages are supported in Power BI, and which
are not. For more information about R in Power BI, see the R visuals article.
abc.data 1 https://cran.r-
project.org/web/packages/abc.data/inde
x.html
PACKAGE VERSION LINK
andrews 1 https://cran.r-
project.org/web/packages/andrews/inde
x.html
base 3.4.1 NA
base64 2 https://cran.r-
project.org/web/packages/base64/index
.html
bayesSurv 3 https://cran.r-
project.org/web/packages/bayesSurv/in
dex.html
BayesValidate 0 https://cran.r-
project.org/web/packages/BayesValidate
/index.html
bbemkr 2 https://cran.r-
project.org/web/packages/bbemkr/inde
x.html
PACKAGE VERSION LINK
BH 1.62.0-1 https://cran.r-
project.org/web/packages/BH/index.htm
l
cairoDevice NA CRAN
cluster CRAN NA
compiler 3.4.1 NA
curl 3 https://cran.r-
project.org/web/packages/curl/index.ht
ml
datasets 3.4.1 NA
PACKAGE VERSION LINK
digest NA CRAN
DT 0.2 https://cran.r-
project.org/web/packages/DT/index.htm
l
fields 9 https://cran.r-
project.org/web/packages/fields/index.h
tml
foreach 1.4.4 NA
ggplot2 CRAN NA
graphics 3.4.1 NA
graphics CRAN NA
grDevices 3.4.1 NA
grDevices CRAN NA
grid 3.4.1 NA
hbsae 1 https://cran.r-
project.org/web/packages/hbsae/index.
html
HH 3.1-34 https://cran.r-
project.org/web/packages/HH/index.ht
ml
HI 0.4 https://cran.r-
project.org/web/packages/HI/index.html
igraph CRAN NA
jsonlite CRAN NA
leaps 3 https://cran.r-
project.org/web/packages/leaps/index.h
tml
lmm 1 https://cran.r-
project.org/web/packages/lmm/index.ht
ml
matrixcalc coda NA
methods 3.4.1 NA
methods CRAN NA
mi 1 https://cran.r-
project.org/web/packages/mi/index.html
MicrosoftR 3.4.1.0081 NA
NbClust 3 https://cran.r-
project.org/web/packages/NbClust/inde
x.html
parallel utils NA
parallel 3.4.1 NA
parallel CRAN NA
R(>= 3.0.0)
R6 2.2.0 https://cran.r-
project.org/web/packages/R6/index.htm
l
R6 2.2.2 https://cran.r-
project.org/web/packages/R6/index.htm
l
Rcpp CRAN NA
RevoIOQ 8.0.8 NA
RevoMods 11.0.0 NA
RevoUtils 10.0.6 NA
RevoUtilsMath 10.0.1 NA
PACKAGE VERSION LINK
RSQLite 2 https://cran.r-
project.org/web/packages/RSQLite/inde
x.html
SampleSizeProportions 1 https://cran.r-
project.org/web/packages/SampleSizePr
oportions/index.html
PACKAGE VERSION LINK
scales CRAN NA
sf 0.5-5 https://cran.r-
project.org/web/packages/sf/index.html
PACKAGE VERSION LINK
showtextdb 1 https://cran.r-
project.org/web/packages/showtextdb/i
ndex.html
sm 2.2-5.4 https://cran.r-
project.org/web/packages/sm/index.htm
l
sp 1.2-5 https://cran.r-
project.org/web/packages/sp/index.html
splines 3.4.1 NA
stats 3.4.1 NA
stats4 3.4.1 NA
stopwords CRAN NA
stringi CRAN NA
stringr CRAN NA
tcltk 3.4.1 NA
tibble CRAN NA
tm 0.7-1 https://cran.r-
project.org/web/packages/tm/index.htm
l
tools 3.4.1 NA
translations 3.4.1 NA
utils NA NA
utils 3.4.1 NA
VIF 1 https://cran.r-
project.org/web/packages/VIF/index.ht
ml
Next steps
For more information about R in Power BI, take a look at the following articles:
Creating R visuals in the Power BI service
Create Power BI visuals using R
Running R scripts in Power BI Desktop
Using R in Query Editor
Enter data directly into Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
With Power BI Desktop, you can enter data directly and use that data in your reports and visualizations. For
example, you can copy portions of a workbook or web page, then paste it into Power BI Desktop.
To enter data directly, select Enter Data from the Home ribbon.
Power BI Desktop may attempt to make minor transformations on the data, if appropriate, just like it does when
you load data from any source. For example, in the following case it promoted the first row of data to headers.
If you want to shape the data you entered (or pasted), you can select the Edit button to bring up Query Editor,
where you can shape and transform the data before bringing it into Power BI Desktop. Or you can select the
Load button to import the data as it appears.
When you select Load, Power BI Desktop creates a new table from your data, and makes it available in the
Fields pane. In the following image, Power BI Desktop shows my new table, called Table1 by default, and the
two fields within that table that were created.
And that’s it – it’s that easy to enter data into Power BI Desktop.
You’re now ready to use the data in Power BI Desktop to create visuals, reports, or interact with any other data
you might want to connect with and import, such as Excel workbooks, databases, or any other data source.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Connect to CSV files in Power BI Desktop
Connect to Excel in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Connecting to an Excel workbook from Power BI Desktop is straightforward, and this article walks you through
the steps.
In Power BI Desktop, select Get Data > Excel from the Home ribbon.
You can select the Load button to import the data, or if you want to edit the data using Query Editor before
bringing it into Power BI Desktop, select the Edit button.
When you load the data, Power BI Desktop displays the Load window and displays the activity associated with
loading the data.
When complete, Power BI Desktop displays the tables and fields it imported from your Excel workbook in the
Fields pane, on the right side of the Desktop.
And that’s it!
You’re now ready to use the imported data from your Excel workbook in Power BI Desktop to create visuals,
reports, or interact with any other data you might want to connect with and import, such as other Excel
workbooks, databases, or any other data source.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to CSV files in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to SSAS Multidimensional Models in Power
BI Desktop
2/13/2019 • 5 minutes to read • Edit Online
With Power BI Desktop, you can access SSAS Multidimensional models, commonly referred to as SSAS MD.
To connect to an SSAS MD database, select Get Data > Database > SQL Server Analysis Services Database
as shown in the following image:
SSAS Multidimensional models in Live connection mode are supported in both the Power BI service and in
Power BI Desktop. You can also publish and upload reports that use SSAS Multidimensional models in Live
mode to the Power BI service.
Cube Model
Measure Measure
Perspective Perspective
KPI KPI
Troubleshooting
The following list describes all known issues when connecting to SQL Server Analysis Services (SSAS ).
Error : Couldn't load model schema - This error usually occurs when the user connecting to Analysis
Services does not have access to database/cube.
Connect to CSV files in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Connecting to a comma-separated value (CSV ) file from Power BI Desktop is a lot like connecting to an Excel
workbook. Both are easy, and this article steps you through how to connect to any CSV file to which you have
access.
To start with, from Power BI Desktop select Get Data > CSV from the Home ribbon.
Select your CSV file from the Open dialog that appears.
When you select Open, Power BI Desktop accesses the file and determines certain file attributes, such as the file
origin, delimiter type, and how many rows should be used to detect the data types in the file.
These file attributes and options are shown in the drop-down selections at the top of the CSV import dialog
window, shown below. You can change any of these detected settings manually, by choosing another option from
any of the drop-down selectors.
When you’re satisfied with the selections, you can select Load to import the file into Power BI Desktop, or you can
select Edit to open Query Editor and further shape or transform the data before importing it.
Once you load the data into Power BI Desktop, you see the table and its columns (which are presented as Fields in
Power BI Desktop) in the Fields pane, along the right of the Report view in Power BI Desktop.
That’s all you have to do – the data from your CSV file is now in Power BI Desktop.
You can use that data in Power BI Desktop to create visuals, reports, or interact with any other data you might
want to connect with and import, such as Excel workbooks, databases, or any other data source.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to a Google BigQuery database in Power BI
Desktop
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to a Google BigQuery database and use the underlying data just like any
other data source in Power BI Desktop.
In the Google BigQuery window that appears, sign in to your Google BigQuery account and select Connect.
When you're signed in, you see the following window indicated you've been authenticated.
Once you successfully connect, a Navigator window appears and displays the data available on the server, from
which you can select one or multiple elements to import and use in Power BI Desktop.
Considerations and Limitations
There are a few limits and considerations to keep in mind with the Google BigQuery connector:
The Google BigQuery connector is available in Power BI Desktop and in the Power BI service. In the Power BI
service, the connector can be accessed using the Cloud-to-Cloud connection from Power BI to Google
BigQuery.
You can use Power BI with the Google BigQuery Billing Project. By default, Power BI uses the first project from
the list returned for the user. To customize the behavior of the Billing Project when using it with Power BI, take the
following steps:
Specifying the following option in the underlying M in the Source step, which can be customized by using
Power Query Editor in Power BI Desktop:
Source = GoogleBigQuery.Database([BillingProject="Include-Billing-Project-Id-Here"])
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to an Impala database in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to an Impala database and use the underlying data just like you can with
any other data source in Power BI Desktop.
3. In the Impala window that appears, type or paste the name of your Impala server into the box. Then select
OK. You can Import data directly into Power BI or you can use DirectQuery. Learn more about using
DirectQuery.
4. When prompted, enter your credentials or connect anonymously. The Impala connector supports
Anonymous, Basic (user name + password), and Windows authentication.
NOTE
After you put in your user name and password for a particular Impala server, Power BI Desktop uses those same
credentials in subsequent connection attempts. You can modify those credentials by going to File > Options and
settings > Data source settings.
5. After you connect, a Navigator window appears and displays the data that's available on the server.
Choose elements from this data to import and use in Power BI Desktop.
Considerations and limitations
There are a few limitations and considerations to keep in mind with the Impala connector:
The Impala connector is supported on the on-premises data gateway, using any of the three supported
authentication mechanisms.
Next steps
There are many different data sources that you can connect to by using Power BI Desktop. For more information
about data sources, check out the following resources:
What is Power BI Desktop?
Data sources in Power BI Desktop
Shape and combine data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to OData feeds in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to an OData feed and use the underlying data just like any other data
source in Power BI Desktop.
To connect to an OData feed, select Get Data > OData Feed from the Home ribbon in Power BI Desktop.
In the OData Feed window that appears, type or paste your OData feed URL into the box, and select OK.
Power BI Desktop connects to the OData feed, and displays the available tables and other data elements in the
Navigator window. When you select an element, the right pane of the Navigator window displays a preview of
the data. You can select as many tables as you want to import. The Navigator window shows a preview of the
currently selected table.
You can choose the Edit button, which launches Query Editor, where you can shape and transform the data from
the OData feed before importing it into Power BI Desktop. Or you can select the Load button, and import all of the
data elements you selected in the left pane.
When we select Load, Power BI Desktop imports the selected items, and displays a Load window of the import
progress.
Once complete, Power BI Desktop makes the selected tables and other data elements available in the Fields pane,
found on the right side of the Reports view in Power BI Desktop.
And that’s it!
You’re now ready to use the imported data from the OData feed in Power BI Desktop to create visuals, reports, or
interact with any other data you might want to connect with and import, such as other Excel workbooks, databases,
or any other data source.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to Amazon Redshift in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to an Amazon Redshift database and use the underlying data just like
any other data source in Power BI Desktop.
In the Amazon Redshift window that appears, type or paste the name of your Amazon Redshift server and
database into the box. As part of the Server field, users can specify a port in the following format: ServerURL:Port
When prompted, put in your username and password. You should use the server name that precisely matches the
SSL certificate to avoid errors.
Once you successfully connect, a Navigator window appears and displays the data available on the server, from
which you can select one or multiple elements to import and use in Power BI Desktop.
Once you make selections from the Navigator window, you can either Load or Edit the data.
If you choose to Load data, you'll be prompted to use either Import or DirectQuery mode to load the data. For
more information, check out this article that explains DirectQuery.
If you select to Edit the data, Query Editor appears where you can apply all sorts of transformations and filters
to the data, many of which are applied to the underlying Amazon Redshift database itself (if supported).
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to a web page from Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
You can connect to a web page, and import its data into Power BI Desktop, to use in your visuals and in your data
models.
In Power BI Desktop, select Get Data > Web from the Home ribbon.
A dialog appears, asking for the URL of the web page from which you want to import data.
Once you’ve typed in (or pasted) the URL, select OK. Power BI Desktop connects to that page, then presents the
page’s available data in the Navigator window. When you select one of the available data elements, such as a
table of the entire page, the Navigator window displays a preview of that data on the right side of the window.
You can choose the Edit button, which launches Query Editor, where you can shape and transform the data on
that Web page before importing it into Power BI Desktop. Or you can select the Load button, and import all of the
data elements you selected in the left pane.
When we select Load, Power BI Desktop imports the selected items, and makes them available in the Fields pane,
found on the right side of the Reports view in Power BI Desktop.
That’s all there is to connecting to a web page and bringing its data into Power BI Desktop.
From there, you can drag those fields onto the Report canvas and create all the visualizations you want. You can
also use the data from that Web page just like you would any other data – you can shape it, you can create
relationships between it and other data sources in your model, and otherwise do what you’d like to create the
Power BI report you want.
To see connecting to a Web page in more depth and action, take a look at the Power BI Desktop Getting Started
Guide.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Connect to CSV files in Power BI Desktop
Enter data directly into Power BI Desktop
Connect to Snowflake in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can connect to a Snowflake computing warehouse and use the underlying data just like
any other data source in Power BI Desktop.
NOTE
You also must install the Snowflake ODBC driver on computers that use the Snowflake connector, using the architecture
that matches the installation of Power BI Desktop, either 32-bit or 64-bit. Just follow the following link and download the
appropriate Snowflake ODBC driver.
In the Snowflake window that appears, type or paste the name of your Snowflake computing warehouse into the
box and select OK. Note that you can choose to Import data directly into Power BI, or you can use DirectQuery.
You can learn more about using DirectQuery.
When prompted, put in your username and password.
NOTE
Once you put in your username and password for a particular Snowflake server, Power BI Desktop uses those same
credentials in subsequent connection attempts. You can modify those credentials by going to File > Options and settings >
Data source settings.
Once you successfully connect, a Navigator window appears and displays the data available on the server, from
which you can select one or multiple elements to import and use in Power BI Desktop.
You can Load the selected table, which brings the entire table into Power BI Desktop, or you can Edit the query,
which opens Query Editor so you can filter and refine the set of data you want to use, and then load that refined
set of data into Power BI Desktop.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Analyze Azure cost and usage data in Power BI
desktop
3/4/2019 • 11 minutes to read • Edit Online
Power BI desktop can connect to Azure and get in-depth data about your organization's Azure service usage. With
it, you can create custom reports and measures to better understand and analyze your Azure spend.
Power BI currently supports connecting to Enterprise Agreement and Customer Agreement billing accounts.
Enterprise Agreement users should connect with the Azure Consumption Insights connector. Customer agreement
account users should connect with the Azure Cost Management connector.
You can get your enrollment number from the Azure Enterprise Portal, in the location shown in the
following image:
This version of the connector only supports enterprise enrollments from https://ea.azure.com. China
enrollments are not currently supported.
Next, provide your Access key to connect.
Your Access key for enrollment can be found on the Azure Enterprise Portal.
Once you provide your Access key and select Connect, a Navigator window appears and shows the nine tables
available to you:
Budgets: Provides budget details to view actual costs or usage against existing budget targets.
MarketPlace: Provides usage-based Azure Marketplace charges.
PriceSheets: Provides applicable rates by meter for an enrollment.
RICharges: Provides charges associated to your Reserved Instances over the last 24 months.
RIRecommendations_Single: Provides Reserved Instance purchase recommendations based on your usage
trends on a single subscription over the last 7, 30 or 60 days.
RIRecommendations_Shared: Provides Reserved Instance purchase recommendations based on your usage
trends across all your subscriptions over the last 7, 30 or 60 days.
RIUsage: Provides consumption details for your existing Reserved Instances over the last month.
Summaries: Provides a monthly summary across balances, new purchases, Azure Marketplace service charges,
adjustments, and overage charges.
UsageDetails: Provides a breakdown of consumed quantities and estimated charges for an enrollment.
You can select a checkbox beside any table to see a preview. You can select one or more tables by checking the box
beside their name, then select Load.
NOTE
The Summary and PriceSheet tables are only available for the enrollment-level API Key. Also, the data in these tables has, by
default, the current month's data for Usage and PriceSheet. The Summary and MarketPlace tables are not constrained to the
current month.
When you select Load the data is loaded into Power BI Desktop.
Once the data you selected is loaded, the tables and fields you selected can be seen in the Fields pane.
When working with reports and creating queries, use the following:
To define the number of months starting from the current date, use numberOfMonth
Use a value between one and 36 to represent the number of months, from the current date, you want to
import. We recommend getting no more than 12 months of data to avoid thresholds with import
constraints and the volume of data allowed for queries in Power BI.
To define a period of months in a historical time window, use startBillingDataWindow and
endBillingDataWindow
Do not use numberOfMonth together with startBillingDataWindow or endBillingDataWindow
Of course, you'll need to replace the value of enrollmentNumber with your own enrollment number, which you can
get from the Azure Enterprise Portal. The numberOfMonth parameter is how many months of data you want
going back, from the current data. Use zero (0) for the current month.
Once you select Done in the Advanced Editor window, the preview refreshes and you'll see data from the
specified month range in the table. Select Close & Apply and return.
Step 3: Move measures and custom columns to the new report
Next you'll need to move any custom columns or measures you created into the new details table. Here are the
steps.
1. Open Notepad (or another text editor).
2. Select the measure you want to move, copy the text from the Formula field, and place it in Notepad.
AdditionalInfold Yes
Day Day No
Instance ID Yes
Location Yes
Meter ID Yes
Month Month No
ResourceGroupId Yes
ServiceInfo1Id Yes
ServiceInfo2Id Yes
StoreServiceIdentifierId Yes
TagsId Yes
Year Year No
You can get your billing profile ID from the Azure portal. Navigate to Cost Management + Billing, select your
billing account, and then select Biling profiles in the sidebar. Select your billing profile and select Properties in
the sidebar. Copy your billing profile ID.
You'll be prompted to log in with your Azure email and password. Once you authenticate, you'll be shown a
Navigator window with the twelve tables available to you:
Billing events: Provides event log of new invoices, credit purchases, and more.
Budgets: Provides budget details to view actual costs or usage against existing budget targets.
Charges: Provides a month-level summary of Azure usage, market place charges, and charges billed separately.
Credit lots: Provides Azure credit lot purchase details for the provided billing profile.
Credit summary: Provides credit summary for provided billing profile.
Marketplace: Provides usage-based Azure Marketplace charges.
Pricesheets: Provides applicable rates by meter for the provided billing profile.
RI charges: Provides charges associated to your Reserved Instances over the last 24 months.
RI recommendations (single): Provides Reserved Instance purchase recommendations based on your usage
trends on a single subscription over the last 7, 30 or 60 days.
RI recommendations (shared): Provides Reserved Instance purchase recommendations based on your usage
trends across all your subscriptions over the last 7, 30 or 60 days.
RI usage: Provides consumption details for your existing Reserved Instances over the last month.
Usage details: Provides a breakdown of consumed quantities and estimated charges for the given billing
profile id.
You can select a checkbox next to any table to see a preview. You can select one or more tables by checking the box
beside their name and selecting Load.
When you select Load the data is loaded into Power BI Desktop.
Once the data you selected is loaded, the tables and fields you selected can be seen in the Fields pane.
Writing custom queries
If you want to customize the number of months, change the api version, or do more advanced logic on the
returned data, you can create a custom M query.
Go to the Home ribbon of Power BI Desktop, select the dropdown in Get Data and then select Blank Query.
You can also do this in Query Editor by right-clicking in the Queries pane along the left, and selecting New
Query > Blank Menu from the menu that appears.
In the Formula bar, type the following, replacing billingProfileId with your actual ID, and "charges" with any
valid table name (list above).
let
Source = AzureCostManagement.Tables(billingProfileId, [ numberOfMonths = 3 ]),
charges = Source{[Key="charges"]}[Data]
in
charges
In addition to modifying the numberOfMonths to any value between 1 and 36, you can also provide:
apiVersion to customize which version of the API the query will call.
lookbackWindow , for RI recommendations (single or shared), to modify the window in which to generate
recommendations from (valid options: 7, 30, or 60 days)
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to Excel workbooks in Power BI Desktop
Enter data directly into Power BI Desktop
Use SAP HANA in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
With Power BI Desktop, you can now access SAP HANA databases. To use SAP HANA, the SAP HANA ODBC
driver must be installed on the local client computer in order for the Power BI Desktop SAP HANA data
connection to work properly. You can download the SAP HANA ODBC driver from the SAP Software Download
Center. From there, search for the SAP HANA CLIENT for Windows computers. Since the SAP Software
Download Center changes its structure frequently, more specific guidance for navigating that site is not available.
To connect to a SAP HANA database, select Get Data > Database > SAP HANA Database as shown in the
following image:
When connecting to a SAP HANA database, specify the server name and the port in the format server:port - the
following image shows an example with a server named ServerXYZ and port 30015.
In this release SAP HANA in DirectQuery mode is supported in Power BI Desktop and the Power BI service, and
you can publish and upload reports that use SAP HANA in DirectQuery mode to the Power BI service. You can
also publish and upload reports to the Power BI Service when not using SAP HANA in DirectQuery mode.
Next steps
For more information about DirectQuery, check out the following resources:
DirectQuery and SAP HANA
DirectQuery in Power BI
Data Sources supported by DirectQuery
Using Analysis Services Tabular data in Power BI
Desktop
2/13/2019 • 5 minutes to read • Edit Online
With Power BI Desktop, there are two ways you can connect to and get data from your SQL Server Analysis
Services Tabular models: Explore by using a live connection or Select items and import into Power BI Desktop.
Let’s take a closer look.
Explore by using a live connection – When using a live connection, items in your Tabular model or perspective,
like tables, columns, and measures appear in your Power BI Desktop Fields list. You can use Power BI Desktop’s
advanced visualization and report tools to explore your Tabular model in new, highly interactive ways.
When connecting live, no data from the Tabular model is imported into Power BI Desktop. Each time you interact
with a visualization, Power BI Desktop queries the Tabular model and calculates the results you see. You’re always
looking at the latest data that is available in the Tabular model, either from the last processing time, or from Direct
Query tables available in the Tabular Model.
Keep in-mind, that Tabular models are highly secure. Items that appear in Power BI Desktop depend on your
permissions for the Tabular model you’re connected to.
When you’ve created dynamic reports in Power BI Desktop, you can share them by publishing to your Power BI
site. When you publish a Power BI Desktop file with a live connection to a Tabular model to your Power BI site, an
On-premises data gateway must be installed and configured by an administrator. To learn more, see On-premises
data gateway.
Select items and import into Power BI Desktop – When you connect with this option, you can select items like
tables, columns, and measures in your Tabular model or perspective and load them into a Power BI Desktop model.
You can use Power BI Desktop’s advanced Query Editor to further shape what you want. You can use Power BI
Desktop’s modeling features to further model the data. No live connection between Power BI Desktop and the
Tabular model is maintained. You can then explore your Power BI Desktop model offline or publish to your Power
BI site.
Troubleshooting
The following list describes all known issues when connecting to SQL Server Analysis Services (SSAS ) or Azure
Analysis Services.
Error : Couldn't load model schema - This error usually occurs when the user connecting to Analysis
Services does not have access to database/model.
Use DirectQuery in Power BI Desktop
3/6/2019 • 7 minutes to read • Edit Online
With Power BI Desktop, when you connect to your data source, it is always possible to import a copy of the
data into the Power BI Desktop. For some data sources, an alternative approach is available: connect directly to
the data source using DirectQuery.
The differences between selecting Import and DirectQuery are the following:
Import – the selected tables and columns are imported into Power BI Desktop. As you create or interact with a
visualization, Power BI Desktop uses the imported data. You must refresh the data, which imports the full data
set again, to see any changes that occurred to the underlying data since the initial import or the most recent
refresh.
DirectQuery – no data is imported or copied into Power BI Desktop. For relational sources, the selected tables
and columns appear in the Fields list. For multi-dimensional sources like SAP Business Warehouse, the
dimensions and measures of the selected cube appear in the Fields list. As you create or interact with a
visualization, Power BI Desktop queries the underlying data source, which means you’re always viewing current
data.
Many data modeling and data transformations are available when using DirectQuery, though with some
limitations. When creating or interacting with a visualization, the underlying source must be queried and the time
necessary to refresh the visualization is dependent on the performance of the underlying data source. When the
data necessary to service the request has recently been requested, Power BI Desktop uses recent data to reduce
the time required to display the visualization. Selecting Refresh from the Home ribbon will ensure all
visualizations are refreshed with current data.
The Power BI and DirectQuery article describes DirectQuery in detail. Also, see the following sections for more
information about benefits, limitations, and important considerations when using DirectQuery.
Limitations of DirectQuery
There are currently a few limitations to using DirectQuery:
All tables must come from a single database, unless using composite models
If the Query Editor query is overly complex, an error will occur. To remedy the error you must either delete
the problematic step in Query Editor, or Import the data instead of using DirectQuery. For multi-
dimensional sources like SAP Business Warehouse, there is no Query Editor
Relationship filtering is limited to a single direction, rather than both directions (though it is possible to enable
cross filtering in both directions for DirectQuery as a Preview feature). For multi-dimensional sources like
SAP Business Warehouse, there are no relationships defined in the model
Time intelligence capabilities are not available in DirectQuery. For example, special treatment of date
columns (year, quarter, month, day, so on) is not supported in DirectQuery mode.
By default, limitations are placed on DAX expressions allowed in measures; see the following paragraph (after
this bulleted list) for more information
There is a one-million-row limit for returning data when using DirectQuery. The limit does not affect
aggregations or calculations used to create the dataset returned using DirectQuery, only the rows returned.
For example, you can aggregate 10 million rows with your query that runs on the data source, and accurately
return the results of that aggregation to Power BI using DirectQuery as long as the data returned to Power
BI is less than 1 million rows. If more than 1 million rows would be returned from DirectQuery, Power BI
returns an error.
To ensure that queries sent to the underlying data source have acceptable performance, limitations are imposed
on measures by default. Advanced users can choose to bypass this limitation by selecting File > Options and
settings > Options and then DirectQuery, then selecting the option Allow unrestricted measures in
DirectQuery mode. When that option is selected, any DAX expression that is valid for a measure can be used.
Users must be aware, however, that some expressions that perform very well when the data is imported may
result in very slow queries to the backend source when in DirectQuery mode.
This situation can occur with a simple chart that includes a very high cardinality column, with the
aggregation option set to Don’t Summarize. The visual needs to only have columns with a cardinality
below 1 million, or must have appropriate filters applied.
Security - All users who consume a published report connect to the back-end data source using the
credentials entered after publication to the Power BI service. This is the same situation as data that is
imported: all users see the same data, irrespective of any security rules defined in the backend source.
Customers who want per-user security implemented with DirectQuery sources should use RLS. Learn
more about RLS.
Supported features - Not all features in Power BI Desktop are supported in DirectQuery mode, or
have some limitations. In addition, there are some capabilities in the Power BI service (such as Quick
Insights) that are not available for datasets using DirectQuery. As such, the limitation of such features
when using DirectQuery should be taken into consideration when determining whether to use
DirectQuery.
Until credentials are supplied, opening a published report or exploring a dataset created with a DirectQuery
connection to such data sources results in an error.
For data sources other than Azure SQL Database, Azure SQL Data Warehouse and Redshift that use
DirectQuery, an On-premises data gateway must be installed and the data source must be registered to
establish a data connection. You can learn more about On-premises data gateway.
Next steps
For more information about DirectQuery, check out the following resources:
DirectQuery in Power BI
Data sources supported by DirectQuery
DirectQuery and SAP BW
DirectQuery and SAP HANA
On-premises data gateway
DirectQuery for Oracle and Teradata Databases
1/14/2019 • 2 minutes to read • Edit Online
Please see DirectQuery Data Sources for information about data sources and DirectQuery.
DirectQuery and SAP Business Warehouse (BW)
1/14/2019 • 9 minutes to read • Edit Online
You can connect to SAP Business Warehouse (BW ) data sources directly using DirectQuery. Given the
OLAP/multidimensional nature of SAP BW, there are many important differences between DirectQuery over
SAP BW versus relational sources like SQL Server. These differences are summarized as follows:
In DirectQuery over relational sources there are a set of queries (as defined in the Get Data or Query
Editor dialog) that logically define the data that is available in the field list. This is not the case when
connecting to an OLAP source such as SAP BW. Instead, when connecting to the SAP server using Get Data,
just the Infocube or BEx Query is selected. Then all the Key Figures and dimensions of the selected
Infocube/BEx Query will be available in the field list.
Similarly, there is no Query Editor when connecting to SAP BW. The data source settings (for example,
server name) can be changed by selecting Edit Queries > Data source settings. The settings for any
Parameters can be changed by selecting Edit Queries > Manage Parameters.
Given the unique nature of OLAP sources, there are additional restrictions (for both modeling and
visualizations) that apply, in addition to the normal restrictions imposed for DirectQuery. These restrictions
are described later in this article.
In addition, it is extremely important to understand that there are many features of SAP BW that are not
supported in Power BI, and that because of the nature of the public interface to SAP BW, there are important
cases where the results seen through Power BI will not match those seen when using an SAP tool. These
limitations are described later in this article. These limitations and behavior differences should be carefully
reviewed, to ensure that the results seen through Power BI, as returned by the SAP public interface, are
interpreted correctly.
NOTE
The ability to use DirectQuery over SAP BW was in preview until the March 2018 update to Power BI Desktop. During the
preview, feedback and suggested improvements prompted a change that impacts reports that were created using that
preview version. Now that General Availability (GA) of DirectQuery over SAP BW has released, you must discard any
existing (preview-based) reports using DirectQuery over SAP BW that were created with the pre-GA version. In reports
created with the pre-GA version of DirectQuery over SAP BW, errors will occur with those pre-GA reports upon invoking
Refresh, as a result of attempting to refresh the metadata with any changes to the underlying SAP BW cube. Please re-
create those reports from a blank report, using the GA version of DirectQuery over SAP BW.
FEATURE DESCRIPTION
Local calculations Local calculations defined in a BEx Query will change the
numbers as displayed through tools like BEx Analyzer.
However, they are not reflected in the numbers returned
from SAP, through the public MDX interface.
Currency formatting Any currency formatting (for example, $2,300 or 4000 AUD)
is not reflected in Power BI.
Units of measure Units of measure (for example, 230 KG) are not reflected in
Power BI.
Key versus text (short, medium, long) For an SAP BW characteristic like CostCenter, the field list will
show a single column Cost Center. Using that column will
display the default text. By showing hidden fields, it will also
be possible to see the unique name column (that returns the
unique name assigned by SAP BW, and is the basis of
uniqueness).
Multiple hierarchies of a characteristic In SAP, a characteristic can have multiple hierarchies. Then in
tools like BEx Analyzer, when a characteristic is included in a
query, the user can select the hierarchy to use.
Scaling factor/reverse sign In SAP, a key figure can have a scaling factor (for example,
1000) defined as a formatting option, meaning that all
display will be scaled by that factor.
Hierarchies where levels appear/disappear dynamically Initially when connecting to SAP BW, the information on the
levels of a hierarchy will be retrieved, resulting in a set of
fields in the field list. This is cached, and if the set of levels
changes, then the set of fields do not change until Refresh is
invoked.
Default filter A BEx query can include Default Filters, which will be applied
automatically by SAP BEx Analyzer. These are not exposed,
and hence the equivalent usage in Power BI will not apply the
same filters by default.
Hidden Key figures A BEx query can control visibility of Key Figures, and those
that are hidden will not appear in SAP BEx Analyzer. This is
not reflected through the public API, and hence such hidden
key figures will still appear in the field list. However, they can
then be hidden within Power BI.
Time dependent hierarchies When using Power BI, time dependent hierarchies are
evaluated at the current date.
Sort Order The sort order (by Text, or by Key) for a characteristic can be
defined in SAP. This sort order is not reflected in Power BI.
For example, months might appear as “April”, “Aug”, and so
on.
End user language setting The locale used to connect to SAP BW is set as part of the
connection details, and does not reflect the locale of the final
report consumer.
Customer Exit Variables Customer Exit variables are not exposed by the public API,
and are therefore not supported by Power BI.
Next steps
For more information about DirectQuery, check out the following resources:
DirectQuery in Power BI
Data Sources supported by DirectQuery
DirectQuery and SAP HANA
DirectQuery and SAP HANA
1/14/2019 • 12 minutes to read • Edit Online
You can connect to SAP HANA data sources directly using DirectQuery. There are two options when
connecting to SAP HANA:
Treat SAP HANA as a multi-dimensional source (default): In this case, the behavior will be similar
to when Power BI connects to other multi-dimensional sources like SAP Business Warehouse, or
Analysis Services. When connecting to SAP HANA using this setting, a single analytic or calculation view
is selected, and all the measures, hierarchies and attributes of that view will be available in the field list.
As visuals are created, the aggregate data will always be retrieved from SAP HANA. This is the
recommended approach, and is the default for new DirectQuery reports over SAP HANA.
Treat SAP HANA as a relational source: In this case, Power BI treats SAP HANA as a relational
source. This offers greater flexibility, but care must be taken to ensure that measures are aggregated as
expected, and to avoid performance issues.
The approach used to connect is determined by a global tool option, which is set by selecting File > Options
and settings and then Options > DirectQuery, then selecting the option Treat SAP HANA as a relational
source, as shown in the following image.
The option to treat SAP HANA as a relational source controls the approach used for any new report using
DirectQuery over SAP HANA. It has no effect on any existing SAP HANA connections in the current report, nor
on connections in any other reports that are opened. So if the option is currently unchecked, then upon adding a
new connection to SAP HANA using Get Data, that connection will be made treating SAP HANA as a multi-
dimensional source. However, if a different report is opened that also connects to SAP HANA, then that report
will continue to behave according to the option that was set at the time it was created. This means that any
reports connecting to SAP HANA that were created prior to February 2018 will continue to treat SAP HANA as
a relational source.
The two approaches constitute very different behavior, and it's not possible to switch an existing report from
one approach to the other.
Let's look at more detail about each of these two approaches, in turn.
Because of this behavior, we recommend the items selected in Get Data or Query Editor be limited to those
items that are needed, while still resulting in a reasonable query for SAP HANA.
Best Practices
For both approaches to connecting to SAP HANA, recommendations for using DirectQuery also apply to SAP
HANA, particularly those related to ensuring good performance. These recommendations are described in
detail in the article using DirectQuery in Power BI.
Limitations
The following list describes all SAP HANA features that are not fully supported, or features that behave
differently when using Power BI.
Parent Child Hierarchies - Parent child hierarchies will not be visible in Power BI. This is because Power BI
accesses SAP HANA using the SQL interface, and parent child hierarchies cannot be fully accessed via SQL.
Other hierarchy metadata - The basic structure of hierarchies is displayed in Power BI, however some
hierarchy metadata (such as controlling the behavior of ragged hierarchies) will have no effect. Again, this is
due to the limitations imposed by the SQL interface.
Connection using SSL - You cannot connect to SAP HANA instances configured to use SSL.
Support for Attribute views - Power BI can connect to Analytic and Calculation views, but cannot connect
directly to Attribute views.
Support for Catalog objects - Power BI cannot connect to Catalog objects.
Change to Variables after publish - You cannot change the values for any SAP HANA variables directly in
the Power BI service, after the report is published.
Known issues
The following list describes all known issues when connecting to SAP HANA (DirectQuery) using Power BI.
SAP HANA issue when query for Counters, and other measures - Incorrect data is returned from
SAP HANA if connecting to an Analytical View, and a Counter measure and some other ratio measure,
are included in the same visual. This is covered by SAP Note 2128928 (Unexpected results when query a
Calculated Column and a Counter). The ratio measure will be incorrect in this case.
Multiple Power BI columns from single SAP HANA column - For some calculation views, where a
SAP HANA column is used in more than one hierarchy, SAP HANA exposes this as two separate
attributes. This results in two columns being created in Power BI. Those columns are hidden by default,
however, and all queries involving the hierarchies, or the columns directly, behave correctly.
Next steps
For more information about DirectQuery, check out the following resources:
DirectQuery in Power BI
Data sources supported by DirectQuery
DirectQuery and SAP BW
On-premises data gateway
Assume referential integrity settings in Power BI
Desktop
1/14/2019 • 2 minutes to read • Edit Online
When connecting to a data source using DirectQuery, you can use the Assume Referential Integrity selection
to enable running more efficient queries against your data source. This feature has a few requirements of the
underlying data, and it is only available when using DirectQuery.
Setting Assume referential integrity enables queries on the data source to use INNER JOIN statements rather
than OUTER JOIN, which improves query efficiency.
2. In the next image, notice that no referential integrity exists between Orders[DepotID ] and
Depots[DepotID ], because the DepotID is Null for some Orders. As such, Assume Referential Integrity
should not be set.
Next steps
Learn more about DirectQuery
Get more information about Relationships in Power BI
Learn more about Relationship View in Power BI Desktop.
Use the SAP BW Connector in Power BI Desktop
2/15/2019 • 10 minutes to read • Edit Online
With Power BI Desktop, you can access SAP Business Warehouse (BW ) data.
For information about how SAP customers can benefit from connecting Power BI to their existing SAP Business
Warehouse (BW ) systems, see the Power BI and SAP BW whitepaper. For details about using DirectQuery with
SAP BW, see the article DirectQuery and SAP Business Warehouse (BW ).
Starting with the June 2018 release of Power BI Desktop (and generally available with the October 2018
release), you can use the SAP BW connector with an implementation that has significant improvements in
performance and capabilities. This updated version of the SAP BW connector was developed by Microsoft and is
called Implementation 2.0. You can select either version 1 (v1) of the SAP BW Connector, or the
Implementation 2.0 SAP Connector. The following sections describe the installation of each version, in turn.
You can choose one or the other connector when connecting to SAP BW from Power BI Desktop.
We suggest you use the Implementation 2.0 SAP Connector whenever possible.
You can also specify two additional Advanced options: Language code, and a custom MDX statement to run
against the specified server.
If no MDX statement was specified you are presented with the Navigator window, which displays the list of cubes
available in the server, with the option to drill down and select items from the available cubes, including
dimensions and measures. Power BI exposes queries and cubes exposed by the BW Open Analysis Interface
OLAP BAPIs.
When you select one or more items from the server, a preview of the output table is created, based on their
selection.
The Navigator window also provides a few Display Options that allow you to do the following:
Display Only Selected Items versus All Items (default view): This option is useful for verifying the final set
of items selected. An alternative approach to viewing this is to select the Column Names in the Preview area.
Enable Data Previews (default behavior): You can also control whether data previews should be displayed
in this dialog. Disabling data previews reduces the amount of server calls, since it no longer requests data for
the previews.
Technical Names: SAP BW supports the notion of technical names for objects within a cube. Technical names
allow a cube owner to expose user friendly names for cube objects, as opposed to only exposing the physical
names for those objects in the cube.
After selecting all necessary objects in the Navigator, you can decide what to do next, by selecting one of the
following buttons on the bottom of the Navigator window:
Selecting Load triggers loading the entire set of rows for the output table into the Power BI Desktop data
model, then takes you to Report view where you can begin visualizing the data or making further
modifications using the Data or Relationships views.
Selecting Edit brings up Query Editor, where you can perform additional data transformation and filtering
steps before the entire set of rows is brought into the Power BI Desktop data model.
In addition to importing data from SAP BW cubes, remember that you can also import data from a wide range of
other data sources in Power BI Desktop, and then you can combine them into a single report. This presents all
sorts of interesting scenarios for reporting and analytics on top of SAP BW data.
3. Select OK, and subsequently, the Navigator experience is the same as described in the earlier section for
the version 1 SAP BW Connector.
New options for Implementation 2.0
Implementation 2.0 supports the following options:
1. ExecutionMode - Specifies the MDX interface used to execute queries on the server. Valid options are the
following:
a. SapBusinessWarehouseExecutionMode.BasXml
b. SapBusinessWarehouseExecutionMode.BasXmlGzip
c. SapBusinessWarehouseExecutionMode.DataStream
b. If so, add the Implementation 2.0 option, and remove the ScaleMeasures option, if present, as shown:
c. If the query does not already include an options record, just add it. For example, if it has the following:
4. Every effort has been made to make Implementation 2.0 of the SAP BW Connector compatible with
version 1 of the SAP BW Connector. However, there may be some differences due to the different SAP BW
MDX execution modes being used. To resolve any discrepancies, try switching between execution modes.
Troubleshooting
This section provides troubleshooting situations (and solutions) for working with th SAP BW connector.
1. Numeric data from SAP BW returns decimal points instead of commas. For example, 1,000,000 is returned
as 1.000.000.
SAP BW returns decimal data with either a , (comma) or a . (dot) as the decimal separator. To specify which
of those SAP BW should use for the decimal separator, the driver used by Power BI Desktop makes a call
to BAPI_USER_GET_DETAIL. This call returns a structure called DEFAULTS, which has a field called
DCPFM that stores Decimal Format Notation. It takes one of the following three values:
Customers who have reported this issue found that the call to BAPI_USER_GET_DETAIL is failing for a
particular user (the user who is showing the incorrect data), with an error message similar to the following:
3. The Navigator window does not display a data preview and instead provides an object reference not set to
an instance of an object error message.
SAP users need access to specific BAPI function modules to get metadata and retrieve data from SAP BW's
InfoProviders. These include:
BAPI_MDPROVIDER_GET_CATALOGS
BAPI_MDPROVIDER_GET_CUBES
BAPI_MDPROVIDER_GET_DIMENSIONS
BAPI_MDPROVIDER_GET_HIERARCHYS
BAPI_MDPROVIDER_GET_LEVELS
BAPI_MDPROVIDER_GET_MEASURES
BAPI_MDPROVIDER_GET_MEMBERS
BAPI_MDPROVIDER_GET_VARIABLES
BAPI_IOBJ_GETDETAIL
To solve this issue, verify that the user has access to the various MDPROVIDER modules as well as
BAPI_IOBJ_GETDETAIL. To further troubleshoot this or similar issues, select Enable tracing on the
Diagnostics window within Power BI Desktop's Options. Attempt to retrieve data from SAP BW while
tracing is active, and examine the trace file for more detail.
Next steps
For more information about SAP and DirectQuery, check out the following resources:
DirectQuery and SAP HANA
DirectQuery and SAP Business Warehouse (BW )
DirectQuery in Power BI
Data Sources supported by DirectQuery
Power BI and SAP BW whitepaper
Use OneDrive for Business links in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Many people have Excel workbooks stored on their OneDrive for Business drive that would be great for use with
Power BI Desktop. With Power BI Desktop, you can use online links for Excel files stored in OneDrive for
Business to create reports and visuals. You can use a OneDrive for Business group account, or your individual
OneDrive for Business account.
Getting an online link from OneDrive for Business does require a few specific steps. The following sections
explain those steps, which let you share the file link among groups, across different machines, and with your
coworkers.
NOTE
Your browser interface might not look exactly like the following image. There are many ways to select Open in Excel
for files in your OneDrive for Business browser interface. You can use any option that allows you to open the file in
Excel.
2. In Excel, select File > Info and select the link above the Protect Workbook button. Select Copy link to
clipboard (your version might say Copy path to clipboard).
Use the link in Power BI Desktop
In Power BI Desktop, you can use the link you just copied to the clipboard. Take the following steps:
1. In Power BI Desktop, select Get Data > Web.
2. Paste the link into the From Web dialog (do not select OK yet).
3. Notice the ?web=1 string at the end of the link - you must remove that portion of the Web URL string
before selecting OK, in order for Power BI Desktop to properly navigate to your file.
4. If Power BI Desktop prompts you for credentials, choose either Windows (for on-premises SharePoint
sites) or Organizational Account (for Office 365 or OneDrive for Business sites).
A Navigator window appears, allowing you to select from the list of tables, sheets, and ranges found in the Excel
workbook. From there, you can use the OneDrive for Business file just like any other Excel file, and create reports
and use it in datasets like you would with any other data source.
NOTE
To use a OneDrive for Business file as a data source in the Power BI service, with Service Refresh enabled for that file,
make sure you select OAuth2 as the Authentication method when configuring your refresh settings. Otherwise, you may
encounter an error (such as Failed to update data source credentials) when you attempt to connect or to refresh. Selecting
OAuth2 as the authentication method remedies that credentials error.
Facebook connector for Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
The Facebook connector in Power BI Desktop relies on the Facebook Graph API. As such, features and availability
may vary over time.
You can see a tutorial about the Facebook Connector for Power BI Desktop.
Facebook expired v1.0 of its Graph API on April 30th 2015. Power BI uses the Graph API behind the scenes for the
Facebook connector, allowing you to connect to your data and analyze it.
Queries that were built before April 30th 2015 may no longer work or return less data. Subsequent to April 30th
2015, Power BI leverages v2.8 in all calls to the Facebook API. If your query was built prior to April 30, 2015 and
you have not used it since, you’ll likely need to authenticate again, to approve the new set of permissions that we’ll
ask for.
Although we attempt to release updates in accordance with any changes, the API may change in a way that affects
the results of the queries we generate. In some cases, certain queries may no longer be supported. Due to this
dependency we cannot guarantee the results of your queries when using this connector.
More details on the change in the Facebook API are available here.
Google Analytics connector for Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
NOTE
The Google Analytics content pack and the connector in Power BI Desktop rely on the Google Analytics Core Reporting API.
As such, features and availability may vary over time.
You can connect to Google Analytics data using the Google Analytics connector. To connect, follow these steps:
1. In Power BI Desktop, select Get Data from the Home ribbon tab.
2. In the Get Data window, select Online Services from the categories in the left pane.
3. Select Google Analytics from the selections in the right pane.
4. At the bottom of the window, select Connect.
You're prompted with a dialog that explains that the connector is a Third-Party Service, and warns about how
features and availability may change over time, and other clarifications.
Select Connect, and your Google Analytics data is connected to Power BI Desktop, and loads the data.
Please note that the account you use to connect to the OData feed must have at least Portfolio Viewer access to the
Project Web App site.
From here, you can choose which tables you would like to connect to and build a query. Want an idea of how to get
started? The following blog post shows how to build a burndown chart from your Project Online data. The blog
post refers to using Power Query to connect to Project Online, but this applies to Power BI Desktop as well.
Creating burndown charts for Project using Power Pivot and Power Query
Shape Maps in Power BI Desktop (Preview)
1/14/2019 • 10 minutes to read • Edit Online
Create a Shape Map visual to compare regions on a map using color. Unlike the Map visual, Shape Map can't
show precise geographical locations of data points on a map. Instead, its main purpose is to show relative
comparisons of regions on a map by coloring them differently.
Shape Map visuals are based on ESRI/TopoJSON maps, which have the compelling ability to use custom maps
that you can create. Examples of custom maps are:geographical, seating arrangements, floor plans, and others. The
ability to use custom maps is not available in this Preview release of Shape Map.
Once Shape Map is enabled, click the Shape Map control from the Visualizations pane.
Power BI Desktop creates an empty Shape Map visual design canvas.
NOTE
See the section titled Getting Map Data, below, for information on how to quickly get map data to test Shape Map.
2. In the Format settings pane, expand Shape, and select from the Standard Maps drop-down to show your
data. At this point, the rendering appears, as shown in the following image.
NOTE
In the Region Keys section at the end of this article is a collection of tables that have map regions keys you can use
to test the Shape Map visual.
3. You can then modify the map projection and zooming settings, as well as the colors of data points, from the
Format settings pane. You can also modify zoom settings. For example, you can change colors, set
maximums and minimums, and so on.
4. You can also add a category data column to the Legend bucket, and classify the map regions based on
categories.
If you’d like to experiment with this dataset and visualization, you can download the original PBIX file that was
used to generate this report using the following link.
Custom shape map demo .PBIX file
If your data has multiple columns, you will need to use an editor like Excel to paste the data, then copy each data
column separately. You can then paste the data into Power BI Desktop. The top row is automatically identified as a
header.
You can enter a new column simply by typing a new column name (in the blank column to the right), then add
values in each cell, just like you can do in Excel. When finished, select Load and the table is added to the data
model for Power BI Desktop.
NOTE
When working with countries or regions, use the three-letter abbreviation to ensure that geocoding works properly in map
visualizations. Do not use two-letter abbreviations, as some countries or regions may not be properly recognized.
If you only have two-letter abbreviations, check out this external blog post for steps on how to associate your two-letter
country/region abbreviations with three-letter country/region abbreviations.
Region keys
Use the following Region Keys in this Preview release to test Shape Map.
Australia: States
ID ABBR ISO NAME POSTAL
Austria: States
ID ISO NAME NAME-EN POSTAL
Brazil: States
ID
Tocantins
Pernambuco
Goias
Sergipe
Sao Paulo
Santa Catarina
Roraima
Rondonia
Rio de Janeiro
Piaui
Parana
Paraiba
Para
Minas Gerais
ID
Mato Grosso
Maranhao
Distrito Federal
Ceara
Espirito Santo
Bahia
Amazonas
Amapa
Alagoas
Acre
Litigated Zone 1
Litigated Zone 2
Litigated Zone 3
Litigated Zone 4
Canada: Provinces
ID ISO NAME POSTAL
France: Regions
ID NAME NAME-EN
Germany: States
ID ISO NAME NAME-EN POSTAL
Ireland: Counties
ID
Wicklow
ID
Wexford
Westmeath
Waterford
Sligo
Tipperary
Roscommon
Offaly
Monaghan
Meath
Mayo
Louth
Longford
Limerick
Leitrim
Laoighis
Kilkenny
Kildare
Kerry
Galway
Dublin
Donegal
Cork
Clare
Cavan
Carlow
Italy: Regions
ID ISO NAME NAME-EN POSTAL
Mexico: States
ID ABREVIATURA ISO NAME NAME-EN POSTAL
Netherlands: Provinces
ID ISO NAME NAME-EN
UK: Countries
ID ISO NAME
USA: States
ID NAME POSTAL
us-mi Michigan MI
us-ak Alaska AK
us-hi Hawaii HI
us-fl Florida FL
us-la Louisiana LA
us-ar Arkansas AR
us-ga Georgia GA
us-ms Mississippi MS
us-al Alabama AL
us-tx Texas TX
us-tn Tennessee TN
us-ok Oklahoma OK
us-az Arizona AZ
us-mo Missouri MO
us-va Virginia VA
us-ks Kansas KS
us-ky Kentucky KY
us-co Colorado CO
us-md Maryland MD
us-de Delaware DE
us-il Illinois IL
us-oh Ohio OH
us-ca California CA
us-ut Utah UT
us-nv Nevada NV
us-in Indiana IN
us-ct Connecticut CT
us-pa Pennsylvania PA
us-ne Nebraska NE
us-ma Massachusetts MA
us-ia Iowa IA
us-or Oregon OR
us-mn Minnesota MN
us-vt Vermont VT
us-id Idaho ID
us-wi Wisconsin WI
us-wy Wyoming WY
us-me Maine ME
us-mt Montana MT
ID NAME POSTAL
us-wa Washington WA
Next steps
Matrix visual in Power BI
Visualization types in Power BI
Combine files (binaries) in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
One powerful approach to importing data into Power BI Desktop is to combine multiple files, which have the
same schema, into a single logical table. With the November 2016 release of Power BI Desktop (and subsequent
releases), this convenient and popular approach has been made more convenient and more expansive, as described
in this article.
To start the process of combining files from the same folder, select Get Data > File > Folder.
With the new behavior of combine files, you can easily combine all files within a given folder as long as they have
the same file type and structure (such as the same columns).
In addition, you can easily apply additional transformation or extraction steps by modifying the automatically
created exemplar query, without having to worry about modifying or creating additional function query steps. Any
changes to the exemplar query are automatically generated in the linked function query.
Next steps
There are all sorts of data you can connect to using Power BI Desktop. For more information on data sources,
check out the following resources:
What is Power BI Desktop?
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Connect to CSV files in Power BI Desktop
Enter data directly into Power BI Desktop
Data categorization in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can specify the Data Category for a column so Power BI Desktop knows how it should
treat its values when in a visualization.
When Power BI Desktop imports data, not only does it get the data itself, it also gets information such as the table
and column names, whether it’s a primary key, etc. With that information, Power BI Desktop makes some
assumptions about how to give you a good default experience when creating a visualization.
Here’s an example: When Power BI Desktop detects a column has numeric values, you’ll probably want to
aggregate it in some way, so it’s placed in the Values area. Or, for a column with date time values, it assumes you’ll
probably use it as a time hierarchy axis on a line chart.
But, there are some cases that are a bit more challenging, like geography. Consider the following table from an
Excel worksheet:
Should Power BI Desktop treat the codes in the GeoCode column as an abbreviation for a Country or a US State?
It’s not clear because a code like this can mean either one. For instance, AL can mean Alabama or Albania, AR can
mean Arkansas or Argentina, or CA can mean California or Canada. It makes a difference when we go to chart our
GeoCode field on a map. Should Power BI Desktop show a picture of the world with countries highlighted or a
picture of the United States with states highlighted? You can specify a Data Category for data just like this. Data
categorization further refines the information Power BI Desktop can use to provide the best visualizations.
To specify a Data Category
1. In Report View or Data View, in the Fields list, select the field you want to be sorted by a different
categorization.
2. On the ribbon, in the Modeling tab, click on the Data Category: drop down list. This shows the list of
possible data categories you can choose for your column. Some selections might be disabled if they won’t
work with the current data type of your column. For example, if a column is a binary data type, Power BI
Desktop won’t let you choose geographic data categories.
And that’s it! Any behavior that normally accrues to a visual will now work automatically.
You might also be interested in learning about geographic filtering for Power BI mobile apps.
Tag barcodes in Power BI Desktop for the mobile
apps
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can categorize data in a column, so Power BI Desktop knows how to treat values in
visuals in a report. You can also categorize a column as Barcode. When you or your colleagues scan a barcode on
a product with the Power BI app on the iPhone, you see any report that includes that barcode. When you open the
report in the mobile app, Power BI automatically filters the report to data related to that barcode.
1. In Power BI Desktop, switch to Data View.
2. Select a column with barcode data. See the list of supported barcode formats below.
3. On the Modeling tab, select Data Category > Barcode.
4. In Report view, add this field to the visuals you want filtered by the barcode.
5. Save the report and publish it to the Power BI service.
Now when you open the scanner on the Power BI app for iPhone and scan a barcode, you see this report in the list
of reports. When you open the report, its visuals are filtered by the product barcode you scanned.
In Power BI Desktop, you can categorize geographical data for a column, so Power BI Desktop knows how to treat
values in visuals in a report. As an added benefit, when you or your colleagues view that report in the Power BI
mobile apps, Power BI automatically provides geographical filters that match where you are.
For example, say you're a sales manager traveling to meet customers, and you'd like to quickly filter the total sales
and revenue for the specific customer you're planning to visit. You want to break out the data for your current
location, whether by state, city, or an actual address. Later, if you have time left, you'd like to visit other customers
located nearby. You can filter the report by your location to find those customers.
NOTE
You can only filter by location in the mobile app if the geographic names in the report are in English for example, "New York
City" or "Germany".
3. On the Modeling tab, select Data Category, then the correct category in this example, City.
4. Continue setting geographic data categories for any other fields in the model.
NOTE
You can set multiple columns for each data category in a model, but if you do the model can't filter for geography in
the Power BI mobile app. To use geographic filtering in the mobile apps, set only one column for each data category
for example, only one City column, one State or Province column, and one Country column.
In this example, the model also contains a calculated column that brings city and state together in one
column. Read about creating calculated columns in Power BI Desktop.
2. Publish the report to the Power BI service.
Read more about filtering a report by location in the Power BI mobile apps.
Next steps
Data categorization in Power BI Desktop
Questions? Try asking the Power BI Community
Using calculated columns in Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
With calculated columns, you can add new data to a table already in your model. But instead of querying and
loading values into your new column from a data source, you create a Data Analysis Expressions (DAX) formula
that defines the column’s values. In Power BI Desktop, calculated columns are created by using the New Column
feature in Report View.
Unlike custom columns created as part of a query by using Add Custom Column in Query Editor, calculated
columns created in Report View or Data View are based on data you’ve already loaded into the model. For
example, you might choose to concatenate values from two different columns in two different but related tables,
perform addition, or extract substrings.
Calculated columns you create appear in the Fields list just like any other field, but they’ll have a special icon
showing its values are the result of a formula. You can name your columns whatever you want, and add them to a
report visualization just like other fields.
Calculated columns calculate results by using Data Analysis Expressions (DAX), a formula language meant to work
with relational data like in Power BI Desktop. DAX includes a library of over 200 functions, operators, and
constructs, providing immense flexibility in creating formulas to calculate results for just about any data analysis
need. To learn more about DAX, see the Learn more section at the end of this article.
DAX formulas are similar to Excel formulas. In fact, DAX has many of the same functions as Excel. DAX functions,
however, are meant to work over data interactively sliced or filtered in a report, like in Power BI Desktop. Unlike
Excel, where you can have a different formula for each row in a table, when you create a DAX formula for a new
column, it will calculate a result for every row in the table. Column values are recalculated as necessary, like when
the underlying data is refreshed and values have changed.
This formula simply creates a new column named CityState, and for each row in the Geography table, it takes
values from the City column, adds a comma and a space, and then concatenates values from the State column.
Now Jeff has the field he wants.
He can add it to his report canvas along with the number of shipments. Very quickly and with minimal effort, Jeff
now has a City, State field he can add to just about any type of visualization. Jeff sees that when he creates a map
visualization, Power BI Desktop even knows how to read the City, State values in his new column.
Learn more
We’ve only provided a quick introduction to calculated columns here. Be sure to see the Tutorial: Create calculated
columns in Power BI Desktop tutorial, where you can download a sample file and get step-by-step lessons on how
to create more columns.
To learn more about DAX, see DAX basics in Power BI Desktop.
To learn more about columns you create as part of a query, see the Create custom columns section in Common
query tasks in Power BI Desktop.
Using calculated tables in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
With calculated tables, you can add a new table to the model. But instead of querying and loading values into your
new table's columns from a data source, you create a Data Analysis Expressions (DAX) formula that defines the
table’s values. In Power BI Desktop, calculated tables are created by using the New Table feature in Report View or
Data View.
Most of the time, you import data into your model from an external data source. However, calculated tables
provide certain advantages. Calculated tables are generally best for intermediate calculations and data you want
stored as part of the model rather than calculated on the fly or as part of a query.
Unlike tables created as part of a query, calculated tables created in Report View or Data View are based on data
you’ve already loaded into the model. For example, you might choose to union or cross join two tables.
Just like normal tables, calculated tables can have relationships with other tables. The columns in your calculated
table have data types, formatting, and can belong to a data category. You can name your columns whatever you
want, and add them to a report visualization just like other fields. Calculated tables are re-calculated if any of the
tables it pulls data from are refreshed or updated in any way.
Calculated tables calculate results by using Data Analysis Expressions (DAX), a formula language meant to work
with relational data like in Power BI Desktop. DAX includes a library of over 200 functions, operators, and
constructs, providing immense flexibility in creating formulas to calculate results for just about any data analysis
need.
SouthwestEmployees
Putting these two tables together with a calculated table is quite easy. While Jeff can create a calculated table in
either Report View or Data View, it’s a bit easier to do it in Data View because he can immediately see his new
calculated table.
In Data View, on the Modeling tab, Jeff clicks New Table. A formula bar appears.
Jeff then enters the following formula:
Jeff’s new Western Region Employees table appears just like any other table in the Fields list. He can create
relationships to other tables, add calculated columns and measures, and add any of its fields to reports just like any
other table.
You can use calculated tables with DAX to solve many analytical problems. We’ve only provided a quick
introduction to calculated tables here. As you start working with calculated tables, here are some of the more
common DAX table functions you might find useful:
DISTINCT
VALUES
CROSSJOIN
UNION
NATURALINNERJOIN
NATURALLEFTOUTERJOIN
INTERSECT
CALENDAR
CALENDARAUTO
See the DAX Function Reference for these and other table returning DAX functions.
Measures in Power BI Desktop
2/13/2019 • 3 minutes to read • Edit Online
Power BI Desktop helps you create insights into your data with just a few clicks. But sometimes that data just
doesn’t include everything you need to answer some of your most important questions. Measures can help you
get there.
Measures are used in some of the most common data analyses. For example sums, averages, minimum or
maximum values, counts, or more advanced calculations you create yourself using a DAX formula. The calculated
results of measures are always changing in response to your interaction with your reports, allowing for fast and
dynamic ad-hoc data exploration. Let’s take a closer look.
Understanding measures
In Power BI Desktop, measures are created and used in Report View or Data View. Measures you create
yourself appear in the Fields list with a calculator icon. You can name measures whatever you want, and add them
to a new or existing visualization just like any other field.
NOTE
You might also be interested in quick measures, which are ready-made measures you can select from dialog boxes. They're
a good way to quickly create measures, and also a good way to learn DAX syntax, since their automatically created DAX
formulas are available to review. Check out the article: quick measures.
Jan then drags her new Projected Sales measure into the chart.
Quickly and with minimal effort, Jan now has a measure to calculate projected sales. Jan can further analyze her
projections by filtering on specific resellers or by adding other fields to her report.
Learn more
We’ve only provided you with a quick introduction to measures here, but there’s a lot more to help you learn how
to create your own. Be sure to see the Tutorial: Create your own measures in Power BI Desktop, where you can
download a sample file and get step-by-step lessons on how to create more measures.
To dive a little deeper into DAX, be sure to check out DAX basics in Power BI Desktop. The Data Analysis
Expressions Reference provides detailed articles on each of the functions, syntax, operators, and naming
conventions. DAX has been around for several years in Power Pivot in Excel and SQL Server Analysis Services, so
there are many other great resources available, too. Be sure to check out the DAX Resource Center Wiki, where
influential members of the BI community share their knowledge of DAX.
Edit Q&A linguistic schema and add phrasings in
Power BI Desktop
1/14/2019 • 16 minutes to read • Edit Online
Using common phrases and natural language to ask questions of your data is powerful. Even more powerful is
when your data answers, which is what Q&A in Power BI lets you do. When you ask Power BI Q&A a question, it
makes a best effort to answer correctly.
But for even better Q&A interactions, there are ways to improve the answers -- one way is by editing the linguistic
schema.
It allstarts with your enterprise data. The better the data model, the easier it will be for users to get quality
answers.One way to improve the model is to add a linguistic schema that defines and categorizes terminology and
relationships between table and column names in your dataset. Power BI Desktop is where you manage your
linguistic schemas.
Prerequisites
If you haven't already read the article on improving your data model for Q&A, you may want to read that
article first. It includes numerous tips for designing and improving your data model and an important
section on adding synonyms.
There are two sides to Q&A. The first side is the preparation, or "modeling." The second side is asking
questions and exploring the data, or "consuming."In some companies, employees known as Data Modelers
or IT Admins may be the ones to assemble the datasets, create the data models, and publish the datasets to
Power BI. While a second set of employees may be the ones to "consume" the data online. In other
companies, these roles may be combined.
This topic is for the data modelers. The people who take a dataset and optimize it to provide the best
possible Q&A results.
Sample .yaml and .pbix files
YAML file editor, we recommend Visual Studio Code
Set up an editor for YAML files
We recommend using Visual Studio Code to edit linguistic schema YAML files. Visual Studio Code includes out-of-
the-box support for YAML files and can be extended to specifically validate the Power BI linguistic schema format.
1. Install Visual Studio Code.
2. Select the sample linguistic schema that you saved earlier: YAML file (SummerOlympics.lsdl.yaml).
3. Select Visual Studio Code and Always use this app to open .yaml files.
4. In Visual Studio Code, install the YAML Support by Red Hat extension.
a. Select the Extensions tab (last one on the left) or CTRL+SHIFT+X.
b. Search for "yaml" and select YAML Support by Red Hat in the list.
c. Select Install > Reload.
Working with linguistic schemas
Linguistic schemas can be edited, imported, and exported in Relationship view in Power BI Desktop. One way to
edit a linguistic schema is to add synonyms to the Synonyms pane. You don't have to open the YAML file.
The other way to edit a linguistic schema is to export and edit the YAML file directly. When you edit a linguistic
schema YAML file, you tag columns in the table as different grammatical elements, and define words that a
colleague might use to phrase a question. For instance, you state the columns that are the subject and the object of
the verb. You add alternative words that colleagues can use to refer to tables, columns, and measures in your
model.
Before you can edit a linguistic schema, you must open (export) it from Power BI Desktop. Saving the YAML file
back to the same location is considered importing. But you can also import other YAML files instead. If, for
instance, you have a similar dataset and you've already put in a lot of work adding parts of speech, identifying
relationships, creating phrasings, and creating synonyms.
Q&A uses all this information together with any enhancements that you make to provide a better answer, auto
completion, and summary of the questions.
NOTE
The sample YAML file included with this tutorial does not contain State:Generated or State:Deleted tags since it has been
specially-prepared for this tutorial. To see these tags, open an unedited .pbix file in Relationship view and export the linguistic
schema.
When you import your linguistic schema file back into Power BI Desktop, anything that is marked State:
Generated is ignored (and later regenerated) so if you’d like to make a change to some generated content, make
sure to remove the corresponding State: Generated tag as well. Similarly, if you want to remove some generated
content, you’ll need to change the State: Generated tag to State: Deleted so that it won’t be regenerated when
you import your linguistic schema file.
1. Open the dataset in Power BI Desktop Relationship view.
2. Select the Modeling tab and choose Export linguistic schema.
3. Select Visual Code (or another editor).
4. Make your edits and save the YAML file.
5. From Power BI Desktop, select Relationship view > Modeling tab > Linguistic Schema > Import
linguistic schema.
6. Navigate to the location where you saved the edited YAML file and select it. A Success message lets you
know that the linguistic schema YAML file was successfully imported.
Add phrasings to the linguistic schema
A phrasing is how you talk about (or “phrase”) the relationships between things. For example, to describe the
relationship between customers and products, you might say “customers buy products”. Or to describe the
relationship between customers and ages, you might say “ages indicate how old customers are”. Or to describe the
relationship between athletes and medals, you could say “athletes win medals”.
These phrasings come in a variety of shapes and sizes. Some correspond directly with relationships in the semantic
model. Some relate columns with their containing tables. Others relate multiple tables and columns together in
complex relationships. In all cases, they describe how things are related using everyday terms.
Attribute phrasings
Attribute phrasings are the workhorse of Q&A, used when one thing is acting as an attribute of another thing.
They’re simple and straightforward, and perform most of the heavy lifting when you haven't defined a subtler,
more detailed phrasing. Attribute phrasings are described using the basic verb “have” (“products have categories”
and "host countries have host cities"). They also automatically allow questions with the prepositions “of” and “for”
(“categories of products”, “orders for products”) and possessive (“John’s orders”). Attribute phrasings are used in
these kinds of questions:
Which customers have orders?
List host cities by country ascending
Show orders that have chai
List customers with orders
What is the category of each product?
Count Robert King's orders
Power BI generates the overwhelming majority of attribute phrasings needed in your model, based on
table/column containment and model relationships. Typically, you don’t need to create them yourself. Here's an
example of how an attribute phrasing looks inside of the linguistic schema:
product_has_category:
Binding: {Table: Products}
Phrasings:
- Attribute: {Subject: product, Object: product.category}
Name Phrasings
Name phrasings are helpful if your data model has a table that contains named objects - like athlete names and
customer names. For example, a “product names are names of products” phrasing is essential for being able to use
product names in questions. Name phrasing also enables “named” as a verb (for example, “List customers named
John Smith”). However, it's most important when used in combination with other phrasings, to allow a name value
to be used to refer to a particular table row. For example, in “Customers that bought chai”, Q&A can tell the value
“chai” refers to the whole row of the product table, rather than just a value in the product name column. Name
phrasings are used in these kinds of questions:
Which employees are named Robert King
Who is named Ernst Handel
Fernand De Montigny's sports
Count of athletes named Mary
What did Robert King buy?
Assuming you used a sensible naming convention for name columns in your model (for example, “Name” or
“ProductName” rather than “PrdNm”), Power BI generates most of the name phrasings needed in your model
automatically, so you usually don’t need to create them yourself.
Here's an example of how a name phrasing looks inside of the linguistic schema:
employee_has_name:
Binding: {Table: Employees}
Phrasings:
- Name:
Subject: employee
Name: employee.name
Adjective Phrasings
Adjective phrasings define new adjectives used describe things in your model. For example, “happy customers are
customers where rating > 6” phrasing is needed to ask questions like “list the happy customers in Des Moines”.
There are several forms of adjective phrasings, for use in different situations.
Simple adjective phrasings define a new adjective based on a condition, such as “discontinued products are
products where status = D”. Simple adjective phrasings are used in these kinds of questions:
Which products are discontinued?
List the discontinued products
List the gold medalists
Products that are backordered
Here's an example of how a simple adjective phrasing looks inside of the linguistic schema:
product_is_discontinued:
Measurement adjective phrasings define a new adjective based on a numeric value that indicates the extent to
which the adjective applies, such as “lengths indicate how long rivers are” and "small countryregions have small
land areas". Measurement adjective phrasings are used in these kinds of questions:
List the long rivers
Which rivers are the longest?
List the smallest countryregions that won gold in basketball
How long is the Rio Grande?
Here's an example of how a measurement adjective phrasing looks inside of the linguistic schema:
river_has_length:
Binding: {Table: Rivers}
Phrasings:
- Adjective:
Subject: river
Adjectives: [long]
Antonyms: [short]
Measurement: river.length
Dynamic adjective phrasings define a set of new adjectives based on values in a column in the model, such as
“colors describe products” and "events have event genders". Dynamic adjective phrasings are used in these kinds of
questions:
List the red products
Which products are green?
Show skating events for females
Count issues that are active
Here's an example of how a dynamic adjective phrasing looks inside of the linguistic schema: product_has_color:
Noun phrasings
Noun phrasings define new nouns that describe subsets of things in your model. They often include some type of
model-specific measurement or condition. For example, for our Olympics model we might want to add phrasings
that distinguish champions from medalists, ball sports from water sports, teams versus individuals, age categories
of athletes (teens, adults, seniors) , etc. For our movie database, we might want to add noun phrasings for “flops are
movies where net profit < 0” so that we can ask questions like “count the flops by year”. There are two forms of
noun phrasings, for use in different situations.
Simple noun phrasings define a new noun based on a condition, such as “contractors are employees where full time
= false” and "champion is athlete where count of medals >5". Simple noun phrasings are used in these kinds of
questions:
Which employees are contractors?
Count the contractors in Portland
How many champions in 2016
Here's an example of how a simple noun phrasing looks inside of the linguistic schema: employee_is_contractor:
Dynamic noun phrasings define a set of new nouns based on values in a column in the model, such as “jobs define
subsets of employees”. Dynamic noun phrasings are used in these kinds of questions:
List the cashiers in Chicago
Which employees are baristas?
List the referees in 1992
Here's an example of how a dynamic noun phrasing looks inside of the linguistic schema: employee_has_job:
Preposition phrasings
Preposition phrasings are used to describe how things in your model are related via prepositions. For example, a
“cities are in countries” phrasing improves understanding of questions like “count the cities in Washington”. Some
preposition phrasings are created automatically when a column is recognized as a geographical entity. Preposition
phrasings are used in these kinds of questions:
Count the customers in New York
List the books about linguistics
Which city is John Galt in?
How many books are by Stephen Pinker?
Here's an example of how a preposition phrasing looks inside of the linguistic schema: customers_are_in_cities:
Verb Phrasings
Verb phrasings are used to describe how things in your model are related via verbs. For example, a “customers buy
products” phrasing improves understanding of questions like “who bought cheese?” and “what did John buy?”
Verb phrasings are the most flexible of all of the types of phrasings, often relating more than two things to each
other, such as in “employees sell customers products”. Verb phrasings are used in these kinds of questions:
Who sold what to whom?
Which employee sold chai to John?
How many customers were sold chai by Mary?
List the products that Mary sold to John.
Which discontinued products were sold to Chicago customers by Boston employees?
Verb phrasings can also contain prepositional phrases, thereby adding to their flexibility, such as in “athletes win
medals at competitions” or “customers are given refunds for products”. Verb phrasings with prepositional phrases
are used in these kinds of questions:
How many athletes won a gold medal at the Visa Championships?
Which customers were given a refund for cheese?
At which competition did Danell Leyva win a bronze medal?
Some verb phrasings are created automatically when a column is recognized as containing both a verb and a
preposition.
Here's an example of how a verb phrasing looks inside of the linguistic schema:
customers_buy_products_from_salespeople:
Another example would be adding the alternate phrasing “employees sell customers products” to the “customers
buy products from employees” relationship. Note that you do not need to add variations like “employees sell
products to customers” or “products are sold to customers by employees”, since the “by” and “to” variations of
the subject and indirect object are inferred automatically by Q&A.
With Power BI Desktop, you can import and display KPIs in tables, matrices, and cards.
Follow these steps to import and display KPIs.
1. Start with an Excel workbook that has a Power Pivot model and KPIs. This exercise uses a workbook named
KPIs.
2. Import the Excel workbook into Power BI, using File -> Import -> Excel workbook contents. You can also
learn how to import workbooks.
3. After import into Power BI, your KPI will appear in the Fields pane, marked with the icon. To use a KPI in
your report, be sure to expand its contents, exposing the Value, Goal, and Status fields.
4. Imported KPIs are best used in standard visualization types, such as the Table type. Power BI also includes
the KPI visualization type, which should only be used to create new KPIs.
That's all there is to it. You can use KPIs to highlight trends, progress, or other important indicators.
Use visual elements to enhance Power BI reports
2/13/2019 • 4 minutes to read • Edit Online
With Power BI Desktop you can use visual elements, such as wallpaper and improved visual headers for
visualizations, to enhance the appearance of your reports.
Beginning with the July 2018 release of Power BI Desktop, you can put enhancements to use in your reports and
make your analytics and reports even more appealing than before. The enhancements discussed in this article
include the following:
Apply wallpaper to your reports so your background can enhance or highlight elements of the story you want
to tell with your data
Use improved visual headers for individual visualizations to create perfectly aligned visuals on your report
canvas.
The following sections describe how to use these enhancements, and how to apply them to your reports.
NOTE
If you use dark-colored backgrounds for wallpaper and set text color to white or very light, be mindful that the Export to
PDF feature does not include wallpaper, so any exports with white fonts will be nearly invisible in the exported PDF file. See
export to PDF for more information on Export to PDF.
If your visual doesn't have a title, the header floats above the top of the visual aligned to the right, as shown in the
following image.
If your visual is positioned all the way to the top of your report, the visual header instead snaps to the bottom of
the visual.
Each visual also has a card in the Formatting section of the Visualizations pane called Visual header. In that
card you can adjust all sorts of characteristics of the visual header
NOTE
The visibility of toggles do not affect your report when you are authoring or editing the report. You must publish the report
and view it in reading mode to see the effect. This behavior ensures that the many options provided in visual headers are
important during editing, especially warning icons that alert you to issues while editing.
For reports that only appear in the Power BI service, you can adjust the use of visual headers by going to My
Workspace > Reports and then selecting the Settings icon. There you see settings for the report for which you
selected Settings and you can adjust the settings from there, as shown in the following image.
Enabling improved visual headers for existing reports
The new visual header is the default behavior for all new reports. For existing reports, you need to enable this
behavior in Power BI Desktop by going to File > Options and settings > Options and then in the Report
settings section, enable the Use the modern visual header with updated styling options checkbox.
Next steps
For more information about Power BI Desktop, and how to get started, check out the following articles.
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Create tooltips based on report pages in Power BI
Desktop
2/13/2019 • 6 minutes to read • Edit Online
You can create visually rich report tooltips that appear when you hover over visuals, based on report pages you
create in Power BI Desktop. By creating a report page that serves as your tooltip, your custom tooltips can
include visuals, images, and any other collection of items you create in the report page.
You can create as many tooltip pages as you want. Each tooltip page can be associated with one or more fields in
your report, so that when you hover over a visual that includes the selected field, the tooltip you created on your
tooltip page appears when you hover over the visual, filtered by the datapoint over which your mouse is hovering.
There are all sorts of interesting things you can do with report tooltips. Let's take a look at how to create tooltips
and what you must do to configure them.
By default, Power BI Desktop fits your report canvas to the available space on the page. Often that's good, but
not in the case of tooltips. To get a better sense and view of what your tooltip will look like when you're done, you
can change the Page View to actual size.
To do that, select the View tab from the ribbon. From there, select Page View > Actual Size, as shown in the
following image.
You can also name the report page so its purpose is clear. Just select the Page Information card in the Format
pane, then type the name into the Name field you find there. In the following image the tooltip report name is
Tooltip 1, but feel free to name yours something more inspired.
From there, you can create whatever visuals you would like to show up in your tooltip. In the following image,
there are two cards and one clustered bar chart on the tooltip page, along with a background color for the page
itself, and backgrounds for each of the visuals, to give it the look we wanted.
There are more steps to complete before your tooltip report page is ready to work as a tooltip. You need to
configure the tooltip page in a few ways, as described in the next section.
Being able to manually set a tooltip has many uses. You can set a blank page for a tooltip, and thereby override the
default Power BI tooltip selection. Another use is when you don't want the tooltip that is automatically selected by
Power BI to be the tooltip. For example, if you have a visual that includes two fields, and both of those fields have
an associated tooltip, Power BI selects only one to show. You might not want that to be the case, so you could
manually select which tooltip should be displayed.
Next steps
For more information about features that are similar or interact with report tooltips, take a look at the following
articles:
Use drillthrough in Power BI Desktop
Display a dashboard tile or report visual in Focus mode
Export reports to PDF from Power BI Desktop
3/6/2019 • 2 minutes to read • Edit Online
In Power BI Desktop or the Power BI service, you can export reports to a PDF file, and thereby easily share or
print your reports from that PDF.
The process of exporting your report from Power BI Desktop to a PDF, so that you can print the PDF or share
that PDF document with others, is straightforward. Simply select File > Export to PDF from Power BI Desktop.
The Export to PDF process will export all visible pages in the report, with each report page exporting to a single
page in the PDF. Report pages that are currently not visible, such as any tooltips or hidden pages, are not exported
to the PDF file.
When you select File > Export to PDF the export is initiated, and a dialog appears that shows the export process
is underway. The dialog remains on the screen until the export process completes. During the export process, all
interaction with the report being exported is disabled. The only way to interact with the report is to wait until the
export process completes, or to cancel the export.
When the export completes, the PDF is loaded into the default PDF viewer on the computer.
Next steps
There are all sorts of interesting visual elements and features in Power BI Desktop. For more information in
information, check out the following resources:
Use visual elements to enhance Power BI reports
What is Power BI Desktop?
Use Q&A in Power BI Desktop for natural language
queries
4/1/2019 • 10 minutes to read • Edit Online
Using common phrases and natural language to ask questions of your data is powerful. Even more powerful is
when your data answers, which is what Q&A in Power BI Desktop lets you do.
To enable Q&A to successfully interpret the large collection of questions it's capable of responding to, Q&A must
make assumptions about the model. If the structure of your model doesn't meet one or more of these
assumptions, you'll need to adjust your model. Those adjustments for Q&A are the same best-practice
optimizations for any model in Power BI, regardless whether you use Q&A.
NOTE
Q&A is only available when working with a model that contains imported data or to Live connections to SSAS. DirectQuery
models are not supported.
Q&A requires the following C runtime update if you're using a version of Windows prior to Windows 10. You can try
installing important updates from Windows Update or manually install the required component from Microsoft
(KB2999226). https://support.microsoft.com/help/2999226/update-for-universal-c-runtime-in-windows
In the following sections, we describe how to adjust your model so it works well with Q&A in Power BI.
Similarly, if you have any full name columns for a person, you’ll want to add First Name and Last Name
columns, just in case someone wants to ask questions using partial names.
Create new tables for multi-value columns
Also a similar situation, if the source from which you're importing your data contains multi-value columns, Power
BI reports (and Q&A) will not reach inside the column to parse out the contents. So, if you have, for example, a
Composer column that contains the names of multiple composers for a song, you should split it into multiple rows
in a separate Composers table.
Needs work
The Synonyms field appears on the right side of Power BI Desktop, where you can add your synonyms, as
showing in the following image.
Be careful when adding synonyms, since adding the same synonym to more than one column or table will
introduce ambiguity. Q&A utilizes context where possible to choose between ambiguous synonyms, but not all
questions have sufficient context. For example, when your user asks “count the customers”, if you have three things
with the synonym “customer” in your model, they might not get the answer they are looking for. In these cases,
make sure the primary synonym is unique, as that is what is used in the restatement. It can alert the user to the
ambiguity (for example, a restatement of “show the number of archived customer records”), hinting they might
want to ask it differently.
Next steps
For more information about features that are in Power BI Desktop, take a look at the following articles:
Use drillthrough in Power BI Desktop
Display a dashboard tile or report visual in Focus mode
Using the Analytics pane in Power BI Desktop
2/13/2019 • 4 minutes to read • Edit Online
With the Analytics pane in Power BI Desktop, you can add dynamic reference lines to visuals, and provide focus
for important trends or insights. The Analytics pane is found in the Visualizations area of Power BI Desktop.
NOTE
The Analytics pane only appears when you select a visual on the Power BI Desktop canvas.
There are all sorts of interesting insights you can highlight by creating dynamic reference lines with the Analytics
pane.
We're planning more features and capabilities, including expanding which visuals can have dynamic reference
lines applied to them, so check back often for what's new.
Apply Forecasting
You can use the Forecast feature by selecting a visual, then expanding the Forecast section of the Analytics
pane. You can specify many inputs to modify the forecast, such as the Forecast length, the Confidence interval, and
others. The following image shows a basic line visual with forecasting applied, but you can use your imagination
(and play around with the forecasting feature) to see how it can apply to your models.
Limitations
The ability to use dynamic reference lines is based on the type of visual being used. The following list shows which
dynamic lines are currently available for which visuals:
Full use of dynamic lines are available on the following visuals:
Area chart
Line chart
Scatter chart
Clustered Column chart
Clustered Bar chart
The following visuals can use only a constant line from the Analytics pane:
Stacked Area
Stacked Bar
Stacked Column
100% Stacked Bar
100% Stacked Column
For the following visuals, a trend line is currently the only option:
Non-stacked Line
Clustered Column chart
Lastly, non-Cartesian visuals cannot currently apply dynamic lines from the Analytics pane, such as:
Matrix
Pie chart
Donut
Table
The percentile line is only available when using imported data in Power BI Desktop or when connected live to a
model on a server running Analysis Service 2016 or later, Azure Analysis Services, or a dataset on the Power
BI service.
Next steps
There are all sorts of things you can do with Power BI Desktop. For more information on its capabilities, check out
the following resources:
What's New in Power BI Desktop
Download Power BI Desktop
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Types in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Use insights in Power BI Desktop to explain increases
and decreases seen in visuals (Preview)
2/26/2019 • 7 minutes to read • Edit Online
Often in visuals, you see a large increase and then a sharp drop in values, and wonder about the cause of such
fluctuations. With insights in Power BI Desktop you can learn the cause with just a few clicks.
For example, consider the following visual that shows Sales Amount by Year and Quarter. A large decrease in sales
occurs in 2014, with sales dropping sharply between Qtr 1 and Qtr 2. In such cases you can explore the data, to
help explain the change that occurred.
You can tell Power BI Desktop to explain increases or decreases in charts, see distribution factors in charts, and
get fast, automated, insightful analysis about your data. Simply right-click on a data point, and select Analyze >
Explain the decrease (or increase, if the previous bar was lower), or Analyze > Find where this distribution is
different and insight is delivered to you in an easy-to-use window.
The insights feature is contextual, and is based on the immediately previous data point - such as the previous bar,
or column.
NOTE
This feature is in preview, and is subject to change. The insight feature is enabled and on by default (you don't need to check
a Preview box to enable it) beginning with the September 2017 version of Power BI Desktop.
Using insights
To use insights to explain increases or decreases seen on charts, just right-click on any data point in a bar or line
chart, and select Analyze > Explain the increase (or Explain the decrease, since all insights are based on the
change from the previous data point).
Power BI Desktop then runs its machine learning algorithms over the data, and populates a window with a visual
and a description that describes which categories most influenced the increase or decrease. By default, insights are
provided as a waterfall visual, as shown in the following image.
By selecting the small icons at the bottom of the waterfall visual, you can choose to have insights display a scatter
chart, stacked column chart, or a ribbon chart.
The thumbs up and thumbs down icons at the top of the page are provided so you can provide feedback about the
visual and the feature. Doing so provides feedback, but it does not currently train the algorithm to influence the
results returned next time you use the feature.
And importantly, the + button at the top of the visual lets you add the selected visual to your report, just as if you
created the visual manually. You can then format or otherwise adjust the added visual just as you would to any
other visual on your report. You can only add a selected insight visual when you're editing a report in Power BI
Desktop.
You can use insights when your report is in reading or editing mode, making it versatile for both analyzing data,
and for creating visuals you can easily add to your reports.
Note that data items whose value was blank in either period will not appear on the scatter plot (for example, Home
Appliances in this case)
The 100% stacked column chart
The 100% stacked column chart visual shows the value of the measure before and after, by the selected column,
shown as a 100% stacked column. This allows side-by-side comparison of the contribution before and after. The
tooltips show the actual contribution for the selected value.
When ranking the column as to which have the largest differences in the relative contributions, the following is
considered:
The cardinality is factored in, as a difference is less statistically significant, and less interesting, when a
column has a large cardinality.
Differences for those categories where the original values were very high or very close to zero are weighted
higher than others. For example, if a Category only contributed 1% of sales, and this changed to 6%, that is
more statistically significant, and therefore considered more interesting, than a Category whose contribution
changed from 50% to 55%.
Various heuristics are employed to select the most meaningful results, for example by considering other
relationships between the data.
After examining different columns, those that show the biggest change to relative contribution are chosen and
output. For each, the values which had the most significant change to contribution are called out in the description.
In addition, the values that had the largest actual increases and decreases are also called out.
Next steps
For more information about Power BI Desktop, and how to get started, check out the following articles.
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Use insights in Power BI Desktop to find where a
distribution is different (Preview)
2/13/2019 • 8 minutes to read • Edit Online
Often in visuals, you see a data point, and wonder about whether distribution would be the same for different
categories. With insights in Power BI Desktop you can find out with just a few clicks.
Consider the following visual, which shows Total Sales by Country. As the chart shows, most sales come from the
United States, accounting for 57% of all sales with lessor contributions coming from the other countries. It's often
interesting in such cases to explore whether that same distribution would be seen for different sub-populations. For
example, is this the same for all years, all sales channels, and all categories of products? While you could apply
different filters and compare the results visually, doing so can be time consuming and error prone.
You can tell Power BI Desktop to find where a distribution is different, and get fast, automated, insightful analysis
about your data. Simply right-click on a data point, and select Analyze > Find where the distribution is
different, and insight is delivered to you in an easy-to-use window.
In this example, the automated analysis quickly shows that for Touring Bikes, the proportion of sales in the United
States and Canada are lower, while the proportion coming from the other countries is higher.
NOTE
This feature is in preview, and is subject to change. The insight feature is enabled and on by default (you don't need to check
a Preview box to enable it) beginning with the September 2017 version of Power BI Desktop.
Using insights
To use insights to find where distributions seen on charts are different, just right-click on any data point (or on the
visual as a whole), and select Analyze > Find where the distribution is different.
Power BI Desktop then runs its machine learning algorithms over the data, and populates a window with a visual
and a description that describes which categories (columns), and which values of those columns, result in the most
significantly different distribution. Insights are provided as a column chart, as shown in the following image.
The values with the selected filter applied are shown using the normal default color. The overall values, as seen on
the original starting visual, are shown in grey for easy comparison. Up to three different filters might be included
(Touring Bikes, Mountain Bikes, Road Bikes in this example) and different filters can be chosen by clicking on them
(or using ctrl-click to select multiple).
For simple additive measures, like Total Sales in this example, the comparison is based on the relative, rather than
absolute, values. Hence while the sales for Touring Bikes is certainly lower than overall sales for all categories, by
default the visual uses a dual axis to allow the comparison between the proportion of sales across different
countries, for Touring Bikes versus all categories of bikes. Switching the toggle below the visual allows the two
values to be displayed in the same axis, allowing the absolute values to easily be compared (as shown in the
following image).
The descriptive text also gives some indication of the level of importance that might be attached to a filter value, by
given the number of records that match the filter. So in this example, you can see that while the distribution for
Touring Bikes might be significantly different, they account for only 16.6% of records.
The thumbs up and thumbs down icons at the top of the page are provided so you can provide feedback about the
visual and the feature. Doing so provides feedback, but it does not currently train the algorithm to influence the
results returned next time you use the feature.
And importantly, the + button at the top of the visual lets you add the selected visual to your report, just as if you
created the visual manually. You can then format or otherwise adjust the added visual just as you would to any
other visual on your report. You can only add a selected insight visual when you're editing a report in Power BI
Desktop.
You can use insights when your report is in reading or editing mode, making it versatile for both analyzing data,
and for creating visuals you can easily add to your reports.
USA 15
Canada 5
Then for a particular category of product “Road Bike) the split of sales might be:
USA 3
Canada 1
While the numbers are different in each of those tables, the relative values between USA and Canada are identical
(75% and 25% overall, and for Road Bikes). Because of that, these are not considered different. For simple additive
measures like this, the algorithm is therefore looking for differences in the relative value.
By contrast consider a measure like margin, that is calculated as Profit/Cost, and say that the overall margins for
the USA and Canada were the following
USA 15
Canada 5
Then for a particular category of product “Road Bike) the split of sales might be:
USA 3
COUNTRY MARGIN (%)
Canada 1
Given the nature of such measures, this is considered interestingly different. So for non-additive measures such as
this margin example, the algorithm is looking for differences in the absolute value.
The visuals displayed are thus intended to clearly show the differences found between the overall distribution (as
seen in the original visual) and the value with the particular filter applied.
So for additive measures, like Sales in the previous example, a column and line chart is used, where the use of a
dual axis with appropriate scaling such that the relative values can easily be compared. The columns show the value
with the filter applied, and the line shows the overall value (with the column axis being on the left, and the line axis
on the right, as normal). The line is shown using a stepped style, with a dashed line, filled with grey, For the
previous example, if the column axis maximum value is 4, and the line axis maximum value is 20, then it would
allow easy comparison of the relative values between USA and Canada for the filtered and overall values.
Similarly, for non-additive measures like Margin in the previous example, a column and line chart is used, where
the use of a single axis means the absolute values can easily be compared. Again the line (filled with grey) shows
the overall value. Whether comparing actual or relative numbers, the determination of the degree to which two
distributions are different is not simply a matter of calculating the difference in the values. For example:
The size of the population is factored in, as a difference is less statistically significant and less interesting
when it applies to a smaller proportion of the overall population. As an example, the distribution of sales
across countries might be very different for some particular product, this would not be considered
interesting if there were thousands of products, and hence that particular product accounted for only a small
percentage of the overall sales.
Differences for those categories where the original values were very high or very close to zero are weighted
higher than others. For example, if a country overall contributes only 1% of sales, but for some particular
type of product contributes 6%, that is more statistically significant, and therefore considered more
interesting, than a country whose contribution changed from 50% to 55%.
Various heuristics are employed to select the most meaningful results, for example by considering other
relationships between the data.
After examining different columns, and the values for each of those columns, the set of values that give the biggest
differences are chosen. For ease of understanding, these are then output grouped by column, with the column
whose values give the biggest difference listed first. Up to three values are shown per column, but less might be
shown either if there were less than three values that have a large effect, or if some values are much more
impactful than others.
It is not necessarily the case that all of the columns in the model will be examined in the time available, so it is not
guaranteed that the most impactful columns and values are displayed. However, various heuristics are employed to
ensure that the most likely columns are examined first. For example, say that after examining all the columns, it is
determined that the following columns/values have the biggest impact on the distribution, from most impact to
least:
Channel = Direct (only Direct listed, if it’s level of impact was much greater than Store)
Next steps
For more information about Power BI Desktop, and how to get started, check out the following articles.
What is Power BI Desktop?
Query Overview with Power BI Desktop
Data Sources in Power BI Desktop
Connect to Data in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Common Query Tasks in Power BI Desktop
Use bookmarks to share insights and build stories in
Power BI
2/26/2019 • 9 minutes to read • Edit Online
Using bookmarks in Power BI help you capture the currently configured view of a report page, including filtering
and the state of visuals, and later let you go back to that state by simply selecting the saved bookmark.
You can also create a collection of bookmarks, arrange them in the order you want, and subsequently step through
each bookmark in a presentation to highlight a series of insights, or the story you want to tell with your visuals and
reports.
There are many uses for bookmarking. You can use them to keep track of your own progress in creating reports
(bookmarks are easy to add, delete, and rename) and you can create bookmarks to build a PowerPoint-like
presentation that steps through bookmarks in order, thereby telling a story with your report. There may be other
uses, too, based on how you think bookmarks could best be used.
TIP
For information about using Personal Bookmarks in the Power BI service, take a look at the blog announcement of the
Personal Bookmarks feature.
You'll need to restart Power BI Desktop after you make the selection to enable the preview version of bookmarks.
Using bookmarks
To use bookmarks, select the View ribbon, then select the box for Bookmarks Pane.
When you create a bookmark, the following elements are saved with the bookmark:
The current page
Filters
Slicers, including slicer type (for example, dropdown or list) and slicer state
Visual selection state (such as cross-highlight filters)
Sort order
Drill location
Visibility (of an object, using the Selection pane)
The focus or Spotlight modes of any visible object
Configure a report page the way you want it to appear in the bookmark. Once your report page and visuals are
arranged how you want them, select Add from the Bookmarks pane to add a bookmark.
Power BI Desktop creates a bookmark and gives it a generic name. You can easily rename, delete, or update a
bookmark by selecting the ellipses next to the bookmark's name, then selecting an action from the menu that
appears.
Once you have a bookmark, you can display it by simply clicking on the bookmark in the Bookmarks pane.
You can also select whether each bookmark will apply data properties, such as filters and slicers, the display
properties such as spotlight and its visibility, and page changes that presents the page that was visible when the
bookmark was added. These capabilities are useful when you use bookmarks to switch between report views or
selections of visuals - in which case you would likely want to turn data properties off, so filters aren't reset when
users switch views by selecting a bookmark.
To make such changes select the ellipses next to the bookmark's name, as shown in the previous image, then select
or unselect the check marks next to Data, Display, and other controls.
Arranging bookmarks
As you create bookmarks, you might find that the order in which you create them isn't necessarily the same order
you'd like to present them to your audience. No problem, you can easily rearrange the order of bookmarks.
In the Bookmarks pane, simply drag-and-drop bookmarks to change their order, as shown in the following image.
The yellow bar between bookmarks designates where the dragged bookmark will be placed.
The order of your bookmarks can become important when you use the View feature of bookmarks, as described
in the next section.
You can select an object using the Selection pane. Also, you can toggle whether the object is currently visible by
clicking the eye icon to the right of the visual.
When a bookmark is added, the visible status of each object is also saved based on its setting in the Selection
pane.
It's important to note that slicers continue to filter a report page, regardless of whether they are visible. As such,
you can create many different bookmarks, with different slicer settings, and make a single report page appear very
different (and highlight different insights) in various bookmarks.
Bookmark groups
Beginning with the August 2018 release of Power BI Desktop, you can create and use bookmark groups. A
bookmark group is a collection of bookmarks that you specify, which can be shown and organized as a group.
To create a bookmark group, hold down the CTRL key and select the bookmarks you want to include in the group,
then click the ellipses beside any of the selected bookmarks, and select Group from the menu that appears.
Power BI Desktop automatically names the group Group 1. Fortunately, you can just double-click on the name
and rename it to whatever you want.
With any bookmark group, clicking on the bookmark group's name only expands or collapses the group of
bookmarks, and does not represent a bookmark by itself.
When using the View feature of bookmarks, the following applies:
If the selected bookmark is in a group when you select View from bookmarks, only the bookmarks in that
group are shown in the viewing session.
If the selected bookmark is not in a group, or is on the top level (such as the name of a bookmark group),
then all bookmarks for the entire report are played, including bookmarks in any group.
To ungroup bookmarks, just select any bookmark in a group, click the ellipses, and then select Ungroup from the
menu that appears.
Note that selecting Ungroup for any bookmark from a group takes all bookmarks out of the group (it deletes the
group, but not the bookmarks themselves). So to remove a single bookmark from a group, you need to Ungroup
any member from that group, which deletes the grouping, then select the members you want in the new group
(using CTRL and clicking each bookmark), and select Group again.
Using Spotlight
Another feature released with bookmarks is Spotlight. With Spotlight you can draw attention to a specific chart,
for example, when presenting your bookmarks in View mode.
Let's compare Spotlight to focus mode to see how they differ.
1. In focus mode, you can have one visual fill the entire canvas by selecting the focus mode icon.
2. Using Spotlight, you can highlight one visual in its original size, by making all other visuals on the page fade to
near transparency.
When the visual in the previous image has its focus icon clicked, the page looks like the following:
In contrast, when Spotlight is selected from the visual's ellipses menu, the page looks like what you seen here:
If either mode is selected when a bookmark is added, that mode (focus or Spotlight) is retained in the bookmark.
In the Power BI service the Bookmarks pane operates just as it does in Power BI Desktop, including the ability
to select View to show your bookmarks in order, like a slide show.
Note that you must use the gray bookmark title bar to navigate through the bookmarks, and not the black arrows
(the black arrows move you through report pages, not bookmarks).
Next steps
For more information about features that are similar or interact with bookmarks, take a look at the following
articles:
Use drillthrough in Power BI Desktop
Display a dashboard tile or report visual in Focus mode
Use Report Themes in Power BI Desktop
2/13/2019 • 34 minutes to read • Edit Online
With Report Themes you can apply a color theme to your entire report, such as corporate colors, seasonal
coloring, or other color themes. When you apply a Report Theme, all visuals in your report use the colors from
your selected theme. A few exceptions apply, and they're described later in this article.
When you apply a Report Theme, you need a JSON file that uses a basic structure. You can then import this
JSON file into Power BI Desktop and apply it to your report. The JSON file structure, and the process of
importing it, are quick and easy (just a few button clicks).
Starting with the September 2017 version of Power BI Desktop, you can define even more report theme
elements by using a JSON file. You can also customize and standardize nearly all elements. To customize, you use
the JSON file, which you manually adjust in the Formatting pane. The goal with the September 2017 release
(and later) is to give you full control over how your reports look and feel, to a granular level.
Enable Report themes
Starting with the August 2018 version of Power BI Desktop, report theming is generally available and doesn't
need to be enabled.
If you're using an earlier version of Power BI Desktop, you can enable it as a preview feature by taking the
following steps:
1. Select File > Options and Settings > Options > Preview Features.
2. Next, select the check box next to Custom Report Themes.
You'll need to restart Power BI Desktop after you make the selection.
We always recommend that you upgrade to the most recent version of Power BI Desktop, which you can get
from a link in Get Power BI Desktop.
Default
City park
Classroom
Colorblind safe
Electric
High contrast
Sunset
Twilight
To select from available built-in report themes, select Switch Theme button from the Home ribbon, then select
one of the included themes from the drop-down menu.
Your report theme is applied to the report, and you're ready to go.
Importing Report Themes
To import a custom Report Theme, select the Switch Theme button from the Home ribbon. Then select Import
Theme from the drop-down menu.
A window appears that lets you browse to the location of the JSON theme file. Power BI Desktop looks for JSON
files because JSON is the Power BI Report Theme file type. In the following image, a handful of holiday theme
files are available. We'll choose a holiday theme for March.
When the theme file has loaded successfully, Power BI Desktop lets you know.
Now that we've imported a theme file, let's take a look at the simple and straightforward JSON file structure.
{
"name": "St Patricks Day",
"dataColors": ["#568410", "#3A6108", "#70A322", "#915203", "#D79A12", "#bb7711", "#114400",
"#aacc66"],
"background":"#FFFFFF",
"foreground": "#3A6108",
"tableAccent": "#568410"
}
From there, you can enter your own color hex code for your selected colors.
Starting with the September 2017 version of Power BI Desktop, the JSON file can be much more elaborate. In
the JSON file, you define only the formatting that you want to adjust, and anything that's not specified in your
JSON file simply reverts to the Power BI default settings.
The advantages of creating a JSON file are many. For example, you can specify that all charts use a font size of 12,
or that certain visuals use a particular font family. Or you can turn off data labels for specific chart types.
When you use a granular JSON file, you can create a theme file that standardizes your charts and reports, making
it easy for your organization's reports to be consistent.
For information about the format of the detailed JSON file, see the Report theme JSON file format section
later in this article.
See all that green? That's because those colors were part of the Report Theme that we imported and applied.
Situations when Report Theme colors won't stick to your reports
Let's say you apply a custom color set (or individual color) to a particular data point in a visual. When you apply a
Report Theme, it will not override that customized data point color.
Maybe you also want to manually set the color of a data point color by using the Theme colors section. The colors
will not be updated when you apply a new Report Theme. If you want to get your default colors back, so they'll
update when you apply a new Report Theme, select Revert to default in the Theme colors palette.
Also, many Custom Visuals won't apply to Report Themes.
The theme that's easier to read for the visually impaired than the default color theme. It's called
ColorblindSafe-Longer.json.
A group of Power View themes wrapped in a zip file, including one called Apothecary.json, which is shown
below.
{
"name": "Valentine's Day",
"dataColors": ["#990011", "#cc1144", "#ee7799", "#eebbcc", "#cc4477", "#cc5555", "#882222",
"#A30E33"],
"background":"#FFFFFF",
"foreground": "#ee7799",
"tableAccent": "#990011"
}
Report Themes can make your Power BI Desktop reports a colorful reflection of you, your organization, or even
the current season or holiday.
Here are a few more report themes you can use as starting points:
Sunflower-twilight
Plum
Autumn
High contrast
visualStyles: {
visualName: {
styleName: {
cardName: [{
propertyName: propertyValue
}]
}
}
}
For the visualName and cardName sections, use a specific visual and cardName. Use an asterisk ("*") if you
want that setting to apply to all visuals or cards that have a property for a specific visual. You can also use the
asterisk ("*") when you want to apply a setting globally in your report, such as a font size or specific font family for
the visuals.
NOTE
You only need to specify the formatting elements you want to adjust. Any formatting elements that are not included in the
JSON file simply revert to their default values and settings.
“datetime’2011-10-05T14:48:00.000Z’”
Booleans are either true or false. Strings must be in double quotes, as in "this is a string".
VISUALNAME
areaChart
barChart
basicShape
card
clusteredBarChart
clusteredColumnChart
columnChart
comboChart
donutChart
VISUALNAME
filledMap
funnel
gauge
hundredPercentStackedBarChart
hundredPercentStackedColumnChart
image
kpi
lineChart
lineClusteredColumnComboChart
lineStackedColumnComboChart
map
multiRowCard
pieChart
pivotTable
ribbonChart
scatterChart
shapeMap
slicer
stackedAreaChart
tableEx
treemap
waterfallChart
The following table defines cardName values. The first value in each cell is the JSON file term. The second value
is the name of the card as seen in the Power BI Desktop user interface.
CARDNAME
breakdown: Breakdown
bubbles: Bubbles
card: Card
categoryAxis: X-Axis
fill: Fill
forecast: Forecast
general: General
goals: Goals
grid: Grid
header: Header
imageScaling: Scaling
indicator: Indicator
items: Items
legend: Legend
lineStyles: Shapes
ribbonChart: Ribbons
rotation: Rotation
shape: Shape
slider: Slider
subTotals: Subtotals
target: Target
valueAxis: Y-Axis
values: Values
zoom: Zoom
"general":
"responsive": {
"type": [
"bool"
],
"displayName": [
"(Preview) Responsive"
],
"description": [
"The visual will adapt to size changes"
]
}
"legend": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Select the location for the legend"
]
},
"showTitle": {
"type": [
"bool"
],
"displayName": [
"Title"
],
"description": [
"Display a title for legend symbols"
]
},
"labelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
]
}
},
"categoryAxis": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"axisScale": {
"type": [
"enumeration"
],
"displayName": [
"Scale type"
]
},
"start": {
"type": [
"numeric",
"dateTime"
],
"displayName": [
"Start"
],
"description": [
"Enter a starting value (optional)"
]
},
"end": {
"type": [
"numeric",
"dateTime"
],
"displayName": [
"End"
],
"description": [
"Enter an ending value (optional)"
]
},
"axisType": {
"type": [
"enumeration"
],
"displayName": [
"Type"
]
},
"showAxisTitle": {
"type": [
"bool"
],
"displayName": [
"Title"
],
"description": [
"Title for the X-axis",
"Title for the Y-axis"
]
},
"axisStyle": {
"type": [
"enumeration"
],
"displayName": [
"Style"
"Style"
]
},
"labelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"labelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"labelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"concatenateLabels": {
"type": [
"bool"
],
"displayName": [
"Concatenate labels"
],
"description": [
"Always concatenate levels of the hierarchy instead of drawing the hierarchy."
]
},
"preferredCategoryWidth": {
"type": [
"numeric"
],
"displayName": [
"Minimum category width"
]
},
"titleColor": {
"type": [
"type": [
"fill"
],
"displayName": [
"Title color"
]
},
"titleFontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"titleFontSize": {
"type": [
"formatting"
],
"displayName": [
"Title text size"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Select left or right"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"duration": {
"type": [
"numeric"
]
}
},
"valueAxis": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Select left or right"
]
]
},
"axisScale": {
"type": [
"enumeration"
],
"displayName": [
"Scale type"
]
},
"start": {
"type": [
"numeric",
"dateTime"
],
"displayName": [
"Start"
],
"description": [
"Enter a starting value (optional)"
]
},
"end": {
"type": [
"numeric",
"dateTime"
],
"displayName": [
"End"
],
"description": [
"Enter an ending value (optional)"
]
},
"showAxisTitle": {
"type": [
"bool"
],
"displayName": [
"Title"
],
"description": [
"Title for the Y-axis",
"Title for the X-axis"
]
},
"axisStyle": {
"type": [
"enumeration"
],
"displayName": [
"Style"
]
},
"labelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"labelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"labelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"titleColor": {
"type": [
"fill"
],
"displayName": [
"Title color"
]
},
"titleFontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"titleFontSize": {
"type": [
"formatting"
],
"displayName": [
"Title text size"
]
},
"axisLabel": {
"type": [
"none"
],
"displayName": [
"Y-Axis (Column)"
]
},
"secShow": {
"type": [
"bool"
],
"displayName": [
"Show secondary"
]
},
"alignZeros": {
"type": [
"bool"
],
"displayName": [
"Align zeros"
],
"description": [
"Align the zero tick marks for both value axes"
]
},
"secAxisLabel": {
"type": [
"none"
],
"displayName": [
"Y-Axis (Line)"
]
},
"secPosition": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Select left or right"
]
},
"secAxisScale": {
"type": [
"enumeration"
],
"displayName": [
"Scale type"
]
},
"secStart": {
"type": [
"numeric"
],
"displayName": [
"Start"
],
"description": [
"Enter a starting value (optional)"
]
},
"secEnd": {
"type": [
"numeric"
],
"displayName": [
"End"
],
"description": [
"Enter an ending value (optional)"
]
},
"secShowAxisTitle": {
"type": [
"bool"
],
"displayName": [
"Title"
],
],
"description": [
"Title for the Y-axis"
]
},
"secAxisStyle": {
"type": [
"enumeration"
],
"displayName": [
"Style"
]
},
"secLabelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
]
},
"secFontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"secFontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"secLabelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"secLabelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"secTitleColor": {
"type": [
"fill"
],
"displayName": [
"Title color"
]
},
"secTitleFontFamily": {
"type": [
"formatting"
"formatting"
],
"displayName": [
"Font family"
]
},
"secTitleFontSize": {
"type": [
"formatting"
],
"displayName": [
"Title text size"
]
}
},
"dataPoint": {
"defaultColor": {
"type": [
"fill"
],
"displayName": [
"Default color",
"Default Column Color"
]
},
"fill": {
"type": [
"fill"
],
"displayName": [
"Fill"
]
},
"defaultCategoryColor": {
"type": [
"fill"
],
"displayName": [
"Default color",
"Default Column Color"
]
},
"showAllDataPoints": {
"type": [
"bool"
],
"displayName": [
"Show all"
]
}
},
"labels": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"showSeries": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"labelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"labelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"showAll": {
"type": [
"bool"
],
"displayName": [
"Customize series"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"labelDensity": {
"type": [
"formatting"
],
"displayName": [
"Label density"
]
},
"labelOrientation": {
"type": [
"enumeration"
],
"displayName": [
"Orientation"
"Orientation"
]
},
"labelPosition": {
"type": [
"enumeration"
],
"displayName": [
"Position"
]
},
"percentageLabelPrecision": {
"type": [
"numeric"
],
"displayName": [
"% decimal places"
],
"description": [
"Select the number of decimal places to display for the percentages"
]
},
"labelStyle": {
"type": [
"enumeration"
],
"displayName": [
"Label style"
]
}
},
"lineStyles": {
"strokeWidth": {
"type": [
"numeric"
],
"displayName": [
"Stroke width"
]
},
"strokeLineJoin": {
"type": [
"enumeration"
],
"displayName": [
"Join type"
]
},
"lineStyle": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
},
"showMarker": {
"type": [
"bool"
],
"displayName": [
"Show marker"
]
},
"markerShape": {
"type": [
"enumeration"
],
"displayName": [
"Marker shape"
"Marker shape"
]
},
"markerSize": {
"type": [
"numeric"
],
"displayName": [
"Marker size"
]
},
"markerColor": {
"type": [
"fill"
],
"displayName": [
"Marker color"
]
},
"showSeries": {
"type": [
"bool"
],
"displayName": [
"Customize series",
"Show"
]
},
"shadeArea": {
"type": [
"bool"
],
"displayName": [
"Shade area"
]
}
},
"plotArea": {
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for background color"
]
}
},
"trend": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"displayName": {
"type": [
"text"
],
"displayName": [
"Name"
],
"description": [
"Set trend line name"
]
},
"lineColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set trend line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for trend line color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Style"
],
"description": [
"Set trend line style"
]
},
"combineSeries": {
"type": [
"bool"
],
"displayName": [
"Combine Series"
],
"description": [
"Show one trend line per series or combine"
]
}
},
"y1AxisReferenceLine": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"value": {
"type": [
"numeric"
],
"displayName": [
"Value"
],
"description": [
"Set reference line numeric value"
]
},
"lineColor": {
"type": [
"fill"
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set reference line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for reference line color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Arrange relative to chart data points"
]
},
"dataLabelShow": {
"type": [
"bool"
],
"displayName": [
"Data label"
],
"description": [
"Display a data label for the reference line"
]
},
"dataLabelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set the reference line data label color"
]
},
"dataLabelDecimalPoints": {
"type": [
"numeric"
],
"displayName": [
"Decimal Places"
]
},
"dataLabelHorizontalPosition": {
"dataLabelHorizontalPosition": {
"type": [
"enumeration"
],
"displayName": [
"Horizontal Position"
],
"description": [
"Set the horizontal position for the reference line data label"
]
},
"dataLabelVerticalPosition": {
"type": [
"enumeration"
],
"displayName": [
"Vertical Position"
],
"description": [
"Set the vertical position for the reference line data label"
]
},
"dataLabelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
}
},
"referenceLine": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"displayName": {
"type": [
"text"
],
"displayName": [
"Name"
],
"description": [
"Set reference line name"
]
},
"value": {
"type": [
"numeric"
],
"displayName": [
"Value"
],
"description": [
"Set reference line numeric value"
]
},
"lineColor": {
"type": [
"fill"
],
"displayName": [
"displayName": [
"Color"
],
"description": [
"Set reference line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for reference line color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Arrange relative to chart data points"
]
},
"dataLabelShow": {
"type": [
"bool"
],
"displayName": [
"Data label"
],
"description": [
"Display a data label for the reference line"
]
},
"dataLabelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set the reference line data label color"
]
},
"dataLabelDecimalPoints": {
"type": [
"numeric"
],
"displayName": [
"Decimal Places"
]
},
"dataLabelHorizontalPosition": {
"type": [
"enumeration"
"enumeration"
],
"displayName": [
"Horizontal Position"
],
"description": [
"Set the horizontal position for the reference line data label"
]
},
"dataLabelVerticalPosition": {
"type": [
"enumeration"
],
"displayName": [
"Vertical Position"
],
"description": [
"Set the vertical position for the reference line data label"
]
},
"dataLabelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
}
},
"line": {
"lineColor": {
"type": [
"fill"
],
"displayName": [
"Line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for background color"
]
},
"weight": {
"type": [
"numeric"
],
"displayName": [
"Weight"
]
},
"roundEdge": {
"type": [
"numeric"
],
"displayName": [
"Round edges"
]
}
},
"fill": {
"fill": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"fillColor": {
"type": [
"fill"
],
"displayName": [
"Fill color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for background color"
]
}
},
"rotation": {
"angle": {
"type": [
"numeric"
],
"displayName": [
"Rotation"
]
}
},
"categoryLabels": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"wordWrap": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
}
},
"dataLabels": {
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"cardTitle": {
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"card": {
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"outlineColor": {
"type": [
"fill"
],
"displayName": [
"Outline color"
],
"description": [
"Color of the outline"
]
},
"outlineWeight": {
"type": [
"numeric"
],
"displayName": [
"Outline weight"
],
"description": [
"Thickness of the outline in pixels"
]
},
"barShow": {
"type": [
"bool"
],
"displayName": [
"Show bar"
],
"description": [
"Display a bar to the left side of the card as an accent"
]
},
"barColor": {
"type": [
"fill"
],
"displayName": [
"Bar color"
]
},
"barWeight": {
"type": [
"numeric"
],
"displayName": [
"Bar thickness"
],
"description": [
"Thickness of the bar in pixels"
]
},
"cardPadding": {
"type": [
"type": [
"numeric"
],
"displayName": [
"Padding"
],
"description": [
"Background"
]
},
"cardBackground": {
"type": [
"fill"
],
"displayName": [
"Background"
]
}
},
"percentBarLabel": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"axis": {
"min": {
"type": [
"numeric"
],
"displayName": [
"Min"
]
},
"max": {
"type": [
"numeric"
],
"displayName": [
"displayName": [
"Max"
]
},
"target": {
"type": [
"numeric"
],
"displayName": [
"Target"
]
}
},
"target": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"labelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"labelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
]
}
},
"calloutValue": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Select color for data labels"
]
},
"labelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"labelPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
}
},
"forecast": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"displayName": {
"type": [
"text"
],
"displayName": [
"Name"
],
"description": [
"Set forecast name"
]
},
"confidenceBandStyle": {
"type": [
"enumeration"
],
],
"displayName": [
"Confidence band style"
],
"description": [
"Set forecast confidence band style"
]
},
"lineColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set forecast line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for background color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
},
"transform": {
"type": [
"queryTransform"
]
}
},
"bubbles": {
"bubbleSize": {
"type": [
"formatting"
],
"displayName": [
"Size"
]
}
},
"mapControls": {
"autoZoom": {
"type": [
"bool"
],
"displayName": [
"Auto zoom"
]
},
"zoomLevel": {
"type": [
"numeric"
]
},
"centerLatitude": {
"type": [
"numeric"
]
},
"centerLongitude": {
"type": [
"numeric"
]
}
},
"mapStyles": {
"mapTheme": {
"type": [
"enumeration"
],
"displayName": [
"Theme"
]
}
},
"shape": {
"map": {
"type": [
"geoJson"
]
},
"projectionEnum": {
"type": [
"enumeration"
],
"displayName": [
"Projection"
],
"description": [
"Projection"
]
}
},
"zoom": {
"autoZoom": {
"type": [
"bool"
],
"displayName": [
"Auto zoom"
],
"description": [
"Zoom in on shapes with available data"
]
},
"selectionZoom": {
"type": [
"bool"
],
"displayName": [
"Selection zoom"
],
"description": [
"Zoom in on selected shapes"
]
},
"manualZoom": {
"type": [
"bool"
],
"displayName": [
"Manual zoom"
],
"description": [
"Allow user to zoom and pan"
]
}
},
"xAxisReferenceLine": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"value": {
"type": [
"numeric"
],
"displayName": [
"Value"
],
"description": [
"Set reference line numeric value"
]
},
"lineColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set reference line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for reference line color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
},
"position": {
"type": [
"enumeration"
],
"displayName": [
"Position"
],
"description": [
"Arrange relative to chart data points"
]
},
"dataLabelShow": {
"type": [
"bool"
],
],
"displayName": [
"Data label"
],
"description": [
"Display a data label for the reference line"
]
},
"dataLabelColor": {
"type": [
"fill"
],
"displayName": [
"Color"
],
"description": [
"Set the reference line data label color"
]
},
"dataLabelDecimalPoints": {
"type": [
"numeric"
],
"displayName": [
"Decimal Places"
]
},
"dataLabelHorizontalPosition": {
"type": [
"enumeration"
],
"displayName": [
"Horizontal Position"
],
"description": [
"Set the horizontal position for the reference line data label"
]
},
"dataLabelVerticalPosition": {
"type": [
"enumeration"
],
"displayName": [
"Vertical Position"
],
"description": [
"Set the vertical position for the reference line data label"
]
},
"dataLabelDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
}
},
"fillPoint": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
}
}
},
"colorByCategory": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
}
},
"plotAreaShading": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"upperShadingColor": {
"type": [
"fill"
],
"displayName": [
"Upper shading"
],
"description": [
"Shading color of the upper region"
]
},
"lowerShadingColor": {
"type": [
"fill"
],
"displayName": [
"Lower shading"
],
"description": [
"Shading color of the lower region"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for background color"
]
}
},
"ratioLine": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"lineColor": {
"type": [
"fill"
],
"displayName": [
"Color"
"Color"
],
"description": [
"Set reference line color"
]
},
"transparency": {
"type": [
"numeric"
],
"displayName": [
"Transparency"
],
"description": [
"Set transparency for line color"
]
},
"style": {
"type": [
"enumeration"
],
"displayName": [
"Line style"
]
}
},
"grid": {
"outlineColor": {
"type": [
"fill"
],
"displayName": [
"Outline color"
],
"description": [
"Color of the outline"
]
},
"outlineWeight": {
"type": [
"numeric"
],
"displayName": [
"Outline weight"
],
"description": [
"Thickness of the outline in pixels"
]
},
"gridVertical": {
"type": [
"bool"
],
"displayName": [
"Vert grid"
],
"description": [
"Show/Hide the vertical gridlines"
]
},
"gridVerticalColor": {
"type": [
"fill"
],
"displayName": [
"Vert grid color"
],
"description": [
"Color for the vertical gridlines"
]
]
},
"gridVerticalWeight": {
"type": [
"numeric"
],
"displayName": [
"Vert grid thickness"
],
"description": [
"Thickness of the vertical gridlines in pixels"
]
},
"gridHorizontal": {
"type": [
"bool"
],
"displayName": [
"Horiz grid"
],
"description": [
"Show/Hide the horizontal gridlines"
]
},
"gridHorizontalColor": {
"type": [
"fill"
],
"displayName": [
"Horiz grid color"
],
"description": [
"Color for the horizontal gridlines"
]
},
"gridHorizontalWeight": {
"type": [
"numeric"
],
"displayName": [
"Horiz grid thickness"
],
"description": [
"Thickness of the horizontal gridlines in pixels"
]
},
"rowPadding": {
"type": [
"numeric"
],
"displayName": [
"Row padding"
],
"description": [
"Padding in pixels applied to top and bottom of every row"
]
},
"imageHeight": {
"type": [
"numeric"
],
"displayName": [
"Image height"
],
"description": [
"The height of images in pixels"
]
},
"textSize": {
"type": [
"type": [
"numeric"
],
"displayName": [
"Text Size"
]
}
},
"columnHeaders": {
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"backColor": {
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the cells"
]
},
"wordWrap": {
"type": [
"bool"
],
"displayName": [
"Word wrap"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"autoSizeColumnWidth": {
"type": [
"bool"
],
"displayName": [
"Auto-size column width"
]
},
"urlIcon": {
"type": [
"bool"
],
"displayName": [
"URL icon"
],
"description": [
"Show an icon instead of the full URL"
]
}
},
"values": {
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"backColor": {
"type": [
"fill"
],
"displayName": [
"Color scales"
]
},
"fontColorPrimary": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the odd rows"
]
},
"backColorPrimary": {
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the odd rows"
]
},
"fontColorSecondary": {
"type": [
"fill"
],
"displayName": [
"Alternate font color"
],
"description": [
"Font color of the even rows"
]
},
"backColorSecondary": {
"type": [
"fill"
],
"displayName": [
"displayName": [
"Alternate background color"
],
"description": [
"Background color of the even rows"
]
},
"urlIcon": {
"type": [
"bool"
],
"displayName": [
"URL icon"
],
"description": [
"Show an icon instead of the full URL"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"wordWrap": {
"type": [
"bool"
],
"displayName": [
"Word wrap"
]
},
"bandedRowHeaders": {
"type": [
"bool"
],
"displayName": [
"Banded row style"
],
"description": [
"Apply banded row style to the last level of the row group headers, using the colors of the
values."
]
},
"valuesOnRow": {
"type": [
"bool"
],
"displayName": [
"Show on rows"
],
"description": [
"Show values in row groups rather than columns"
]
}
},
"total": {
"outline": {
"type": [
"enumeration"
"enumeration"
],
"displayName": [
"Outline"
]
},
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"backColor": {
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the cells"
]
},
"applyToHeaders": {
"type": [
"bool"
],
"displayName": [
"Apply to labels"
]
},
"totals": {
"type": [
"bool"
],
"displayName": [
"Totals"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
}
},
"columnFormatting": {
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"description": [
"Font color of the cells"
]
},
"backColor": {
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the cells"
]
},
"styleHeader": {
"type": [
"bool"
],
"displayName": [
"Color header"
]
},
"styleValues": {
"type": [
"bool"
],
"displayName": [
"Color values"
]
},
"styleTotal": {
"type": [
"bool"
],
"displayName": [
"Color total"
]
},
"styleSubtotals": {
"type": [
"bool"
],
"displayName": [
"Color subtotals"
]
}
},
"rowHeaders": {
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"backColor": {
"type": [
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the cells"
]
},
"wordWrap": {
"type": [
"bool"
],
"displayName": [
"Word wrap"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"stepped": {
"type": [
"bool"
],
"displayName": [
"Stepped layout"
],
"description": [
"Render row headers with stepped layout"
]
},
"steppedLayoutIndentation": {
"type": [
"numeric"
],
"displayName": [
"Stepped layout indentation"
],
"description": [
"Set the indentation, in pixels, applied to row headers"
]
},
"urlIcon": {
"type": [
"bool"
],
"displayName": [
"URL icon"
],
"description": [
"Show an icon instead of the full URL"
]
}
},
"subTotals": {
"outline": {
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"backColor": {
"type": [
"fill"
],
"displayName": [
"Background color"
],
"description": [
"Background color of the cells"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"fontSize": {
"type": [
"formatting"
],
"displayName": [
"Text Size"
]
},
"rowSubtotals": {
"type": [
"bool"
],
"displayName": [
"Total row"
]
},
"columnSubtotals": {
"type": [
"bool"
],
"displayName": [
"Total column"
]
},
"applyToHeaders": {
"type": [
"bool"
],
"displayName": [
"Apply to labels"
]
}
},
"selection": {
"selectAllCheckboxEnabled": {
"type": [
"bool"
],
"displayName": [
"Select All"
]
},
"singleSelect": {
"type": [
"bool"
],
"displayName": [
"Single Select"
]
}
},
"header": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"background": {
"type": [
"fill"
],
"displayName": [
"Background"
]
},
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"textSize": {
"type": [
"numeric"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"items": {
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"background": {
"type": [
"fill"
],
"displayName": [
"Background"
]
},
"outline": {
"type": [
"enumeration"
],
"displayName": [
"Outline"
]
},
"textSize": {
"type": [
"numeric"
],
"displayName": [
"Text Size"
]
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
}
},
"numericInputStyle": {
"fontColor": {
"type": [
"fill"
],
"displayName": [
"Font color"
],
"description": [
"Font color of the cells"
]
},
"textSize": {
"type": [
"numeric"
],
"displayName": [
"Text Size"
]
},
},
"fontFamily": {
"type": [
"formatting"
],
"displayName": [
"Font family"
]
},
"background": {
"type": [
"fill"
],
"displayName": [
"Background"
]
}
},
"slider": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
},
"color": {
"type": [
"fill"
],
"displayName": [
"Color"
]
}
},
"dateRange": {
"includeToday": {
"type": [
"bool"
],
"displayName": [
"Include today"
]
}
},
"sentimentColors": {
"increaseFill": {
"type": [
"fill"
],
"displayName": [
"Increase"
]
},
"decreaseFill": {
"type": [
"fill"
],
"displayName": [
"Decrease"
]
},
"totalFill": {
"type": [
"fill"
],
"displayName": [
"Total"
]
]
},
"otherFill": {
"type": [
"fill"
],
"displayName": [
"Other"
]
}
},
"breakdown": {
"maxBreakdowns": {
"type": [
"integer"
],
"displayName": [
"Max breakdowns"
],
"description": [
"The number of individual breakdowns to show (rest grouped into Other)"
]
}
},
"indicator": {
"indicatorDisplayUnits": {
"type": [
"formatting"
],
"displayName": [
"Display units"
],
"description": [
"Select the units (millions, billions, etc.)"
]
},
"indicatorPrecision": {
"type": [
"numeric"
],
"displayName": [
"Value decimal places"
],
"description": [
"Select the number of decimal places to display for the values"
]
},
"kpiFormat": {
"type": [
"text"
],
"displayName": [
"Format"
]
}
},
"trendline": {
"show": {
"type": [
"bool"
],
"displayName": [
"Show"
]
}
},
"goals": {
"showGoal": {
"type": [
"bool"
"bool"
],
"displayName": [
"Goal"
]
},
"showDistance": {
"type": [
"bool"
],
"displayName": [
"Distance"
]
}
},
"status": {
"direction": {
"type": [
"enumeration"
],
"displayName": [
"Direction"
]
},
"goodColor": {
"type": [
"fill"
],
"displayName": [
"Good Color"
]
},
"neutralColor": {
"type": [
"fill"
],
"displayName": [
"Neutral Color"
]
},
"badColor": {
"type": [
"fill"
],
"displayName": [
"Bad Color"
]
}
}
{
"legend": {
"position": [
{
"value": "Top",
"displayName": "Top"
},
{
"value": "Bottom",
"displayName": "Bottom"
},
{
"value": "Left",
"displayName": "Left"
"displayName": "Left"
},
{
"value": "Right",
"displayName": "Right"
},
{
"value": "TopCenter",
"displayName": "Top Center"
},
{
"value": "BottomCenter",
"displayName": "Bottom Center"
},
{
"value": "LeftCenter",
"displayName": "Left Center"
},
{
"value": "RightCenter",
"displayName": "Right center"
}
],
"legendMarkerRendering": [
{
"value": "markerOnly",
"displayName": "Markers only"
},
{
"value": "lineAndMarker",
"displayName": "Line and markers"
},
{
"value": "lineOnly",
"displayName": "Line only"
}
]
},
"categoryAxis": {
"axisScale": [
{
"value": "linear",
"displayName": "Linear"
},
{
"value": "log",
"displayName": "Log"
}
],
"axisType": [
{
"value": "Scalar",
"displayName": "Continuous"
},
{
"value": "Categorical",
"displayName": "Categorical"
}
],
"axisStyle": [
{
"value": "showTitleOnly",
"displayName": "Show title only"
},
{
"value": "showUnitOnly",
"displayName": "Show unit only"
},
{
"value": "showBoth",
"value": "showBoth",
"displayName": "Show both"
}
],
"gridlineStyle": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
],
"position": [
{
"value": "Left",
"displayName": "Left"
},
{
"value": "Right",
"displayName": "Right"
}
]
},
"valueAxis": {
"position": [
{
"value": "Left",
"displayName": "Left"
},
{
"value": "Right",
"displayName": "Right"
}
],
"axisScale": [
{
"value": "linear",
"displayName": "Linear"
},
{
"value": "log",
"displayName": "Log"
}
],
"axisStyle": [
{
"value": "showTitleOnly",
"displayName": "Show title only"
},
{
"value": "showUnitOnly",
"displayName": "Show unit only"
},
{
"value": "showBoth",
"displayName": "Show both"
}
],
"gridlineStyle": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
],
"secPosition": [
{
"value": "Left",
"displayName": "Left"
},
{
"value": "Right",
"displayName": "Right"
}
],
"secAxisScale": [
{
"value": "linear",
"displayName": "Linear"
},
{
"value": "log",
"displayName": "Log"
}
],
"secAxisStyle": [
{
"value": "showTitleOnly",
"displayName": "Show title only"
},
{
"value": "showUnitOnly",
"displayName": "Show unit only"
},
{
"value": "showBoth",
"displayName": "Show both"
}
]
},
"lineStyles": {
"strokeLineJoin": [
{
"value": "miter",
"displayName": "Miter"
},
{
"value": "round",
"displayName": "Round"
},
{
"value": "bevel",
"displayName": "Bevel"
}
],
"lineStyle": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"value": "dotted",
"displayName": "Dotted"
}
],
"markerShape": [
{
"value": "circle",
"displayName": "●"
},
{
"value": "square",
"displayName": "■"
},
{
"value": "diamond",
"displayName": "◆"
},
{
"value": "triangle",
"displayName": "▲"
},
{
"value": "x",
"displayName": "☓"
},
{
"value": "shortDash",
"displayName": " -"
},
{
"value": "longDash",
"displayName": "—"
},
{
"value": "plus",
"displayName": "+"
}
]
},
"trend": {
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
]
},
"y1AxisReferenceLine": {
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
],
],
"position": [
{
"value": "back",
"displayName": "Behind"
},
{
"value": "front",
"displayName": "In Front"
}
],
"dataLabelText": [
{
"value": "Value",
"displayName": "Value"
},
{
"value": "Name",
"displayName": "Name"
},
{
"value": "ValueAndName",
"displayName": "Name and Value"
}
],
"dataLabelHorizontalPosition": [
{
"value": "left",
"displayName": "Left"
},
{
"value": "right",
"displayName": "Right"
}
],
"dataLabelVerticalPosition": [
{
"value": "above",
"displayName": "Above"
},
{
"value": "under",
"displayName": "Under"
}
]
},
"referenceLine": {
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
],
"position": [
{
"value": "back",
"displayName": "Behind"
},
{
"value": "front",
"displayName": "In Front"
}
],
"dataLabelText": [
{
"value": "Value",
"displayName": "Value"
},
{
"value": "Name",
"displayName": "Name"
},
{
"value": "ValueAndName",
"displayName": "Name and Value"
}
],
"dataLabelHorizontalPosition": [
{
"value": "left",
"displayName": "Left"
},
{
"value": "right",
"displayName": "Right"
}
],
"dataLabelVerticalPosition": [
{
"value": "above",
"displayName": "Above"
},
{
"value": "under",
"displayName": "Under"
}
]
},
"labels": {
"labelOrientation": [
{
"value": "vertical",
"displayName": "Vertical"
},
{
"value": "horizontal",
"displayName": "Horizontal"
}
],
"labelPosition": [
{
"value": "Auto",
"displayName": "Auto"
},
{
"value": "InsideEnd",
"displayName": "Inside End"
},
{
"value": "OutsideEnd",
"displayName": "Outside End"
},
{
"value": "InsideCenter",
"displayName": "Inside Center"
},
{
"value": "InsideBase",
"displayName": "Inside Base"
}
}
],
"labelStyle": [
{
"value": "Category",
"displayName": "Category"
},
{
"value": "Data",
"displayName": "Data value"
},
{
"value": "Percent of total",
"displayName": "Percent of total"
},
{
"value": "Both",
"displayName": "Category, data value"
},
{
"value": "Category, percent of total",
"displayName": "Category, percent of total"
},
{
"value": "Data value, percent of total",
"displayName": "Data value, percent of total"
},
{
"value": "Category, data value, percent of total",
"displayName": "All detail labels"
}
]
},
"card": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"imageScaling": {
"imageScaling": {
"imageScalingType": [
{
"value": "Normal",
"displayName": "Normal"
},
{
"value": "Fit",
"displayName": "Fit"
},
{
"value": "Fill",
"displayName": "Fill"
}
]
},
"forecast": {
"confidenceBandStyle": [
{
"value": "fill",
"displayName": "Fill"
},
{
"value": "line",
"displayName": "Line"
},
{
"value": "none",
"displayName": "None"
}
],
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
]
},
"mapStyles": {
"mapTheme": [
{
"value": "aerial",
"displayName": "Aerial"
},
{
"value": "canvasDark",
"displayName": "Dark"
},
{
"value": "canvasLight",
"displayName": "Light"
},
{
"value": "grayscale",
"displayName": "Grayscale"
},
{
"value": "road",
"displayName": "Road"
}
]
},
},
"shape": {
"projectionEnum": [
{
"value": "albersUsa",
"displayName": "Albers USA"
},
{
"value": "equirectangular",
"displayName": "Equirectangular"
},
{
"value": "mercator",
"displayName": "Mercator"
},
{
"value": "orthographic",
"displayName": "Orthographic"
}
]
},
"xAxisReferenceLine": {
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
],
"position": [
{
"value": "back",
"displayName": "Behind"
},
{
"value": "front",
"displayName": "In Front"
}
],
"dataLabelText": [
{
"value": "Value",
"displayName": "Value"
},
{
"value": "Name",
"displayName": "Name"
},
{
"value": "ValueAndName",
"displayName": "Name and Value"
}
],
"dataLabelHorizontalPosition": [
{
"value": "left",
"displayName": "Left"
},
{
"value": "right",
"displayName": "Right"
}
],
],
"dataLabelVerticalPosition": [
{
"value": "above",
"displayName": "Above"
},
{
"value": "under",
"displayName": "Under"
}
]
},
"ratioLine": {
"style": [
{
"value": "dashed",
"displayName": "Dashed"
},
{
"value": "solid",
"displayName": "Solid"
},
{
"value": "dotted",
"displayName": "Dotted"
}
]
},
"columnHeaders": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"values": {
"outline": [
{
"value": "None",
"displayName": "None"
},
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"total": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"rowHeaders": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"subTotals": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
],
"rowSubtotalsPosition": [
{
"value": "Top",
"displayName": "Top"
},
{
"value": "Bottom",
"displayName": "Bottom"
}
]
},
"general": {
"orientation": [
{
"value": "vertical",
"displayName": "Vertical"
},
{
"value": "horizontal",
"displayName": "Horizontal"
}
]
},
"data": {
"relativeRange": [
{
"value": "Last",
"displayName": "Last"
},
{
"value": "Next",
"displayName": "Next"
},
{
"value": "This",
"displayName": "This"
}
],
"relativePeriod": [
{
"value": "None",
"displayName": "Select"
},
{
"value": "Days",
"displayName": "Days"
},
{
"value": "Weeks",
"displayName": "Weeks"
},
{
"value": "Calendar Weeks",
"displayName": "Weeks (Calendar)"
},
{
"value": "Months",
"displayName": "Months"
},
{
"value": "Calendar Months",
"displayName": "Months (Calendar)"
},
{
"value": "Years",
"displayName": "Years"
},
{
"value": "Calendar Years",
"value": "Calendar Years",
"displayName": "Years (Calendar)"
}
],
"mode": [
{
"value": "Between",
"displayName": "Between"
},
{
"value": "Before",
"displayName": "Before"
},
{
"value": "After",
"displayName": "After"
},
{
"value": "Basic",
"displayName": "List"
},
{
"value": "Dropdown",
"displayName": "Dropdown"
},
{
"value": "Relative",
"displayName": "Relative"
},
{
"value": "Single",
"displayName": "Single Value"
}
]
},
"header": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
]
},
"items": {
"outline": [
{
"value": "None",
"displayName": "None"
},
{
"value": "BottomOnly",
"displayName": "Bottom only"
},
{
"value": "TopOnly",
"displayName": "Top only"
},
{
"value": "LeftOnly",
"displayName": "Left only"
},
{
"value": "RightOnly",
"displayName": "Right only"
},
{
"value": "TopBottom",
"displayName": "Top + bottom"
},
{
"value": "LeftRight",
"displayName": "Left + right"
},
{
"value": "Frame",
"displayName": "Frame"
}
]
},
"status": {
"direction": [
{
"value": "Positive",
"displayName": "High is good"
},
{
"value": "Negative",
"displayName": "Low is good"
}
]
}
}
The new filter experience in Power BI reports
(Preview)
2/14/2019 • 5 minutes to read • Edit Online
This article spells out the new filter experience: Filters in Power BI are getting new functionality and a new design.
When you design reports in Power BI Desktop or in the Power BI service, you can make the Filters pane to look
like and act with the whole report. In the new experience, the old Filters pane acts as a filter editing pane, and the
new Filter pane is the only one your report consumers see.
NOTE
The new filter experience is in preview. New builds may override formatting you've already set.
As a report designer, here's what you can do with the new filters:
Show a read-only view of filters in the visual header, so consumers know exactly what filters or slicers are
affecting a given visual.
Format and customize the filter pane so that it feels part of your report.
Define whether the Filters pane is open or collapsed by default when a consumer opens the report.
Hide the entire filter pane or specific filters that you don’t want report consumers to see.
Control and even bookmark the visibility, open, and collapsed state of the new filter pane.
Lock filters that you don’t want consumers to edit.
When you add a visual to a report canvas, Power BI automatically adds a filter for each field in the visual. Power BI
doesn't add those automatic filters to the read-only filter pane. You have to select the eye icon to add them
explicitly.
Lock or hide filters
You can lock or hide individual filter cards. If you lock a filter, your report consumers can see but not change it. If
you hide it, they can't even see it. Hiding filter cards is typically useful if you need to hide data cleanup filters that
exclude nulls or unexpected values.
In the filter editing pane, select or clear the Lock filter or Hide filter icons in a filter card.
As you turn these settings on and off in the filter editing pane, you see the changes reflected in the new filter pane.
Hidden filters don't show up in the filter pop-up for a visual.
You can also configure your filter pane state to flow with your report bookmarks. The pane’s open, close, and
visibility state are all bookmarkable.
2. Expand Filter pane to set color for the background, icon, and left border, to complement the report page.
3. Expand Filter cards to set the Available and Applied color and border. If you make available and applied
cards different colors, it's obvious which filters are applied.
View filters for a visual in Reading mode
In Reading mode, hover over the filter icon for a visual to see a pop-up with all the filters, slicers, and so on,
affecting that visual. The formatting of the pop-up is the same as the filter pane formatting.
Coming soon
In coming months we plan to incorporate the following improvements:
Ability to change the order of filter cards
Single filter pane experience for report creators
More formatting options
Give the new filter experience a try. Provide us your feedback for this feature and how we can continue to improve
this experience.
Next steps
How to use report filters
Filters and highlighting in reports
Interact with filters and highlighting in report Reading View
Change how report visuals cross-filter and cross-highlight each other
More questions? Try the Power BI Community
Use Quick measures to easily perform common and
powerful calculations
1/14/2019 • 7 minutes to read • Edit Online
You can use Quick measures to quickly and easily perform common, powerful calculations. A Quick measure
runs a set of DAX commands behind the scenes (you don’t have to write the DAX – it’s done for you) based on
input you provide in a dialog box, then presents the results for you to use in your report. Best of all, you can see
the DAX that’s executed by the Quick measure and jump-start or expand your own DAX knowledge.
You create Quick measures by right-clicking a field in the Fields well, then selecting Quick measures from the
menu that appears. You can also right-click any value in the Values pane of an existing visual (such as the Values
field in a Bar chart visual). There are many available categories of calculations and ways to modify each
calculation to fit your needs.
Quick measures now generally available
Beginning with the February 2018 release of Power BI Desktop, quick measures are generally available (no
longer in preview ). If you're using a previous release of Power BI Desktop, you can try Quick measures feature
beginning with the April 2017 release of Power BI Desktop by selecting File > Options and Settings >
Options > Preview Features, then select the checkbox beside Quick measures.
You'll need to restart Power BI Desktop after you make the selection.
When we right-click the Values field well and select Quick measures, we can select Average per category as the
Calculation, then select Sum of SalesAmount as the Base value, then specify SalesAmount by dragging that field
from the Fields box on the right pane, into the Category section on the left.
When we select OK, we see a few interesting things occur, as shown in the image following this list:
1. The Matrix visual now has a new column that shows our calculation (in this case, Average SalesAmount
within SalesAmount).
2. A new measure has been created and is available in the Fields well, and it's highlighted (Power BI puts a
yellow box is around it). This measure is available to any other visual in the report, not just the visual for which
it was originally created.
3. The DAX formula that was created for the Quick measure is displayed in the Formula bar.
To start with the first item, notice that the Quick measure was applied to the visual. There's a new column and
associated value, both of which are based on the Quick measure that was created.
Second, the Quick measure shows up in the Fields well of the data model, and can be used like any other field in
the model, for any other visual. In the following image, a quick bar chart visual was created by using the new field
created by the Quick measure.
Let's head to the next section to discuss that third item, DAX formulas.
And, once you do have the measure perfected, you can rename it however you'd like, using the same right-click
menu.
WARNING
Quick measures currently only generate DAX statements with commas for argument separators. If your version of Power
BI Desktop is localized to a language that uses commas as decimal separators, quick measures will not operate properly.
Starting with the August 2018 release of Power BI Desktop, you can create What if variables for your reports,
interact with the variable as a slicer, and visualize and quantify different key values in your reports.
The What if parameter is on the Modeling tab in Power BI Desktop. When you select it, a dialog appears where
you can configure the parameter.
For your convenience, the Add slicer to this page checkbox automatically puts a slicer with your What if
parameter onto the current report page.
In addition to creating the parameter, creating a What if parameter also creates a measure, which you can use to
visualize the current value of the What if parameter.
It's important and useful to note that once you create a What if parameter, both the parameter and the measure
become part of your model. So, they're available throughout the report and can be used on other report pages.
And, since they're part of the model, you can delete the slicer from the report page, or if you want it back, just grab
the What if parameter from the Fields list and drag it onto the canvas (then change the visual to a slicer) to easily
get the parameter back into your report.
Then, we create a column visual with OrderDate on the axis, and both SalesAmount and the just-created measure,
Sales after Discount as the values.
Then, as we move the slider, we see that the Sales after Discount column reflects the discounted sales amount.
And, that's all there is to it. You can use What if parameters in all sorts of situations, to enable the consumers of
reports to interact with different scenarios that you create in your reports.
Use drillthrough in Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
With drillthrough in Power BI Desktop, you can create a page in your report that focuses on a specific entity
such as a supplier, customer, or manufacturer. Users can right-click on a data point in other report pages. Then
they can drill through to the focused page to get details that are filtered to that context.
Using drillthrough
1. To use drillthrough, create a report page that has the visuals you want for the type of entity that you're
going to provide drillthrough for.
For example, let's say you want to provide drillthrough for manufacturers. Then you might create a
drillthrough page with visuals that show total sales, total units shipped, sales by category, sales by region,
and so on. That way, when you drill through to that page, the visuals will be specific to the manufacturer
you selected.
2. Then, on that drillthrough page, in the Fields section of the Visualizations pane, drag the field for which
you want to enable drillthrough into the Drillthrough filters well.
When you add a field to the Drillthrough filters well, Power BI Desktop automatically creates a back
button visual. That visual becomes a button in published reports. Users who are consuming your report in
the Power BI service can use this button to get back to the report page from which they came.
When report consumers choose to drill through, the page is filtered to show information about the data
point on which they right-clicked. For example, lets say they right-clicked on a data point about Contoso (a
manufacturer), and selected to drill through. The drillthrough page they go to is filtered to Contoso.
When you add a measure or summarized numeric column, you can drill through to the page when the field is
used in the Value area of a visual.
That's all there is to using drillthrough in your reports. It's a great way to get an expanded view of the entity
information that you selected for your drillthrough filter.
Next steps
You might also be interested in the following articles:
Using slicers Power BI Desktop
Use a relative date slicer and filter in Power BI
Desktop
1/14/2019 • 2 minutes to read • Edit Online
With the relative date slicer or relative date filter, you can apply time-based filters to any date column in your
data model. For example, you can use the relative date slicer to show only sales data that's happened within the
last thirty days (or month, calendar months, and so on). And, when you refresh the data, the relative time period
automatically applies the appropriate relative date constraint.
If you select Months from that list, and input 2 in the middle setting, the following would happen: if today is July
20th, the data included in visuals constrained by the slicer would show data for the previous two months, starting
on May 20th and going through July 20th (today's date).
In comparison, if you selected Months (Calendar ), the visuals constrained would show data from May 1st through
June 30th (the last two complete calendar months).
Using the relative date range filter
You can also create a relative date range filter for your report page or your entire report. To do so, simply drag a
date field into the Page level filters or the Report level filters areas in the Field pane, as shown in the following
image.
Once there, you can modify the relative date range in a similar fashion to how the relative date slicer is
customized. Select Relative date filtering from the Filter Type drop-down.
Once Relative date filtering is selected, you see three sections to modify, including a middle numeric box, just like
the slicer.
And, that's all there is to using these relative date constraints in your reports.
When Power BI Desktop creates visuals, it aggregates your data into chunks (or groups) based on values found
in the underlying data. Often that's fine, but there may be times when you want to refine how those chunks are
presented. For example, you might want to place three categories of products in one larger category (one group).
Or, you might want to see sales figures put into bin-sizes of 1,000,000 dollars, instead of evenly-divided, 923,983
dollars.
In Power BI Desktop, you can Group data points to help you more clearly view, analyze, and explore data and
trends in your visuals. You can also define the Bin size, often called binning, to put values into equally sized groups
that better enable you to visualized data in ways that are meaningful.
Using grouping
To use grouping, select two or more elements on a visual by using Ctrl+click to multi-select elements. Then, right-
click one of the multi-select elements and select Group from the menu that appears.
Once created, the group is added to the Legend bucket for the visual and it also appears in the Fields list.
Once you have a group, you can easily edit the members of that group by right-clicking the field from the Legend
bucket, or from the Fields list, and selecting Edit Groups.
In the Groups window that appears, you can create new groups or modify existing groups. You can also rename
any group by double-clicking on the group title in the Groups and members box and typing a new name.
There are all sorts of things you can do with groups. You can add items from the Ungrouped values list into a
new group or into one of the existing groups. To create a new group, select two or more items (using Ctrl+click)
from the Ungrouped values box, and then click the Group button below that box.
You can add an ungrouped value into an existing group: just select the Ungrouped value, then select the existing
group to which you want to add it, and click the Group button. To remove an item from a group, select it from the
Groups and members box and then click Ungroup. You can also select whether ungrouped categories should be
placed into the Other group, or should remain ungrouped.
NOTE
You can create groups for any field in the Fields well, without having to multi-select from an existing visual. Just right-click
the field, and select New Group from the menu that appears.
Using binning
You can set the bin size for numerical and time fields in Power BI Desktop. You can use binning to right-size the
data that Power BI Desktop displays.
To apply a bin size, right-click a Field and select New Group.
From the Groups window, set the Bin size to the size you want.
When you select OK, you'll notice that a new field appears in the Fields pane with (bins) appended. You can then
drag that field onto the canvas to use the bin size in a visual.
Install R
Power BI Desktop does not include, deploy, or install the R engine. To run R scripts in Power BI Desktop, you
must separately install R on your local computer. You can download and install R for free from many locations,
including the Revolution Open download page, and the CRAN Repository. The current release of R scripting in
Power BI Desktop supports Unicode characters as well as spaces (empty characters) in the installation path.
Enable R visuals
To enable R visuals, select File > Options and settings > Options and in the Options page that appears, make
sure your local R installation is specified in the R Scripting section of the Options window, as shown in the
following image. In the following image, the path local installation of R is C:\Program Files\R\R-3.2.0 and that
path is explicitly provided in the text box. Make sure the path it displays properly reflects the local R installation
you want Power BI Desktop to use.
Once you specify your R installation, you’re ready to begin creating R visuals.
Create R visuals in Power BI Desktop
1. Select the R Visual icon in the Visualization pane, as shown in the following image, to add an R visual.
When you add an R visual to a report, Power BI Desktop does the following:
A placeholder R visual image appears on the report canvas.
The R script editor appears along the bottom of the center pane.
2. Next, add fields you want to consume in your R script to the Values section in the Fields well, just as you
would with any other Power BI Desktop visual.
Only fields that have been added to the Fields well are available to your R script. You can add new fields or
remove unneeded fields from the Fields well while working on your R script in the Power BI Desktop R
script editor. Power BI Desktop automatically detects which fields you have added or removed.
NOTE
The default aggregation type for R visuals is do not summarize.
3. Now you can use the data you selected to create a plot.
As you select fields, the R script editor generates supporting R script binding code based on your
selections in the gray section along the top of the editor pane. As you select or remove additional fields,
supporting code in the R script editor is automatically generated or removed accordingly.
In the example shown in the following image, three fields were selected: hp, gear, and drat. As a result of
those selections, the R script editor generated the following binding code:
A dataframe called dataset was created
That dataframe is comprised of the different fields selected by the user
The default aggregation is do not summarize
Similar to table visuals, fields are grouped and duplicate rows only appear once
TIP
In certain cases, you may not want automatic grouping to occur, or you may want all rows to appear, including
duplicates. In that case, you can add an index field to your dataset that causes all rows to be considered unique and
which prevents grouping.
The generated dataframe is called a dataset, and you can access selected columns by their respective
names. For example, access the gear field by writing dataset$gear in your R script. For fields with spaces or
special characters, use single quotes.
4. With the dataframe automatically generated by the fields you selected, you’re ready to write a R script that
results in plotting to the R default device. When the script is complete, select Run from the R script editor
title bar (Run is on the right side of the title bar).
When you select Run, Power BI Desktop identifies the plot and presents it on the canvas. Since the
process is executed on your local R installation, make sure the required packages are installed.
Power BI Desktop replots the visual when any of the following events occur:
When you select Run from the R script editor title bar
Whenever a data change occurs, due to data refresh, filtering, or highlighting
The following image shows an example of the correlation plot code, and it plots the correlations
between attributes of different types of cars.
5. To get a larger view of the visualizations, you can minimize the R script editor. And, of course, like other
visuals in Power BI Desktop, you can cross filter the correlation plot by selecting only sport cars in the
donut visual (the round visual on the right, in the above example image).
6. You can also modify the R script to customize the visual, and take advantage of the power of R by adding
parameters to the plotting command.
The original plotting command was the following:
corrplot(M, method = "color", tl.cex=0.6, tl.srt = 45, tl.col = "black")
With a few changes in the R script, the command is now the following:
corrplot(M, method = "circle", tl.cex=0.6, tl.srt = 45, tl.col = "black", type= "upper", order="hclust")
As a result, the R visual now plots circles, only considers at the upper half, and reorders the matrix to
cluster correlated attributes, as shown in the following image.
When executing a R script that results in an error, the R visual is not plotted and an error message is
displayed on the canvas. For details on the error, select See details from the R visual error on the canvas.
R scripts security: R visuals are created from R scripts, which could contain code with security or
privacy risks. When attempting to view or interact with an R visual for the first time, a user is presented
with a security warning message. Only enable R visuals if you trust the author and source, or after you
review and understand the R script.
Known limitations
R visuals in Power BI Desktop has a few limitations:
Data size limitations – data used by the R visual for plotting is limited to 150,000 rows. If more than 150,000
rows are selected, only the top 150,000 rows are used and a message is displayed on the image.
Calculation time limitation – if an R visual calculation exceeds five minutes the execution times out, resulting in
an error.
Relationships – as with other Power BI Desktop visuals, if data fields from different tables with no defined
relationship between them are selected, an error occurs.
R visuals are refreshed upon data updates, filtering, and highlighting. However, the image itself is not
interactive and cannot be the source of cross-filtering.
R visuals respond to highlighting other visuals, but you cannot click on elements in the R visual in order to
cross filter other elements.
Only plots that are plotted to the R default display device are displayed correctly on the canvas. Avoid explicitly
using a different R display device.
In this release, RRO installations are not automatically identified by the 32-bit version of Power BI Desktop, so
you must manually provide the path to the R installation directory in Options and settings > Options > R
Scripting.
Next steps
Take a look at the following additional information about R in Power BI.
Running R Scripts in Power BI Desktop
Use an external R IDE with Power BI
Use R-powered custom visuals in Power BI
3/8/2019 • 5 minutes to read • Edit Online
In Power BI Desktop and the Power BI service, you can use R -powered custom visuals without any knowledge
of R and without any R scripting. This enables you to harness the analytic and visual power of R visuals, and R
scripts, without learning R or doing any programming yourself.
To use R -powered custom visuals, you first select and download the R custom visual you're interested in using from
the AppSource gallery of custom visuals for Power BI.
The following sections describe how to select, load, and use R -powered visuals in Power BI Desktop.
3. Select the visual you're interested in using from the gallery, and you're taken to a page that describes the
visual. Select the Get it now button to download.
NOTE
For authoring in Power BI Desktop, you need to have R installed on your local machine. But, when users want to
view an R-powered visual in the Power BI service they do not need R installed locally.
You do not need to install R to use R -powered custom visuals in the Power BI service, however, if you want
to use R -powered custom visuals in Power BI Desktop you must install R on the local machine. You can
download R from the following locations:
CRAN
MRO
4. Once the visual is downloaded (which is like downloading any file from your browser), go to Power BI
Desktop and click the ellipsis (...) in the Visualizations pane, and select Import from file.
5. You're warned about importing a custom visual, as shown in the following image:
6. Navigate to where the visual file was saved, then select the file. Power BI Desktop custom visualizations
have the .pbiviz extension.
7. When you return to Power BI Desktop, you can see the new visual type in the Visualizations pane.
8. When you import the new visual (or open a report that contains an R -powered custom visual), Power BI
Desktop installs the required R packages.
9. From there, you can add data to the visual just as you would any other Power BI Desktop visual. When
complete, you can see your finished visual on the canvas. In the following visual, the Forecasting R -
powered visual was used with United Nations (UN ) birth rate projections (the visual on the left).
Like any other Power BI Desktop visual, you can publish this report with its R -powered visuals to the
Power BI service and share it with others.
Check the library often, since new visuals are being added all the time.
Get custom visuals from within Power BI Desktop
1. You can also get custom visuals from within Power BI Desktop. In Power BI Desktop click the ellipsis (the
...) in the Visualizations pane, and select Import from marketplace.
2. When you do so, the Power BI Visuals dialog appears, where you can scroll through the available custom
visuals and select what you would like. You can search by name, select a category, or just scroll through the
available visuals. When you're ready, just select Add to add the custom visual to Power BI Desktop.
3. Install R packages manually, using any R console. The steps for this approach follow:
a. Download the R -powered visual installation script and save that file to a local drive.
b. From the R console, run the following:
source(“C:/Users/david/Downloads/ScriptInstallPackagesForForecastWithWorkarounds.R”)
Next steps
Take a look at the following additional information about R in Power BI.
Power BI custom visuals gallery
Running R Scripts in Power BI Desktop
Create R visuals in Power BI Desktop
Use an external R IDE with Power BI
Use gridlines and snap-to-grid in Power BI Desktop
reports
1/14/2019 • 3 minutes to read • Edit Online
The Power BI Desktop report canvas provides gridlines that let you neatly align visuals on a report page and use
snap-to-grid functionality so the visuals in your report look clean, aligned, and evenly spaced.
In Power BI Desktop, you can also adjust the z-order (bring forward, send backward) of objects on a report and
align or evenly distribute selected visuals on the canvas.
Using gridlines
Gridlines are visible guides that help you align your visuals. When you're trying to determine whether two (or
more) visuals are aligned horizontally or vertically, use the gridlines to determine whether their borders align.
Use Ctrl+Click to select more than one visual at a time, which displays all selected visuals' borders and shows
whether the visuals are properly aligned.
Using gridlines inside visuals
In Power BI there are also gridlines inside visuals that provide visible guides for comparing data points and values.
Beginning with the September 2017 release of Power BI Desktop, you can now manage the gridlines within
visuals using the X-Axis or Y -Axis card (as appropriate based on visual type), found in the Format section of the
Visualizations pane. You can manage the following elements of gridlines within a visual:
Turn gridlines on or off
Change the color of gridlines
Adjust the stroke (the width) of gridlines
Select the line style of the gridlines in the visual, such as solid, dashed, or dotted
Modifying certain elements of gridlines can be especially useful in reports where dark backgrounds are used for
visuals. The following image shows the Gridlines section in the Y -Axis card.
Using snap-to-grid
When you enable Snap objects to grid, all visuals on the Power BI Desktop canvas that you move (or resize)
are automatically aligned to the nearest grid axis, making it much easier to ensure two or more visuals align to the
same horizontal or vertical location or size.
And, that's all there is to using gridlines and snap-to-grid to ensure the visuals in your reports are neatly aligned.
Using z-order, align, and distribute
You can manage the front-to-back order of visuals in a report, often referred to as the z-order of elements. This
feature lets you overlap visuals in any way you want, then adjust the front-to-back order of each. You set the order
of your visuals using the Bring Forward and Send Backward buttons, found in the Arrange section of Format
ribbon. The Format ribbon appears as soon as you select one or more visuals on the page.
The Format ribbon lets you align your visuals in many different ways, which ensures your visuals appear on the
page in the alignment that looks and works best.
The Align button aligns a selected visual to the edge (or center) of the report canvas, as shown in the following
image.
When two or more visuals are selected, they are aligned together and use the existing aligned boundary of the
visuals for their alignment. For example, if you select two visuals and choose the Align Left option, the visuals
then align to the left-most boundary of all selected visuals.
You can also distribute your visuals evenly across the report canvas, either vertically or horizontally. Just use the
Distribute button from the Format ribbon.
With a few selections from these gridlines, alignment, and distribution tools, your reports will look just how you
want them to.
Page display settings in a Power BI report
1/14/2019 • 2 minutes to read • Edit Online
We understand it is critical to keep your report layout pixel perfect. Sometimes, it can be challenging, because you
and your colleagues view those reports on screens with different aspect ratios and sizes.
The default display view is Fit to page and the default display size is 16:9. If you want to lock in a different aspect
ratio, or want to fit your report in a different way, there are two tools to help you: Page View settings and Page
Size settings.
https://www.youtube.com/embed/5tg-OXzxe2g
Page View settings are available in both Reading view and Editing view. In Editing View, a report owner can assign
page view settings to individual report pages, and those settings are saved with the report. When colleagues open
that report in Reading view, they see the report pages display using the owner's settings. In Reading view
colleagues can change some of the Page view settings, but the changes are not saved when they exit the report.
Page Size settings are only available for report owners. In Power BI service (app.powerbi.com), this means being
able to open the report in Editing view. These settings control the display ratio and actual size (in pixels) of the
report canvas.
4:3 ratio
16:9 ratio (default)
Cortana
Letter
Custom (height and width in pixels)
Next Steps
Learn how to use Page view and Page size settings in your own Power BI reports.
Read more about reports in Power B
Power BI - Basic Concepts
More questions? Try the Power BI Community
Add a column from an example in Power BI Desktop
1/14/2019 • 5 minutes to read • Edit Online
Starting with the April 2017 release of Power BI Desktop, you can add new columns of data to your model using
Query Editor by simply providing one or more sample values for your new column. You can create a new column
example from a current selection or provide input based on all (or selected) columns in a given table.
This approach helps you quickly and easily create new columns and is great for the following situations:
You know the data result you want in your new column, but you're not sure which transformation (or collection
of transformations) will get you there.
You already know which transformations you need, but you're not sure where to click or select in the UI to
make them happen.
You know all about the transformations you need using a Custom Column expression in M, but one (or more)
of those expressions aren't available to click or add in the UI.
Using the add column from example feature is easy and straightforward. In the next few sections, we see just
how easy it is.
This is called the Add Columns From Examples pane, and it consists of four primary areas:
1. The Command bar that includes a brief description of the feature or the transformation.
2. The Send Feedback option to help Power BI improve this feature.
3. The OK and Cancel buttons, which let you commit your transformations and add the column or cancel.
4. The new column area, where you can type your sample values in any of the rows (to provide Power BI with
your example), relating to other columns in that row.
As you type your example in the new column, Power BI gives you a preview of how the column it's creating will
look, based on the transformations it detects. For example, if you type Alabama in the first row, it corresponds to
the Alabama value in the first column of the table. As soon as you press Enter, Power BI fills in the column based
on that value.
But, then say you go to the row that includes Massachusetts[E ] and delete that last [E ] portion (because you don't
want it anymore). Power BI detects the change and uses the example to create a transformation. Notice the
explanation of the transform in the upper-middle pane.
As you continue to provide examples, Query Editor adds to the transformations. When you're satisfied, you can
select OK to commit your changes.
NOTE
All Text transformations take into account the potential need to trim, clean, or apply a case transformation to the column
value.
Date transformations
Day
Day of Week
Day of Week Name
Day of Year
Month
Month Name
Quarter of Year
Week of Month
Week of Year
Year
Age
Start of Year
End of Year
Start of Month
End of Month
Start of Quarter
Days in Month
End of Quarter
Start of Week
End of Week
Day of Month
Start of Day
End of Day
Time transformations
Hour
Minute
Second
To Local Time
NOTE
All Date and Time transformations take into account the potential need to convert the column value to Date or Time or
DateTime.
Number transformations
Absolute Value
Arccosine
Arcsine
Arctangent
Convert to Number
Cosine
Cube
Divide
Exponent
Factorial
Integer Divide
Is Even
Is Odd
Ln
Base-10 Logarithm
Modulo
Multiply
Round Down
Round Up
Sign
Sin
Square Root
Square
Subtract
Sum
Tangent
The following supported number transformation is available beginning with the November 2017 release
of Power BI Desktop:
Bucketing/Ranges
General
Conditional Column
Add a custom column in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
You can easily add a new custom column of data to your model using Query Editor in Power BI Desktop. You
can create and rename your custom column using easy buttons to create M formulas that define your custom
column. The M formula has a comprehensive function reference content set.
Creating a custom column is another Applied Step to the query you create in Query Editor, which means it can
be changed, moved earlier or later, or modified at any time.
The Add Custom Column window appears, which is described in the following section.
But, if you have some sort of error in your syntax, you get a yellow warning icon, along with the error detected, and
a link that puts the cursor (in your formula) where the error is detected.
When you select OK, your custom column is added to the model, and the Added Custom step is added to your
query's Applied Steps.
If you double-click the Added Custom step in the Applied Steps pane, the Add Custom Column window
appears again, with the custom column formula you created already loaded, and ready for you to modify if
necessary.
Next steps
There are other ways to create a custom column, including creating a column based on examples you provide to
Query Editor. See the following article for more information on creating custom columns from examples:
Add a column from an example in Power BI Desktop
Introduction to M formula language
M function reference
Optimize a Power BI visual for any size
1/14/2019 • 2 minutes to read • Edit Online
By default, when you create a new report, the visuals are responsive: They change dynamically to display the
maximum amount of data and insight, no matter the screen size. For older reports, you can set their visuals to
resize dynamically, too.
As a visual changes size, Power BI prioritizes the data view, for example removing padding and moving the legend
to the top of the visual automatically, so the visual remains informative even as it gets smaller. Responsiveness is
especially useful in visuals in the Power BI mobile app on phones.
Any visual with X and Y axes, and slicers, can resize responsively.
Now when you create a report optimized for the phone and add this visual, it will resize gracefully.
Next steps
Create reports optimized for the Power BI phone apps
View Power BI reports optimized for your phone
More questions? Try asking the Power BI Community
Use inline hierarchy labels in Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
Power BI Desktop supports the use of inline hierarchy labels, which is the first of two features intended to
enhance hierarchical drilling. The second feature, which is currently in development, is the ability to use nested
hierarchy labels (stay tuned for that - our updates happen frequently).
NOTE
As an alternative to right-clicking on a bar, you can select the Expand button on the top left of the visualization.
Once Expand to next level is selected, the visual expands the date hierarchy from Year to Quarter, as shown in
the following image.
Notice that the Year and Quarter labels are shown inline together - this labeling scheme continues as you Expand
All down to the bottom of the hierarchy.
This is how the built-in Date hierarchy, associated with fields that have a date/time data type, behaves. Let's head
to the next section, and see how the new inline hierarchy labels feature is different.
Using inline hierarchy labels
Now let's look at a different chart - using data that has informal hierarchies. In the following visual, we have a bar
chart with Quantity, using ProductName as the axis. In this data, ProductName and ShipCountry form an
informal hierarchy. From here, you can again select Expand to next level to drill down into the hierarchy.
Selecting Expand to next level shows the next level with the inline display of hierarchy labels. By default, inline
hierarchies are sorted by the measure value – in this case, Quantity. With inline hierarchy labels enabled, you can
choose to sort this data by the hierarchy too, by selecting the ellipsis in the upper right corner (the ...), then
selecting Sort by ProductName ShipCountry as shown in the following image.
Once ShipCountry is selected, the data is sorted based on the informal hierarchy selection, as shown in the
following image.
NOTE
The inline hierarchy label feature doesn't yet allow for the built-in time hierarchy to be sorted by value; it's only sorted by
hierarchy order.
Troubleshooting
It's possible for your visuals to get stuck in an expanded inline hierarchy level state. In some cases, you might find
that some of your visuals are stuck in the mode where they were expanded, in which case drilling up doesn't work.
This can happen if you happened to take the following steps (the fix for this is below these steps):
Steps that might get your visuals stuck in an expanded state:
1. You enable the inline hierarchy label feature
2. You create some visuals with hierarchies
3. Then you Expand All and save your file
4. You then disable the inline hierarchy label feature, and restart Power BI Desktop
5. Then you re-open your file
If you happen to take those steps, and your visuals are stuck in expanded mode, you can do the following to
troubleshoot them:
1. Re-enable the inline hierarchy label feature, then restart Power BI Desktop
2. Re-open your file, and drill back up to top of your affected visual(s)
3. Save your file
4. Disable the inline hierarchy label feature, then restart Power BI Desktop
5. Re-open your file
Alternatively, you can just delete your visual and recreate it.
Use the numeric range slicer in Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
With the numeric range slicer, you can apply all sorts of filters to any numeric column in your data model. You
can choose to filter between numbers, less than or equal to a number, or greater than or equal to a number.
While this may sound straightforward, it's a very powerful way to filter your data.
For the numeric range, you can select from the following three selections:
Between
Less than or equal to
Greater than or equal to
When you select Between from the menu, a slider appears and you can filter for numeric values that fall between
the numbers. In addition to using the slider bar itself, you can click in either box and type in the values. This is
convenient when you want to slice on specific numbers, yet the granularity of moving the slicer bar makes it
difficult to land exactly on that number.
In the following image, the report page is filtered for LineTotal values that range between 2500.00 and 6000.00.
When we select Less than or equal to, the left (lower value) handle of the slider bar disappears, and we can
adjust only the upper bound of the slider bar. In the following image, we set the slider bar maximum to 5928.19.
Lastly, if we select Greater than or equal to, then the right (highest value) slider bar handle disappears, and we
can adjust the lower value, as seen in the following image. Now only items with a LineTotal greater than or equal
to 4902.99 are displayed in the visuals on the report page.
Snap to whole numbers with the numeric range slicer
A numeric range slicer will snap to whole numbers if the data type of the underlying field is Whole Number. This
lets your slicer to cleanly align who whole numbers. Decimal Number type fields let you enter or select fractions
of a number. The formatting applied in the textbox matches the formatting set on the field, even though you can
type in or select more precise numbers.
Responsive slicers resize to fit any space on your report. With responsive slicers, you can resize them to different
sizes and shapes, from horizontal to square to vertical, and the values in the slicer rearrange themselves as you do.
In Power BI Desktop and in the Power BI service, you can make horizontal slicers and date/range slicers
responsive. Date/range slicers also have improved touch areas so it’s easier to change them with a fingertip. You
can make responsive slicers as small or as large as you want; they also resize automatically to fit well on reports in
the Power BI service and also in the Power BI mobile apps.
Create a slicer
The first step to creating a dynamic slicer is to create a basic slicer.
2. Now you can play with it. Drag the corners to make it short, tall, wide, and narrow. If you make it small
enough, it becomes just a filter icon.
2. Drag all the visuals you want in the phone report to the grid. When you drag the responsive slicer, make it
the size you want -- in this case, just a filter icon.
Read more about creating reports optimized for the Power BI mobile apps.
Next steps
Slicers in the Power BI service
More questions? Try asking the Power BI Community
Use Power BI service or Power BI Desktop to create
a custom Answer Page for Cortana
1/14/2019 • 3 minutes to read • Edit Online
Use the full capabilities of Power BI to create special report pages, called Cortana answer pages (and sometimes
called Cortana answer cards) designed specifically to answer Cortana questions.
IMPORTANT
If you are trying out the Cortana and Power BI dashboard preview, you can skip the rest of this article. There are no setup
requirements for Cortana to be able to search your Power BI dashboards.
3. Create a visual or a set of visuals that you want to appear in Cortana in response to a particular question
(or set of questions).
NOTE
At the moment, Cortana answer pages don't support images having static images shown in them. You can include images
in table or matrix visuals that are dynamically pulled in based on a URL in your data.
4. Ensure that all visuals fit within the page borders. Optionally, modify display settings, data labels, colors,
and backgrounds.
5. Name the page and add alternate names. Cortana uses these names when it searches for results. In the
Visualizations pane, select the paintbrush icon and choose Page Information. Enable Q&A for this
visual by moving the slider to On.
TIP
To improve results, avoid using words that are also column names.
6. Optionally, if your report has page level filters, you may want to set Require single selection. Cortana
will only display this report as an answer if one, and only one, of the filter items is specified in the question.
Require single selection can be found at the bottom of the Filters pane.
NOTE
You don't have to set Require single selection to ask Cortana to display a report with page level filters. For
example “show sales for Charlotte Lindseys” will display the answer page regardless of the Require Single Selection
setting.
IMPORTANT
Before your Cortana answer page can be accessed by Cortana, you will need to Enable the dataset for Cortana.
NOTE
When a new dataset or custom Cortana answer page is added to Power BI and enabled for Cortana, it can take up to 30
minutes for results to begin appearing in Cortana. Logging in and out of Windows 10, or otherwise restarting the Cortana
process in Windows 10, will cause new content to appear immediately.
Next steps
Using Cortana with Power BI
Still can't get Cortana to work with Power BI? Try the Cortana troubleshooter.
More questions? Try the Power BI Community
Row-level security (RLS) with Power BI Desktop
1/23/2019 • 4 minutes to read • Edit Online
Row -level security (RLS ) with Power BI Desktop restricts data access for given users. Filters restrict data at the row
level. You can define filters within roles.
You can now configure RLS for data models imported into Power BI with Power BI Desktop. You can also
configure RLS on datasets that are using DirectQuery, such as SQL Server. Previously, you were only able to
implement RLS within on-premises Analysis Services models outside of Power BI. For Analysis Services live
connections, you configure Row -level security on the on-premises model. The security option does not show up
for live connection datasets.
IMPORTANT
If you defined roles and rules within the Power BI service, you will need to recreate those roles within Power BI Desktop and
publish the report to the service.
Learn more about options for RLS within the Power BI Service.
NOTE
You can't define roles within Power BI Desktop for Analysis Services live connections. You need to do that within the
Analysis Services model.
4. Select Create.
5. Provide a name for the role.
6. Select the table that you want to apply a DAX rule.
7. Enter the DAX expressions. This expression should return a true or false. For example: [Entity ID ] = “Value”.
NOTE
You can use username() within this expression. Be aware that username() has the format of DOMAIN\username
within Power BI Desktop. Within the Power BI service and Power BI Report Server, it's in the format of the user's User
Principal Name (UPN). Alternatively, you can use userprincipalname(), which always returns the user in the format of
their user principal name, [email protected].
8. After you have created the DAX expression, you can select the check above the expression box to validate
the expression.
9. Select Save.
You can't assign users to a role within Power BI Desktop. You assign them in the Power BI service. You can enable
dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions
and having the proper relationships configured.
2. Select a role you created > OK to apply that role. The report renders the data relevant for that role.
3. You can also select Other user and supply a given user. It's best to supply the User Principal Name (UPN )
as that's what the Power BI service and Power BI Report Server use.
4. Select OK and the report renders based on what that user can see.
Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on
your DAX expressions.
Limitations
Following is a list of the current limitations for row -level security on cloud models.
If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI
Desktop.
You can define RLS only on the datasets created with Power BI Desktop. If you want to enable RLS for
datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Learn more
Only ETL and DirectQuery connections are supported. Live connections to Analysis Services are handled in
the on-premises model.
Cortana is not supported with RLS at this time.
Known issues
There is a known issue where you'll get an error message if you try to publish a previously published report from
Power BI Desktop. The scenario is as follows.
1. Anna has a dataset that is published to the Power BI service and has configured RLS.
2. Anna updates the report in Power BI Desktop and republishes.
3. Anna receives an error.
Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. You can
do that by selecting Get Data > Files.
FAQ
Question: What if I had previously created roles and rules for a dataset in the Power BI service? Will they still
work if I do nothing?
Answer: No. Visuals will not render properly. You will have to re-create the roles and rules within Power BI
Desktop and then publish to the Power BI service.
Question: Can I create these roles for Analysis Services data sources?
Answer: You can if you imported the data into Power BI Desktop. If you are using a live connection, you will not
be able to configure RLS within the Power BI service. This is defined within the Analysis Services model on-
premises.
Question: Can I use RLS to limit the columns or measures accessible by my users?
Answer: No. If a user has access to a particular row of data, they can see all the columns of data for that row.
Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Answer: No, you secure individual rows of data but users can always see either the details or the summarized
data.
Next steps
Row -level security (RLS ) with the Power BI service
More questions? Try asking the Power BI Community
Customizing Tooltips in Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Tooltips are an elegant way of providing more contextual information and detail to data points on a visual. The
following image shows a tooltip applied to a chart in Power BI Desktop.
When a visualization is created, the default tooltip displays the data point's value and category. There are many
instances when being able to customize the tooltip information would be useful, and would provide additional
context and information for users viewing the visual. Custom tooltips enable you to specify additional data points
that display as part of the tooltip.
There are many ways to customize Tooltips, using any field available in your dataset, to convey quick information
and insights to users viewing your dashboards or reports.
Text boxes and shapes Power BI reports
1/18/2019 • 2 minutes to read • Edit Online
Text boxes and shapes can be added to reports using Power BI service and Power BI Desktop. In both cases, you
must have editing permissions for the report. If a report has been shared with you in Power BI service, you will not
have editing permissions.
Watch Will use Power BI Desktop to add static images to a report, and then follow the steps below to try it out
yourself using Power BI service instead.
https://www.youtube.com/embed/_3q6VEBhGew
3. Type your text into the text box and, optionally, format font, color, and text alignment.
4. To position the text box, select the grey area at the top and drag. And to resize the text box, select and drag
any of the outline handles.
5. With the text box still selected, add additional formatting in the VISUALIZATIONS pane. In this example
we've formatted the background and border. You can also create an exact size and position for a text box.
6. To close the text box, select any blank space on the report canvas.
2. From the dropdown, select a shape to add it to your report canvas. Let's add an arrow to direct attention to
the bubble with the highest total sales variance.
In the Format shape pane, customize your shape. In this example we've created a red arrow with a dark red
border, rotated 90 degrees.
3. To position the shape, select the grey area at the top and drag. And to resize the shape, select and drag any
of the outline handles. As with the text box, you can also create an exact size and position for a shape.
NOTE: Shapes cannot be pinned to a dashboard, except as one of the visuals when you pin a live page.
Next steps
Add a hyperlink to a text box
Power BI - Basic Concepts
More questions? Try the Power BI Community
Add a hyperlink to a text box in a report
1/18/2019 • 2 minutes to read • Edit Online
You can add text boxes to reports, pin them to dashboards from reports, and add them directly to dashboards.
Wherever the text box is, you can always add a hyperlink to it.
NOTE: For information on hyperlinks in Power BI tables and matrixes, see Hyperlinks in tables. For
information on adding text boxes to your dashboard, see Add a tile directly from the dashboard .
https://www.youtube.com/embed/_3q6VEBhGew#t=0m55s
Place your cursor anywhere in the highlighted text to display the URL.
Next steps
Text boxes in Power BI reports
More questions? Try the Power BI Community
Add hyperlinks to a table
1/18/2019 • 3 minutes to read • Edit Online
This topic teaches you how to use Power BI Desktop to create hyperlinks. Then use either Desktop or Power BI
service to add those hyperlinks to your report tables and matrixes.
NOTE
Hyperlinks in tiles on dashboards and text boxes on dashboards can be created on-the-fly using Power BI service. Hyperlinks
in text boxes in reports can be created on-the-fly using Power BI service and Power BI Desktop.
NOTE
The URLS must start with http:// , https:// or www.
5. If you don't want to display a long URL in a table, you can display a hyperlink icon instead. Note that
you can't display icons in matrixes.
Select the chart to make it active.
Select the paint roller icon to open the Formatting tab.
Expand Values, locate URL icon, and turn it to On.
6. (Optional) Publish the report from Desktop to Power BI service and open the report in Power BI service.
The hyperlinks will work there as well.
For data connected with DirectQuery
You can't create a new column in DirectQuery mode. But if your data already contains URLs, you can turn them
into hyperlinks.
1. In Report view, create a table using a field that contains URLs.
2. Select the column, and in the Modeling tab, choose the dropdown for Data Category.
3. Select Web URL. The hyperlinks will be blue and underlined.
4. (Optional) Publish the report from Desktop to Power BI service and open the report in Power BI service. The
hyperlinks will work there as well.
4. Place your cursor in the column that contains the URLs that you'd like to turn into hyperlinks in Power BI
tables.
NOTE
The URLS must start with http:// , https:// or www.
5. In the Reporting Properties group, select the Data Category dropdown and choose Web URL.
6. From the Power BI service or Power BI Desktop, connect to or import this workbook.
7. Create a table visualization that includes the URL field.
Considerations and troubleshooting
Q: Can I use a custom URL as a hyperlink in a table or matrix?
A: No. You can use a link icon. If you need custom text for your hyperlinks and your list of URLs is short, consider
using a text box instead.
Next steps
Visualizations in Power BI reports
Power BI - Basic Concepts
More questions? Try the Power BI Community
Conditional formatting in tables
1/14/2019 • 3 minutes to read • Edit Online
With conditional formatting for tables, you can specify customized cell colors based on cell values, or based on
other values or fields, including using gradient colors. You can also display cell values with data bars.
To access conditional formatting, in the Fields well of the Visualizations pane in Power BI Desktop, select the
down-arrow beside the value in the Values well that you want to format (or right-click the field). You can only
manage conditional formatting for fields in the Values area of the Fields well.
The following sections describe each of these conditional formatting options. One or more options can be
combined in a single table column.
NOTE
When applied to a table, conditional formatting overrides any custom table styles applied to the conditionally formatted cells.
To remove conditional formatting from a visualization, just right-click the field again, select Remove conditional
formatting and then the type of formatting to remove.
Background color scales
Selecting Conditional formatting and then Background color scales brings up the following dialog.
You can select a field from your data model to base the colors on, by setting Color based on to that field. In
addition, you can specify the aggregation type for the selected field with the Summarization value. The field to be
colored is specified in the Apply color to field, so you can keep track. You can apply conditional formatting to text
and date fields, as long as you choose a numeric value as the basis of the formatting.
To use discrete color values for given value ranges, select Color by rules. To use a color spectrum, leave Color by
rules unchecked.
Color by rules
When you select Color by rules, you can enter one or more value ranges, each with a set color. Each value range
starts with an If value condition, an and value condition, and a color.
Table cells with values in each range are filled with the given color. There are three rules in the following figure.
Data bars
Selecting Conditional formatting and then Data bars brings up the following dialog.
By default, the Show bar only option is unchecked, and so the table cell shows both the bar and the actual value.
If the Show bar only option is checked, the table cell only shows the bar.
Color formatting by field value
You can use a measure or a column that specifics a color, either using a text value or a hex code, to apply that color
to the background of font color of a table or matrix visual. You can also create custom logic for a given field, and
have that logic apply the desired color to the font or background.
For example, in the following table there is a color associated with each product model.
To format that cell based on its field value, select the Conditional formatting dialog by right-clicking the Color
column for that visual, and in this case, select Background color from the menu.
In the dialog that appears, select Field value in the Format by drop down area, as shown in the following image.
You can repeat that process for the font color, and the result in the visual will be a solid color in the color column,
as shown in the following screen.
You could also create a DAX calculation based on business logic, that outputs different hex codes based on
conditions you prefer. This is generally easier than creating multiple rules in the conditional formatting dialog.
Consider the ColorKPI field in the following sample image.
You could then set the field value for Background color in the following way.
And you could then get results like the following matrix.
There are many more variations you could create, just by using your imagination and a bit of DAX.
Next steps
For more information, see the following article:
Tips and tricks for color formatting in Power BI
Sort by column in Power BI Desktop
1/14/2019 • 4 minutes to read • Edit Online
In Power BI Desktop and the Power BI service, you can change how a visual looks by sorting it by different data
fields. By changing how you sort a visual, you can highlight the information you want to convey, and ensure the
visual reflects that trend (or emphasis).
Whether you're using numeric data (such as sales figures) or text data (such as state names), you can sort your
visualizations as desired, and make them look like you want them to. Power BI provides lots of flexibility for
sorting, and quick menus for you to use. On any visual, select the ellipses menu (...) and then select the field by
which you want to sort, as shown in the following image.
The current sorting field is SalesQuantity, indicated by the facts that Sort By SalesQuantity is in bold and
has a yellow bar.
The current sorting direction is smallest to largest, as shown by the little icon A/Z (A above Z ) and a down
arrow.
We'll look at the sorting field and direction independently in the next two sections.
Notice how the visual has changed. The values now are ordered from highest DiscountAmount value, in this visual
Fabrikam Inc., down to Northwind Traders which has the lowest value.
But what if we want to sort ascending, instead of descending? The next section shows just how easy that is.
When Z/A is displayed, it means the visual is being sorted by the selected column in order of greatest value to
smallest value. Want to change that? No problem - just tap or click that Z/A icon, and it changes the sort order to
A/Z and sorts the visual (based on the selected column) from smallest to greatest value.
Here's our same visual, this time after tapping the Z/A icon on the Sort By DiscountAmount menu item to
change its ordering. Notice that Northwind Traders is now the first manufacturer listed, and Fabrikam Inc. is the
last - the opposite sorting from before.
You can sort by any column included in the visual - we could easily select SalesQuantity as the column by which
we want to sort, with Sort By SalesQuantity, to show the manufacturers with the most sales first, and still retain
the other columns in the visual however they happen to apply to that manufacturer. Here's a look at the visual with
those settings.
2. When we select the column by which we want to sort, in the Fields pane, the Sort by Column button
becomes active.
3. Now, with the visual selected, we can select MonthOfYear, instead of the default (MonthName), and the
visual now sorts in the order we want: by the month of the year.
And that's it. Remember that you must select a column in the Fields pane for the Sort by Column button to
become active.
When we go back to the menu and select SalesQuantity again, the visual defaults to being ordered alphabetically
by Manufacturer, as shown in the following image.
With so many options for sorting your visuals, creating just the chart or image you want is easy.
Create reports optimized for the Power BI mobile
apps
3/18/2019 • 4 minutes to read • Edit Online
You can improve the experience of viewing your reports in the mobile apps on a phone or tablet. Create a portrait
layout of a report, specifically for phones and tablets. In Power BI Desktop and in the Power BI service, you adapt
your report by rearranging and resizing visuals in a portrait layout for an optimal experience. You don't have to
include all of them. Plus you can create responsive visuals and responsive slicers that resize well for viewing on a
phone. Also, if you add filters to your report, those filters show up automatically in the optimized report. Your
report readers can see them and filter the report with them.
You can add some or all the master report page visuals to the phone report page. You can add each visual
only once.
3. You can resize your visuals on the grid, as you would for tiles on dashboards and mobile dashboards.
The phone report grid scales across phones of different sizes, so your report looks good on small- and
large-screen phones.
Optimize a visual for any size
You can set the visuals in your dashboard or report to be responsive. They can change dynamically to display the
maximum amount of data and insight, no matter the screen size.
As a visual changes size, Power BI prioritizes the data view. For example, it can remove padding and move the
legend to the top of the visual automatically, so the visual remains informative even as it gets smaller.
You choose whether to turn on responsiveness for each visual. Read more about optimizing visuals.
Report readers can turn their phones or tablets sideways to see the page in landscape mode. Read more about
interacting with Power BI reports optimized for portrait mode.
Next steps
Create a phone view of a dashboard in Power BI
View Power BI reports optimized for your phone
Create responsive visuals optimized for any size
More questions? Try asking the Power BI Community
Use See Data and See Records in Power BI Desktop
2/13/2019 • 2 minutes to read • Edit Online
In Power BI Desktop you can drill into the details of a visualization, and see textual representations of the
underlying data or the individual data records for the selected visual. These features are sometimes referred to as
click-through, drill-through, or drill-through to details.
You can use See Data to view a textual version of the values used by the selected visualization, or use See
Records to view all the data for one selected record or data point.
IMPORTANT
See Data and See Records support only the following visualization types:
Bar chart
Column chart
Donut chart
Filled map
Funnel
Map
Pie chart
Treemap
You can also see the data by right-clicking on a visualization, and then selecting Show Data from the menu that
appears; or by selecting the More options ellipsis (...) in the upper-right corner of a visualization, and then
selecting Show Data.
NOTE
You must be hovering over a data point in the visual for the right-click menu to be available.
When you select See Data or Show Data, the Power BI Desktop canvas displays both the visual and the textual
representation of the data. In the horizontal view, the visual is displayed on the top half of the canvas, and the data
is shown on the bottom half.
You can toggle between the horizontal view and a vertical view by selecting the icon in the upper-right corner of
the canvas.
To get back to the report, select < Back to Report in the upper-left corner of the canvas.
Use See Records in Power BI Desktop
You can also focus on one data record in a visualization, and drill into the data behind it. To use See Records, select
a visualization, then select See Records in the Data/Drill tab in the Visual Tools section of the ribbon, and then
select a data point or row on the visualization.
NOTE
If the See Records button in the ribbon is disabled and grayed-out, it means the selected visualization does not support
See Records.
You can also right-click a data element and select See Records from the menu that appears.
When you select See Records for a data element, the Power BI Desktop canvas displays all the data associated
with the selected element.
To get back to the report, select < Back to Report in the upper-left corner of the canvas.
NOTE
See Records has the following limitations:
You can't change the data in the See Records view and save it back to the report.
You can't use See Records when your visual uses a calculated measure.
You can't use See Records when you are connected to a live multidimensional (MD) model.
Next steps
There are all sorts of report formatting and data management features in Power BI Desktop. Check out the
following resources for a few examples:
Use grouping and binning in Power BI Desktop
Use gridlines, snap-to-grid, z-order, alignment and distribution in Power BI Desktop reports
Tips and tricks for creating reports in Power BI
Desktop
2/13/2019 • 14 minutes to read • Edit Online
To get the most out of your data, sometimes you need a little extra help. We’ve put together some tips & tricks you
can use when creating reports in the Microsoft Power BI Desktop and in Microsoft Excel 2016, or Excel 2013 Pro-
Plus editions with the Power Pivot add-in enabled and Power Query installed and enabled.
This calculated column will return the value 100 regardless of where it is used. Your new column will show up in
the Field List. Add the Target Value calculated column to a line chart to show how any series relates to that specific
reference line.
Then use this resulting field in the map visualizations. This is very useful for building street addresses from
shipping address fields that are common in data sets. One note is that the concatenation only works with text fields.
If needed, convert the street number to a text data type before using it to build an address.
Ensure the data type is a number for the resulting aggregate column. Now you can use the group by technique
described in Simplest Histogram to achieve the histogram. This option handles more data points but still does not
help with brushing.
Defining a histogram that supports brushing - Brushing is when visuals are linked together so that when a user
selects a data point in one visual other visuals on the report page highlight or filter data points related to the
selected data point. Since we're manipulating data at query time, we will need to create a relationship between
tables and ensure we know which detail item relates to the bucket in the histogram and vice-versa.
Start the process by using the "Reference" option on the query that has the field you want to build a histogram on.
Name the new query "Buckets". For this example let's call the original query "Details". Next remove all columns
except the column you'll use as the bucket for the histogram. Now use the "Remove Duplicates" feature in query,
it's on the right click menu when you select the column, so the remaining values are the unique values in the
column. If you have decimal numbers you can first use the tip for defining buckets to build a histogram to get a
manageable set of buckets. Now, check the data shown in the query preview. If you see blank values or null you'll
need to fix those up before creating a relationship. See "Creating a relationship if my data has null or blank values".
Using this approach can be problematic due to the need to sort. To get the buckets to sort correctly, see "Sorting
order: make categories appear in the order I want".
NOTE
It's useful to think about the sort order before building any visuals.
Next step in the process is to define a relationship between the "Buckets" and "Details" queries on the buckets
column. In Power BI Desktop, click Manage Relationships in the ribbon. Create a relationsship where Buckets is
in the left table and Details in on the right table and select the field you're using for the histogram.
Last step is to create the histogram. Drag the Bucket field from the "Buckets" table. Remove the default field from
the resulting column chart. Now from the "Details" table drag the histogram field into the same visual. In the field
well, change the default aggregate to Count. The result is the histogram. If you create another visual like a treemap
from the Details table, select a data point in treemap to see the histogram highlight and show the histogram for the
selected data point relative to the trend for the entire data set.
Histograms
In Power BI Desktop, you can use a calculated field to define a Histogram. Identify the table and column on which
you want to create a histogram. In the calculation area, type the following formula:
Save your changes and return to your report. Add the <Column Name> and the Frequency to a table then convert
to a bar chart. Ensure the <Column Name> is on the x-axis and the calculated field Frequency is on the y-axis.
When we want to track all incidents and workitems that relate to a specific a CustomerName we cannot simply
create a relationship between these two data sets. Some WorkItems may not be related to a CustomerName, so
that field would be blank or NULL. There might be multiple records in WorkItems and CustomerIncidents for any
given CustomerName.
Creating relationships in Power BI Desktop when the data has null or blank values
Often data sets contain columns with null or blank values. This can cause problems when trying to use
relationships. You have essentially two options for addressing the issues. You can remove the rows that have null or
blank values. You can do this using either the filter feature in the query tab or if you're merging queries, select the
"keep only matching rows" option. Alternatively, you can replace the null or blank values with values that work in
relationships, typically strings like "NULL" and "(Blank)". There's no right approach here - Filtering out rows at the
query stage removes rows and can affect summary statistics and calculations. The latter approach preserves that
data rows but can make unrelated rows appear related in the model leading to miscalculations. If you adopt the
latter solution ensure you use filters at the View/Chart where appropriate to ensure you're getting accurate results.
Most importantly, evaluate which rows are kept/removed and understand overall impact on the analysis..
Creating relationships in Power BI Desktop when the data has duplicate values
Often when loading detailed data sets from multiple sources, duplicate data values prevent you from creating
relationships. You can overcome this by creating a dimension table with the unique values from both data sets.
Let's look at an example:
If we load data sets from of active customer support requests and another data set of work items that have
schemas as follows:
When we want to track all incidents and workitems that relate to a specific CustomerName we cannot simply
create a relationship between these two data sets. Some WorkItems may not be related to a CustomerName, so
that field would be blank or NULL. If you have any blank values or null in the CustomerNames table, you might
still not be able to create a relationship - see Creating relationships if my data has null or blank values. There might
be multiple WorkItems and CustomerIncidents for a single CustomerName.
To create a relationship in this case, we need to create a logical data set of all the CustomerNames across the two
data sets. In the Query tab, you can use the following sequence to create the logical data set:
1. Duplicate both queries, naming the first Temp and the second CustomerNames.
2. In each query, remove all columns except the CustomerName column
3. In each query, use Remove Duplicate.
4. In the CustomerNames query, select the Append option in the ribbon, select the query Temp.
5. In the CustomerNames query, select Remove Duplicates.
Now you have a dimension table that you can use to relate to CustomerIncidents and WorkItems that contains all
the values of each.
Visualizations (aka visuals) display insights that have been discovered in the data. A Power BI report might have
a single page with one visual or it might have pages full of visuals. In Power BI service, visuals can be pinned
from reports to dashboards.
It's important to make the distinction between report creators and report consumers If you are the person
building or modifying the report, then you are a creator. Creators have edit permissions to the report and its
underlying dataset. In Power BI Desktop, this means you can open the dataset in Data view and create visuals in
Report view. In Power BI service, this means you can open the dataset or report in the report editor in Editing
view. If a report or dashboard has been shared with you , you are a report consumer. You'll be able to view and
interact with the report and its visuals but you won't be able to save changes.
There are many different visual types available directly from the Power BI VISUALIZATIONS pane.
And for even more choices, visit the Microsoft AppSource community site to find and download custom visuals
provided by Microsoft and the community.
https://www.youtube.com/embed/SYk_gWrtKvM?list=PL1N57mwBHtN0JFoKSR0n-tBkUJHeMP2cP
If you're new to Power BI, or need a refresher, use the links below to learn the basics of Power BI visualizations.
Alternately, use our Table of Contents (along the left side of this article) to find even more helpful information.
Next steps
Visualization types in Power BI
Custom visuals
Best design practices for reports and visuals
1/14/2019 • 47 minutes to read • Edit Online
We’ve released a new and improved navigation and content experience for Power BI, and we’re in the process of
updating all of our documentation. The information and screenshots on this page may not match what you see on
your screen. For more information see Navigating Power BI service.
Introduction
This paper provides best practices for designing reports in Power BI. Starting with planning, it discusses principles
of design that you can apply to your reports and to the pages and individual visuals that make up that report.
Many of these best practices apply to dashboard design as well.
We hope this paper will be a jumping-off point for you and that you’ll apply what you learn to your own reports
and visualizations and that you’ll continue the conversation on community.powerbi.com. BI report design and
visualization usage is a hot topic right now and there are many thought leaders, bloggers, and websites that look at
this topic in breadth and depth (we’ve listed a few at the end).
NOTE
The recommendations made in this white paper are guidelines for you to apply when and where it makes sense. For every
principle we describe below, there are usually valid reasons to “break the rule.”
We are overwhelmed by information, not because there is too much, but because we don't know how to tame it. --
Stephen Few
By reducing the page size, individual elements become larger relative to the overall page. Do this by deselecting
any visuals on the page and using the Page Size tab in the formatting pane.
Here is a report page using page size 4:3 and then using 16:9. Notice how the layout suits 16:9 so much better.
There is even enough room to remove the scrollbar from the second visual.
Figure 11: Our report example with text guidelines applied and title added
In our example, a report page title was added in the top left corner; the first place readers look. Font size is 28 and
font is Segoe Bold to help it stand out from the rest of the page. Our text style guide calls for no backgrounds,
black titles, legends, and labels and that was applied to all visuals on the page, where possible (the Combo chart
axes and labels are not editable). Additionally:
Cards: Category label set to Off, Title turned On and set to 12pt black centered.
Visual titles: if turned On, set to 12pt and left-aligned.
Slicers: Header set to Off, Title turned On. Leave Items > Text grey and 10pt.
Scatter and column charts: black font for X and Y axes and X and Y axes titles, if used.
Color
Use color for consistency. We’ll talk more about color in Principles of visual design, below. But here we’re referring
to being deliberate in your selection of color so that it doesn’t detract from your readers being able to quickly
understand your report. Too many bright colors barrage the senses. This section is more what not to do with color.
Backgrounds
When setting backgrounds for report pages, choose colors that don’t overshadow the report, clash with other
colors on the page, or generally hurt the eyes. Realize that some colors have inherent meaning. For example, in the
US, red in a report is typically interpreted as “bad”.
Figure 21: Report example with color best practices applied (white background)
Aesthetics
Much of what we would consider aesthetics has already been discussed above: things like alignment, color, font
choices, clutter. But there are a few more best practices for report design worth discussing and these deal with the
overall appearance of the report.
Remember that the function of your report is to meet a business need; not to be pretty. But some level of beauty is
required, especially when it comes to first impressions. Nashville consultant Tony Bodoh explains "Emotion fires a
half-second before logic can kick in." Readers will first react at an emotional level to your report page, before they
take more time to dig deeper. If your page looks disorganized, confusing, unprofessional…your reader may never
discover the powerful story it tells.
TDI blogger and TechTarget industry analyst Wayne Eckerson has a great analogy. Designing a report is like
decorating a room. Over time you purchase a vase, a sofa, end table, a painting. Separately you like all of these
elements. But although each individual selection makes sense, collectively the objects clash or compete for
attention.
Concentrate on:
Creating a common theme or look for your report, and apply it to all pages of the report
Using standalone images and other graphics to support and not detract from the real story
And applying all the best practices we discussed up to this point in the article.
TIP
One scenario where you might turn Y-axis labels off would be if you had Data labels turned on.
TIP
For readers who’re new to Power BI, this ability to click and interact with reports may not be instantly obvious. Add text
boxes to help them understand what they can click on to find more insights.
TIP
Know your audience and any inherent color rules. For example, in the United States, green typically means “good” and red
typically means “not good”.
Line charts are a powerful way to look at data over time. Looking at data in tables doesn’t really take advantage of
the speed in which our eyes spot peaks, valleys, cycles, and patterns.
The example below shows the trends in the number of medals awarded and the number of athletes winning those
medals.
If line charts are the standard for looking at data over time, bar charts are the standard for looking at a specific
value across different categories. If you sort the bars based on the number, you will instantly see the top values and
distribution. Horizontal bar charts work well with long-ish labels.
Figure 51: Horizontal bar chart
Best practices
Display data labels for values. This makes it easier to identify specific values. To do this, open the Formatting
pane, and set Data labels to On.
Figure 52: Turn on data labels
The bar chart above is really useful to compare one measure against many at a single point in time.
While the line chart above showed us the trend over time, the bar chart shows us the trend for a single
category at a specific point in time. At a glance, our bar chart shows us Spain has one of the worst
unemployment rates in the world, at 25%.
When an entire Bar/Column chart doesn’t fit into the allotted space, Power BI adds scrollbars. When
possible, and if it makes sense, structure the visual and report to show the entire chart so the reader gets an
overview of the entire distribution. Unfortunately this is not possible in our example given the significant
number of countries around the world.
One way to limit the values included is to use a filter. For example, add a Visual level filter that shows the
country only if unemployment rate is above 20%.
Bar/Column charts can be drilled down (and back up again). This is a great way to pack more information
into a visual without taking up more real estate. The example below has a hierarchy for Regions >
Countries. Double-clicking a region bar drills down to the countries that make up that region. For more
information on drill, see Drill down in a visualization.
Add another dimension to your bar/column charts by stacking different categories within the bar or column. Now
the chart conveys information about one overall trend (based on height/length) but also shows the influence of the
categories on that trend. The chart below shows the overall growth of Top soccer team revenue above 6 billion in
2014.
In Power BI, you can combine column and line charts into a combo chart. The choices are: Line and Stacked
Column chart and Line and Clustered Column chart. Save valuable canvas space by combining two separate
visuals into one.
The two screenshots below show a before and after. The first page has two separate visuals: a Column chart
showing population over time and a Line chart showing GDP over time. These charts are a good candidate for a
Combo chart because they have the same X-Axis (year) and values (2002 through 2012). Why not combine them
to compare these 2 trends on a single visual? Combining these 2 charts lets you make a quicker comparison of the
data.
The new report page has a single visual: a line and stacked column chart. We could’ve just as easily created a line
and clustered column chart. It’s now easier to look for a relationship between the two trends. We can see that up
until 2008, population and GDP followed a similar trend. But starting in 2009, as population growth flattened,
GDP was more volatile.
Sometimes we have many variables that we want to see together, and a scatter chart can be a very useful way to
get an overall picture. Scatter charts display relationships between 2 (Scatter) or 3 (Bubble) quantitative measures.
A scatter chart always has two value axes to show one set of numerical data along a horizontal axis and another set
of numerical values along a vertical axis. The chart displays points at the intersection of an x and y numerical value,
combining these values into single data points. These data points may be distributed evenly or unevenly across the
horizontal axis, depending on the data.
A bubble chart replaces the data points with bubbles, with the bubble size representing an additional dimension of
the data.
The bubble chart below looks at South America and compares GDP per capita (Y -Axis) sum of GDP (X-Axis) and
population by South American country. The size of the bubbles represents total population for that country. Brazil
has the largest population (bubble size) and the largest share of South America’s GDP (it is farthest along on the
X-Axis). But notice that GDP per capita for Uruguay, Chile, and Argentina is higher than Brazil (farther up on the Y -
Axis).
Tree maps can be very useful for giving a good overview of the relative size of different components that make up
a whole -- especially when you can group them by categories. Any time I try to understand a new business, having
a tree map of the main components can be very useful in knowing the overall distribution.
In the first chart below, you can see right away that Brazil makes up approximately half of South America’s GDP
and that Venezuela and Argentina are roughly the same size.
If you want to have broader context and still have an idea of the impact of the top contributing countries, you can
create visual hierarchies with category members (countries) nested inside regions. The second tree map gives us
an idea, first and foremost, of the relative size of the regions and then, within each region, we can see which
individual countries contribute the most. We see that there are three massive regions (Europe, Asia & North
America) and within those we can easily see the top countries/regions.
The main limitation of a tree map is the limited ability to compare the different rectangles beyond the top ones. It
is a good chart for an overview but column and bar chart are probably a better choice to have more precise idea of
the relative size of different components. For example, the first tree map gives a broad indication of the order of
the GDP size, but it’s hard to identify specific differences between countries, particularly the smaller unlabeled
boxes. For this data, where a single grouping is compared, a bar or column chart might be a better choice.
Figure 63: South America GDP comparison as a tree map
Here we’ve added another level of data, region, and we can see the overall contribution to GDP by regions, as well
as the relative impact within the regions. Beware that doing this with non-summative measure (such as averages)
that the sum of the details might not represent the actual value at the aggregate level.
Radial gauges seem like a good visual for indicating performance against a target, and they are very popular in
executive dashboards. However, they suffer in two main ways. As with pie charts, it’s difficult to interpret the angle
of the shaded area compared to the full 180 degree arc or target line. It also uses a lot of space to show a single
metric.
A good alternative is a simple KPI visual
KPIs show the value, status, goal, variance from the goal and trend in the same amount of space. The green
coloring turns red if the target isn’t being met and can be yellow if some intermediate target is hit. It’s much
simpler to read and interpret than the gauge.
For more information, see:
Radial gauge charts in Power BI
KPIs in Power BI
Conclusion
Now it’s time for you to put these best practices to the test. Keep in touch and share your own best practices. Don’t
agree with our recommendations or found a great reason to “break the rules?” We’d love to hear about those as
well.
Book recommendations
There are many good books available today to help teams bone up on visual design techniques. Stephen Few’s
Information Dashboard Design book is a must-read. He delves into greater detail in two other books, Show Me the
Numbers and Now You See It. Few and others have drawn inspiration from Edward R. Tufte, whose book The
Visual Display of Quantitative Information is considered a classic in the field. Tufte has also written Visual
Explanations, Envisioning Information, and Beautiful Evidence. Andy Kirk’s new book Data Visualization: A
Handbook for Data Driven Design is another great option. Some other authors who have been recommended are:
Lachlan James, William McKnight, and Boris Evelson (Forrester), Darkhorse Analytics.
More questions? Try the Power BI Community
Change the type of visualization in a Power BI report
1/14/2019 • 2 minutes to read • Edit Online
Try different types of visualizations in Power BI service and Power BI Desktop to see which one illustrates your
data best.
1. Open a report that already has at least one visualization.
2. Select a visualization to make it active. An active visualization has handles and a border.
3. In the Visualizations pane, select the new visualization type.
.
4. (Optional) Pin your visualization to your dashboard as a tile.
If you change the visualization type in the report after you pinned it to your dashboard, the dashboard tile does
not automatically update. So, if you pinned the visualization as a line chart and then, in the report, changed it to a
bar chart, the already-pinned version of this data will remain a line chart. Pin the bar chart to see it too on the
dashboard.
Next steps
More about Visualizations in Power BI reports
Power BI - Basic Concepts
More questions? Try the Power BI Community
Data point limits and strategies by visual type
1/30/2019 • 5 minutes to read • Edit Online
When rendering a visual in Power BI, the visualization must be quick and accurate. That requires underlying
algorithms configured for each visual type. Visuals in Power BI must be flexible enough to handle different sizes of
datasets. Some datasets have only a handful of data points, while other datasets have petabytes of data points. This
article explains the strategies used by Power BI to render visualizations.
Strategies
For each strategy, there are defaults based on the shape and type of data being visualized. But the defaults can be
overridden, in the Power BI Formatting pane, to provide the right user experience.
Data Windowing (Segmentation): Allow users to scroll through the data in a visual by progressively loading
fragments of the overall dataset.
TopN: Show only the first N items
Simple Sample: Show the first, last, and N evenly distributed items in between.
BottomN: Show only the last N items. Useful for monitoring frequently updated data.
High-density sampling - An improved sampling algorithm that better respects outliers and/or the shape of a
curve.
Binned line sampling - Sample data points based on outliers in bins across an axis
Overlapping points sampling - Sample data points based on overlapping values to preserve outliers
Statistics
Certain models can provide statistics about the number of values for certain columns. When such information is
present, we leverage that information to provide better balancing across multiple hierarchies, if a visual does not
explicitly override the count of values for a strategy.
For more information, see What's new in Analysis Services
Dynamic limits
In addition to the strategies above, visuals with two hierarchies of grouping columns (axis and legend, or category
and series) use one additional strategy called dynamic limits. Dynamic limits are designed to better balance data
points.
Dynamic limits provide a better selection of points for sparse data than static limits would. For example, a visual
could be configured to select 100 categories and 10 series with a total of 1000 points. But the actual data has 50
categories and 20 series. At query runtime, dynamic limits selects all 20 series to fill up the 1000 points requested.
Dynamic limits are automatically applied when the server is capable as detailed below:
In Power BI Desktop with On-premises SSAS version 2016 or higher leveraging the SuperDax capabilities
of the server
In Desktop and Power BI service when using an imported model, Direct Query, live connect to the service,
or live connect to AS PaaS.
In Power BI Service, when connecting through an on-premises gateway to on-premises SSAS, we cannot
use dynamic limits. The on-premises gateway does not fully support the dynamic limits strategy that returns
a different structure of result sets from the on-premises SSAS.
Next steps
Visualization types
Show the data that was used to create the
visualization
1/14/2019 • 2 minutes to read • Edit Online
Show data
A Power BI visualization is constructed using data from your datasets. If you're interested in seeing behind-the-
scenes, Power BI lets you display the data that is being used to create the visual. When you select Show Data,
Power BI displays the data below (or next to) the visualization.
You can also export the data that is being used to create the visualization as an .xlsx or .csv file and view it in Excel.
For more information, see Export data from Power BI visualizations.
NOTE
Show Data and Export Data are both available in Power BI service and Power BI Desktop. However, Power BI Desktop
provides one additional layer of detail; Show Records displays the actual rows from the dataset.
5. To export the data to a .csv file, select the ellipses and choose Export data.
For more information on exporting the data to Excel, see Export data from Power BI visualizations.
6. To hide the data, de-select Explore > show data.
Next steps
Export data from Power BI visualizations
Visualizations in Power BI reports
Power BI reports
More questions? Try the Power BI Community
Getting started with color formatting and axis
properties
1/14/2019 • 3 minutes to read • Edit Online
In Power BI, you can change the color of data series, data points, and even the background of visualizations. You
can also change how the x-axis and y-axis are presented, providing you with full control of how your dashboards
and reports appear.
To get started, select a Report from the My Workspace pane. Then from the top menu area, select Edit Report.
When you’re editing a report and you have a visualization selected, the Visualizations pane appears which lets
you add or change visualizations. Directly below the available visualizations are three icons: the Fields icon (a
stack of bars), the Format icon (a roller brush), and the Analytics icon (a magnifying glass). In the image below
the Fields icon is selected, indicated by a yellow bar below the icon.
When you select Format, the area below the icon displays the color and axis customizations available for the
currently selected visualization.
You can customize many elements of each visualization:
Legend
X-axis
Y -axis
Data colors
Data labels
Shapes
Plot area
Title
Background
Lock aspect
Border
NOTE
You won’t see all these elements with each visualization type. The visualization you select will affect which customizations are
available; for example, you won’t see an X-Axis if you have a pie chart selected because pie charts don’t have an X-axis.
Also note that if you don’t have any visualization selected, Filters appears in place of the icons, which lets you
apply filters to all visualizations on the page.
Let’s show a couple examples: one working with colors, the other changing the properties of an axis. From there,
you should be ready to customize colors, axes, and labels all day long.
Let’s make some changes. I can select the down arrow next to the color to make changes on each available data
series. I’ll make Cost of living yellow, Weather I’ll turn orange, and Community well-being will be green. The
following screen shows me at the last step, changing Cost of living.
The changes are shown in the image below. Wow, that’s a bright chart. Here are a few useful elements to note
about working with colors. The numbers in the following list are also shown on the following screen, indicating
where these useful elements can be accessed or changed.
1. Don’t like the colors? No problem, just select Revert to default and your selection reverts to the default
settings. You can do that for one color, or for the entire visualization.
2. Want a color you don’t see in the palette? Just select Custom color, and choose from the spectrum.
Not crazy about the change you just made? Use CTRL+Z to undo , just like you’re used to doing.
NOTE
These color, axis, and related customizations available when the Format icon is selected are also available in Power BI
Desktop.
Next steps
For more information, see the following article:
Tips and tricks for color formatting in Power BI
Conditional formatting in tables
Tips and tricks for color formatting in Power BI
2/13/2019 • 5 minutes to read • Edit Online
Power BI provides many different ways to customize your dashboards and reports. This article details a collection
of tips that can make your Power BI visualizations more compelling, interesting, and customized to your needs.
The following tips are provided. Have another great tip? Great! Send it our way and we’ll see about adding it to
this list.
Change the color of a single data point
Base the colors of a chart on a numeric value
Base the color of data points on a field value
Customize colors used in the color scale
Use diverging color scales
How to undo in Power BI
To make any changes, you must be editing a report. Open the report and select Edit Report from the top menu
area, as shown in the following image.
When the Visualizations pane appears along the right side of the Report canvas, you’re ready to start
customizing. If the pane does not appear, select the arrow, from the top right corner, to open it.
Change the color of a single data point
Sometimes you want to highlight one particular data point. Perhaps it’s sales figures for the launch of a new
product, or increased quality scores after launching a new program. With Power BI, you can highlight a particular
data point by changing its color.
The following visualization ranks units sold by product segment.
Now imagine you want to call out the Convenience segment to show how well this brand new segment is
performing, by using color. Here are the steps:
Expand the Data Colors section and turn the slider On for Show all. This displays the colors for each data
element in the visualization. When you hover over the data points, scrolling is enabled so you can modify any of
the data points.
There are all sorts of things you can do with colors. In the next section, we take a look at gradients.
And on the Formatting pane, under Data colors, determine how the value of %Market Share SPLY YTD will
change the color and shading in your column chart. In this example, lower %Market Share will be lighter blue and
higher values will be darker blue.
As can see that, although we've sold more units of both Productivity and Extreme (their columns are higher),
Moderation has a larger %Market Share SPLY YTD (its column has more color saturation).
Customize the colors used in the color scale
You can customize colors used in the color scale, too. By default, the lowest value in your data is mapped to the
least saturated color, and the highest value to the most saturated color. In the image above, we used a blue
gradient.
Expand Data Colors and you see a gradient of colors used for visualizing your data. The color range is shown in a
gradient bar that displays the spectrum between Minimum and Maximum color values, with the Minimum
value color on the left, and Maximum value color to the right.
To change the scale to use a different range of colors, select the color drop-down beside Minimum or Maximum,
and select a color. The following image shows the Maximum color changed to black, and the gradient bar shows
the new color spectrum between Minimum and Maximum.
You can also change the way the values map to these colors. In the following image, the colors for Minimum and
Maximum are set to orange and green, respectively.
In this first image, notice how the bars in the chart reflect the gradient shown in the bar; the highest value is green,
the lowest is orange, and each bar between is colored with a shade of the spectrum between green and orange.
Now, let’s see what happens if we provide numeric values in the Minimum and Maximum value boxes, which
are below the Minimum and Maximum color selectors (shown in the following image). Let’s set Minimum to
20,000,000, and set Maximum to 20,000,001.
By setting those values, gradient is no longer applied to values on the chart that are below Minimum or above
Maximum; any bar with a value over Maximum value is colored green, and any bar with a value under
Minimum value is colored red.
Use diverging color scales
Sometimes your data may have a naturally diverging scale. For example, a temperate range has a natural center at
freezing point, and a profitability score has a natural mid-point (zero).
To use diverging color scales, slide the Diverging slider to On. When Diverging is turned on, an additional color
selector and value box, both called Center, appear, as shown in the following image.
When the Diverging slider is on, you can set the colors for Minimum, Maximum and Center separately. In the
following image, Center is set to one, so bars with values above one are a gradient shade of green, and bars below
one are shades of red.
Feedback
Do you have a tip you’d like to share? Please send it our way, and we’ll see about including it here.
NOTE
These color, axis, and related customizations, available when the Format icon is selected, are also available in Power BI
Desktop.
Next steps
Getting started with color formatting and axis properties
Copy and paste a visualization in Power BI service
and Power BI Desktop
1/14/2019 • 2 minutes to read • Edit Online
Copying and pasting a visualization requires edit permissions to the report. In Power BI service, this means
opening the report in Editing View.
1. Open a report that has at least one visualization.
2. Select the visualization and use Ctrl +C to copy, and Ctrl +V to paste.
Next steps
More about Visualizations in Power BI reports
More questions? Try the Power BI Community
Export data from visualizations
1/23/2019 • 7 minutes to read • Edit Online
If you'd like to see the data that is used to create a visualization, you can display that data in Power BI or export
that data to Excel as an .xlsx or .csv file. The option to export the data requires a Pro or Premium license and edit
permissions to the dataset and report.
Watch Will export the data from one of the visualizations in his report, save it as an .xlsx file, and open it in Excel.
Then follow the step-by-step instructions below the video to try it out yourself.
https://www.youtube.com/embed/KjheMTGjDXw
3. The data is exported to a .csv file. If the visual is filtered, then the downloaded data will also be filtered.
4. Your browser will prompt you to save the file. Once saved, open the .csv file in Excel.
From a visualization in a report
To follow along, open the Procurement analysis sample report in Editing view. Add a new blank report page. Then
follow the steps below to add an aggregation and a visualization-level filter.
1. Create a new column chart. From the Fields pane, select Location > City and Invoice > Discount
Percent. You may have to move Discount Percent into the Value well.
2. Change the aggregation for Discount Percent from Count to Average. In the Value well, select the arrow
to the right of Discount Percent (it may say Count of Discount Percent), and choose Average.
5. In Power BI online, if your visualization has an aggregate (one example would be if you changed Count to
average, sum or minimum), you'll have two options: Summarized data and Underlying data. In Power
BI Desktop, you'll only have the option for Summarized data. For help understanding aggregates, see
WARNING
Exporting underlying data allows users to see all the detailed data -- every column in the data. Power BI service
administrators can turn this off for their organization. If you are a dataset owner, you can set proprietary columns to
"hidden" so that they don't show up in the Field list in Desktop or Power BI service.
Underlying data: select this option if you want to see the data in the visual and additional data from the
model (see chart below for details). If your visualization has an aggregate, selecting Underlying data
removes the aggregate. When you select Export, the data is exported to an .xlsx file and your browser
prompts you to save the file. Once saved, open the file in Excel.
In this example, our Excel export shows one row for every single City row in our dataset, and the discount
percent for that single entry. In other words, the data is flattened and not aggregated. The first row of our
spreadsheet shows the filters that were used when extracting the data from Power BI.
Aggregates the first aggregate and non-hidden data from the entire table
for that aggregate
Aggregates related data - if the visual uses data from other data tables
that are related to the data table that contains the aggregate
(as long as that relationship is *:1 or 1:1)
VISUAL CONTAINS WHAT YOU'LL SEE IN EXPORT
Measures All measures in the visual and all measures from any data
table containing a measure used in the visual
Measures All non-hidden data from tables that contain that measure (as
long as that relationship is *:1 or 1:1)
Measures All data from all tables that are related to table(s) containing
the measures via a chain of *:1 of 1:1)
Measures only All non-hidden columns from all related tables (in order to
expand the measure)
Measures only Summarized data for any duplicate rows for model measures.
IMPORTANT
We recommend that report designers revisit old reports and manually reset the export option as needed.
Only report creators and owners can move and resize visualizations. In Power BI service (app.powerbi.com) this
means opening the report in Editing view.
Next steps
Resize a visualization on a dashboard
More questions? Try the Power BI Community
Change how visuals interact in a Power BI report
2/19/2019 • 2 minutes to read • Edit Online
If you have edit permissions for a report, you can use Visual interactions to change how visualizations on a
report page impact each other.
By default, visualizations on a report page can be used to cross-filter and cross-highlight the other visualizations
on the page. For example, selecting a state on a map visualization highlights the column chart and filters the line
chart to display only data that applies to that one state. See About filtering and highlighting. And if you have a
visualization that supports drilling, by default, drilling one visualization has no impact on the other visualizations
on the report page. But both of these default behaviors can be overridden, and interactions set, on a per-
visualization basis.
This article shows you how to use Visual interactions in Power BI service Editing view and in Power BI Desktop.
If a report has been shared with you, you will not be able to change the Visual interactions settings.
NOTE
The terms cross-filter and cross-highlight are used to distinguish the behavior described here from what happens when you
use the Filters pane to filter and highlight visualizations.
https://www.youtube.com/embed/N_xYsCbyHPw?list=PL1N57mwBHtN0JFoKSR0n-tBkUJHeMP2cP
1. Select a visualization to make it active.
2. Display the Visual Interactions options.
In Power BI service, select the dropdown from the report menubar.
3. To turn on the visualization interaction controls, select Edit interactions. Power BI adds cross-filter and
cross-highlight icons to all of the other visualizations on the report page.
4. Determine what impact the selected visualization should have on the others. And, optionally, repeat for all
other visualizations on the report page.
Power BI integrates with Bing Maps to provide default map coordinates (a process called geo-coding) so you can
create maps. Together they use algorithms to identify the correct location, but sometimes it's a best guess. If Power
BI tries, but can't create the map visualization on its own, it enlists the help of Bing Maps.
You, or your administrator, may need to update your firewall to allow access to the URLs Bing uses for geocoding.
Those URLs are:
https://dev.virtualearth.net/REST/V1/Locations
https://platform.bing.com/geo/spatial/v1/public/Geodata
https://www.bing.com/api/maps/mapcontrol
To increase the likelihood of correct geo-coding, use the following tips. The first set of tips is for you to use if you
have access to the dataset itself. The second set of tips is things you can do in Power BI if you don't have access to
the dataset. And the final set is a list of URLs
In this second example below, the field Territory is being used for geo-coding, so all territory data is sent to
Bing. Data from the Legend and Color saturation buckets is not sent to Bing.
In the dataset: tips to improve the underlying dataset
If you have access to the dataset that is being used to create the map visualization, there are a few things you can
do to increase the likelihood of correct geo-coding.
1. Categorize geographic fields in Power BI Desktop
In Power BI Desktop, you can ensure fields are correctly geo-coded by setting the Data Category on the data
fields. Select the desired table, go to the Advanced ribbon and then set the Data Category to Address, City,
Continent, Country/Region, County, Postal Code, State or Province. These data categories help Bing
correctly encode the date. To learn more, see Data categorization in Power BI Desktop. If you are live connecting to
SQL Server Analysis Services, you will need to set the data categorization outside of Power BI using SQL Server
Data Tools (SSDT).
2. Use more than one location column.
Sometimes, even setting the data categories for mapping isn't enough for Bing to correctly guess your intent.
Some designations are ambiguous because the location exists in multiple countries or regions. For example,
there's a Southampton in England, Pennsylvania, and New York.
Power BI uses Bing's unstructured URL template service to get the latitude and longitude coordinates based on a
set of address values for any country. If your data doesn't contain enough location data, add those columns and
categorize them appropriately.
For example, if you only have a City column, Bing may have a hard time geo-coding. Add additional geo columns
to make the location unambiguous. Sometimes all it takes is adding one more location column to the dataset - in
this case state/province. And don't forget to categorize it properly, see #1 above.
Make sure when each field only has the specific information tied to the categorization. For example, your City
location field should be Southampton, not Southampton, New York. And Address location fields should be 1
Microsoft Way and not 1 Microsoft Way, Redmond, WA.
3. Use specific Latitude and Longitude
Add latitude and longitude values to your dataset. This removes any ambiguity and returns results more quickly.
Latitude and Longitude fields must be in Decimal Number format, which you can set in the data model.
https://www.youtube.com/embed/ajTPGNpthcg
4. Use Place category for columns with full location information
While we encourage you to use geo-hierarchies in your maps, if you must use a single location column with full
geographical information, you can set the data categorization to Place. For example, if the data in your column is
full addresses, such as 1 Microsoft Way, Redmond Washington 98052, this generalized data category will work
best with Bing.
In Power BI: tips to get better results when using map visualizations
1. Use latitude and longitude fields (if they exist)
In Power BI, if the dataset you are using has fields for longitude and latitude -- use them! Power BI has special
buckets to help make the map data unambiguous. Just drag the field that contains your latitude data into the
Visualizations > Latitude area. And do the same for your longitude data. When you do this, you also need to fill
the Location field when creating your visualizations. Otherwise, the data is aggregated by default, so for example,
the latitude and longitude would be paired at the state level, not the city level.
Next steps
Drill down in a Power BI visualization
Power Bi visualizations
More questions? Try the Power BI Community
Customize X-axis and Y-axis properties
2/13/2019 • 4 minutes to read • Edit Online
In this tutorial you'll learn many different ways to customize the X-axis and Y -axis of your visuals. Not all visuals
have axes or can be customized; Pie charts, for example, don't have axes. And customization options vary from
visual to visual, too many options to cover in a single article. So we'll take a look at some of the most-used axes
customizations and get you comfortable using the visual formatting tab in the Power BI report canvas.
NOTE
This page applies to both Power BI service and Power BI Desktop. These customizations, which are available when the
Format (the paint roller icon ) is selected, are also available in Power BI Desktop.
Watch Amanda customize her X and Y axes and demonstrate the various ways to control concatenation when
using drill-up and drill-down. Then follow the step-by-step instructions below the video to try it out yourself using
the Retail Analysis sample.
https://www.youtube.com/embed/9DeAKM4SNJM
3. Turn the X-axis on and off by selecting the On (or Off) slider. For now, leave it On. One reason you might
want to turn off the X-axis is to save space for more data.
4. Format the text color, size, and font. In this example we've set text Color to black, Text Size to 14, and Font
to Arial Black.
5. Turn the X-axis Title On and display the name of the X axis -- in this case, FiscalMonth.
6. Format the title text color, size, and font. In this example we've set Title color to orange, changed Axis title
to Fiscal Month, and set Title text size to 21.
7. To sort by FiscalMonth, select the ellipses (...) in the top-right corner of the chart and select Sort By
FiscalMonth.
After all these customizations, your column chart should look something like this:
To revert all the X-axis customization you've done so far, select Revert To Default at the bottom of the X-axis
customization pane.
2. Turn the Y -axis on and off by selecting the On (or Off) slider. For now, leave it On. One reason you might
want to turn off the Y -axis is to save space for more data.
In January GM% was 35%, peaked at 45% in April, dropped in July and peaked again in August. Will we see
a similar pattern in sales last year and this year?
3. Add This Year Sales > Value and Last Year Sales to the line chart. The scale of GM% Last Year (the blue
line running along the 0M% gridline) is much smaller than the scale of Sales which makes it difficult to
compare. And the Y -Axis label percentages are ridiculous.
4. To make the visual easier to read and interpret, convert the line chart to a Line and Stacked Column chart.
5. Drag Gross Margin Last Year % from Column Values into Line Values. What we have now is the
stacked column chart we created above plus a line chart. (Optionally, use what you learned above to format
the axes font color and size.)
Power BI creates two axes, thus allowing the datasets to be scaled differently; the left measures dollars and
the right measures percentage.
For more information, see Tips and tricks for color formatting, labeling, and axis properties.
Next steps
More about Visualizations in Power BI reports
Customize titles, backgrounds, and legends
Customize colors and axis properties
Power BI - Basic Concepts
More questions? Try the Power BI Community
ArcGIS maps in Power BI service and Power BI
Desktop by Esri
2/11/2019 • 11 minutes to read • Edit Online
This tutorial is written from the point of view of a person creating an ArcGIS map. Once a creator shares an
ArcGIS map with a colleague, that colleague can view and interact with the map but not save changes. To learn
more about viewing an ArcGIS map, see Interacting with ArcGIS maps.
The combination of ArcGIS maps and Power BI takes mapping beyond the presentation of points on a map to a
whole new level. Choose from base maps, location types, themes, symbol styles, and reference layers to create
gorgeous informative map visualizations. The combination of authoritative data layers on a map with spatial
analysis conveys a deeper understanding of the data in your visualization.
While you cannot create an ArcGIS maps on a mobile device, you can view and interact with it. See Interacting
with ArcGIS maps.
TIP
GIS stands for Geographic Information Systems.
The example below uses a dark gray canvas to show regional sales as a heatmap against a demographic layer of
2016 median disposable income. As you'll see as you read on, using ArcGIS maps offers almost limitless enhanced
mapping capability, demographic data, and even-more compelling map visualizations so you can tell your best
story.
TIP
Visit esri's page on Power BI to see many examples and read testimonials. And then see esri's ArcGIS Maps for Power BI
Getting Started page.
User consent
ArcGIS Maps for Power BI is provided by Esri (www.esri.com). Your use of ArcGIS Maps for Power BI is subject by
Esri's terms and privacy policy. Power BI users wishing to use the ArcGIS Maps for Power BI visuals, need to
accept the consent dialog.
Resources
Terms
Privacy Policy
ArcGIS Maps for Power BI product page
2. Select the ArcGIS Maps for Power BI checkbox. You'll need to restart Power BI after you make the
selection.
3. Open a report in Editing view and select the ArcGIS Maps for Power BI icon from the Visualizations pane.
NOTE
ArcGIS Maps for Power BI will automatically detect if the fields you've selected are best viewed as a shape or a point
on a map. You can adjust the default in the settings (see below).
2. Convert the visualization to an ArcGIS map by selecting the template from the Visualizations pane .
3. From the Fields pane, drag a measure to the Size bucket to adjust how the data is shown. In this example
we're using Sales > Last Year Sales.
Settings and formatting for ArcGIS maps
To access ArcGIS Maps for Power BI formatting features:
1. Access additional features by selecting the ellipsis in the top right corner of the visualization and choosing
Edit.
The available features display across the top of the visualization. Each feature, when selected, opens a task
pane that provides detailed options.
NOTE
For more information about the settings and features, see Detailed documentation below.
2. To return to the report, select Back to Report from the top-left corner of your report canvas.
Detailed documentation
Esri provides comprehensive documentation on the feature set of ArcGIS Maps for Power BI.
Features overview
Base Maps
Four base maps are provided: Dark Gray Canvas, Light Gray Canvas, OpenStreetMap, and Streets. Streets is
ArcGIS's standard base map.
To apply a base map select it in the task pane.
Location type
ArgGIS Maps for Power BI automatically detects the best way to show data on the map. It selects from Points or
Boundaries. The Location type options allow you to fine tune these selections.
Boundaries will only work if your data contains standard geographic values. Esri automatically figures out the
shape to show on the map. Standard geographic values include countries, provinces, zip codes, etc. But just like
with GeoCoding, Power BI may not detect the field should be a boundary by default, or it may not have a
boundary for your data.
Map theme
Four map themes are provided. Location Only and Size themes are automatically chosen based on the fields you
bind to the location and added to the Size bucket in the Power BI Fields pane. We're currently using Size, so let's
change to Heat map.
THEME DESCRIPTION
Location Only Plots data points or filled boundaries on the map based on
the settings in Location Type.
Size Plots data points on the map based that are sized based on
the value in the size bucket in the fields pane.
Symbol style
Symbol styles enable you to fine tune how data is presented on the map. Symbol styles are context sensitive based
on the selected Location type and Map theme. The example below shows Location type set to Size and several
adjustments to transparency, style and size.
Pins
Call attention to points on your map by adding pins.
1. Select the Pins tab.
2. Type keywords (such as addresses, places, and point of interest), in the search box and select from the
dropdown. A symbol appears on the map, and the map automatically zooms to the location. Search results
are saved as location cards in the Pins pane. You can save up to 10 location cards.
3. Power BI adds a pin to that location and you can change the color of the pin.
Drive time
The Drive time pane lets you select a location and then determine what other map features are within a specified
radius or driving time.
1. Select the Drive time tab and choose the single or multi select tool. Single select the pin for Washington
D.C.
TIP
It's easier to select a location if you zoom in on the map (using the + icon).
2. Let's say you're flying into Washington D.C. for a few days and want to figure out which stores are within a
reasonable driving distance. Change Search area to Radius and Distance to 50 miles and select OK.
3. The radius is shown in purple. Select any location to display its details. Optionally, format the radius by
changing color and outline.
Reference Layer
Reference layer - Demographics
ArcGIS Maps for Power BI provides a selection of demographic layers that help contextualize data from Power BI.
1. Select the Reference layer tab and choose Demographics.
2. Each layer listed has a checkbox. Add a checkmark to add that layer to the map. In this example we've added
average household income.
3. Each layer is interactive as well. Just as you can hover over a bubble to see the details, you can click a
shaded area on the map to see the details.
Draws a rectangle on the map and selects the contained data points.
Allows boundaries or polygons within reference layers to be used to select contained data points.
NOTE
A maximum of 250 data points can be selected at a time.
Getting help
Esri provides comprehensive documentation on the feature set of ArcGIS Maps for Power BI.
You can ask questions, find the latest information, report issues, and find answers on the Power BI community
thread related to ArcGIS Maps for Power BI.
If you have a suggestion for an improvement, please submit it to Power BI's ideas list.
Managing use of ArcGIS Maps for Power BI within your organization
Power BI provides the ability for users, tenant administrators, and IT administrators to manage whether to use
ArcGIS Maps for Power BI.
User options In Power BI Desktop, users can stop using ArcGIS Maps for Power BI by disabling it on the security
tab in Options. When disabled, ArcGIS Maps will not load by default.
In Power BI service, users can stop using ArcGIS Maps for Power BI by disabling it on the ArcGIS Maps for Power
BI tab in user Settings. When disabled, ArcGIS Maps will not load by default.
Tenant admin options In PowerBI.com, tenant administrators can prevent all tenant users from using ArcGIS
Maps for Power BI by disabling. When this happens, Power BI will no longer see the ArcGIS Maps for Power BI
icon in the visualizations pane.
IT Administrator options Power BI Desktop supports using Group Policy to disable ArcGIS Maps for Power BI
across an organization's deployed computers.
ATTRIBUTE VALUE
valueName EnableArcGISMaps
SERVICE/APP AVAILABILITY
Power BI Embedded No
In services or applications where ArcGIS Maps for Power BI is not available, the visualization will show as an
empty visual with the Power BI logo.
When geocoding street addresses, only the first 1500 addresses are geocoded. Geocoding place names or
countries is not subject to the 1500 address limit.
How do ArcGIS Maps for Power BI work together? ArcGIS Maps for Power BI is provided by Esri
(www.esri.com). Your use of ArcGIS Maps for Power BI is subject by Esri's terms and privacy policy. Power BI
users wishing to use the ArcGIS Maps for Power BI visuals, need to accept the consent dialog (see User Consent
for details). Using Esri’s ArcGIS Maps for Power BI is subject to Esri’s Terms and Privacy Policy, which are also
linked to from the consent dialog. Each user must consent prior to using ArcGIS Maps for Power BI for the first
time. Once the user accepts the consent, data bound to the visual is sent to Esri’s services at least for geocoding,
meaning transforming location information into latitude and longitude information that can be represented in a
map. You should assume any data bound to the data visualization can be sent to Esri’s services. Esri provides
services like base maps, spatial analytics, geocoding, etc. The ArcGIS Maps for Power BI visual interacts with these
services using an SSL connection protected by a certificate provided and maintained by Esri. Additional
information about ArcGIS Maps for Power BI can be obtained from Esri’s ArcGIS Maps for Power BI product
page.
When a user signs up for a Plus subscription offered by Esri through ArcGIS Maps for Power BI, they are entering
into an direct relationship with Esri. Power BI does not send personal information about the user to Esri. The user
signs in to and trusts an Esri provided AAD application using their own AAD identity. By doing so, the user is
sharing their personal information directly with Esri. Once the user adds Plus content to an ArcGIS Maps for
Power BI visual, other Power BI users also need a Plus subscription from Esri to view or edit that content.
For technical detailed questions about how Esri’s ArcGIS Maps for Power BI works, reach out to Esri through their
support site.
Is there any charge for using ArcGIS Maps for Power BI?
The ArcGIS Map for Power BI is available to all Power BI users at no additional cost. It is a component provided by
Esri and your use is subject to the terms and privacy policy provided by Esri as noted earlier in this article.
I'm getting an error message in Power BI Desktop about my cache being full
This is a bug that is being addressed. In the meantime, to clear your cache, please try to delete files at this location:
C:\Users\AppData\Local\Microsoft\Power BI Desktop\CEF and then restart Power BI.
Does ArcGIS Maps for Power BI support Esri Shapefiles?
ArcGIS Maps for Power BI automatically detects standard boundaries like countries/regions, states/provinces, and
zip/postal codes. If you need to provide your own shapes you can do so using the Shape Maps for Power BI
Desktop (Preview ).
Can I view my ArcGIS maps offline?
No, Power BI needs network connectivity to display the maps.
Can I connect to my ArcGIS Online account from Power BI?
Not yet. Vote for this idea and we'll send you an email when we start working on this feature.
Next steps
Interacting with an ArcGIS map that has been shared with you
Blog post announcing availability of ArcGIS maps for Power BI
More questions? Try asking the Power BI Community
Basic Area chart
1/14/2019 • 2 minutes to read • Edit Online
The basic area chart (aka layered area chart.) is based on the line chart. The area between axis and line is filled with
colors to indicate volume.
Area charts emphasize the magnitude of change over time, and can be used to draw attention to the total value
across a trend. For example, data that represents profit over time can be plotted in an area chart to emphasize the
total profit.
d. To display the chart by month, select the ellipses (top right corner of the visual) and choose Sort by
month. To change the sort order, select the ellipses again and select either Sort ascending or Sort
descending.
Next step
Reports in Power BI
Card visualizations
1/30/2019 • 3 minutes to read • Edit Online
Sometimes a single number is the most important thing you want to track in your Power BI dashboard or report,
such as total sales, market share year over year, or total opportunities. This type of visualization is called a Card. As
with almost all of the native Power BI visualizations, Cards can be created using the report editor or Q&A.
3. Hover over the card and select the pin icon to add the visualization to the dashboard.
4. Pin the tile to an existing dashboard or to a new dashboard.
Existing dashboard: select the name of the dashboard from the dropdown.
New dashboard: type the name of the new dashboard.
5. Select Pin.
A Success message (near the top right corner) lets you know the visualization was added, as a tile, to your
dashboard.
6. Select Go to dashboard. There, you can edit and move the pinned visualization.
TIP
From a Power BI service report, in Editing view, select Ask a question from the top menubar. From a Power BI Desktop
report, find some open space in a report and double-click to open a question box.
4. Select the pin icon in the upper-right corner to add the card to a dashboard.
7. Select Go to dashboard to see the new tile. There, you can rename, resize, add a hyperlink, and reposition
the tile, and more on your dashboard.
Considerations and troubleshooting
If you do not see a question box at all, contact your system or tenant administrator.
If you are using Desktop and double-clicking empty space in a report doesn't open Q&A, you may need to
enable it. Select File > Options and Settings > Options > Preview features > Q&A and restart Desktop.
Format a card
You have many options for changing labels, text, color and more. The best way to learn is to create a card and then
explore the Formatting pane. Here are just a few of the formatting options available.
1. Start by selecting the paintroller icon to open the Formatting pane.
2. Expand Data label and change the color, size, and font family. If you had thousands of stores, you could use
Display units to show the number of stores by thousands and control the decimal places as well. For
example, 125.8K instead of 125,832.00.
3. Expand Category label and change the color and size.
4. Expand Background and move the slider to On. Now you can change the background color and
transparency.
5. Continue to explore the formatting options until your card is exactly how you'd like it.
Next steps
Combo charts in Power BI
Visualization types in Power BI
Combo Chart in Power BI
1/14/2019 • 3 minutes to read • Edit Online
In Power BI, a combo chart is a single visualization that combines a line chart and a column chart. Combining the
2 charts into one lets you make a quicker comparison of the data.
Combo charts can have one or two Y axes.
7. From the Fields pane, drag Sales > Last Year Sales to the Line Values bucket.
3. To make the visual easier to read and interpret, convert the line chart to a Line and Stacked Column chart.
4. Drag Gross Margin Last Year % from Column Values into Line Values. Power BI creates two axes, thus
allowing the datasets to be scaled differently; the left measures sales dollars and the right measures
percentage. And we see the answer to our question; yes, we do see a similar pattern.
Add titles to the axes
1. Select the paint roller icon to open the Formatting pane.
2. Select the down arrow to expand the Y -axis options.
3. For Y -Axis (Column), set Position to Left, set Title to On, Style to Show title only, and Display as
Millions.
4. Under Y -Axis (Column), scroll down and ensure that Show Secondary is set to On. This displays options
for formatting the line chart portion of the combo chart.
5. For Y -Axis (Line), leave Position as Right, turn Title to On, and set Style to Show title only.
Your combo chart now displays dual axes, both with titles.
6. Optionally, modify the text font, size, and color and set other formatting options to improve the display and
readability of the chart.
From here you might want to:
Add the combo chart as a dashboard tile.
Save the report.
Make the report more accessible for people with disabilities.
Next steps
Doughnut charts in Power BI
Visualization types in Power BI
Doughnut charts in Power BI
1/14/2019 • 2 minutes to read • Edit Online
A doughnut chart is similar to a pie chart in that it shows the relationship of parts to a whole. The only difference is
that the center is blank and allows space for a label or icon.
3. From the Visualizations pane, select the icon for doughnut chart to convert your bar chart to a
doughnut chart. If Last Year Sales is not in the Values area, drag it there.
A filled map uses shading or tinting or patterns to display how a value differs in proportion across a geography or
region. Quickly display these relative differences with shading that ranges from light (less-frequent/lower) to dark
(more-frequent/more).
3. Power BI opens the report. Select Edit report to open the report in Editing View.
4. Add a new page by selecting the yellow plus sign at the bottom of the report canvas.
2. Convert the chart to a filled map. Notice that State is now in the Location well. Bing Maps uses the field in
the Location well to create the map. The location can be a variety of valid locations: countries, states,
counties, cities, zip codes or other postal codes etc. Bing Maps provides filled map shapes for locations
around the world. Without a valid entry in the Location well, Power BI cannot create the filled map.
3. Filter the map to display only the continental United States.
a. At the bottom of the Visualizations pane, look for the Filters area.
b. Hover over State and click the expand chevron
c. Place a check mark next to All and remove the check mark next to AK.
4. Select SalesFact > Sentiment to add it to the Color saturation well. The field in the Color saturation
well controls the map shading.
5. The filled map is shaded in green and red, with red representing the lower sentiment numbers and green
representing the higher, more-positive sentiment. Here I've highlighted the state of Wyoming (WY ) and see
that Sentiment is very good, 74.
5. On the filled map, select a state. This highlights the other visualizations on the page. Selecting Texas, for
example, shows me that Sentiment is 74, Texas is in the Central District #23.
6. Select a data point on the VanArsdel - Sentiment by Month line chart. This filters the filled map to show
Sentiment data for VanArsdel and not their competition.
Considerations and troubleshooting
Map data can be ambiguous. For example, there's a Paris, France, but there's also a Paris, Texas. Your geographic
data is probably stored in separate columns – a column for city names, a column for state or province names, etc. –
so Bing may not be able to tell which Paris is which. If your dataset already contains latitude and longitude data,
Power BI has special fields to help make the map data unambiguous. Just drag the field that contains your latitude
data into the Visualizations > Latitude area. And do the same for your longitude data.
If you have permissions to edit the dataset in Power BI Desktop, watch this video for help addressing map
ambiguity.
https://www.youtube.com/embed/Co2z9b-s_yM
If you do not have access to latitude and longitude data, follow these instructions to update your dataset.
For more help with Map visualizations, see Tips and tricks for map visualizations.
Next steps
Shape map
Visualization types in Power BI
Funnel charts
1/14/2019 • 3 minutes to read • Edit Online
A funnel chart helps you visualize a linear process that has sequential connected stages. For example, a sales
funnel that tracks customers through stages: Lead > Qualified Lead > Prospect > Contract > Close. At a glance,
the shape of the funnel conveys the health of the process you're tracking.
Each funnel stage represents a percentage of the total. So, in most cases, a funnel chart is shaped like a funnel --
with the first stage being the largest, and each subsequent stage smaller than its predecessor. A pear-shaped
funnel is also useful -- it can identify a problem in the process. But typically, the first stage, the "intake" stage, is the
largest.
2. Convert the chart to a funnel. Notice that Sales Stage is in the Group well.
3. From the Fields pane, select Fact > Opportunity Count.
2. To set preferences for how visuals cross-highlight and cross-filter each other, see Visual interactions in
Power BI
2. Be sure to add "as funnel" so Power BI knows which visualization type you'd prefer.
Next steps
Gauges in Power BI
Visualization types in Power BI
Key influencers visualization
3/5/2019 • 18 minutes to read • Edit Online
The key influencers visual helps you understand the factors that drive a metric you are interested in. It analyzes
your data, ranks the factors that matter, and displays them as key influencers. For example, you're interested in
figuring out what influences employee turnover (churn). One factor may be employment contract length and
another may be employee age.
1. Tabs - select a tab to switch between views. Key influencers shows you the top contributors to the selected
metric value. Top segments shows you the top segments that contribute to the selected metric value. A
segment is made up of a combination of values. For example, one segment may be consumers who have
been customers for at least twenty years and live in the west region.
2. Dropdown - value of the metric being investigated. In this example we're looking at the metric rating and
the value we've selected is low.
3. Restatement - helps us interpret the visual in the left pane.
4. Left pane - the left pane contains one visual. In this case, the left pane shows us a list of the top key
influencers.
5. Restatement - helps us interpret the visual in the right pane.
6. Right pane - the right pane contains one visual. In this case, the column chart displays all the values for the
key influencer, Theme that is selected in the left pane. The specific value (Usability) from the left pane is
in green and all the other values for Theme are in black.
7. Average line - the average is calculated for all the other possible values for Theme except usability. So the
calculation applies to all the values in black. It tells us what percentage of the other Themes gave us a low
rating. In other words, when a rating is given by a customer, that customer also describes the reason or
theme for the rating. Some themes are usability, speed, security, etc. Theme is Usability is the second
highest key influencer for a low rating, according to our visual in the left pane. If we average all the other
themes, and their contribution to a rating of low, we get the result seen here in red. Of all the other themes
given, only 11.35% of those are higher than usability.
8. Checkbox - only show values that are influencers.
NOTE
The Customer Feedback dataset is based on [Moro et al., 2014] S. Moro, P. Cortez and P. Rita. A Data-Driven Approach to
Predict the Success of Bank Telemarketing. Decision Support Systems, Elsevier, 62:22-31, June 2014
2. Drag the metric you want to investigate into the Analyze field. The Analyze field supports categorical
(non-continuous) variables only. Since we are interested in looking at what drives a customer rating of our
service to be Low, we select Customer Table > Rating.
3. Next, drag fields that you think could influence Rating into the Explain By well. You can drag in as many
fields as you’d like. In this case, we are starting out with:
Country-Region
Role in Org
Subscription Type
Company Size
Theme
4. Since we're interested in negative ratings, select Low in the dropdown for What influences Rating to be.
The analysis runs on the table level of the field being analyzed. In this case, we are interested in the Rating metric,
which is defined at a customer level (each customer has either given a high score or low score). All our explanatory
factors have to be defined at the customer level for the visual to make use of them.
In the example above, all of our explanatory factors have either a one-to-one or many-to-one relationship with our
metric. For example, each score has exactly one theme associated with it (what was the main theme of the
customer review ). Similarly, customers come from one country, have one membership type and one role in their
organization. Our explanatory factors are therefore already attributes of a customer and no transformations are
needed – the visual can make immediate use of them.
Later on in the tutorial we will look at more complex examples where we have one-to-many relationships. In those
cases, the columns have to first be aggregated down to the customer level before the analysis can be run.
Measures and aggregates used as explanatory factors are also evaluated at the table level of the Analyze metric
and we will see some examples later in this article.
More precisely, our consumers are 2.57x more likely to give us a negative score. The key influencer chart lists Role
in Org is consumer first in the list on the left. By selecting Role in Org is consumer, Power BI shows us
additional details on the pane to the right -- the comparative impact of each role on likelihood of a low rating.
14.93% of consumers give a low score
On average, all other roles give a low score 5.78% of the time
Consumers are therefore 2.57x more likely to give a low score compared to all other roles (difference between
green bar and red dotted line)
Second single factor influencing likelihood of a low rating
The key influencers visual is able to compare and rank factors from many different variables. Our second influencer
has nothing to do with Role in Org. Select the second influencer in the list; Theme is usability.
Here we see that the second most important factor is related to the theme of the customer’s review. Customers
who commented about the usability of the product were 2.21x more likely to give a low score compared to
customers who commented on other themes, such as reliability, design, or speed.
You can see between the visuals that the average (red dotted line) has changed from 5.78% to 11.34%. The average
is dynamic as it is based on the average of all other values. In the case of the first influencer, the average excluded
the customer role whilst in the case of the second, it excluded the usability theme.
Ticking the box at the bottom of the visual will result in the visual filtering to only the influential values (in this case
roles that drive a low score). We therefore go from looking at 12 themes to the four Power BI has identified as
driving low ratings.
The visualization works by looking at patterns in the data for one group (for example, customers who gave low
ratings) compared to other groups (for example, customers who gave high ratings). If the data in your model has
very few observations, it is hard to find patterns. If the visualization doesn’t have enough data to find meaningful
influencers it will indicate more data is needed to run the analysis. We recommend having at least 100
observations for the selected state (customers churning) and at least 10 observations for the states you are using
for comparison (customers not churning).
I am seeing an error that a field in ‘Explain by’ is not uniquely related to the table containing the metric
I am analyzing. Why is that?
The analysis runs on the table level of the field being analyzed. For example, if you are analyzing customer
feedback for your service you might have a table which tells you whether a customer gave a high rating or a low
rating. In this case, your analysis would be running at the customer table level.
If you have a related table that is defined at a more granular level than the table that contains your metric, you will
hit this error. Let’s illustrate this through an example:
You are analyzing what drives customers to give low ratings of your service
You are interested in seeing if the device on which the customer is consuming your service influence the
reviews they give
A customer can consume the service in multiple different ways
In the example below, customer 10000000 uses both a browser and tablet to interact with the service
If you try to use the device column as an explanatory factor you will see the following error:
This is because device is not defined at the customer level – one customer can consume the service on multiple
devices. For the visualization to find patterns, the device needs to become an attribute of the customer. In this case I
have several solutions depending on my understanding of the business:
I can change the summarization of device to, for example, count if I believe the number of devices could have an
impact on the score a customer gives
I can pivot the device column to see if consuming the service on a specific device influences a customer’s rating
In this example I pivoted my data to create new columns for ‘browser, ‘mobile and ‘tablet. I can now use these in
‘Explain by’. We find that all devices turn out to be influencers with the browser having the largest impact on
customer score.
More precisely, customers who do not use the browser to consume the service are 3.79x more likely to give a low
score than those who do. We see lower down in the list that in the case of mobile the inverse is true. Customers
who use the mobile app are more likely to give a low score than those who don’t.
I see a warning that measures were not included in my analysis. Why is that?
The analysis runs on the table level of the field being analyzed. If you are analyzing customer churn you might have
a table which tells you whether a customer churned or not. In this case, your analysis would be running at the
customer table level.
Measures and aggregates are by default analyzed at that table level. If we had a measure for ‘Average monthly
spending’ that would be analyzed at the customer table level.
If the customer table does not have a unique identifier, we are not able to evaluate the measure and it is ignored by
the analysis. In order to avoid this, ensure the table with your metric (in this case the customer table) has a unique
identifier (for example, customer ID ). It’s also very easy to add an index column using Power Query.
I see a warning that the metric I am analyzing has more than 10 unique values and that this may impact
the quality of my analysis. Why is that?
The AI visualization is optimized for analyzing categories (for example, Churn is ‘Yes’ or ‘No’, Customer
Satisfaction is ‘High’, ‘Medium’ or ‘Low’ etc.) Increasing the number of categories to analyze means we have fewer
observations per category which makes it harder for the visualization to find patterns in the data.
In order to find stronger influencers, we recommend grouping similar values into a single unit. For example, if you
have a metric for price, it is likely you will obtain better results by grouping similar prices into something like
‘High’, ‘Medium’, ‘Low’ buckets, vs. using individual price points.
There are factors in my data that look like they should be key influencers but they are not. How can that
happen?
In the example below we see that customers who are consumers drive low ratings (14.93% ratings are low ).
Interestingly, the administrator role also has a high proportion of low ratings (13.42%) but is not considered an
influencer.
The reason behind this is the visualization also takes into consideration the number of datapoints when finding
influencers. In the example below we have over 29,000 consumers and 10 times fewer administrators (about
2,900). Furthermore, only 390 of them gave a low rating. The visual therefore doesn’t have enough data to
determine whether it has truly found a patter with administrator ratings of if it’s just a chance finding.
Next steps
Combo charts in Power BI
Visualization types in Power BI
High density line sampling in Power BI
1/14/2019 • 8 minutes to read • Edit Online
Beginning with the June 2017 release of the Power BI Desktop and updates to the Power BI service, a new
sampling algorithm is available that improves visuals that sample high-density data. For example, you might
create a line chart from your retail stores’ sales results, each store having more than ten thousand sales receipts
each year. A line chart of such sales information would sample data (select a meaningful representation of that
data, to illustrate how sales varies over time) from the data for each store, and create a multi-series line chart that
thereby represents the underlying data. This is common practice in visualizing high-density data. Power BI
Desktop has improved its sampling of high-density data, the details of which are described in this article.
NOTE
The High Density Sampling algorithm described in this article is available in both Power BI Desktop and the Power BI
service.
Next steps
For information about high-density sampling in scatter charts, see the following article.
High Density Sampling in Power BI scatter charts
KPI visuals
1/30/2019 • 2 minutes to read • Edit Online
A Key Performance Indicator (KPI) is a visual cue that communicates the amount of progress made toward a
measurable goal. For more information about KPIs, see Microsoft Developer Network.
If you're not signed up for Power BI, sign up for a free trial before you begin.
Prerequisites
Power BI Desktop - it's free!
The Retail Analysis sample PBIX file
KPI requirements
A Key Performance Indicator (KPI) is based on a specific measure and is designed to help you evaluate the current
value and status of a metric against a defined target. Therefore, a KPI visual requires a base measure that evaluates
to a value and a target measure or value, and a threshold or goal.
Currently, a KPI dataset needs to contain goal values for a KPI. If your dataset doesn't contain one, you can create
goals by adding an Excel sheet with goals to your data model or PBIX file.
6. Add a goal. Add last years sales as the goal. Drag Total Units Last Year to the Target goals field.
7. Optionally, format the KPI by selecting the paint roller icon to open the Formatting pane.
Indicator - controls the indicator’s display units and decimal places.
Trend axis - when set to On, the trend axis is displayed as the background of the KPI visual.
Goals - when set to On, the visual displays the goal and the distance from the goal as a percentage.
Color coding > Direction - some KPIs are considered better for higher values and some are
considered better for lower values. For example, earnings versus wait time. Typically a higher value of
earnings is better versus a higher value of wait time. Select high is better and, optionally, change the
color settings.
KPIs are also available in Power BI service and on your mobile devices – keeping you always connected to your
businesses heartbeat.
Next steps
Basic maps in Power BI
Visualization types in Power BI
Use the Matrix visual in Power BI
1/14/2019 • 8 minutes to read • Edit Online
With the Matrix visual feature, you can create matrix visuals (sometimes also referred to as tables) in Power BI
Desktop and Power BI service reports and cross-highlight elements within the matrix with other visuals. In
addition, you can select rows, columns, and even individual cells and cross-highlight. Individual cells and multiple
cell selections can by copied and pasted into other applications. Lastly, to make better use of layout space, the
matrix visual supports a stepped layout.
There are many features associated with the matrix, and we'll go through them in the following sections of this
article.
Report themes
Both matrix and table visuals reflect styling (including colors) from the applied Report Theme. These may not be
the colors you expect for your matrix visual, which you can change in your Report Theme configuration. For more
information, see Use Report Themes in Power BI Desktop for more information about themes.
Similar to the drill and expand behavior in other visuals, selecting those buttons lets us drill down (or back up)
through the hierarchy. In this case, we can drill down from Category to SubCategory, as shown in the following
image, where the drill down one level icon (the pitchfork) has been selected.
In addition to using those icons, you can right-click on any of those row headers and drill down by selecting from
the menu that appears.
Notice there are a few options from the menu that appears, which generate different results:
Selecting Drill Down expands the matrix for that row level, excluding all other row headings except the row
header that was right-clicked. In the following image, Computers was right-clicked, and Drill Down was selected.
Notice that other top-level rows no longer appear in the matrix. This way to drill is a useful feature, and becomes
especially cool when we get to the cross-highlighting section.
You can click the Drill up icon to get back to the previous top-level view. If you then select Show Next Level
from the right-click menu, you get an alphabetical listing of all the next-level items (in this case, the SubCategory
field), without the higher-level hierarchy categorization.
When you click on the Drill up icon in the upper-left corner to have the matrix show all top-level categories, then
right-click again and select Expand to next level, you see the following visual.
You can also use the Include and Exclude menu items to keep (or remove, respectively) the right-clicked row
(and any subcategories) from the matrix.
Drill down on column headers
Similar to the ability to drill down on Rows, you can also drill down on Columns. In the following image, you can
see that there are two fields in the Columns field well, creating a hierarchy similar to what we used for the rows
earlier in this article. In the Columns field well, we have Class and Color.
In the Matrix visual, when we right-click a column, we see the option to drill down. In the following image, we
right-click on Deluxe and select Drill Down.
When you select Drill Down, the next level of the column hierarchy for Deluxe displays, which in this case is
Color.
The rest of the right-click menu items work on columns in the same way they do for rows (see the previous
section, Drill down on row headers). You can Show Next Level, Expand to next level, Include, or Exclude
your columns just as you can with rows.
NOTE
The drill down and drill up icons in the upper-left of the matrix visual only apply to rows. In order to drill down on columns,
you must use the right-click menu.
In the following image, you see a Matrix visual, with Stepped layout in action. Notice the category Computers
has its subcategories (Computers Accessories, Desktops, Laptops, Monitors, and so on) slightly indented,
providing a cleaner and much more condensed visual.
You can easily adjust the stepped layout settings. With the Matrix visual selected, in the Format section (the paint
roller icon) of the Visualizations pane, expand the Row headers section. You have two options: the Stepped
layout toggle (which turns it on or off), and the Stepped layout indentation (specifies the indentation amount,
in pixels).
If you turn off Stepped layout, the subcategories are shown in another column rather than indented beneath the
parent category.
To copy the value of a single cell, select the cell, right-click, and choose Copy value. With the unformatted
cell value on your clipboard, you can now paste it into another application.
To copy more than a single cell, select a range of cells or use CTRL to select one or more cells. The copy will
include the column and row headers.
Shading and font colors with matrix visuals
With the Matrix visual, you can apply Conditional formatting (colors and shading) to the background of cells
within the matrix, and you can apply conditional formatting to the text and values themselves.
To apply conditional formatting, you can do either of the following when a matrix visual is selected:
In the Fields pane, right-click the Field, and select Conditional formatting from the menu.
Or, in the Format pane, expand the Conditional formatting card and for either Background color
scales or Font color scales, turn the slider to On. Turning on either option displays a link for Advanced
controls, which lets you customize the colors and values for the color formatting.
Either approach achieves the same result. Selecting Advanced controls displays the following dialog, which lets
you make adjustments:
Next steps
Scatter and bubble charts in Power BI
Visualization types in Power BI
Creating R visuals in the Power BI service
2/19/2019 • 6 minutes to read • Edit Online
The Power BI service supports viewing and interacting with visuals created with R scripts. Visuals created with R
scripts, commonly called R visuals, can present advanced data shaping and analytics such as forecasting, using the
rich analytics and visualization power of R.
NOTE
The R programming language is among the most widely used programming languages by statisticians, data scientists, and
business analysts. The R language has an open source community that offers over 7,000 add-on packages, as well as widely
used R User Groups. The version of R deployed in the Power BI service is Revolution R Open 3.2.2.
The following image shows a Power BI dashboard with a collection of R visuals used for advanced analytics.
R visuals are created in a Power BI Desktop report, like the report shown in the following image.
Once the report is created in Power BI Desktop, you can publish the report containing one or more R visuals to
the Power BI service. R visuals currently can only be created in Power BI Desktop, and then published to Power
BI service. For more information on creating R visuals, see Create Power BI visuals using R (Power BI Desktop).
Note that in the service not all of the R packages are supported. See supported packages at the end of this article
for the list of packages currently supported in the Power BI service.
You can download this sample Power BI Desktop file (.pbix file) that contains a few R visuals to see how this works,
and to experiment.
R visuals that are created in Power BI Desktop, and then published to the Power BI service, for the most part
behave like any other visual in the Power BI service; you can interact, filter, slice, and pin them to a dashboard, or
share them with others. For more information about sharing dashboards and visuals, see share a dashboard with
colleagues and others. One difference from other visuals is that R visuals cannot show tool tips and cannot be
used to filter other visuals.
As you can see in the following image, R visuals in the Power BI service, either in dashboards or reports, largely
appear and behave like any other visual, and users don't need to be aware of the underlying R script that created
the visual.
R scripts security
R visuals are created from R scripts, which could potentially contain code with security or privacy risks.
These risks mainly exist in the authoring phase when the script author run the script on their own computer.
The Power BI service applies a sandbox technology to protect users and the service from security risks.
This sandbox approach imposes some restrictions on the R scripts running in the Power BI service, such as
accessing the Internet, or accessing to other resources that are not required to create the R visual.
As another example, the following image shows the error message that appears when an R script failed to run
properly due to a missing R package in Azure.
Licensing
R visuals require a Power BI Pro license to render in reports, refresh, filter and cross-filter. For more information
about Power BI Pro licenses, and how they differ from free licenses, see Power BI Pro content - what is it?
Free users of Power BI can only consume tiles shared with them in Premium workspaces. See purchasing Power
BI Pro for more information.
The following table describes R visuals capabilities based on licensing.
Guest (Power BI Not relevant Not relevant Not supported Not relevant
embedded)
Known Limitations
R visuals in the Power BI service have a few limitations:
R visuals support is limited to the packages identified on the following page . There currently is no support
for custom packages.
Data size limitations – data used by the R visual for plotting is limited to 150,000 rows. If more than
150,000 rows are selected, only the top 150,000 rows are used and a message is displayed on the image.
Calculation time limitation – if an R visual calculation exceeds 60 seconds the script times out, resulting in
an error.
R visuals are refreshed upon data updates, filtering, and highlighting. However, the image itself is not
interactive and does not support tool tips.
R visuals respond to highlighting other visuals, but you cannot click on elements in the R visual in order to
cross filter other elements.
R visuals are currently not supported for the Time data type. Please use Date/Time instead.
R Visuals do not display when using Publish to web.
R visuals currently do not print with dashboard and reports printing
R visuals are currently not supported in the DirectQuery mode of Analysis Services
Chinese, Japanese and Korean fonts require all of the additional following steps to work properly in the
Power BI service:
First, install the R package showtext and all of its dependencies. You can do this by running the
following script:
*install.packages("showtext")*
powerbi_rEnableShowTextForCJKLanguages = 1
Overview of R packages
R packages are collections of R functions, data, and compiled code that are combined in a well-defined format.
When R is installed, it comes with a standard set of packages, and other packages are available for download and
installation. Once installed, an R packages must be loaded into the session to be used. The primary source of free
R packages is CRAN, the Comprehensive R Archive Network.
Power BI Desktop can use any type of R packages without limitation. You can install R packages for use in
Power BI Desktop on your own (using the RStudio IDE, for example).
R visuals in the Power BI service are supported by the packages found in the Supported Packages section
found in this article. If you don't find a package you're interested in among the supported packages list, you can
request the support of the package. See R packages in the Power BI service for information on how to request
support.
Requirements and Limitations of R packages
There are a handful of requirements and limitations for R packages:
The Power BI service, for the most part, supports R packages with free and open-source software licenses
such as GPL -2, GPL -3, MIT+, and so on.
The Power BI service supports packages published in CRAN. The service does not support private or
custom R packages. We encourage users to make their private packages available on CRAN prior to
requesting the package be available in the Power BI service.
For Power BI Desktop has two variations for R packages:
For R visuals, you can install any package, including custom R packages
For Custom R visuals, only public CRAN packages are supported for auto-installation of the packages
For security and privacy reasons, we currently don't support R packages that provide client-server queries
over the World-Wide Web (such as RgoogleMaps) in the service. Networking is blocked for such attempts.
See R packages in the Power BI service for a list of supported and unsupported R packages.
The approval process for including a new R package has a tree of dependencies; some dependencies
required to be installed in the service cannot be supported.
Supported Packages:
For a long list of supported R packages (and the short list of unsupported packages) please see the following
article:
R packages in the Power BI service
Radial gauge charts in Power BI
1/14/2019 • 3 minutes to read • Edit Online
A radial gauge chart has a circular arc and displays a single value that measures progress toward a goal/KPI. The
goal, or target value, is represented by the line (needle). Progress toward that goal is represented by the shading.
And the value that represents that progress is shown in bold inside the arc. All possible values are spread evenly
along the arc, from the minimum (left-most value) to the maximum (right-most value).
In the example below, we are a car retailer, tracking our Sales team's average sales per month. Our goal is 140 and
represented by the black needle. The minimum possible average sales is 0 and we've set the maximum as 200. The
blue shading shows that we're currently averaging approximately 120 sales this month. Luckily, we still have
another week to reach our goal.
NOTE
You can also manually enter a target value. See "Use formatting options to manually set Minimum, Maximum, and
Target values" below.
3. Expand the Gauge axis and enter values for Min and Max.
4. Remove the current target value by removing the checkmark next to COGS.
5. When the Target field appears under Gauge axis, enter a value.
Next step
Gauges in Power BI
Visualization types in Power BI
Use ribbon charts in Power BI
1/30/2019 • 2 minutes to read • Edit Online
You can use ribbon charts to visualize data, and quickly discover which data category has the highest rank (largest
value). Ribbon charts are effective at showing rank change, with the highest range (value) always displayed on top
for each time period.
Ribbon charts connect a category of data over the visualized time continuum using ribbons, enabling you to
see how a given category ranks throughout the span of the chart's x-axis (usually the timeline).
2. Select fields for Axis, Legend, and Value. In this example, we've selected: Date, Category, and This year
sales.
Since the dataset contains data for only one year, we removed the Year field from the Axis well.
3. The ribbon chart shows rank for every-other month. Notice how rank changes across time. For example, the
Home category moves from third to fourth and back to third again. The Juniors category moves from third
to fifth in July.
Set formatting options for your data labels. In this example, we've set the text color to white, the decimal places to
zero, and display units to thousands.
Next steps
Scatter charts and bubble charts in Power BI
Visualization types in Power BI
Scatter charts, bubble charts, and dot plot charts in
Power BI
1/14/2019 • 4 minutes to read • Edit Online
A scatter chart always has two value axes to show one set of numerical data along a horizontal axis and another
set of numerical values along a vertical axis. The chart displays points at the intersection of an x and y numerical
value, combining these values into single data points. These data points may be distributed evenly or unevenly
across the horizontal axis, depending on the data.
A bubble chart replaces data points with bubbles, with the bubble size representing an additional dimension of the
data.
A dot plot chart is similar to a bubble chart and scatter chart except that you can plot numerical or categorical data
along the X axis.
If you're using Power BI service, make sure you open the report in Editing View.
3. Convert to a scatter chart. In the Visualization pane, select the Scatter chart icon.
.
4. Drag District from Details to Legend. This displays a scatter chart that plots Total Sales Variance %
along the Y axis, and plots Sales Per Square Feet along the X axis. The data point colors represent
districts:
2. Hover over a bubble. The size of the bubble reflects the value of This Year Sales.
3. To set the number of data points to show in your bubble chart, in the Formatting section of the
Visualizations pane, expand the General card and adjust the Data Volume. You can set the max data
volume to any number up to 10,000. As you get into the higher numbers, we suggest testing first to ensure
good performance.
Because more data points can mean a longer loading time, if you do choose to publish reports with limits at
the higher end of the scale, make sure to test out your reports across the web and mobile as well to ensure
performance matches your users' expectations.
4. You can format the visualization colors, labels, titles, background, and more. To improve accessibility,
consider adding marker shapes to each line. Using a different Marker shape for each line makes it easier for
report consumers to differentiate lines (or areas) from each other. To select the marker shape, expand the
Shapes card, then select a marker shape.
You can also change the marker shape to diamond, triangle, or square:
Add a field to the Details area to tell Power BI how to group the values. The field must be unique for each point
you want to plot; like a simple row number or ID field.
Or if you don’t have that in your data, create a field that concatenates your X and Y values together into something
unique per point:
To create a new field, use the Power BI Desktop Query Editor to add an Index Column to your dataset. Then add
this column to the Details area of your visualization.
Next steps
High density scatter charts
Visualization types in Power BI
High-density sampling in Power BI scatter charts
1/14/2019 • 5 minutes to read • Edit Online
Beginning with the September 2017 release of the Power BI Desktop and updates to the Power BI service, a
new sampling algorithm is available that improves how scatter charts represent high-density data.
For example, you might create a scatter chart from your organization's sales activity, each store having tens of
thousands of data points each year. A scatter chart of such information would sample data (select a meaningful
representation of that data to illustrate how sales occurred over time) from the available data, and create a scatter
chart that represents the underlying data. This is common practice in high-density scatter charts. Power BI has
improved its sampling of high-density data, the details of which are described in this article.
NOTE
The High-density Sampling algorithm described in this article is available in the scatter charts for both Power BI Desktop
and the Power BI service.
NOTE
Scatter charts using the High-density Sampling algorithm are best plotted on square visuals, as with all scatter charts.
NOTE
When using the High-density Sampling algorithm for scatter charts, accurate distribution of the data is the goal, and
implied visual density is not the goal. For example, you might see a scatter chart with lots of circles that overlap (density) in a
certain area, and imagine many data points must be clustered there; since the High-density Sampling algorithm can use
one circle to represent many data points, such implied visual density (or "clustering") will not show up. To get more detail in
a given area, you can use slicers to zoom in.
In addition, data points that cannot be plotted (such as nulls or text values) are ignored, so another value that can
be plotted is selected, further ensuring the true shape of the scatter chart is maintained.
When the standard algorithm for scatter charts is used
There are circumstances under which High-density Sampling cannot be applied to a scatter chart and the
original algorithm is used. Those circumstances are the following:
If you right-click a value under Details and set it to Show items with no data from the menu, the scatter
chart will revert to the original algorithm.
Any values in the Play axis will result in the scatter chart reverting to the original algorithm.
If both X and Y axes are missing on a scatter chart, the chart reverts to the original algorithm.
Using a Ratio line in the Analytics pane results in the chart reverting to the original algorithm.
How to turn on high-density sampling for a scatter chart
To turn on High-density Sampling, select a scatter chart, go to the Formatting pane, expand the General card,
and near the bottom of that card, slide the High-density Sampling toggle slider to On.
NOTE
Once the slider is turned on, Power BI will attempt to use the High-density Sampling algorithm whenever possible. When
the algorithm cannot be used (for example, you place a value in the Play axis), the slider stays in the On position even
though the chart has reverted to the standard algorithm. If you then remove a value from the Play axis (or conditions
change to enable use of the high-density sampling algorithm), the chart will automatically use high-density sampling for
that chart because the feature is active.
NOTE
Data points are grouped or selected by the index. Having a legend does not affect sampling for the algorithm, it only affects
the ordering of the visual.
Next steps
For more information about high-density sampling in other charts, see the following article.
High-density line sampling in Power BI
Slicers in Power BI
1/14/2019 • 10 minutes to read • Edit Online
You want your report readers to be able to look at overall sales metrics, but also highlight performance for
individual District Managers and different time frames. You could create separate reports or comparative charts, or
you could use slicers. A slicer is an alternate way of filtering that narrows the portion of the dataset shown in the
other visualizations in a report.
This tutorial uses the free Retail Analysis Sample to walk you through creating, formatting, and using list and date
range slicers. Have fun discovering ways to format and use slicers.
Create slicers
To create a new slicer, you can select the slicer icon and then select the data field to filter on (or drag it to the Fields
box in the Visualizations pane), or you can select or drag the data field first to create a visualization, and then
select the slicer icon to turn the visualization into a slicer. Different data types create different types of slicers, with
different effects and options.
The first time you change a report, the button for Reset to default lights up. This is a reminder that you've made a
change to the original report settings. If you navigate away from the report, that change is saved (persists). When
you return to the report you don't have to re-slice the report. However, if you'd like to reset the report to the
author's default settings, select the Reset to default button from the top menubar.
NOTE
If your Reset to default button remains disabled, it either means the report author has disabled the feature for the report
or the report contains a custom visual. Simply hover over the button to read the tooltip for an explanation.
2. On the Overview page, with nothing selected on the canvas, select the Slicer icon in the
Visualizations pane to create a new slicer.
3. With the new slicer selected, select District Manager under District in the Fields pane to populate the
slicer. The new slicer is a list with selection boxes before the names.
4. Resize and drag the slicer and other elements on the canvas to make room for the slicer. Note that the slicer
items are cut off if you resize the slicer too small.
5. Select names on the slicer and note the effects on the other visualizations on the page. Select names again
to deselect them, and hold down the Ctrl key to select more than one name. Selecting all names has the
same effect as selecting none.
TIP
List slicer items are sorted in ascending alphanumerical order by default. To reverse the sort order to descending, select the
ellipsis (...) in the top right corner of the slicer and choose Sort by District Manager in the drop-down list.
NOTE
Numeric and date/time data types produce range slider slicers by default. Starting with the February 2018 Power BI
update, whole number data type range sliders now snap to whole number values rather than showing decimal
places.
TIP
Although the Month data field produces a Between range slider slicer type by default, you can change it to other slicer
types and selection options. To change the slicer type, with the slicer selected, hover over the upper-right area of the slicer,
drop down the carat that appears, and choose one of the other options, such as List or Before. Note how the slicer
appearance and selection options change.
For more about creating date and numeric range slicers, watch the following video and see Use the numeric range
slicer in Power BI Desktop.
https://www.youtube.com/embed/zIZPA0UrJyA
3. In the Sync column, select the New Stores page and the District Monthly Sales page to sync the
Overview slicer to those pages.
4. In the Visible column, select the New Stores page and leave the District Monthly Sales page selected.
5. Observe the effects of syncing the slicer and making it visible on the other pages. On the District Monthly
Sales page, the District Manager slicer now shows the same selections as the one on the Overview page.
On the New Stores page, the selections in the District Manager slicer affect the selections that are
available in the Store Name slicer.
TIP
Although the slicer initially appears on the synced pages at the same size and position as on the original page, you
can move, resize, and format synced slicers on the various pages independently.
NOTE
If you sync a slicer to a page but do not make it visible on that page, slicer selections made on the other pages still filter the
data on the page.
Format slicers
Different formatting options are available depending on the slicer type. By using Horizontal orientation,
Responsive layout, and Item coloring, you can produce buttons or tiles rather than standard list items, and make
slicer items resize to fit different screen sizes and layouts.
1. With the District Manager slicer selected on any page, in the Visualizations pane, select the Format icon
to display the formatting controls.
2. Select the drop-down arrows next to each category to display and edit the options.
General options
1. Select red under Outline color and change Outline weight to "2". This sets the color and thickness of the
header and item outlines or underlines, when enabled.
2. Under Orientation, Vertical is the default. Select Horizontal to produce a slicer with horizontally
arranged tiles or buttons, and scroll arrows to access items that do not fit in the slicer.
3. Turn on Responsive layout to change the size and arrangement of slicer items according to viewscreen and
slicer size. For list slicers, responsive layout is only available in horizontal orientation, and prevents items
from being cut off on small screens. For range slider slicers, responsive formatting changes the style of the
slider and provides more flexible resizing. Both types of slicers become filter icons at very small sizes.
NOTE
Responsive layout changes may override specific heading and item formatting that you set.
4. Set the slicer position and size with numeric precision under X Position, Y Position, Width, and Height,
or move and resize the slicer directly on the canvas. Experiment with different item sizes and arrangements,
and note how the responsive formatting changes accordingly.
See Create a responsive slicer you can resize in Power BI for more about horizontal orientation and responsive
layout.
Selection Controls options (list slicers only)
1. Show Select All is Off by default. Turn it to On to add a Select All item to the slicer that selects or
deselects all items when toggled. When all items are selected, clicking or tapping one item deselects it,
allowing an "is-not"-type filter.
2. Single Select is On by default. Clicking or tapping each item selects it, and holding down the Ctrl key
while clicking or tapping selects multiple items. Turn Single Select to Off to allow selecting multiple items
without holding down the Ctrl key. Clicking or tapping each item again deselects it.
Header options
The Header is On by default, showing the data field name at the top of the slicer.
1. Format the header text to make the Font color red, Text size 14 pt, and Font family Arial Black.
2. Under Outline, choose Bottom only to produce an underline with the size and color that you set under
General options.
Item options (list slicers only)
1. Format item text and background to make the Font color black, Background light red, Text size 10 pt,
and Font family Arial.
2. Under Outline, choose Frame to draw a border around each item with the size and color you set under
General options.
TIP
With Orientation > Horizontal, deselected items show the chosen text and background colors, while selected
items use the system default, usually black background with white text.
With Orientation > Vertical, items always show the set colors, and selection boxes are always black when
selected.
Next steps
Visualization types in Power BI
Tables in Power BI
Tables in Power BI reports and dashboards
2/13/2019 • 5 minutes to read • Edit Online
A table is a grid that contains related data in a logical series of rows and columns. It may also contain headers and
a row for totals. Tables work well with quantitative comparisons where you are looking at many values for a single
category. For example, this table displays 5 different measures for Category.
Create tables in reports and cross-highlight elements within the table with other visuals on the same report page.
In addition, you can select rows, columns, and even individual cells and cross-highlight. Individual cells and
multiple cell selections can by copied and pasted into other applications.
NOTE
If a table has too many values, consider converting it to a matrix and/or using drilldown. The maximum data points a table
will display is 3,500.
Prerequisites
Power BI service or Power BI Desktop
Retail Analysis sample
Create a table
We'll create the table pictured above to display sales values by item category. To follow along, sign in to Power BI
service and select Get Data > Samples > Retail Analysis Sample > Connect and choose Go to dashboard.
Creating a visualization requires edit permissions to the dataset and report. Luckily, the Power BI samples are all
editable. If a report has been shared with you, you won't be able to create visualizations in reports.
1. From the left navpane, select Workspaces >My workspace.
2. Select the Datasets tab, and scroll down to the Retail Analysis Sample dataset you just added. Select the
Create report icon.
3. In the report editor, select Item > Category. Power BI automatically creates a table that lists all the
categories.
4. Select Sales > Average Unit Price and Sales > Last Year Sales and Sales > This Year Sales and choose
all 3 options (Value, Goal, Status).
5. In the Visualizations pane, locate the Values well and drag-and-drop the values until the order of your chart
columns matches the first image on this page. Your Values well should look like this.
And after some additional formatting, here is our final table. Since there are so many formatting options,
the best way to learn is to start with the default formatting, open the Formatting pane , and start
exploring.
Conditional formatting
One type of formatting is referred to as conditional formatting and is applied to fields in the Values well of the
Visualizations pane in Power BI service or Desktop.
With conditional formatting for tables, you can specify customized cell background colors and font colors based on
cell values, including using gradient colors.
1. In the Visualizations pane in Power BI service or Desktop, select the down-arrow beside the value in the
Values well that you want to format (or right-click the field). You can only manage conditional formatting
for fields in the Values area of the Fields well.
2. Select Background color scales. In the dialog that appears, you can configure the color, as well as the
Minimum and Maximum values. If you select the Diverging box, you can configure an optional Center
value as well.
Let's apply some custom formatting to our Average Unit Price values. Select Diverging, add some colors,
and choose OK.
3. Add a new field to the table that has both positive and negative values. Select Sales > Total Sales
Variance.
4. Add data bar conditional formatting by selecting the down-arrow beside Total Sales Variance and
choosing Conditional formatting > Data bars.
5. In the dialog that appears, set colors for Positive bar, Negative bar, place a checkmark next to Show bar
only, and make any other changes you'd like.
When you select OK, data bars replace the numerical values in the table making it easier to scan.
6. To remove conditional formatting from a visualization, just right-click the field again, and select Remove
Conditional Formatting.
TIP
Conditional formatting is also available from the Formatting pane (paintroller icon). Select the value to format and then set
Color scales or Data bars to On to apply the default settings or, to customize the settings, select Advanced controls.
Treemaps display hierarchical data as a set of nested rectangles. Each level of the hierarchy is represented by a
colored rectangle (often called a "branch") containing other rectangles ("leaves"). The space inside each rectangle is
allocated based on the value being measured. And the rectangles are arranged in size from top left (largest) to
bottom right (smallest).
For example, if I'm analyzing my sales, I might have top-level rectangles, also called branches, for the clothing
categories: Urban, Rural, Youth, and Mix. My category rectangles would be split into smaller rectangles, also
called leaves, for the clothing manufacturers within that category. And these smaller rectangles would be sized and
shaded based on the number sold.
In the Urban branch above, lots of Maximus clothing was sold, less Natura and Fama , and few Leo . So, the
Urban branch of my Treemap would have:
the largest rectangle for Maximus in the top left corner
slightly smaller rectangles for Natura and Fama
lots of other rectangles for all the other clothing sold, and
a tiny rectangle for Leo .
And I could compare the number of items sold across the other clothing categories by comparing the size and
shading of each leaf node; larger and darker rectangles mean higher value.
4. Drag Item > Category to the Group well. Power BI creates a treemap where the size of the rectangles is
based on total sales and the color represents the category. In essence you've created a hierarchy that
visually describes the relative size of total sales by category. The Men's category has the highest sales and
the Hosiery category has the lowest.
5. Drag Store > Chain to the Details well to complete your treemap. You can now compare last year's sales
by category and chain.
NOTE
Color Saturation and Details cannot be used at the same time.
6. Hover over a Chain area to reveal the tooltip for that portion of the Category. For example, hovering over
Fashions Direct in the 090-Home rectangle reveals the tooltip for Fashion Direct's portion of the Home
category.
2. In the Last Year Sales by Chain pie chart, selecting the Fashions Direct slice, cross-filters the treemap.
3. To manage how charts cross-highlight and cross-filter each other, see Visualization interactions in a Power
BI report
Next steps
Waterfall charts in Power BI
Visualization types in Power BI
Waterfall charts in Power BI
2/13/2019 • 2 minutes to read • Edit Online
A waterfall chart shows a running total as values are added or subtracted. It's useful for understanding how an
initial value (for example, net income) is affected by a series of positive and negative changes.
The columns are color coded so you can quickly tell increases and decreases. The initial and the final value
columns often start on the horizontal axis, while the intermediate values are floating columns. Because of this
"look", waterfall charts are also called bridge charts.
https://www.youtube.com/embed/qKRZPBnaUXM
2. From the Fields pane, select Sales > Total Sales Variance.
3. Convert the chart to a Waterfall. If Total Sales Variance isn't in the Y Axis area, drag it there.
6. Dig in a little more to see what's contributing most to the changes month to month. Drag Store > Territory
to the Breakdown bucket.
7. By default, Power BI adds the top 5 contributors to increases or decreases by month. But we're only
interested in the top 2 contributors. In the Formatting pane, select Breakdown and set Maximum to 2.
A quick review reveals that the territories of Ohio and Pennsylvania are the biggest contributors to
movement, negative and positive, in our waterfall chart.
8. This is an interesting finding. Do Ohio and Pennsylvania have such a significant impact because sales in
these 2 territories are much higher than the other territories? We can check that. Create a map that looks at
this year sales value and last year sales by territory.
Our map supports our theory. It shows that these 2 territories had the highest value of sales last year
(bubble size) and this year (bubble shading).
Next steps
Visual interactions
Visualization types in Power BI
Create dynamic reference lines for visuals in the
Power BI service
2/13/2019 • 2 minutes to read • Edit Online
With the Analytics pane in Power BI service, you can add dynamic reference lines to visualizations, and provide
focus for important trends or insights.
NOTE
The Analytics pane only appears when you select a visual on the report canvas.
1. Select or create a visual, then select the Analytics icon from the Visualizations pane.
2. Select the down arrow for the type of line you want to create to expand its options. In this case, we'll select
Average Line.
3. To create a new line, select + Add and decide the measure that will be used to create the line. The Measure
dropdown is automatically populated with available data from the selected visualization. Let's use Open
store count.
4. You have all sorts of options for your line, such as color, transparency, style, and position (relative to the
visual's data elements). If you want to label the line, give it a title and then move the Data label slider to On.
In this case, we'll title the line Avg # Open Stores, and customize a few of the other options as shown below.
5. Notice the number that appears next to the Average line item in the Analytics pane. That tells you how
many dynamic lines you currently have on your visual, and of which type. If we add a Constant line as a
store count goal of 9, you can see that the Analytics pane shows that we now also have a Constant line
reference line applied to this visual.
There are all sorts of interesting insights you can highlight by creating dynamic reference lines with the Analytics
pane.
The ability to use dynamic reference lines is based on the type of visual being used. The following list shows which
dynamic lines are currently available for which visuals:
Full use of dynamic lines are available on the following visuals:
Area chart
Line chart
Scatter chart
Clustered Column chart
Clustered Bar chart
The following visuals can use only a constant line from the Analytics pane:
Stacked Area
Stacked Bar
Stacked Column
100% Stacked Bar
100% Stacked Column
For the following visuals, a trend line is currently the only option:
Non-stacked Line
Clustered Column chart
Lastly, non-Cartesian visuals cannot currently apply dynamic lines from the Analytics pane, such as:
Matrix
Pie chart
Donut
Table
Next steps
Analytics pane in Power BI Desktop
More questions? Try the Power BI Community
Resolve issues importing Access and .XLS files in
Power BI Desktop
1/14/2019 • 3 minutes to read • Edit Online
In Power BI Desktop, both Access databases and early versions of Excel workbooks (.XLS files of type Excel
97-2003) use the Access Database Engine. There are three common situations that can prevent the Access
Database Engine from working properly:
NOTE
If the installed Access Database Engine bit version is different from your Microsoft Office installation's bit version, Office
applications will not be able to use the Access Database Engine.
On the download page that appears, choose your language and then select the Download button. On the
screen that appears, select the checkbox beside PBIDesktop.msi for the 32-bit version, or
PBIDesktop_x64.msi for the 64-bit version. In the following screen, the 64-bit version is selected.
NOTE
When using the 32-bit version of Power BI Desktop, when creating very large data models you might experience out-
of-memory issues.
2. Change the version of Microsoft Office to match the bit-version of your Power BI Desktop installation. To
change the bit-version of Microsoft Office, uninstall Office, and then install the version of Office that
matches your Power BI Desktop installation.
3. If the error occurred when attempting to open an .XLS file (an Excel 97-2003 workbook), you can avoid
using the Access Database Engine by opening the .XLS file in Excel, and saving it as an XLSX file.
4. If the previous three solutions are not feasible, it is possible to install both versions of the Access Database
Engine, but this is not a recommended workaround. Installing both versions will resolve this issue for Power
Query for Excel and Power BI Desktop, but will introduce errors and issues for any application that
automatically (by default) uses the bit-version of the Access Database Engine that was installed first. To
install both bit-versions of the Access Database Engine, download both versions, then run each of them
using the /passive switch. For example:
c:\users\joe\downloads\AccessDatabaseEngine.exe /passive
c:\users\joe\downloads\AccessDatabaseEngine_x64.exe /passive
In Power BI Desktop, users who installed and are running previous versions of the Power BI On-premises data
gateway can be blocked from launching Power BI Desktop, due to administrative policy restrictions that the Power
BI on-premises gateway placed on named pipes on the local machine.
"An error happened while reading data from the provider: 'Could not load file or assembly
'System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx' or one of its
dependencies. Either a required impersonation level was not provided, or the provided impersonation level is
invalid. (Exception from HRESULT: 0x80070542)'"
After launching as an administrator and establishing the connection, the required DLLs are registered properly.
After that, launching Power BI Desktop as an administrator isn't necessary.
Help with other issues when launching Power BI Desktop
We strive to cover as many issues that occur with Power BI Desktop as possible. We regularly look at issues that
may be affecting many customers, and include them in our articles.
If the issue with launching Power BI Desktop is not associated with the On-premises data gateway, or when the
previous resolutions don't work, you can submit a support incident to Power BI support
(https://support.powerbi.com) to help identify and solve your issue.
For other issues you may encounter in the future with Power BI Desktop (we hope there are none, or very few ), it
is helpful to turn on tracing and gather log files, to better isolate and identify the issue. To turn on tracing, select
File > Options and settings > Options and then select Diagnostics, then check Enable tracing under
Diagnostic Options. We realize that Power BI Desktop must be running to set this option, which is more helpful
for future issues associated with launching Power BI Desktop.
Data types in Power BI Desktop
2/13/2019 • 9 minutes to read • Edit Online
This article describes data types supported in Power BI Desktop and Data Analysis Expressions (DAX).
When you load data into Power BI Desktop, it will attempt to convert the data type of the source column into a
data type that better supports more efficient storage, calculations, and data visualization. For example, if a column
of values you import from Excel has no fractional values, Power BI Desktop will convert the entire column of data
to a Whole Number data type, which is better suited for storing integers.
This concept is important because some DAX functions have special data type requirements. While in many cases
DAX will implicitly convert a data type for you, there are some cases where it will not. For instance, if a DAX
function requires a Date data type and the data type for your column is Text, the DAX function will not work
correctly. So, it’s both important and useful to get the correct data type for a column. Implicit conversions are
described later in this article.
The Data Type drop down in Query Editor has two data types not currently present in Data or Report View:
Date/Time/Timezone and Duration. When a column with these data types is loaded into the model and viewed
in Data or Report view, a column with a Date/Time/Timezone data type will be converted into a Date/Time, and a
column with a Duration data type is converted into a Decimal Number.
Number types
Power BI Desktop supports three number types:
Decimal Number – Represents a 64 bit (eight-byte) floating point number. It’s the most common number type
and corresponds to numbers as you usually think of them. Although designed to handle numbers with fractional
values, it also handles whole numbers. The Decimal Number type can handle negative values from -1.79E +308
through -2.23E -308, 0, and positive values from 2.23E -308 through 1.79E + 308. For example, numbers like 34,
34.01, and 34.000367063 are valid decimal numbers. The largest value that can be represented in a Decimal
Number type is 15 digits long. The decimal separator can occur anywhere in the number. The Decimal Number
type corresponds to how Excel stores its numbers.
Fixed Decimal Number – Has a fixed location for the decimal separator. The decimal separator always has four
digits to its right and allows for 19 digits of significance. The largest value it can represent is
922,337,203,685,477.5807 (positive or negative). The Fixed Decimal Number type is useful in cases where
rounding might introduce errors. When you work with many numbers that have small fractional values, they can
sometimes accumulate and force a number to be slightly off. Since the values past the four digits to the right of
decimal separator are truncated, the Fixed Decimal type can help you avoid these kinds of errors. If you’re familiar
with SQL Server, this data type corresponds to SQL Server’s Decimal (19,4), or the Currency Data type in Power
Pivot.
Whole Number – Represents a 64 bit (eight-byte) integer value. Because it’s an integer, it has no digits to the
right of the decimal place. It allows for 19 digits; positive or negative whole numbers between -
9,223,372,036,854,775,808 (-2^63) and 9,223,372,036,854,775,807 (2^63-1). It can represent the largest possible
number of the various numeric data types. As with the Fixed Decimal type, the Whole Number type can be useful
in cases where you need to control rounding.
NOTE
The Power BI Desktop data model supports 64 bit integer values, but the largest number the visuals can safely express is
9,007,199,254,740,991 (2^53-1) due to JavaScript limitations. If you work with numbers in your data model above this, you
can reduce the size through calculations before adding them to a visual
Date/time types
Power BI Desktop supports five Date/Time data types in Query View and three in the Report View and model.
Both Date/Time/Timezone and Duration are converted during load into the model.
Date/Time – Represents both a date and time value. Underneath the covers, the Date/Time value is stored as a
Decimal Number Type. So you can actually convert between the two. The time portion of a date is stored as a
fraction to whole multiples of 1/300 seconds (3.33 ms). Dates between years 1900 and 9999 are supported.
Date – Represents just a Date (no time portion). When converted into the model, a Date is the same as a
Date/Time value with zero for the fractional value.
Time – Represents just Time (no Date portion). When converted into the model, a Time value is the same as a
Date/Time value with no digits to the left of the decimal place.
Date/Time/Timezone – Represents a UTC Date/Time. Currently, it’s converted into Date/Time when loaded into
the model.
Duration – Represents a length of time. It’s converted into a Decimal Number Type when loaded into the model.
As a Decimal Number type it can be added or subtracted from a Date/Time field with correct results. As a Decimal
Number type, you can easily use it in visualizations that show magnitude.
Text type
Text - A Unicode character data string. Can be strings, numbers, or dates represented in a text format. Maximum
string length is 268,435,456 Unicode characters (256 mega characters) or 536,870,912 bytes.
True/false type
True/False – A Boolean value of either a True or False.
Blanks/nulls type
Blank - Is a data type in DAX that represents and replaces SQL nulls. You can create a blank by using the BLANK
function, and test for blanks by using the ISBLANK logical function.
Table data type
DAX uses a table data type in many functions, such as aggregations and time intelligence calculations. Some
functions require a reference to a table; other functions return a table that can then be used as input to other
functions. In some functions that require a table as input, you can specify an expression that evaluates to a table;
for some functions, a reference to a base table is required. For information about the requirements of specific
functions, see DAX Function Reference.
NOTE
Text data types are not included in these tables. When a number is represented as in a text format, in some cases Power BI
will attempt to determine the number type and represent it as a number.
Addition (+)
For example, if a real number is used in an addition operation in combination with currency data, both values are
converted to REAL, and the result is returned as REAL.
Subtraction (-)
In the following table, the row header is the minuend (left side) and the column header is the subtrahend (right
side).
For example, if a date is used in a subtraction operation with any other data type, both values are converted to
dates, and the return value is also a date.
NOTE
Data models also support the unary operator, - (negative), but this operator does not change the data type of the operand.
Multiplication (*)
For example, if an integer is combined with a real number in a multiplication operation, both numbers are
converted to real numbers, and the return value is also REAL.
Division (/)
In the following table, the row header is the numerator and the column header is the denominator.
OPERATOR(/)
(ROW/COLUMN) INTEGER CURRENCY REAL DATE/TIME
For example, if an integer is combined with a currency value in a division operation, both values are converted to
real numbers, and the result is also a real number.
Comparison operators
In comparison expressions, Boolean values are considered greater than string values and string values are
considered greater than numeric or date/time values; numbers and date/time values are considered to have the
same rank. No implicit conversions are performed for Boolean or string values; BLANK or a blank value is
converted to 0/""/false depending on the data type of the other compared value.
The following DAX expressions illustrate this behavior:
=IF (FALSE ()>"true","Expression is true", "Expression is false"), returns "Expression is true"
=IF ("12">12,"Expression is true", "Expression is false"), returns "Expression is true"
=IF ("12"=12,"Expression is true", "Expression is false"), returns "Expression is false"
Conversions are performed implicitly for numeric or date/time types as described in the following table:
COMPARISON
OPERATOR INTEGER CURRENCY REAL DATE/TIME
BLANK + 5 5 5
Beginning with the October 2018 Power BI Desktop release, the formula editor (often referred to as the DAX
editor) includes robust editing and shortcut enhancements to make authoring and editing formulas easier and
more intuitive.
Ctrl+G Go to line…
Next steps
The following articles provide more information about formulas and DAX in Power BI Desktop.
DAX basics in Power BI Desktop
Learn DAX for Power BI
DAX reference
Power BI Desktop privacy levels
1/14/2019 • 3 minutes to read • Edit Online
In Power BI Desktop, privacy levels specify an isolation level that defines the degree that one data source will be
isolated from other data sources. Although a restrictive isolation level blocks information from being exchanged
between data sources, it may reduce functionality and impact performance.
The Privacy Levels setting, found in File > Options and settings > Options and then Current File > Privacy
determines whether Power BI Desktop uses your Privacy Level settings while combining data. This dialog includes
a link to Power BI Desktop documentation about Privacy Levels and Privacy Levels (this article).
Private data source A Private data source contains Facebook data, a text file containing
sensitive or confidential information, stock awards, or a workbook containing
and the visibility of the data source may employee review information.
be restricted to authorized users. A
private data source is completely
isolated from other data sources.
SETTING DESCRIPTION EXAMPLE DATA SOURCES
Organizational data source An Organizational data source limits A Microsoft Word document on an
the visibility of a data source to a intranet SharePoint site with
trusted group of people. An permissions enabled for a trusted
Organizational data source is isolated group.
from all Public data sources, but is
visible to other Organizational data
sources.
Public data source A Public data source gives everyone Free data from the Microsoft Azure
visibility to the data contained in the Marketplace, data from a Wikipedia
data source. Only files, internet data page, or a local file containing data
sources, or workbook data can be copied from a public web page.
marked Public.
Cau t i on
You should configure a data source containing highly sensitive or confidential data as Private.
Combine data according to your Privacy Level settings Privacy level settings are used to determine the level of
for each source (on, and the default setting) isolation between data sources when combining data.
Ignore the Privacy levels and potentially improve Privacy levels are not considered when combining data,
performance (off) however, performance and functionality of the data may
increase.
Security Note: Enabling Privacy Levels by selecting Ignore the Privacy levels and potentially improve
performance in the Privacy Levels dialog could expose sensitive or confidential data to an unauthorized
person. Do not enable Privacy Levels unless you are confident that the data source does not contain sensitive
or confidential data.
Cau t i on
The Ignore the Privacy levels and potentially improve performance does not work in the Power BI service.
As such, Power BI Desktop reports with this setting enabled, which are then published to the Power BI service, do
not reflect this behavior when used in the service.
Configure Privacy Levels
In Power BI Desktop or in Query Editor, select File > Options and settings > Options and then Current File >
Privacy.
a. When Combine data according to your Privacy Level settings for each source is selected, data will be
combined according to your Privacy Levels setting. Merging data across Privacy isolation zones will result in some
data buffering.
b. When Ignore the Privacy levels and potentially improve performance is selected, the data will be
combined ignoring your Privacy Levels which could reveal sensitive or confidential data to an unauthorized user.
The setting may improve performance and functionality.
Security Note: Selecting Ignore the Privacy levels and potentially improve performance may improve
performance; however, Power BI Desktop cannot ensure the privacy of data merged into the Power BI Desktop
file.
Connector extensibility in Power BI
1/14/2019 • 2 minutes to read • Edit Online
In Power BI, customers and developers can extend the data sources to which they can connect in many ways, such
as using existing connectors and generic data sources (such as ODBC, OData, Oledb, Web, CSV, XML, JSON ). In
addition to those data sources, developers can create data extensions referred to as Custom Connectors, and
certify a connector to make them become Certified Connectors.
Currently, the ability to use Custom Connectors is enabled using a feature switch. Before we move this feature
from beta to general availability, we've added a menu that allows you to securely control the level of custom code
you want to allow to run on your system: all custom connectors, or only connectors that are certified and
distributed by Microsoft in the Get Data dialogue.
Custom connectors
Custom Connectors can include a wide range of possibilities ranging from small APIs that are critical to your
business, to large industry specific services that Microsoft hasn't released a connector for. Many connectors are
distributed by the vendor themselves, and if you have need for a specific data connector, you should contact a
vendor.
To use a Custom Connector, put them in the [Documents]\Power BI Desktop\Custom Connectors folder, and
adjust the security settings as described in the following section.
You don't need to adjust security settings to use Certified Connectors.
If you plan on using Custom Connectors or connectors that you or a third party have developed and distribute,
you must select "(Not Recommended) Allow any extension to load without warning". We don't recommend
that security setting unless you absolutely trust your Custom Connectors, since code in there can handle
credentials (including sending them over HTTP ) and ignore privacy levels.
At the "(Recommended)" security setting, if there are custom connectors on your system, an error is displayed
describing the connectors that can't load due to security.
To resolve the error and use those connectors, you must change your security settings to the "(Not
Recommended)" setting as described earlier, and restart Power BI Desktop.
Certified connectors
A limited subset of data extensions are considered Certified, and such certified connectors are available using the
Get Data dialogue, but the responsible party for maintenance and support is still the third-party developer who
created the connector. While Microsoft distributes these connectors, we are not responsible for their performance
or continued functionality.
If you would like a custom connector to be certified, have your vendor contact [email protected].
Power BI Desktop videos
1/14/2019 • 2 minutes to read • Edit Online
This article describes previous updates to Power BI Desktop. For the most current month's release, check out
Power BI Desktop latest updates.
You can always download the latest version of Power BI Desktop. If you're running Windows 10, you can also get
Power BI Desktop from the Windows Store. The monthly versions are the same even though the version
numbering may differ between the two, regardless of which way you install Power BI Desktop. See this article for
more information.
The links beside each update mean the following:
[video] excerpts play in a new browser tab, when the feature is being discussed.
Some features have an [article] that provides more detail.
Most features are explained in the monthly update [blog] post.
Lastly, some features are self-explanatory and don't need an article or video.
You can also watch the Latest Updates video from the beginning, right inside this article, by clicking on the play
icon on the video image found below the list of updates.
The following sections describe previous months' updates to Power BI Desktop.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video channel describes and shows each of these updates. You can also see the videos from the blog
post.
https://www.youtube.com/embed/dMD25wfElLg
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
February 2019 version of Power BI Desktop - 32-bit
February 2019 version of Power BI Desktop - 64-bit
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video channel describes and shows each of these updates. You can also see the videos from the blog
post.
https://www.youtube.com/embed/AHNlkjRFdYI
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
December 2018 version of Power BI Desktop - 32-bit
December 2018 version of Power BI Desktop - 64-bit
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video channel describes and shows each of these updates. You can also see the videos from the blog
post.
https://www.youtube.com/embed/1xsXXoyTxfk?controls=0
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
November 2018 version of Power BI Desktop - 32-bit
November 2018 version of Power BI Desktop - 64-bit
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video channel describes and shows each of these updates. You can also see the videos from the blog
post.
https://www.youtube.com/embed/cT3L2VzgBRU
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
October 2018 version of Power BI Desktop - 32-bit
October 2018 version of Power BI Desktop - 64-bit
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/Rzw2WyI09kY
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
September 2018 version of Power BI Desktop - 32-bit
September 2018 version of Power BI Desktop - 64-bit
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/dgv5HhHxxe8
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
You can also download previous versions of Power BI Desktop if your organization requires it. We always
recommend that you use the most recent version of Power BI Desktop, rather than a previous version. All previous
versions have the following limitations:
Previous releases of Power BI Desktop are not being serviced - you should always use the most recent release
for the latest features and updates.
It may not be possible to open files created or saved in newer releases of Power BI Desktop with previous
versions of Power BI Desktop.
If you receive a warning when loading a report saved in a newer release of Power BI Desktop, then save that
report in the previous version, you lose any information related to new features.
We only archive the English versions of Power BI Desktop.
Select the following links to download this earlier version:
August 2018 version of Power BI Desktop - 32-bit
August 2018 version of Power BI Desktop - 64-bit
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/Mtig3rmIUe0
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/4VpGtWSrssE
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/-_GMCE1TLvQ
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/W_Nb73Od_AI
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/kuI6MMzDh34
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/KeVB5RwMzJo
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/W8Pp5wuCXJw
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/ZPU8B -1BxjI
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/sI3yRjdnJ7w
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/jksjtR8GnBE
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/moTQJlnClJw
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/ND8U0yXroaQ
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post references in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/4X96ow7FnSY
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/YlNVE5dgcSI
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/CKISVNHcHVA
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/AWMaIaI8G2Y
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/CaRTON3lJqw
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/mn75-LOPxMA
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/C1-f0T8vZ7M
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/kERJ_WOLuLk
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/UXEYSvgvMaQ
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
September 2016 Update (2.39.4526.362)
The following updates were new to Power BI Desktop in September:
Report View:
ArcGIS Maps for Power BI (Preview ) [blog] [video]
Mobile report layout (Preview ) [blog] [video]
Updated drill behavior [article] [blog] [video]
Analytics
Forecasting (Preview ) [article] [blog] [video]
Use your own R IDE [blog] [video]
Data Connectors:
New data connectors:
Snowflake connector DirectQuery support [blog]
ProjectPlace connector [article] [blog]
Improvements to existing connectors:
Oracle connector - improved Navigator previews performance [blog]
OData connector - support for Select Related Tables option [blog]
SAP Business Warehouse and SAP HANA connectors - enhancements to parameter input interface
[article] [blog]
Web connector - support for specifying HTTP request headers within the dialog [blog] [video]
Query Editor improvements:
Query Dependencies view [blog] [video]
Show Errors experience [blog]
Query Editor ribbon support for scalar values [blog]
Add function invocation column [blog]
Expand & Aggregate columns - support for Load More values [blog]
New transform - convert Table Column to a list [blog]
Key boarding - support for smart typing in drop-down menus [blog]
Other improvements
In-product links to the Power BI Community [blog] [video]
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/pcUr6E8g_KI
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
August 2016 Update (2.38.4491.282)
August introduced a full harvest of new features for Power BI Desktop:
[video] excerpts play in a new browser tab, when the feature is being discussed.
Some features have an [article] that provides more detail.
Most features are explained in the monthly update [blog] post.
Lastly, some features are self-explanatory and don't need and article or video.
You can also watch the Latest Updates video from the beginning, right inside this article, by clicking on the play
icon on the video image found below the list of updates.
The following updates are new to Power BI Desktop this month:
Report View:
Drill down (or back up) on line charts [blog] [video]
Continuous axis for the Date axis [blog] [video]
General availability of Inline Hierarchies [article] [blog] [video]
Predefined matrix styles (similar to table formatting in Excel) [blog] [video]
Reorder fields, in charts and tooltips [blog] [video]
Color formatting for KPI visuals [blog] [video]
Analytics (New!)
The all-new Analytics pane [article] [blog] [video]
Dynamic reference lines [blog] [video]
Data Connectors:
New data connectors:
Snowflake connector (Preview ) [blog]
Improvements to existing connectors:
Impala connector - DirectQuery support [article] [blog]
Web connector - Web page previews [blog] [video]
General availability for the SAP Business Warehouse connector [article] [blog]
Query Editor improvements:
Option to Merge/Append as New Query [blog] [video]
Other improvements
Auto-recover Desktop files [blog] [video]
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/0VvG7Eqoke8
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these features (this is the same blog post referenced in the list above).
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/g8ccfjffWmw
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features.
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/sZsL2l6oS4A
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features.
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/KnDs4amt9-c
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You can also check out all the data sources available to Power BI Desktop; our list is always growing, so check back often.
Want more information about these updates? Take a look at the blog post, where you can get more detailed
information about each of these new features.
The following video describes and shows each of these updates. You can also see the video from the blog post.
https://www.youtube.com/embed/7IFZTYJR3Gk
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
You might also be interested in learning what's new in the Power BI service, and also check out what's new in the mobile
apps for Power BI.
NOTE
Currently, only URLs within the crm.microsoft.com domain are accepted by this dialog. This does not include non-
production tenants. We'll fix this issue in our March update. The temporary workaround is to connect to this feed
using "From OData".*
Beginning with the March 2018 version of Power BI Desktop, error reporting uses the Windows Error Reporting
platform rather than the Send a Smile or Send a Frown functionality. You can get more information about the
Windows Error Reporting platform in the Windows Privacy blog.
Power BI has features that enable people with disabilities to more easily consume and interact with Power BI
reports. These features include the ability to consume a report using the keyboard or a screen reader, tabbing to
focus on various objects on a page, and thoughtful use of markers in visualizations.
As you navigate between visuals you can press Alt+Shift+F10 to move focus to the visual header, which
contains various options including sorting, exporting the data behind the chart, and Focus mode.
You can press Alt+Shift+F11 to present an accessible version of the Show data window. This lets you explore
the data used in the visual in an HTML table, using the same keyboard shortcuts you normally use with your
screen reader.
NOTE
The Show data feature is only accessible to a screen reader through this keyboard shortcut. If you open Show data
through the option in the visual header, it will not be accessible to a screen reader. When using Show data, turn on scan
mode to take advantage of all the hot keys your screen reader provides.
Beginning with the July 2018 release of Power BI Desktop, slicers also have accessibility functionality built in.
When you select a slicer, to adjust the value of a slicer use CTRL+right arrow (control plus the right arrow key)
to move through the various controls within the slicer. For example, when you initially press CTRL+right arrow
the focus is on the eraser, and pressing the SPACE bar is equivalent to clicking the eraser button, which erases
all values on the slicer.
You can move through the controls in a slicer by pressing the TAB key. Pressing the TAB key when on the eraser
moves to the drop-down button. Another TAB then moves to the first slicer value (if there are multiple values
for the slicer, such as a range).
These accessibility additions were created to let users fully consume Power BI reports using a screen reader and
keyboard navigation.
Using a different Marker shape for each line makes it easier for report consumers to differentiate
lines (or areas) from each other.
As a follow on to the previous bullet, don't rely on color to convey information. In addition to using
shapes on line and scatter charts, don't rely on conditional formatting to provide insights in tables and
matrices.
Pick an intentional sort order for each visual on your report. When screen reader users navigate the data
behind the chart, it picks up the same sort order as the visual.
Select a theme that is high contrast and color blind friendly from the theme gallery, and import it using
the Theming preview feature.
For every object on a report, provide Alt Text. Doing so ensures that consumers of your report
understand what you are trying to communicate with a visual, even if they cannot see the visual, image,
shape, or textbox. You can provide Alt Text for any object on a Power BI Desktop report by selecting the
object (such as a visual, shape, and so on) and in the Visualizations pane, select the Format section,
expand General, scroll to the bottom, and fill in the Alt Text textbox.
Make sure your reports have sufficient contrast between text and any background colors. There are
several tools such as Color Contrast Analyser you can use to check your report colors.
Use text sizes and fonts that are easily readable. Small text size, or fonts that might be difficult to read,
are unhelpful for accessibility.
Include a title, axis labels, and data labels in all visuals.
Use meaningful titles for all report pages.
Avoid decorative shapes and images in your report if possible, as they are included in the tab order of
the report. If you need to include decorative objects in your report, update the object's alt text to let
screen reader users know that it is for decoration.
Arranging items in Field buckets
Beginning with the October 2018 release of Power BI Desktop, the Fields well can be navigated with a
keyboard and interacts with screen readers.
To improve the process of creating reports with screen readers, a context menu is available to allow moving
fields in the well up or down in the Fields list, or moving the field to other wells, such as Legend or Value or
others.
When in Power BI Desktop, notice that some areas such as the Visualizations and Fields fields do not reflect
the selection of high contrast Windows color schemes.
Keyboard Shortcuts
Keyboard shortcuts are helpful for moving around in Power BI reports using a keyboard. The following tables
describe the shortcuts available in a Power BI report. In addition to using these keyboard shortcuts in Power BI
Desktop, these shortcuts work in the following experiences as well:
Q&A Explorer dialog
Getting Started dialog
File menu and About dialog
Warning bar
File Restore dialog
Frowns dialog
In our continued effort to improve accessibility, the previous list of experiences also support screen readers and
high contrast settings.
Frequently used shortcuts
TO DO THIS PRESS
On visual
TO DO THIS PRESS
Pane Navigation
TO DO THIS PRESS
Open a context menu Windows keyboard: Windows context key + F10. The
Windows context key is between the Left Alt key and
the Left Arrow Key
Other keyboard: Shift + F10
Slicer
TO DO THIS PRESS
Selection Pane
TO DO THIS PRESS
DAX Editor
TO DO THIS PRESS
Copy line up / down Shift + Alt + Up arrow key / Down arrow key
Enter Data
TO DO THIS PRESS
Next steps
Use Report Themes in Power BI Desktop (Preview )
How administrators can manage the Power BI
Desktop sign-in form
2/26/2019 • 2 minutes to read • Edit Online
The first time Power BI Desktop is launched, a sign-in form is displayed. Information can be filled in, or sign in to
Power BI to continue. Administrators manage this form by using a registry key.
Administrators use the following registry key to disable the sign-in form. This can also be pushed to an entire
organization by using global policies.
Power BI is a collection of software services, apps, and connectors that work together to turn your unrelated
sources of data into coherent, visually immersive, and interactive insights. Your data may be an Excel
spreadsheet, or a collection of cloud-based and on-premises hybrid data warehouses. Power BI lets you easily
connect to your data sources, visualize and discover what’s important, and share that with anyone or everyone
you want.
Power BI can be simple and fast – capable of creating quick insights from an Excel spreadsheet or a local
database. But Power BI is also robust and enterprise-grade, ready for extensive modeling and real-time
analytics, as well as custom development. So it can be your personal report and visualization tool. It can also
serve as the analytics and decision engine for group projects, divisions, or entire corporations.
These three elements – Power BI Desktop, the service, and mobile apps – are designed to let people create,
share, and consume business insights in the way that serves them, or their role, most effectively.
A fourth element, Power BI Report Server, allows you to publish Power BI reports to an on-premises report
server, after creating them in Power BI Desktop. Read more about Power BI Report Server.
How Power BI matches your role
How you use Power BI may depend on your role in a project or on a team. And other people, in other roles,
might use Power BI differently, which is fine.
For example, you might primarily use the Power BI service. But your number-crunching, business-report-
creating coworker might make extensive use of Power BI Desktop to create reports, then publish those
reports to the Power BI service, where you can view them. Another coworker, in sales, might mainly use her
Power BI phone app to monitor progress on her sales quotas, and to drill into new sales lead details.
If you're a developer, you might use Power BI APIs to push data into datasets or to embed dashboards and
reports into your own custom applications. Have an idea for a new visual? Build it yourself and share it with
others.
You also might use each element of Power BI at different times, depending on what you’re trying to achieve
or your role for a given project.
Perhaps you use Power BI Desktop to create reports for your own team about customer engagement
statistics. Perhaps you also view inventory and manufacturing progress in a real-time dashboard in the
service. How you use Power BI can be based on which feature or service of Power BI is the best tool for your
situation. Each part of Power BI is available to you, which is why it’s so flexible and compelling.
Explore documents that pertain to your role:
Power BI for designers
Power BI for consumers
Power BI for developers
Power BI for administrators
Next steps
Sign in, get some data, and learn your way around Power BI service
Tutorial: Get started with the Power BI service Quickstart: Connect to data in Power BI Desktop
Comparing Power BI Desktop and the Power BI
service
1/14/2019 • 2 minutes to read • Edit Online
In a Venn diagram comparing Power BI Desktop and the Power BI service, the area in the middle would show how
the two overlap. Some tasks you can do in either Power BI Desktop or the service. But on the two sides of the Venn
diagram, the application and the service each have unique features.
Power BI Desktop is a complete data analysis and report creation tool. When you install the free application on
your local computer, you can connect to many different sources of data, and combine them (often called modeling)
into a data model. The Power BI Desktop getting started guide walks through the process.
The Power BI service is a cloud-based, online service for light report editing and collaboration for teams and
corporations. You can connect to data sources in the Power BI service, too, but modeling is limited.
Most report designers who work on business intelligence projects use Power BI Desktop to create reports, and
then use the Power BI service to share their reports with others.
Report editing
In both the application and the service, you can build and edit reports. A report can have one or many pages, with
visuals and collections of visuals. You can add bookmarks, buttons, filters, and drillthrough, to enhance navigation
in your reports.
The report editors in Power BI Desktop and in the service are similar. They're made up of three sections:
1. The top navigation bars, different in Power BI Desktop and the service
2. The report canvas
3. The Fields, Visualizations, and Filters panes
This video shows the report editor in Power BI Desktop.
https://www.youtube.com/embed/IkJda4O7oGs
Next steps
What is Power BI Desktop?
Create a report in the Power BI service
Basic concepts for report designers
More questions? Try the Power BI Community
Tutorial: Get started with the Power BI service
(app.powerbi.com)
1/28/2019 • 6 minutes to read • Edit Online
This tutorial helps you get started with the Power BI service. For an understanding of how the Power BI
service fits in with the other Power BI offerings, we highly recommend that you start by reading What is
Power BI.
If you're looking for help with Power BI Desktop, see Get started with Power BI Desktop. If you're looking for
help with Power BI mobile, see Power BI apps for mobile devices.
TIP
Prefer a free self-paced training course instead? Enroll in our Analyzing and Visualizing Data course on EdX.
Visit our playlist on YouTube. A good video to start with is Introduction to the Power BI service:
https://www.youtube.com/embed/B2vd4MQrz4M
3. Select Files.
4. Browse to the file on your computer, and choose Open. If you saved it in OneDrive for Business, select
that option. If you saved it locally, select Local file.
5. For this tutorial, we're going to select Import to add the Excel file as a dataset that we can then use to
create reports and dashboards. If you select Upload, the entire Excel workbook is uploaded to Power
BI where you can open and edit it in Excel online.
6. When your dataset is ready, select View dataset to open it in the report editor.
Since we haven't yet created any visualizations, the report canvas will be blank.
7. Take a look at the top menubar and notice that there is an option for Reading view. Since you have an
option for Reading view, that means you are currently in Editing view.
While in Editing view you can create and modify your reports, because you are the owner of the
report; you are a creator. When you share your report with colleagues, they'll only be able to interact
with the report in Reading view; they are consumers. Learn more about Reading view and Editing view.
A great way to get familiar with the report editor is to take a tour
3. This chart looks interesting, so let's pin it to a dashboard. Hover over the visualization and select the
Pin icon. When you pin this visualization, it is stored on your dashboard and kept up-to-date so you
can track the latest value at a glance.
4. Because this report is new, you'll be prompted to save it before you can pin a visualization to a
dashboard. Give your report a name (for example, Sales over time) and select Save and Continue.
5. Let's pin the line chart to new dashboard and name it "Financial sample for tutorial".
6. Select Pin.
A Success message (near the top-right corner) lets you know the visualization was added, as a tile, to
your dashboard.
7. Select Go to dashboard to see the line chart pinned, as a tile, to your brand new dashboard. Make
your dashboard even better by adding more visualization tiles and renaming, resizing, linking, and
repositioning tiles.
Select the new tile on your dashboard to return to the report anytime. Power BI returns you to the
report editor in Reading view. To switch back to Editing view, select Edit report from the top menubar.
Once in Editing view, continue exploring and pinning tiles.
Step 3: Continue the exploration with Q&A (natural language
querying)
1. For a quick exploration of your data, try asking a question in the Q&A box. The Q&A question box is
located at the top of your dashboard (Ask a question about your data) and in the top menubar in
your report (Ask a question). For example, try typing "what segment had the most revenue".
2. Q&A searches for an answer and presents it in the form of a visualization. Select the pin icon to
show this visualization on your dashboard too.
3. Pin the visualization to the "Financial Sample for tutorial" dashboard.
Clean up resources
Now that you've finished the tutorial, you can delete the dataset, report, and dashboard.
1. In the left navigation bar, select My Workspace.
2. Select the Datasets tab and locate the dataset you imported for this tutorial.
3. Select the ellipses (...) > Delete.
Deleting the dataset will also delete the report and the dashboard.
Next steps
Ready to try more? Here are some great ways to explore Power BI.
Connect to the online services you use
Tutorial: Connect to a GitHub sample with Power BI
2/13/2019 • 2 minutes to read • Edit Online
In this tutorial, you connect to real data in the GitHub service with Power BI, and Power BI automatically creates
dashboards and reports. You connect to the Power BI content public repository (also known as a repo) and see
information: How many people contribute to the Power BI public content? Who contributes the most? Which day of
the week has the most contributions? And answers to other questions.
Prerequisites
To complete this tutorial, you need a GitHub account, if you don't already have one.
Sign up for a GitHub account
How to connect
1. Sign in to the Power BI service ( http://powerbi.com).
2. In the left navigation pane, select Apps, then Get apps.
3. Select Apps, type github in the search box > Get it now.
4. Enter the repository name and repository owner of the repo. The URL for this repo is
https://github.com/MicrosoftDocs/powerbi-docs, so Repository Owner is MicrosoftDocs, and
Repository is powerbi-docs.
5. Enter the GitHub credentials you created. Power BI might skip this step if you're already signed in to GitHub
in your browser.
6. For Authentication Method, select oAuth2 > Sign In.
7. Follow the Github authentication screens. Grant Power BI permission to the GitHub data.
Now Power BI can connect with GitHub and connect to the data. The data is refreshed once a day.
8. After Power BI imports the data, you see the new GitHub tile.
9. Select the global navigation icon to minimize the left navigation, so you have more room.
2. Select a user name in the Total pull requests by user chart, and see, as in this example, that they had more
average hours than the total average for March.
3. Select the Punch Card tab to view the next page in the report.
Apparently Tuesdays at 3 pm is the most common time and day of the week for commits, when people
check in their work.
Clean up resources
Now that you've finished the tutorial, you can delete the GitHub app.
1. In the left navigation bar, select Apps.
2. Hover over the GitHub tile and select the Delete garbage can.
Next steps
In this tutorial, you've connected to a GitHub public repo and gotten data, which Power BI has formatted in a
dashboard and report. You've answered some questions about the data by exploring the dashboard and report.
Now you can learn more about connecting to other services, such as Salesforce, Microsoft Dynamics, and Google
Analytics.
Connect to the online services you use
Tutorial: Use Cognitive Services in Power BI
3/13/2019 • 5 minutes to read • Edit Online
Power BI provides access to a set of functions from Azure Cognitive Services to enrich your data in the self-service
data prep for Dataflows. The services that are supported today are Sentiment Analysis, Key Phrase Extraction,
Language Detection, and Image Tagging. The transformations are executed on the Power BI service and do not
require an Azure Cognitive Services subscription. This feature requires Power BI Premium.
Cognitive Services transforms are supported in the Self-Service Data Prep for Dataflows. Use the step-by-step
examples for text analytics and image tagging below to get started.
In this tutorial, you learn how to:
Import data into a dataflow
Score sentiment and extract key phrases of a text column in a dataflow
Connect to the results from Power BI Desktop
Prerequisites
To complete this tutorial, you need the following:
A Power BI account. If you're not signed up for Power BI, sign up for a free trial before you begin.
Access to a Power BI Premium capacity with the AI workload enabled. This workload will be turned off by
default during preview. If you are in on a Premium capacity and AI Insights are not showing up, contact your
Premium capacity admin to enable the AI workload in the admin portal.
Text analytics
Follow the steps in this section to complete the text analytics portion of the tutorial.
Step 1: Apply sentiment scoring in Power BI Service
To get started, navigate to a Power BI workspace with Premium capacity and create a new dataflow using the
Create button in the upper right of the screen.
The dataflow dialog shows you the options for creating a new dataflow, select Add new entities. Next, choose
Text/CSV from the menu of data sources.
Paste this URL into the URL field:
https://pbiaitutorials.blob.core.windows.net/textanalytics/FabrikamComments.csv and click Next.
In the upper ribbon, select Transform Table and then choose Use first row as headers. The data is now ready to
use for text analytics, and we can use Sentiment Scoring and Key Phrase Extraction on the customer comments
column.
In Power Query Editor, select AI Insights
Expand the Cognitive Services folder and select the function you would like to use. This example is scoring the
sentiment of the comment column, but you can follow the same steps to try out Language Detection and Key
Phrase Extraction.
Once a function is selected, the required and optional fields will show. To score the sentiment of the example
reviews, select the reviews column as text input. Culture info is an optional input and requires an ISO format. For
example, enter 'en' if you want the text to be treated as English. When the field is left blank, Power BI will first
detect the language of the input value before scoring the sentiment.
Now select Invoke to run the function. A new column with the sentiment score for each row is added to the table.
You can go back to AI insights to extract key phrases of the review text in the same way.
Once you are finished with the transformations, change the query name to 'Customer comments' and select
Done.
Next, Save the dataflow and name it Fabrikam. Select the Refresh Now button that pops up after saving the
dataflow.
Once the dataflow is saved and refreshed, you can use it in a Power BI report.
Step 2: Connect from Power BI Desktop
Open Power BI Desktop. In the Home ribbon, select Get Data.
Navigate to the Power BI dataflows (Beta) in the Power BI section and select Connect.
As this is a preview feature, the connector will ask you to accept the preview conditions. After accepting these, sign
in with your organization account.
Select the dataflow you have just created. Navigate to the Customer comments table and click Load.
Now the data is loaded you can start building a report.
Image tagging
Navigate to a Power BI workspace with Premium capacity. Create a new dataflow using the Create button in the
upper right of the screen.
Copy the query below in the query editor and click next. You can replace the URL paths below with other images
or add more rows. The Web.Contents function imports the image URL as binary. If you have a data source with
images stored as binary, you can also use that directly.
let
Source = Table.FromRows({
{ Web.Contents("https://images.pexels.com/photos/87452/flowers-background-butterflies-beautiful-87452.jpeg")
},
{ Web.Contents("https://upload.wikimedia.org/wikipedia/commons/5/53/Colosseum_in_Rome%2C_Italy_-
_April_2007.jpg") }}, { "Image" })
in
Source
When prompted for credentials, select anonymous.
NOTE
You currently cannot pick a column using a dropdown, which will be resolved as soon as possible during the private preview.
In the function editor, remove the quotation marks around the column name.
NOTE
Removing the quotation marks is a temporary workaround, which will be resolved as soon as possible during preview.
The function returns a record with both the tags in comma-separated format and as a json record. Select the
expand-button to add one or both as columns to the table.
Select Done and save the dataflow. Once you have refreshed the dataflow one, you can connect to it from Power
BI Desktop using the Dataflows connectors. (See steps on page 5 of this document).
Clean up resources
When no longer needed, delete the query by right-clicking the query name in the Power Query editor and
selecting Delete.
Next steps
In this tutorial, you applied sentiment scoring and image tagging functions on a Power BI dataflow. To learn more
about Cognitive Services in Power BI, read the following articles.
Cognitive Services in Azure
Get started with self-service data prep on dataflows
Learn more about Power BI Premium
You might also be interested in the following articles.
Tutorial: Invoke a Machine Learning Studio model in Power BI (Preview )
Azure Machine Learning integration in Power BI (Preview )
Cognitive Services in Power BI (Preview )
Tutorial: Invoke a Machine Learning Studio model in Power BI
(Preview)
3/25/2019 • 7 minutes to read • Edit Online
In this tutorial, we walk through the experience of incorporating insights from an Azure Machine Learning Studio model into Power BI.
This tutorial includes guidance for granting a Power BI user access to an Azure ML model, creating a dataflow, and applying the insights
from the Azure ML model to your dataflow. It also references the quickstart guide for creating an Azure ML model if you don't already have
a model.
The tutorial takes you through the following steps:
Create and publish an Azure Machine Learning model
Grant access to a Power BI user to use the model
Create a dataflow
Apply insights from the Azure ML model to the dataflow
Select the Azure subscription that you used for publishing the model, and select Access Control (IAM ). Next select Add role
assignment, then select the Reader role, and select the Power BI user. Select Save when you're done. The following image shows these
selections.
Then repeat the steps above to grant Contributor role access to the Power BI user for the specific Machine Learning web service to which
the Azure ML model has been deployed.
Create a dataflow
Get data for creating the dataflow
Sign in to the Power BI service with the user credentials for whom you granted access to the Azure ML model in the previous step.
This step assumes you have the data you want to score with your Azure ML model in CSV format. If you used the Automobile Pricing
Experiment to create the model in the Machine Learning studio, the dataset for is shared in the following link:
Azure Learning Studio sample model
Create a dataflow
To create the entities in your dataflow, sign in to the Power BI service and navigate to a workspace on your dedicated capacity that has the
AI preview enabled.
If you don't already have a workspace, you can create one by selecting Workspaces in the left menu, and then select Create app
workspace in the panel at the bottom. This opens a panel to enter the workspace details. Enter a workspace name, and then select Save.
After the workspace has been created, you can select Skip in the bottom right of the Welcome screen.
Select the Dataflows (preview) tab, and then select the Create button at the top right of the workspace, and then select Dataflow.
Select Add new entities, which launches Power Query Editor in the browser.
Power Query Editor shows a preview of the data from the CSV file. Select Transform Table from the command ribbon and then select Use
first row as headers. This adds the Promoted headers query step into the Applied steps pane on the right. You can also rename the
query to a friendlier name, such as Automobile Pricing using the pane on the right.
Our source dataset has unknown values set to '?'. To clean this, we can replace '?' with '0' to avoid errors later for simplicity. To do this,
select the columns normalized-losses, bore, stroke, compression-ratio, horsepower, peak-rpm and price by clicking on their name in the
column headers, then click on 'Transform columns' and select 'Replace values'. Replace '?' with '0'.
All the columns in the table from a Text/CSV source are treated as text columns. Next, we need to change the numeric columns to their
correct data types. You can do this in Power Query by clicking on the data type symbol in the column header. Change the columns to the
below types:
Whole number: symboling, normalized-losses, curb-weight, engine-size, horsepower, peak-rpm, city-mpg, highway-mpg, price
Decimal number: wheel-base, length, width, height, bore, stroke, compression-ratio
Select Done to close Power Query Editor. This will show the entities list with the Automobile Pricing data we added. Select Save in the top
right corner, provide a name for the dataflow, and then select Save.
Select the AI Insights button in the ribbon, and then select the Azure Machine Learning Models folder from the left navigation menu.
The Azure ML models to which you've been granted access are listed as Power Query functions with a prefix AzureML. When you click on
the function corresponding to the AutomobilePricePrediction model, the parameters for the model's web service are listed as function
parameters.
To invoke an Azure ML model, you can specify any of the selected entity's columns as an input from the drop-down. You can also specify a
constant value to be used as an input by toggling the column icon to the left of the input dialog. When a column name that matches one of
the function parameter names, then the column is automatically suggested as an input. If the column name doesn't match, you can select it
from the drop-down.
In the case of the Automobile Pricing Prediction model, the input parameters are:
make
body-style
wheel-base
engine-size
horsepower
peak-rpm
highway-mpg
In our case, since our table matches the original dataset used to train the model, all the parameters have the correct columns already
selected.
Select Invoke to view the preview of the Azure ML model's output as a new column in the entity table. You'll also see the model invocation
as an applied step for the query.
The output of the model is shown as a record in the output column. You can expand the column to produce individual output parameters in
separate columns. In our case, we're only interested in the Scored Labels which contains the predicted price of the automobile. So we
deselect the rest, and select OK.
The resulting Scored Labels column has the price prediction from the Azure ML model.
Once you save your dataflow, the Azure ML model will be automatically invoked when the dataflow is refreshed for any new or updated
rows in the entity table.
Clean up resources
If you no longer need the Azure resources you created using this article, delete them to avoid incurring any charges. You can also delete the
dataflows you created, if you no longer require them.
Next steps
In this tutorial, you created a simple experiment using Azure Machine Learning Studio using a simple dataset using these steps:
Create and publish an Azure Machine Learning model
Grant access to a Power BI user to use the model
Create a dataflow
Apply insights from the Azure ML model to the dataflow
For more information about Azure Machine Learning integration in Power BI, see Azure Machine Learning integration in Power BI
(Preview ).
Tutorial: Build a Machine Learning model in Power BI
(Preview)
3/29/2019 • 9 minutes to read • Edit Online
In this tutorial article, you use Automated Machine Learning to create and apply a binary prediction model in
Power BI. The tutorial includes guidance for creating a Power BI dataflow, and using the entities defined in the
dataflow to train and validate a machine learning model directly in Power BI. We then use that model for scoring to
generate predictions.
First, you'll create a Binary Prediction machine learning model, to predict the purchase intent of online shoppers
based on a set of their online session attributes. A benchmark machine learning dataset is used for this exercise.
Once a model is trained, Power BI will automatically generate a validation report explaining the model results. You
can then review the validation report and apply the model to your data for scoring.
This tutorial consists of following steps:
Create a dataflow with the input data
Create and train a machine learning model
Review the model validation report
Apply the model to a dataflow entity
Using the scored output from the model in a Power BI report
Select the Dataflows (preview) tab. Select the Create button at the top right of the workspace, and then select
Dataflow.
Select Add new entities. This launches a Power Query editor in the browser.
The Power Query Editor shows a preview of the data from the CSV file. Select Transform Table in the command
ribbon and then select Use first row as headers from the menu that appears. This adds the Promoted headers
query step into the Applied steps section on the right of the screen. You can rename the query to a friendlier
name by changing the value in the Name box found in the right pane. For example, you could change the Query
name to Online Visitor.
Some of the attribute data types in this dataset are numeric or Boolean, though these may be interpreted as strings
by Power Query. Select the attribute type icon at the top of each column header to change the columns listed
below to the following types:
Decimal number: Administrative_Duration; Informational_Duration; ProductRelated_Duration; BounceRates;
ExitRates; PageValues; SpecialDay
True/False: Weekend; Revenue
The Binary Prediction model we will train requires a Boolean field as a label identifying the outcomes from the
past observations. In this dataset, the Revenue attribute indicates purchase, and this attribute is already available as
a Boolean. So, we don't need to add a calculated column for the label. In other datasets, you may have to transform
existing label attributes into a Boolean column.
Select the Done button to close Power Query Editor. This shows the entities list with the Online Visitors data we
added. Select Save in the top-right corner, provide a name for the dataflow, and then select Save on the dialog, as
shown in the following image.
Refresh the dataflow
Saving the dataflow results in a notification being displayed, stating that your dataflow has been saved. Select
Refresh now to ingest the data from the source into the dataflow.
Select Close in the upper right corner and wait for the dataflow refresh to complete.
You can also refresh your dataflow by using the Actions commands. The dataflow shows the timestamp when the
refresh has been completed.
Create and train a machine learning model
Select the dataflow after the refresh has been completed. To add a machine learning model, Select the Apply ML
model button in the Actions list for the base entity that contains your training data and label information, and
then select Add a machine learning model.
The first step for creating our machine learning model is to identify the historical data including the label field that
you want to predict. The model will be created by learning from this data.
In the case of the dataset we're using, this is the Revenue field. Select Revenue as the 'Historical outcome field'
value and then select Next.
Next, we must select the type of machine learning model to create. Power BI analyzes the values in the historical
outcome field that you've identified and suggests the types of machine learning models that can be created to
predict that field.
In this case, since we're predicting a binary outcome of whether a user will make a purchase or not, select Binary
Prediction for the model type, and then select Next.
Next, Power BI does a preliminary scan of the data and suggests the inputs that the model could use. You have the
option to customize the input fields used for the model. In our curated dataset, to select all the fields, select the
checkbox next to the entity name. Select Next to accept the inputs.
In the final step, we must provide a name for our model, as well as the friendly labels for the outcomes to be used
in the automatically generated report that will summarize the results of the model validation. Next we have to
name the model Purchase Intent Prediction, and the true and false labels as Purchase and No -Purchase. Then
select Save.
Our machine learning model is now ready for training. Select Refresh Now to start training the model.
The training process will begin by sampling and normalizing your historical data and splitting your dataset into two
new entities Purchase Intent Prediction Training Data and Purchase Intent Prediction Testing Data.
Depending on the size of the dataset, the training process can take anywhere from a few minutes to a couple of
hours. At this point, you can see the model in the Machine learning models tab of the dataflow. The Ready status
indicates that the model has been queued for training or is under training.
While the model is training, you won't be able to view or edit the dataflow. You can confirm that the model is being
trained and validated through the status of the dataflow. This appears as a data refresh in progress in the
Dataflows tab of the workspace.
Once the model training is completed, the dataflow displays an updated refresh time. You can confirm that the
model is trained, by navigating to the Machine learning models tab in the dataflow. The model you created
should show status as Trained and the Last Trained time should now be updated.
The other pages of the report describe the statistical performance metrics for the model.
The report also includes a Training Details page that describes the different iterations that were run, how features
were extracted from the inputs, and the hyperparameters for the final model used.
Due to a known issue, the scored output columns in the enriched entity are only accessible from Power BI Desktop.
To preview these in the service, you must use a special preview entity.
Once the dataflow refresh is completed, you can select the OnlineShoppers enriched Purchase Intent
Prediction Preview entity to view the results.
Using the scored output from the model in a Power BI report
To use the scored output from your machine learning model, you can connect to your dataflow from the Power BI
desktop, using the Dataflows connector. The OnlineShoppers enriched Purchase Intent Prediction entity can
now be used to incorporate the predictions from your model in Power BI reports.
Next steps
In this tutorial, you created and applied a binary prediction model in Power BI using these steps:
Create a dataflow with the input data
Create and train a machine learning model
Review the model validation report
Apply the model to a dataflow entity
Using the scored output from the model in a Power BI report
For more information about Machine Learning automation in Power BI, see Automated Machine Learning in
Power BI (Preview ).
3/26/2019 • 33 minutes to read • Edit Online
March 2019
General Availability of Multi-Geo for Power BI Premium.
Editing and managing Power BI content support for Azure B2B.
2018
December 2018
AI-powered recommended apps in Power BI Home.
Workspace management in the Admin Portal.
Preview of Power BI Dataflows and Azure Data Lake Storage Gen2 Integration in dataflows.
Power BI solution templates became open source.
November 2018
Power BI data prep available with dataflows public preview.
Public preview of paginated reports in Power BI Premium.
Data size and count of datasets in memory in the Capacity Monitoring app.
October 2018
Aggregations[desktop-aggregations.md] in the Power BI service.
Power BI expanded to three new regions: Central India, Australia East, and Central US (Iowa).
Export to PowerPoint made generally available.
September 2018
Dashboard commenting in the Power BI service.
Public preivew of Power BI Home and Global Search.
Abiliy to monitoring queries in the Capacity Monitoring app.
August 2018
Capacity Monitoring app for Power BI Premium.
Power BI Report URL filter improvements.
July 2018
Custom visuals support for persistent filters.
APIs and PowerShell Cmdlets for Power BI administrators.
Multi-Geo support for Power BI Premium.
June 2018
Sharing reports with filters and slicers.
New and improved user interface for gateway connections and setting up datasets.
May 2018
Theme dashboards in the Power BI service.
Incremental refresh with Premium.
Request access workflow for Power BI Apps.
Get Data updates to make it easier for users to find Power BI Apps.
Settings to turn on and off Persistent filters in the Power BI service.
Azure B2B invite workflow improvements for reports.
April 2018
Power BI Whitepaper on data protection
Power BI Service audit logs turned-on by default for Office 365 tenant.
March 2018
Persistent filters in the Power BI Service.
Share content with users using their personal e-mail accounts. Extension of Azure Active Directory
B2B.
February 2018
Automatically install Power BI Apps for end users.
P4 and P5 capacities on Power BI Premium
Preview of Organizational custom visuals.
January 2018
Share and favorite Power BI reports.
OAuth2 and DirectQuery Single Sign-on Support (SSO ) for Azure SQL Database and Data
Warehouse.
In-region auditing: audit logs will now be stored in the same Office 365 region as their tenant.
GA of SharePoint Online Power BI report web part.
Admin control to turn off viewing custom visuals for all users in a tenant.
Scheduled refresh support for Azure Analysis Services (AAS ).
2016
November 2016
Preview: Try out the new navigation for the Power BI service, powerbi.com
Preview: Export a Power BI report to PowerPoint.
Preview: Download Power BI reports (PBIX files) from the Power BI service so you can edit them in
Power BI Desktop.
Create a liquid fill gauge, a circle gauge that represents a percentage value with animated liquid
waves.
Explore your Jira project-management data with this Power BI content pack
Explore your Insightcentr data with this Power BI content pack
Create infographics quickly with the infographic designer custom visual
Private preview: Azure Stream Analytics outputs Power BI streaming datasets, with which you can
create streaming tiles.
Preview: Add ESRI ArcGIS Maps Visualizations to your reports and dashboards
October 2016
Take advantage of Power BI integration with the new Microsoft Teams.
Design R visualizations in Power BI without understanding R.
Preview: With Azure Analysis Services, BI professionals can create BI semantic models based on data
that resides in the cloud or on premises, to provide business users with a simplified view of their data.
The new Power BI Service Administrator Role can be assigned to users who should have access to the
Power BI Admin Portal but not other Office 365 administrative access.
Explore your MYOB Advanced data with Power BI.
How a non-administrator can review the Power BI audit log
Display text columns as ToolTips.
July 2016
RLS graduates from preview
Row Level Security (RLS ) lets you restrict data access based on who is accessing it. Recently we
streamlined the process of configuring RLS by exposing roles and rules in Power BI Desktop. Today,
we are happy to announce that RLS is now generally available for all Power BI Pro users.
Data classification
You can now tag your dashboards with classifications defined by your company's IT department,
raising awareness of those viewing your dashboards about what level of security should be used.
Analyze your on -premises data in Excel
Analyze in Excel feature has expanded to support on-premises datasets. We establish a secure and
direct connection to your on-premises dataset that enables you to analyze it in Excel. We also
introduced a setting for admins to turn off the Analyze in Excel feature for on-premises sources.
For all the details, visit the Power BI team blog
June 2016
Quick Insights
Quick Insights work with Complex Filters: We are happy to announce that Quick Insights scoped to a
single tile now understand complex filters.
For all the details, visit the Power BI Team blog
May 2016
Get Data
File size limit increase to 1 GB: We increased the file size limit for both Excel workbooks and Power BI
Desktop files to 1 GB.
Find SSAS servers set up with the Enterprise gateway and other gateway updates: Now when you set
up an Enterprise gateway, users in your company will be able to access these servers in the Power BI
service through the Get Data page. We also added support for refreshing datasets that include data
from SAP Business Warehouse Server using the gateway and creating UPN mapping rules when you
are using Analysis Services with the gateway.
Row -level security (RLS )
Azure Active Directory (AAD ) group support: Users can now assign AAD groups (security groups and
distribution lists) to a role. This makes it easier to assign roles to a large group of users at once.
Test your RLS roles with reports backed by the data with RLS in place: We added a feature to our RLS
preview that lets you test your dataset as a specific role. This will make sure the role works as you
expect before any users get their hands on your dashboard.
Define and apply RLS to cloud models based on direct queries: You can now create and apply RLS
rules for direct query data sources.
Dashboards
Favorite dashboards: To help you reach the dashboards you go to most, we added a way to favorite
those dashboard and make them easily accessible from all your workspaces.
Analyze in Excel
Improved download experience: Easily download updates to the Analyze in Excel feature through a
new dialog experience.
Support for RLS: Once you set up RLS, the rules you apply to the data now flow through when a user
analyzes the data in Excel.
Improved error messaging for on-premises Analysis Services databases: Previously, if you selected
Analyze in Excel for an unsupported data source, you wouldn't get an error message until after you
downloaded the ODC file and tried to connect to Power BI. Now as soon as you select Analyze in
Excel for a data source we don't support, you'll see a message letting you know we don't yet support
that data source.
For all the details, visit the Power BI Team blog
Power BI Q&A support for SQL Server 2016 Analysis Services tabular models: We are pleased to
announce improvements to the Power BI Q&A user experience and the start of the public preview for
Power BI Q&A for enterprise gateway connected data sources - starting with support for SQL Server
2016 Analysis Services tabular models. For all the details, see the blog post
Local File Support for Excel Reports: You can now upload your Excel files from your local drive or
other storage services and use that Excel Report just as you would in Excel Online with the added
benefits of Power BI. For all the details, see the blog post
April 28, 2016
Quick Insights on Dashboard Tiles: When viewing a tile in Focus mode, click Get Insights to search the
tile and its related data for correlations, outliers, trends, seasonality, change points in trends, and major
factors automatically, within seconds.
For all the details, visit the Power BI Team blog
April 26, 2016
Narratives for Power BI: As you interact with your data and visualizations, this custom visual
dynamically delivers insights in narrative form, just like you'd expect an analyst would write. This
visual is fueled by Narrative Science Quill.
For all the details, visit the Power BI Team blog
April 16, 2016
Microsoft Trust Center: Power BI joined the Microsoft Trust Center, a single source for documenting
compliance certifications for Microsoft products. Power BI's certifications include ISO 27001, ISO
27018, EU Model Clauses, HIPAA BAA, and UK G -Cloud.
For all the details, visit the Power BI Team blog
April 14, 2016
Enterprise
ExpressRoute: use to establish a private, managed connection to Power BI.
Content pack support for RLS (Preview ): If RLS is defined for those dashboards and reports that are
distributed as part of a content pack, then the security rules will be respected for those content packs.
Dashboards
Vimeo video tile: From the dashboard, add a tile that contains an embedded Vimeo player.
Analyze in Excel
Analyze in Excel available to all users: the ability to access your Power BI data models in Excel has
been extended to all users, regardless of the license they're assigned.
Improved multi-user account experience: if you have more than 1 Power BI user account, it's now
easier to sign-in.
For all the details, visit the Power BI Team blog
March 31, 2016 Lots of updates announced at the Microsoft Data Insights Summit.
Dashboards
Featured dashboard: makes it easier to reach the dashboard you care about most.
Filter dashboard list: show all, show content you created, show content shared with you.
Enterprise features
Admin usage reporting: added a usage report to the Power BI admin center.
Row -level security: this is a Preview feature that allows you to set permissions on Power BI datasets.
Disable exporting data: users in your tenant will no longer be able to export tile and visual data to a
.csv file.
Q&A
Auto complete for "is": Q&A will suggest values if you type column name followed by "is".
Mobile
KPIs on your Apple watch: monitor your KPI and card tiles without having to open Power BI app.
Excel
Analyze in Excel: connect your Power BI data model to Excel and do your analysis inside of Excel
instead of Power BI.
Other
Power BI in Australia: now anyone in Australia, individual or through an organization, can go to
powerbi.microsoft.com and sign up for Power BI.
Language settings: override the automatic language detection and set the language for Power BI.
For all the details, visit the Power BI Team blog
March 11, 2016
This month we made some updates to dashboards, Quick Insights, and Q&A.
Dashboards
Full Screen mode: print without having to exit Full Screen mode first
Full Screen mode: expand your tiles to fill the entire canvas and remove excess white space by
selecting Fit to Width
Use Tile Flow to automatically align your tiles to the top left corner of the canvas.
Quick Insights
The Trend and Correlaction insights now have trend lines to make it easier to see patterns in the data.
Q&A
You can now specify Gauge and Area charts in Q&A
Improved auto-complete for Q&A - as soon as you type just a few characters, Q&A begins auto
completing and suggesting visuals for you.
For all the details, visit the Power BI Team blog
February 10, 2016
Today we released a long list of top-requested features. Read the blog post.
Sharing
Share with users outside your organization
Request access to a dashboard
Admin Portal
Easy user management with a link to the Microsoft 365 admin center
Ability to disable publish to web
Prevent users from publishing content packs to the entire org
Ability to disable sharing content to external users
Quick Insights
Quick Insights when you publish Power BI Desktop files
Dashboard
Add Web content to your dashboard (via Widget)
Add video content to your dashboard (via Widget)
Zoom on dashboards
Connectivity
Connect to files on your team SharePoint site through a URL
For all the details, visit the Power BI Team blog
January 28, 2016
Updates to reports and visualizations:
Add borders to visuals
Add background images to pages and Cartesian chart plot areas
Performance Improvements for report rendering, cross-highlight, etc.
Regardless of the browser version being used, a significant Performance improvement can be noticed
by users when loading reports, switching between pages, cross-highlighting data across visuals, etc.
with this new update.
January 6, 2016
The Power BI team has been busy over the holiday break. For all the details, visit the Power BI Team blog
Dashboards
Export tile data
Add an image or text box widget to dashboards
Print dashboards
Refresh time on tiles
Tooltips on dashboard tiles
Collaboration
Shared dashboard notification
Contact owner of a shared or organizational dashboard
Reports
Print current report page
Export report visual data
Connectivity
Connect to files on SharePoint team sites
Excel Reports
Open Excel reports in Excel desktop
Pin Excel charts
Format improvements for Excel tiles
Other
Power BI in Brazil
Hebrew and Arabic support
For all the details, visit the Power BI Team blog
2015
December 16, 2015
Lots of updates this week, most apply to Power BI Desktop but several significant updates to report
authoring and visualizations as well. The Power BI Team Blog contains full descriptions and even a video
describing the updates.
Download Power BI Desktop
Updates to the report authoring formatting pane and ribbon:
1. Format data labels per category series
2. Change number of decimal places showed in visuals
3. Change text size in visuals
4. Ability to lay out visuals accurately: alignment, distribute, size, position (requires Power BI
Desktop for authoring)
5. Set styles across multiple visuals through Format Painter (requires Power BI Desktop for
authoring)
Enhancements to visualizations:
1. visuals cue for sort state in Table visual
2. new visual: Stacked Area chart
3. smart tooltips for Area and Line charts on hover
4. ability to create Reference line/region for a Cartesian visual
5. improved data labels for pie and scatter chart
R visuals integration in Desktop (Preview feature)
Desktop will suggest table to table relationships when trying to create 2 tables which are not
related.
Desktop optimized Home ribbon layout.
Desktop data modeling updates in Relationships View:
1. zooming slider
2. fit zoom to
3. reset layout
4. ability to zoom in using Ctrl-Mouse selection rectangle
Desktop data connectivity enhancements
1. SSAS Multidimensional support - Hierarchies support (Preview Feature)
2. Stripe Connector
3. Smartsheet Connector
4. “Enter Data”: Paste or enter data to create a table
5. DirectQuery Improvements: Support for all data types of T-SQL and SAP HANA, resulting in
Performance improvements.
6. ODBC Connector: Support for selecting User/System DSNs
7. CSV Connector: Ability to specify Column Delimiter in the Source dialog
For all the details, including a video demonstrating many of these updates, visit the Power BI Blog.
December 10, 2015
Pin report pages to dashboard
Refresh dashboard tiles
Use images in slicers
Change interactions between report visuals
For all the details, visit the Power BI Blog.
December 8, 2015
QR codes in Power BI
December 3, 2015
Automatically discover trends and uncover patterns in a dataset with Quick Insights: video or article
Visualize your VMob data in Power BI
Power BI integration with Cortana
Preview of Power BI gateway for enterprise
Introducting a new content pack: Search Analytics from Bing on Power BI dashboards
New Developer-focused enhancements: Two new APIs and easier app registration
November 24, 2015
Pin Excel ranges to dashboards
Chromeless full screen mode for dashboards and reports
Know where your data is stored
Improved loading of on-premises reports
Share dashboards directly to another user's workspace
Improved Google Analytics connector experience
Close your power bi account
For all the details, visit the Power BI Blog
November 18, 2015
Create a duplicate dashboard
Freely position dashboard tiles
Improved navigation for full screen view
Better experience when inviting peers from your organization to Power BI groups
Improved error messages for tiles
For all the details, visit the Power BI Blog
November 11, 2015
New site for Power BI documentation, localized
Improved load time for reports
Update organizational content packs with report-only changes
Power BI health status in Microsoft 365 admin center
KPIs and images in tables, matrices, and cards
For all the details, visit the Power BI Blog
November 3, 2015
Guided Power BI purchase experience.
Individuals can buy Power BI Pro.
Duplicate report page.
For all the details, visit the Power BI Blog
October 28, 2015
Share dashboards with Active Directory Security groups
People picker
Sharing with a large number of email addresses
Collapse navigation pane through an URL parameterized
For all the details, visit the Power BI Blog
October 20, 2015
Read-only members in Power BI groups
Featured questions in Q&A
Full screen pop-out mode for report visualizations
For all the details, visit the Power BI blog
October 13, 2015
Full screen mode to display your dashboards and reports on big screen TVs
'Fit to screen’ support in full screen mode to display your entire dashboard in the available space
In-focus mode to get more details on dashboard tiles
Ability to view last update time for each tile
Ability to view the source for each tile
Planview Enterprise is an end-to-end portfolio and resource management solution that connects
strategy to execution, improving decision-making across the enterprise. The Planview Enterprise
content pack for Power BI allows you to visualize your resource and work management data in an
entirely new way. Simply sign in with your credentials and begin to interactively explore your portfolio
investment spend, budget status, and how well your projects align with strategic priorities.
View our blog and online documentation to learn more.
October 6, 2015
With Power BI Q&A, you can explore your data using simple, intuitive questions and receive answers
in the form of interactive charts and graphs. With this release, we have added a feature to help you get
started with Power BI Q&A, even when you do not know anything about the data. To get started with
this, navigate to any dashboard and click the “How to ask” link near the Q&A question box. Power BI
presents you with a number of suggestions based on your data.
Two weeks ago, we introduced support for inserting shapes into the report canvas in Power BI
Desktop. This week, we are happy to announce that you can now add shapes to your report canvas
when you are authoring and/or editing reports in the Power BI web app.
We have added the option to turn off email notification when you share a dashboard. Simply uncheck
the “Send email notification to recipients” check box in the Power BI share dialog. You will be
presented with a URL – copy and share this URL to your colleagues to give them access to the
dashboard.
Microsoft Dynamics NAV is a business management solution for small to medium organizations. It
offers customers a full solution for their business with greater control over their financials and
business processes. The Power BI content pack provides out-of-box reports for Dynamics NAV users,
such as sales and profit, opportunities pipeline, profitability and more. These metrics are organized on
a dashboard that can be fully customized, allowing you to easily connect and immediately start
exploring your data.
Check out the blog and online documentation for more information.
September 29, 2015
With this week’s service update, when creating new reports you can now choose from multiple page
sizes as well as define your own page size. This controls the size and aspect ratio of each page in the
report.
We added additional visual formatting support for images and bubble charts. You can lock the aspect
while resizing images to avoid image distortion and scatter chart bubbles can be configured to be
filled or not.
Today, Power BI will send sharing invites to an alternate email address. When a dashboard is shared
with you, we will send the sharing invite link both to your original email address and to your alternate
email address (if you have it configured).
Power BI is available to all customers including those on the Dedicated on Multitenant (DonMT) O365
architecture. You will be using Power BI as a shared service in multi-tenant mode. In most cases, you
can register for Power BI by following the simple self-service-signup process – just enter your work
email address, enter your name and password to get started. If you are the tenant administrator, you
can assign licenses to your users using the instructions here.
Azure Audit Logs allows you to view control-plane operational logs in your Azure subscription. The
Power BI Azure Audit Logs content pack can help you easily analyze and visualize the wealth of
information contained in these logs. The content pack allows you to connect to your data and begin to
discover insights with the out-of-the box dashboard and reports. Read our blog and online
documentationfor more information.
Learn more in our blog.
September 22, 2015
Have more flexibility on your dashboard to customize your dashboards with additional tile sizes,
ranging from 1x1 to 5x5.
You can now share (and un-share) a dashboard from your group space exactly the way you would do
it in your own space. Once colleagues accept your sharing invitation, the shared dashboard (and their
associated reports) will be added in their own space with read-only permission.
We added 5 additional industry related samples to Power BI: Customer Profitability, Human
Resources, Opportunity Analysis, Procurement Analysis, and Sales and Marketing Sample.
Stripe is an advanced payment platform for online businesses. From start-ups to Fortune 500
companies, thousands of businesses use Stripe to accept payments in over 130 currencies, from
anyone in the world. By connecting Power BI with your existing Stripe account, you’ll be able to use
the Power BI Stripe content pack to monitor, explore, and visualize your Stripe activity.
Learn more in our blog.
September 15, 2015
You can now choose which dashboard you want to pin your visual to! You can choose the target
dashboard from your existing dashboards, or even create a new dashboard and pin the visual to it in
one shot.
Additionally, you can control your visual colors in the dashboard. If your report is using a different
theme from the dashboard theme, you can control whether the visual retains current theme, or uses
the default dashboard theme to achieve consistency across visuals from various sources.
You can now simply pin the tile from one dashboard to another, the same way you would pin a report
visual to a dashboard.
If your 60-day Power BI Pro trial period is close to expiration, you can contact us to request an
extension to your trial. If approved, your trial will be extended for another 60 days.
comScore Digital Analytix is an online solution that provides insights into your user base through the
best of analytics and audience demographics. With the Power BI comScore content pack, you can
quickly connect and begin gaining insights into your web analytics data. This content pack includes an
out-of-the box dashboard, a set of reports, and a curated data set to help you explore and drill into
your data. Learn more about the content pack in our blog and help topic.
September 8, 2015
Friendly Hyperlinks now allow you to provide links for your users without needing to display the
entire URL in the textbox.
Drill Support has been added to Power BI Reports. You can create a Drill path that enables users to
navigate from one level of data to related data.
Two new Industry Related Samples, It Spend Analysis and Supplier Quality Analysis, have been added
under the samples section of the Get Data experience. These samples are great examples of how you
can use your data to create insightful reports and dashboards.
We have a new content pack for tyGraph, which allows you to easily gain deeper insights into your
Yammer data. The content pack includes a dashboard, a set of reports and a curated dataset to explore
and provide insights such as the Measure of Active Engagement (The MAE Score) and content
consumption metrics such as File Views and File Downloads. Learn more on our blog and help topic.
September 1, 2015
Webtrends helps companies make sense of their customer data to drive digital marketing success.
Users have the ability to observe, analyze and deliver insights on the visitor journey across web, social,
mobile and SharePoint channels. With the release of the Webtrends content pack, users will now have
the ability to use Power BI to monitor, analyze, and visualize their Webtrends analytics data. The
Webtrends content pack for Power BI help page has more information.
Getting started with Q&A is even simpler. The moment you put your cursor inside the Q&A text box,
we instantly display a list of questions and key metrics that are relevant to your data. In the drop
down, by default, you will see the questions for tiles already pinned to the dashboard as well as an
entry for each table you have in your dataset.
The dynamic canvas size we display by default renders all our report items with optimal dimensions
for the browser window size. If you want to lock in the aspect ratio, or want to fit your report in a
different way, we now support another three options for you:Fit to Page, Fit to Width, and Actual Size.
We also Increased the limit on the number of datasets and reports you can have. You can now have up
to 200 datasets and 200 reports for each dataset in your Power BI account.
August 25, 2015
Now you can use Power BI to monitor, explore and visualize your Adobe Analytics data. With an out-
of-box content pack, you can connect and discover insights from your data immediately. To learn
more, visit the Adobe Analytics content pack for Power BI help page.
August 18, 2015
Azure Mobile Engagement is an app analytics service that allows developers to track their
application’s performance helping them increase retention and app usage. Using the Power BI Azure
Mobile Engagement content pack you can quickly connect to an out-of-box dashboard, a set of
reports and a curated data set, and instantly get insights into how well your app is doing. Please see
the Azure Mobile Engagement content pack for Power BI help page for more information.
August 11, 2015
Mandrill is an email infrastructure service developed by MailChimp that lets you analyze your email
campaigns from a wide variety of information. With the Power BI Mandrill content pack, you can
quickly connect to your Mandrill data and immediately gain insights into your newsletter or marketing
campaign. For additional details on how to get started, please see the Mandrill content pack for Power
BI help page.
August 4, 2015
Power BI now offers Circuit ID users the ability to track and monitor all their Circuit ID cloud
communications services, empowering them to make the right business decisions. For additional
details on how to get started, please see the Circuit ID content pack for Power BI help page.
Today we’ve released an enhancement to the Share Dashboard feature to make it even easier to use. If
your organization uses Office 365 for email, you can now share to an email distribution group just the
same way you would send an email in Outlook. Just enter the address of the distribution group and
click Share. All members of the distribution group will receive an email invitation to view the
dashboard.
July 28, 2015
We’re excited to announce that this week’s update to Power BI now offers database performance
tracking with the SQL Sentry content pack. This content pack includes a dashboard and reports that
help you monitor the SQL Server deployments you track using the SQL Sentry Cloud. For additional
details on how to get started, please see the SQL Sentry content pack for Power BI help page.
July 24, 2015
We're excited to announce our "general availability" (GA) release of Power BI. Sign up today for Power
BI Pro. As part of the GA release, we are offering some great new features:
A new visualization and report creation experience: The new reporting canvas has a larger selection of
visualizations, more control over formatting of titles, legends, axes, colors, backgrounds, and more.
Power BI groups: groups offer a powerful collaborative experience built on Office 365 groups.
Organizational content packs: Power BI makes creating dashboards and reports extremely simple, and
now users can publish this content to the organizational content gallery.
Bring in whole Excel files: You can bring any Excel workbook stored on OneDrive for Business into
Power BI and view the entire workbook, exactly as you would in Excel Online.
Bring in CSV files: Just like Excel or Power BI Desktop file, a comma-separated values text (CSV ) file
can also be a dataset for your Power BI dashboards and reports.
Replace Excel, Power BI Desktop, and CSV files: you can upload an updated version of a file to Power
BI and it will replace the existing dataset. All the reports and dashboards that are connected to this
dataset now automatically use the new version.
We’re excited to announce that this week’s update to Power BI now offers work item tracking in the
Visual Studio Online content pack. This update includes a new dashboard, report and an updated data
set offering insights on your work items in addition to important metrics about your Git repository,
pull requests, and version control content included in the initial version. For additional details on how
to get started, please see the Visual Studio Online content pack for Power BI help page.
July 14, 2015
Acumatica Cloud ERP delivers a suite of fully integrated business management applications such as
Financials, Distribution, CRM and Project Accounting, powered by a robust and flexible platform. With
the Power BI Acumatica content pack, you can quickly connect and immediately gain insights into
your opportunity data. This content includes an out-of-box dashboard, a set of reports and a curated
dataset to explore and provide details such as your total won opportunities by date. Read more here.
Azure HDInsight now offers a fully managed Spark service. This capability allows for scenarios such
as iterative machine learning and interactive data analysis. Power BI allows you to directly connect to
the data in Spark on HDInsight offering simple and live exploration. Read our help doc for more
information.
Office 365 navigation and application launcher integration. With a single click, you can now navigate
to all of your Office 365 applications.
Specifying a custom URL that users navigate to when they click a tile. You now have the ability to
control exactly where users go: a specific report, another dashboard, an SSRS report, or an external
website.
Visibility and management of the storage you are consuming in Power BI
Configuring the visual and fields displayed in Q&A
July 7, 2015
One of the most awaited and requested feature is now available in Power BI. Starting today, in Power
BI you can refresh datasets connecting to your on-premises sources such as SQL Server. You can
refresh a dataset that has been created from a Power BI Designer file or an Excel workbook with data
imported into the workbook using Power Query or Power Pivot.
June 30, 2015
We released a new Power BI UserVoice content pack that can help you monitor and visualize your
UserVoice data and immediately gain insights into it with the ready-to-use dashboard and report.
June 23, 2015
Power BI Desktop files can be refreshed (scheduled refresh & refresh now ) when uploaded to the
Power BI service.
We are releasing the biggest visual change to Power BI since December: a cleaner and simpler
experience to Get Data. When you click on Get Data, you are now presented a single screen with a set
of categories to choose from. This will make it even easier to find the content that matters to you.
Azure SQL Data Warehouse offers elastic scale and massive parallel processing. With the limited
public preview announced today, Power BI allows you to directly connect to the data stored in your
Azure SQL Data Warehouse offering simple and dynamic exploration. After creating a connection to
your data warehouse, queries are generated in real time and sent back to the source as you explore
the data. This removes the need to create and upload a custom data model and offers interactive
exploration of your data.
June 16, 2015
SweetIQ lets you to easily track your local listings by providing location and review data from your
local search ecosystem. Power BI allows you to analyze and monitor that data, by offering out of box
content built from your SweetIQ data. For additional details on how to get started, please see the
SweetIQ content pack for Power BI help page.
June 9, 2015
Power BI allows you to monitor and explore that data using the MailChimp APIs, offering a set of out-
of-box content for your analytics. The dashboard, reports and dataset curated for the MailChimp
scenario allow you to easily access data such as Top Campaigns of Total Opens by Day of Week. For
additional details on how to get started, please see the MailChimp content pack for Power BI
documentation.
June 2, 2015
Now tracking important statistics about your apps is easy with Power BI and the appFigures content
pack. For additional details on how to connect and get started, see the documentation for appFigures
content pack for Power BI.
May 28, 2015
Get quick insights into your QuickBooks Online account data using our content pack. For additional
details on how to connect and get started, see the QuickBooks Online content pack for Power BI
documentation.
May 13, 2015
With the latest update to Power BI, you can connect to the data logged by SQL Database Auditing
with a set of out of box reports and a customized dashboard. This content pack makes it easy to find
suspicious events, unusual activity, and trends, based on a dataset that has been created for your
reporting. Learn more in the blog post and documentation.
You can connect directly to data stored in your Azure SQL Database. We dynamically generate and
send down queries to the source, allowing you to create interactive reports directly over your
database. You can read the blog post and documentation for more information.
May 7, 2015
We updated our look to a new modern design, a look that is fresh and distinctive while keeping your
focus on what matters: your data and your insights.
April 28, 2015
Power BI is now available in 44 languages. Read our blog post to see the full list.
April 23, 2015
You can now visualize and explore your Microsoft Dynamics Marketing data with our new content
pack! You can read our blog post for more information.
April 15, 2015
You can now visualize and explore your Google Analytics data with our new content pack! With the
Google Analytics content pack you will get a dashboard, report and dataset that allow you to gain
insights into the usage of your site in the last 6 months. You can read our blog post and
documentation for more information.
You can now pin all cards expect those containing KPIs and Images from Q&A and reports
You can now use cards in Q&A by using the phrase 'as card' at the end of your query
March 31, 2015
GitHub dashboards have new visuals that focus on community building, improved calculations, and
improved layout
SendGrid dashboards have new visuals and a new layout to help you find better insights
You can now use treemaps in Q&A by using the phrase 'as treemap' at the end of your query
You can now pin treemaps from Q&A and reports
Lots of bug fixes!
February 25, 2015
Bug fixes and improvements to user experience and reliability.
January 26, 2015
Service usability and reliability has been improved through various bug fixes.
2014
December 11, 2014
Reliability of refresh with OneDrive has been improved. Some situations where workbooks were not
refreshing from OneDrive have been resolved.
Next steps
What is Power BI?
More questions? Try asking the Power BI Community
Basic concepts for designers in the Power BI service
2/8/2019 • 12 minutes to read • Edit Online
The aim of this article is to orient you to the Power BI service: what the different elements are, how they work
together, and how you can work with them. You may get more out of it if you've already signed up for the Power
BI service and added some data. As a designer, your typical workflow is usually to start by creating reports in
Power BI Desktop. Then you publish them to the Power BI service, where you can continue modifying them. You
also create the dashboards based on your reports in the Power BI service.
For this article, if you don't have your own reports yet try installing a Power BI sample content pack.
When you open the Power BI service in a browser, you start at your Home screen. Here are the elements you may
see:
1. Navigation pane (left nav)
2. Office 365 app launcher
3. Power BI home button
4. Icon buttons, including settings, help, and feedback
5. Search box
6. Tiles from a favorite dashboard
7. Favorite and frequent dashboards and reports
Your end users for your reports and dashboards have the same start experience in the Power BI service in a
browser.
We'll dig into these features later, but first let's review some Power BI concepts. Or you might want to watch this
video first. In the video, Will reviews the basic concepts and gives a tour of the Power BI service.
https://www.youtube.com/embed/B2vd4MQrz4M
Power BI concepts
The 4 major building blocks of Power BI are: dashboards, reports, workbooks, and datasets. And they're all
organized into workspaces. It's important to understand workspaces before we dig into the four building blocks,
so let's start there.
Workspaces
Workspaces are containers for dashboards, reports, workbooks, and datasets in Power BI. There are two types of
workspaces: My workspace and app workspaces. So what is an app? A Power BI app is a collection of dashboards
and reports built to deliver key metrics to the Power BI end users for your organization. Apps are interactive but
end users can't edit them.
My workspace is the personal workspace for any Power BI customer to work with your own content. Only you
have access to your My workspace. You can share dashboards and reports from your My Workspace. If you
want to collaborate on dashboards and reports, or create an app, then you want to work in an app workspace.
App workspaces are used to collaborate and share content with colleagues. They are also the places where you
create, publish, and manage apps for your organization. Think of them as staging areas and containers for the
content that will make up a Power BI app. You can add colleagues to your app workspaces and collaborate on
dashboards, reports, workbooks, and datasets. All app workspace members need Power BI Pro licenses, but
app consumers (the colleagues who have access to the apps) don't necessarily need Pro licenses.
To learn more, start with Ways to share dashboards your work.
Now, on to the Power BI building blocks. You can't have dashboards or reports without data (well, you can have
empty dashboards and empty reports, but they're not useful until they have data), so let's start with datasets.
Datasets
A dataset is a collection of data that you import or connect to. Power BI lets you connect to and import all sorts of
datasets and bring all of it together in one place.
Datasets are associated with workspaces and a single dataset can be part of many workspaces. When you open a
workspace, the associated datasets are listed under the Datasets tab. Each listed dataset represents a single
source of data, for example, an Excel workbook on OneDrive, or an on-premises SSAS tabular dataset, or a
Salesforce dataset. There are many different data sources supported, and we’re adding new ones all the time. See
the list of dataset types that can be used with Power BI.
In the example below, I've selected the "Sales and marketing" app workspace and clicked the tab for Datasets.
ONE dataset...
can be used over and over in one or in many workspaces.
can be used in many different reports.
Visualizations from that one dataset can display on many different dashboards.
To connect to or import a dataset, select Get Data at the bottom of the left navigation. Follow the instructions to
connect to or import the specific source and add the dataset to the active workspace. New datasets are marked
with a yellow asterisk. The work you do in Power BI doesn't change the underlying dataset.
If you're part of an app workspace, datasets added by one workspace member are available to the other
workspace members.
Datasets can be refreshed, renamed, explored, and removed. Use a dataset to create a report from scratch or by
running quick insights. To see which reports and dashboards are already using a dataset, select View related. To
explore a dataset, select it. What you're actually doing is opening the dataset in the report editor where you can
really start digging into the data and creating visualizations. So, let's move on to the next topic -- reports.
Dig deeper
What is Power BI Premium?
Get data for Power BI
Sample datasets for Power BI
Reports
A Power BI report is one or more pages of visualizations such as line charts, maps, and treemaps. Visualizations
are also called visuals. All of the visualizations in a report come from a single dataset. Reports can be created
from scratch within Power BI, can be imported with dashboards that colleagues share with you, or can be created
when you connect to datasets from Excel, Power BI Desktop, databases, SaaS applications, and apps. For example,
when you connect to an Excel workbook that contains Power View sheets, Power BI creates a report based on
those sheets. And when you connect to an SaaS application, Power BI imports a pre-built report.
There are two modes to view and interact with reports: Reading view and Editing view. Only the person who
created the report, coowners, and those granted permissions, have access to all of the exploring, designing,
building, and sharing capabilities of Editing View for that report. The people they share the report with can
explore and interact with the report in Reading View.
When you open a workspace, the associated reports are listed under the Reports tab. Each listed report
represents one or more pages of visualizations based on only one of the underlying datasets. To open a report,
select it.
When you open an app, you'll be presented with a dashboard. To access an underlying report, select a dashboard
tile (more on tiles later) that was pinned from a report. Keep in mind that not all tiles are pinned from reports, so
you may have to click a few tiles to find a report.
By default, the report opens in Reading view. Just select Edit report to open it in Editing view (if you have the
necessary permissions).
In the example below, I've selected the "Sales and marketing" app workspace and clicked the tab for Reports.
ONE report...
is contained in a single workspace.
can be associated with multiple dashboards within that workspace (tiles pinned from that one report can
appear on multiple dashboards).
can be created using data from one dataset. (the slight exception to this is that Power BI Desktop can
combine more than one dataset into a single report and that report can be imported into Power BI).
Dig deeper
Reports in Power BI service and Power BI Desktop
Reports in Power BI mobile apps
Dashboards
A dashboard is something you create in the Power BI service or something a colleague creates in the Power
BI service and shares with you. It is a single canvas that contains zero or more tiles and widgets. Each tile pinned
from a report or from Q&A displays a single visualization that was created from a dataset and pinned to the
dashboard. Entire report pages can also be pinned to a dashboard as a single tile. There are many ways to add
tiles to your dashboard; too many to be covered in this overview topic. To learn more, see Dashboard tiles in
Power BI.
Why do people create dashboards? Here are just some of the reasons:
to see, in one glance, all the information needed to make decisions.
to monitor the most-important information about your business.
to ensure all colleagues are on the same page, viewing and using the same information.
to monitor the health of a business or product or business unit or marketing campaign, etc.
to create a personalized view of a larger dashboard -- all the metrics that matter to you.
When you open a workspace, the associated dashboards are listed under the Dashboards tab. To open a
dashboard, select it. When you open an app, you'll be presented with a dashboard. Each dashboard represents a
customized view of some subset of the underlying dataset(s). If you own the dashboard, you'll also have edit
access to the underlying dataset(s) and reports. If the dashboard was shared with you, you'll be able to interact
with the dashboard and any underlying reports, but will not be able to save any changes.
There are many different ways that you, or a colleague, can share a dashboard. Power BI Pro is required for
sharing a dashboard and may be required for viewing a shared dashboard.
ONE dashboard...
is associated with a single workspace
can display visualizations from many different datasets
can display visualizations from many different reports
can display visualizations pinned from other tools (for example, Excel)
Dig deeper
Create a new blank dashboard and then get some data .
Duplicate a dashboard
Create a phone view of a dashboard
Workbooks
Workbooks are a special type of dataset. If you've read the Datasets section above, you know almost all you need
to know about workbooks. But you may be wondering why sometimes Power BI classifies an Excel workbook as a
Dataset and other times as a Workbook.
When you use Get data with Excel files, you have the option to Import or Connect to the file. When you choose
Connect, your workbook will appear in Power BI just like it would in Excel Online. But, unlike Excel Online, you’ll
have some great features to help you pin elements from your worksheets right to your dashboards.
You can’t edit your workbook in Power BI. But if you need to make some changes, you can click Edit, and then
choose to edit your workbook in Excel Online or open it in Excel on your computer. Any changes you make are
saved to the workbook on OneDrive.
Dig deeper
Get data from Excel workbook files
Publish to Power BI from Excel
A dashboard in My Workspace
We've covered workspaces and building blocks. Let's bring it together and review the pieces that make up the
dashboard experience in the Power BI service.
Select Get Data to add datasets, reports, and dashboards to Power BI.
As soon as you start to type your question, Q&A takes you to the Q&A page. As you type, Q&A helps you ask the
right question and find the best answer with rephrasings, autofill, suggestions, and more. When you have a
visualization (answer) you like, pin it to your dashboard. For more information, see Q&A in Power BI.
4. Icon buttons
The icons in the upper right corner are your resource for settings, notifications, downloads, getting help, and
providing feedback to the Power BI team. Select the double arrow to open the dashboard in Full screen mode.
7. Power BI home
Selecting Power BI brings you back to your Power BI home.
Next steps
What is Power BI?
Power BI videos
Report editor - take a tour
More questions? Try asking the Power BI Community
Data sources for the Power BI service
1/24/2019 • 9 minutes to read • Edit Online
Data is at the heart of Power BI. Whenever you're exploring data, creating charts and dashboards, asking
questions with Q&A, all of those visualizations and answers you see are really getting their underlying
data from a dataset. But where does that dataset come from? Well, from a data source.
In this article, we're going to go over the different types of data sources you can connect to from the
Power BI service. Keep in-mind, there are many other types of data sources you can get data from, too.
But those sources might require first using Power BI Desktop or Excel's advanced data query and
modeling features. We'll go into more about that later. For now, let's look at the different types of data
sources you can connect to right from your Power BI service site.
You can get data from any of these data sources in Power BI by clicking My Workspace > Get Data.
Files
Excel (.xlsx, .xlsm) - Excel is unique in that a workbook can have both data you've entered into worksheets
yourself, and you can query and load data from external data sources by using Power Query (Get &
Transform in Excel 2016) or Power Pivot. You can import data that is in tables in worksheets (the data
must be in a table), or import data that is loaded into a data model. To learn more, see Get data from Excel.
Power BI Desktop (.pbix) - You can use Power BI Desktop to query and load data from external data
sources, extend your data model with measures and relationships, and create reports. You can import
your Power BI Desktop file into your Power BI site. Power BI Desktop is best for more advanced users
who have a good understanding of their data sources, data query and transformation, and data modeling
concepts. To learn more, see Connect to data in Power BI Desktop.
Comma-Separated Value (.csv) - Files are simple text files with rows of data. Each row can contain one
or more values, each separated by a comma. For example, a .csv containing name and address data can
have a number of rows where each row has values for first name, last name, street address, city, state, and
so on. You cannot import data into a .csv file, but many applications, like Excel, can save simple table data
as a .csv file.
For other file types like XML Table (.xml) or text (.txt) files, you can use Get & Transform to query,
transform, and load that data into an Excel or Power BI Desktop file first. You can then import the Excel or
Power BI Desktop file into Power BI.
Where you store your files makes a significant difference, too. OneDrive for Business provides the
greatest amount of flexibility and integration with Power BI. If you keep your files on your local drive,
that's ok, but if you need to refresh your data, a few extra steps are involved. More details are provided in
the linked articles.
Content packs
Content packs contain all of the data and reports you need already prepared for you. In Power BI, there
are two types of content packs; those from services like Google Analytics, Marketo, or Salesforce, and
those created and shared by other users in your organization.
Services - There are literally dozens of services with content packs for Power BI, and more are being
added all the time. Most services require you to have an account. To learn more, see Connect to services.
Organizational - If you and other users in your organization have a Power BI Pro account, you can
create, share, and use content packs. To learn more, see Organizational content packs.
Databases
Databases in the Cloud - From the Power BI service, you can connect live to Azure SQL Database,
Azure SQL Data Warehouse, Spark on Azure HD Insight, and SQL Server Analysis Services using
DirectQuery. Connections from Power BI to these databases are live, that is, when you've connected to
say an Azure SQL Database, and you begin exploring its data by creating reports in Power BI, anytime
you slice your data or add another field to a visualization, a query is made right to the database. To learn
more, see Azure and Power BI.
Databases on-premises - From the Power BI service, you can connect directly to SQL Server Analysis
Services Tabular model databases. A Power BI Enterprise gateway is required. If you're unsure how to
connect to your organization's tabular model database, check with your administrator or IT department.
To learn more, see SQL Server Analysis Tabular data in Power BI.
For other types of databases in your organization, you'll need to first use Power BI Desktop or Excel to
connect to, query, and load data into a data model. You can then import your file into Power BI where a
dataset is created. If you configure scheduled refresh, Power BI will use connection information from the
file along with refresh settings you configure to connect directly to the datasource and query for updates.
Those updates are then loaded into the dataset in Power BI. To learn more, see Connect to data in Power
BI Desktop.
The report editor in the Power BI service and the report editor in Power BI Desktop are similar. Typically you start
by creating reports in Power BI Desktop. Then you publish them to the Power BI service, where you can continue
modifying them. The Power BI service is also where you create the dashboards based on your reports.
After you create your dashboards and reports, you distribute them to your report consumers. Depending on how
you share them, your end users may be able to interact with them in Reading view in the Power BI service, but
not edit them. Read more about what report consumers can do in the Power BI service.
This video shows the report editor in Power BI Desktop. This article shows the report editor in the Power BI
service.
https://www.youtube.com/embed/IkJda4O7oGs
In the Power BI service, the report editor is only available in Editing View. To open a report in Editing view, you
must be a report owner or creator, or be a contributor to the app workspace that houses the report.
The Power BI report editor has three sections:
1. Fields, Visualizations, and Filters panes
2. top navigation bars
3. report canvas
Here is where you select a visualization type. The small pictures are called templates. In the image above, the
Clustered bar chart is selected. If you don't select a visualization type first, but instead start building a
visualization by selecting fields, Power BI will pick the visualization type for you. You can keep Power BI's
selection, or change the type by selecting a different template. Switch as many times as you need to find the
visualization type that best represents your data.
Manage the fields in your visual
The buckets (sometimes called wells) shown in this pane vary depending on what type of visualization you have
selected. For example, if you've selected a bar chart, you'll see buckets for: Values, Axis, and Legend. When you
select a field, or drag it onto the canvas, Power BI adds that field to one of the buckets. You can also drag fields
from the Fields list directly into the buckets. Some buckets are limited to certain types of data. For example,
Values won't accept non-numeric fields. So if you drag an employeename field into the Values bucket, Power
BI changes it to count of employeename.
Remove a field
To remove a field from the visualization, select the X to the right of the field name.
With the Analytics pane in the Power BI service, you can add dynamic reference lines to visualizations, and
provide focus for important trends or insights. To learn more, see Analytics pane in the Power BI service or
Analytics pane in Power BI Desktop.
NOTE: If you're using Power BI Desktop, you'll also have options to show/hide fields, add calculations etc.
What do the field icons mean?
∑ Aggregates An aggregate is a numeric value that will be summed or averaged, for example. Aggregates are
imported with the data (defined in the data model your report is based on). For more information, see
Aggregates in Power BI reports.
Geography fields
Location fields can be used to create map visualizations.
Hierarchy
Select the arrow to reveal the fields that make up the hierarchy.
Next steps
Create a report
More about reports in the Power BI service, Power BI Desktop, and Power BI mobile apps.
Basic concepts for Power BI designers
More questions? Try the Power BI Community
Organize work in the new workspaces (preview) in
Power BI
1/14/2019 • 6 minutes to read • Edit Online
Workspaces are places to collaborate with colleagues to create collections of dashboards and reports. Then you
can bundle those collections into apps and distribute them to your whole organization or to specific people or
groups. Power BI is introducing a new workspace experience as a preview.
Known issues
Because this feature is a preview, there are some limitations that you should be aware of. The following issues are
known, and fixes are under development:
Free users or user groups added as recipients of subscriptions to emails may not receive the emails, though
they should. The issue occurs when one of the new workspaces is in a Premium capacity, but the My Workspace
of the user creating the subscription isn't in a Premium capacity. If the My Workspace is in a Premium capacity,
then free users and user groups will receive the emails.
After a workspace is moved from a Premium capacity to shared capacity, in some cases, free users and user
groups will continue to receive emails, though they shouldn't. The issue occurs when the My Workspace of the
user creating the subscription is in a Premium capacity.
Next steps
Create the new workspaces (preview ) in Power BI
Create the current workspaces
Install and use apps in Power BI
Questions? Try asking the Power BI Community
Ways to share your work in Power BI
1/14/2019 • 6 minutes to read • Edit Online
You've created dashboards and reports. Maybe you collaborated on them with your coworkers, too. Now you
want others to have access to them. What's the best way to distribute them?
In this article, we compare these options for collaborating and sharing in Power BI:
Collaborating with coworkers to create meaningful reports and dashboards in workspaces.
Bundling those dashboards and reports into apps and publishing them to a larger group or your whole
organization.
Sharing dashboards or reports with a few people, from the service or the Power BI mobile apps.
Printing reports.
Embed reports in secure portals or public websites.
No matter which option you choose, to share a dashboard you need a Power BI Pro license, or the content needs
to be in a Premium capacity. License requirements vary for the colleagues who view your dashboards, depending
on the option you choose. The following sections spell out details.
Apps are easy to find and install in the Power BI service ( https://powerbi.com). You can send your business users
a direct link to the app, or they can search for it in AppSource. If your Power BI administrator gives you
permissions, you can install an app automatically in your coworkers' Power BI accounts. Read more about
publishing your apps.
After they install an app, they can view it in their browser or mobile device.
For your users to view your app, either they need to have a Power BI Pro license, too, or the app needs to be
stored in a Power BI Premium capacity. Read What is Power BI Premium? for details.
You can publish apps to those outside your organization, too. They can view and interact with the app content, but
can’t share it with others.
You need a Power BI Pro license to share your content, and those you share it with do too, or the content needs to
be in a workspace in a Premium capacity. When you share a dashboard or report, recipients can view it and
interact with it, but can't edit it. They see the same data that you see in the dashboard and reports unless row -
level security (RLS ) is applied to the underlying dataset. The coworkers you share it with can share with their
coworkers, if you allow them to.
You can share with people outside your organization, too. They can view and interact with the dashboard or
report too, but can't share it.
More about sharing dashboards and reports from the Power BI service. You can also add a filter to a link and
share a filtered view of your report.
WARNING
Use Publish to web only to share content publicly, not for internal sharing.
Next steps
Share dashboards with coworkers and others
Create and publish an app in Power BI
Embed report in a secure portal or website
Have feedback? Go to the Power BI Community site with your suggestions.
More questions? Try the Power BI Community
Data refresh in Power BI
2/26/2019 • 17 minutes to read • Edit Online
Making sure you’re always getting the latest data is often critical in making the right decisions. You’ve probably
already used Get Data in Power BI to connect to and upload some data, created some reports and a dashboard.
Now, you want to make sure your data really is the latest and greatest.
In many cases, you don’t need to do anything at all. Some data, like from a Salesforce or Marketo content pack is
automatically refreshed for you. If your connection makes use of a live connection or DirectQuery, the data will
be update to date. But, in other cases, like with an Excel workbook or Power BI Desktop file that connects to an
external online or on-premises data source, you’ll need to refresh manually or setup a refresh schedule so Power
BI can refresh the data in your reports and dashboards for you.
This article, along with a few others, are meant to help you understand how data refresh in Power BI really
works, whether or not you need to setup a refresh schedule, and what needs to be in-place to refresh your data
successfully.
A dataset can get data from one or more data sources. For example, you can use Power BI Desktop to get data
from a SQL Database in your organization, and get other data from an OData feed online. Then, when you
publish the file to Power BI, a single dataset is created, but it will have data sources for both the SQL Database
and the OData feed.
A dataset contains information about the data sources, data source credentials, and in most cases, a sub-set of
data copied from the data source. When you create visualizations in reports and dashboards, you’re looking at
data in the dataset, or in the case of a live connection like Azure SQL Database, the dataset defines the data you
see right from the data source. For a live connection to Analysis Services, the dataset definition comes from
Analysis Services directly.
When you refresh data, you are updating the data in the dataset that is stored in Power BI from your data
source. This refresh is a full refresh and not incremental.
Whenever you refresh data in a dataset, whether by using Refresh Now or by setting up a refresh schedule,
Power BI uses information in the dataset to connect to the data sources defined for it, query for updated data,
and then loads the updated data into the dataset. Any visualizations in your reports or dashboards based on the
data are updated automatically.
Before we go any further, there’s something else that's very important to understand:
Regardless of how often you refresh the dataset, or how often you look at live data, it is the data at the data
source that must be up -to -date first.
Most organizations process their data once a day, usually in the evening. If you schedule refresh for a dataset
created from a Power BI Desktop file that connects to an on-premises database, and your IT department runs
processing on that SQL database once in the evening, then you only need to setup scheduled refresh to run
once-a-day. For example, after processing on the database happens, but before you come into work. Of course,
this isn’t always the case. Power BI provides many ways to connect to data sources that are updated frequently
or even real-time.
Types of refresh
There are four main types of refresh that happen within Power BI. Package refresh, model/data refresh, tile
refresh and visual container refresh.
Package refresh
This synchronizes your Power BI Desktop, or Excel, file between the Power BI service and OneDrive, or
SharePoint Online. This does not pull data from the original data source. The dataset in Power BI will only be
updated with what is in the file within OneDrive, or SharePoint Online.
Model/data refresh
This is referring to refreshing the dataset, within the Power BI service, with data from the original data source.
This is done by either using scheduled refresh, or refresh now. This requires a gateway for on-premises data
sources.
Tile refresh
Tile refresh updates the cache for tile visuals, on the dashboard, once data changes. This happens about every
fifteen minutes. You can also force a tile refresh by selecting the ellipsis (...) in the upper right of a dashboard
and selecting Refresh dashboard tiles.
For details around common tile refresh errors, see Troubleshooting tile errors.
Visual container refresh
Refreshing the visual container updates the cached report visuals, within a report, once the data changes.
NOTE
When you configure a time for scheduled refresh, there can be a delay of up to one hour before it begins.
Live/DirectQuery – This means there is a live connection between Power BI and the data source. For on-
premises data sources, Admins will need to have a data source configured within an enterprise gateway, but user
interaction may not be needed.
NOTE
To enhance performance, dashboards with data connected using DirectQuery are automatically updated. You can also
manually refresh a tile at any time, by using the More menu on the tile.
NOTE
If you are using the Web.Page function, you do need a gateway if you have republished the dataset or your report after
November 18th, 2016.
For details, see Refresh a dataset created from a Power BI Desktop file on OneDrive.
Excel workbook
USER CONFIGURED MANUAL
DATA SOURCE AUTOMATIC REFRESH OR SCHEDULED REFRESH GATEWAY REQUIRED
For more detailed information, see Refresh a dataset created from a comma separated value (.csv) file on
OneDrive.
Content packs
There are two types of content packs in Power BI:
Content packs from online services: like Adobe Analytics, SalesForce, and Dynamics CRM Online. Datasets
created from online services are refreshed automatically once a day. While it’s probably not necessary, you can
manually refresh or setup a refresh schedule. Because online services are in the cloud, a gateway is not required.
Organizational content packs: created and shared by users in your own organization. Content pack
consumers cannot setup a refresh schedule or manually refresh. Only the content pack creator can setup refresh
for the datasets in the content pack. Refresh settings are inherited with the dataset.
Content packs from online services
USER CONFIGURED MANUAL
DATA SOURCE AUTOMATIC REFRESH OR SCHEDULED REFRESH GATEWAY REQUIRED
NOTE
If your dataset is configured for a live or DirectQuery connection, datasets are refreshed approximately each hour or when
interaction with the data occurs. You can manually adjust the refresh frequency in the Scheduled cache refresh option in
the Power BI service.
The Settings page appears, where you can select the dataset for which you want to adjust the frequency. On that
page, select the Datasets tab along the top.
Select the dataset, and in the right pane you'll see a collection of options for that dataset. For the
DirectQuery/Live connection, you can set the refresh frequency from 15 minutes to weekly using the associated
drop-down menu, as shown in the following image.
USER CONFIGURED MANUAL
DATA SOURCE LIVE/DIRECTQUERY OR SCHEDULED REFRESH GATEWAY REQUIRED
Real-time dashboards
Real-time dashboards use the Microsoft Power BI REST API, or Microsoft Stream Analytics, to make sure the
data is up-to-date. Since real time dashboards do not require users to configure refresh, they are outside the
scope of this article.
NOTE
This will only update the data within the dataset in the Power BI service. Your local file will not be updated as part of the
refresh.
To learn more, see Excel data in Power BI, Power BI Gateway - Personal, On-premises data gateway, Refresh a
dataset created from an Excel workbook on a local drive.
Power BI Desktop file with data from an OData feed
In this case, you use Get Data in Power BI Desktop to connect to and import census data from an OData feed.
You create several reports in Power BI Desktop, then name the file WACensus and save it on a share in your
company. You then publish the file to the Power BI service.
In this case, you can manually refresh the data in the WACensus dataset or setup a refresh schedule. Because the
data in the data source comes from an OData feed online, you do not need to install a gateway, but you will need
to go into the WACensus dataset’s settings and sign in to the OData data source. You can then setup a refresh
schedule so Power BI automatically connects to the OData feed and gets updated data. Your reports and
dashboards will also be updated automatically.
To learn more, see Publish from Power BI Desktop, Refresh a dataset created from a Power BI Desktop file on a
local drive, Refresh a dataset created from a Power BI Desktop file on OneDrive.
Shared content pack from another user in your organization
You’ve connected to an organizational content pack. It includes a dashboard, several reports, and a dataset.
In this scenario, you cannot setup refresh for the dataset. The data analyst who created the content pack is
responsible for making sure the dataset is refreshed, depending on the data sources used.
If your dashboards and reports from the content pack aren’t updating, you’ll want to talk to the data analyst who
created the content pack.
To learn more, see Introduction to organizational content packs, Work with organizational content packs.
Content pack from an online service provider like Salesforce
In Power BI you used Get Data to connect to and import your data from an online service provider like
Salesforce. Well, not much to do here. Your Salesforce data set is automatically scheduled to refresh once a day.
Like most online service providers, Salesforce updates data once a day, usually at night. You can manually
refresh your Salesforce dataset, or setup a refresh schedule, but it’s not necessary because Power BI will
automatically refresh the dataset and your reports and dashboards will be updated too.
To learn more, see Salesforce content pack for Power BI.
Troubleshooting
When things go wrong, it’s usually because Power BI can’t sign into data sources, or the dataset connects to an
on-premises data source and the gateway is offline. Make sure Power BI can sign into data sources. If a
password you use to sign into a data source changes, or Power BI gets signed out from a data source, be sure to
try signing into your data sources again in Data Source Credentials.
For more information about troubleshooting, see Tools for troubleshooting refresh issues and Troubleshooting
refresh scenarios.
Next steps
Tools for troubleshooting refresh issues
Troubleshooting refresh scenarios
Power BI Gateway - Personal
On-premises data gateway
More questions? Try asking the Power BI Community
Monitor usage metrics for Power BI dashboards and
reports
3/18/2019 • 11 minutes to read • Edit Online
If you create dashboards and reports, usage metrics help you understand their impact. When you run either
dashboard usage metrics or report usage metrics, you discover how those dashboards and reports are being used
throughout your organization; what is being used, by whom, and for what purpose.
NOTE
Usage metrics track usage of reports that are embedded in SharePoint Online. However, usage metrics don't track embedding
of dashboards and reports via the “user owns credentials” or “app owns credentials” flow. Usage metrics also don't track
usage of reports embedding via publish to web.
These usage metrics reports are read-only. However, you can personalize a usage metrics report by using "Save
as." This creates a brand new dataset and converts the read-only report to a full-featured Power BI report that you
can edit. Not only does the personalized report contain metrics for the selected dashboard or report, but by
removing the default filter, you now have access to usage metrics for all dashboards or all reports in the selected
workspace. And you can even see the names of your end users.
3. The first time you do this, Power BI creates the usage metrics report and lets you know when it's ready.
4. To open the results, select View usage metrics.
Usage metrics are a powerful ally as you work to deploy and maintain Power BI dashboards and reports.
Wondering which pages of your report are most useful, and which ones you should phase out? Slice by
Report page to find out. Wondering if you should build a mobile layout for your dashboard? Slice by
Platforms to discover how many users are accessing your content via the mobile apps vs. via web browser.
5. Optionally, hover over a visualization and select the pin icon to add the visualization to a dashboard. Or,
from the top menubar, select Pin Live Page to add the entire page to a dashboard. From the dashboard you
can monitor the usage metrics more-easily or share them with others.
NOTE
If you pin a tile from a usage metrics report to a dashboard, that dashboard cannot be added to an app or content
pack.
Distribution method slicer yes yes How users got access to the
content. There are 3 possible
methods: users can access
the dashboard or report by
being members of an app
workspace, by having the
content shared with them, or
by installing a content
pack/app. Note that views
through an app are counted
as "content pack."
Use Save as to convert the usage metrics report to a full-featured Power BI report that can be customized and
shared. Once you’ve created a personalized copy, you’ll get full access to the underlying dataset, allowing you to
customize the usage metrics report to your specific needs. You can even use Power BI Desktop to build custom
usage metrics reports using the live connection to Power BI service feature.
Better yet, the underlying dataset includes the usage details for all dashboards or reports in the workspace. This
opens up yet another world of possibilities. You could, for example, create a report which compares all dashboards
in your workspace based on usage. Or, you could create a usage metrics dashboard for your Power BI app by
aggregating usage across all the content distributed within that app. See remove the Page level filter below.
What is created when using "Save as"?
When Power BI creates the full-featured report, it also creates a new dataset made up of all the dashboards or
all the reports contained in the current workspace that have been accessed in the last 90 days. For example,
say you have a workspace named "Sales" and it contains three dashboards and two reports, and you create a usage
metrics report on the "Northeast" dashboard. And then you use Save as to personalize and convert it to a full-
featured report. The dataset for that new report contains the usage metrics not only for that one dashboard named
"Northeast" but for all three dashboards in the "Sales" workspace. By default, the report displays data for the
"Northeast" dashboard and you'll need to remove a filter (single click) to display data for all three dashboards.
Create a copy of the usage report using "Save as"
When you create a copy using "Save as" (personalize), Power BI converts the read-only pre-built report to a full-
featured report. At first glance, it looks exactly the same. However, you can now open the report in Editing view,
add new visualizations, filters, and pages, modify or delete existing visualizations, and so much more. Power BI
saves the brand new report and dataset in the current workspace. In the example below, the current workspace is
mihart.
1. From the pre-built usage metrics report, select File > Save As. Power BI converts the usage metrics report
into a full-featured Power BI report. This is called a personalized usage metrics report. The personalized
usage report and dataset are saved in the current workspace which is named *mihart.
2. Open the report in Editing view and interact with it as you would with any other Power BI report. For
example, add new pages and build new visualizations, add filters, format the fonts and colors, etc.
3. Alternately, start with the new dataset and build a report from scratch.
4. The new report is saved in the current workspace (mihart) and also added to the Recent content list.
Remove the filter to see all the usage metrics data in the workspace
To see the metrics for all the dashboards or for all the reports in the workspace, you'll have to remove a filter. By
default, the personalized report is filtered to display metrics for only the dashboard or report that was used to
create it.
If, for example, you used the dashboard named "European sales" to create this new personalized report, only usage
data from the "European sales" dashboard displays. To remove the filter, and enable data from all the dashboards in
that workspace:
1. Open the personalized report in Editing view.
2. In the Filters pane, locate the Report level filters bucket and remove the filter by selecting the "x".
Now your personalized report displays metrics for the entire workspace.
Admin controls for usage metrics - for Power BI administrators
Usage metrics reports are a feature that the Power BI or Office 365 administrator can turn on or off. Administrators
have granular control over which users have access to usage metrics; they are On by default for all users in the
organization.
1. Open the Admin portal by selecting the gear icon in the top-right-corner of Power BI service and choosing
Admin portal.
2. From the Admin portal, select Tenant settings and choose Usage metrics for content creators.
By default, per-user data is enabled for usage metrics, and content creator account information is included in the
metrics report. If you don’t want to include this information for some or all users, disable the feature for specified
security groups or for an entire organization. Account information then shows in the report as Unnamed.
When disabling usage metrics for their entire organization, admins can use the delete all existing usage metrics
content option to delete all existing reports and dashboard tiles that were built using the usage metrics reports
and datasets. This option removes all access to usage metrics data for all users in the organization who may already
be using it. Be careful, because deleting existing usage metrics content is irreversible.
Next steps
Favorite a dashboard
More questions? Try the Power BI Community
Signing up for Power BI as an individual
1/14/2019 • 4 minutes to read • Edit Online
Power BI can be your personal report and visualization tool, and can also serve as the analytics and decision
engine behind group projects, divisions, or entire corporations. This article explains how to sign up for a Power
BI trial as an individual. If you're a Power BI administrator, see Power BI licensing in your organization.
If you get a message like the following, complete the steps to sign in and use Power BI.
4. Enter the code that you received then select Sign up.
7. You're then taken to https://app.powerbi.com, and you can begin using Power BI.
Trial expiration
When your Power BI pro trial expires, your license is changed to a Power BI (free) license. When this happens,
you no longer have access to features that require a Power BI Pro license. For more information, see Features
by license type.
If a Power BI (free) license is sufficient, no action is required. If you want to take advantage of Power BI Pro
features, contact your IT administrator about purchasing a Power BI Pro license.
Personal email addresses (e.g. [email protected]) You Power BI does not support email addresses provided by
receive a message like the following during signup: consumer email services or telecommunications providers.
You entered a personal email address: Please enter your To complete signup, try again using an email address
work email address so we can securely store your assigned by your work or school.
company's data.
If you still can't sign up and are willing to complete a more
or advanced setup process, you can register for a new Office
365 trial subscription and use that email address to sign up.
That looks like a personal email address. Enter your work
address so we can connect you with others in your You can also have an existing user invite you as a guest.
company. And don’t worry. We won’t share your address
with anyone.
SYMPTOM / ERROR MESSAGE CAUSE AND WORKAROUND
Self-service signup disabled You receive a message like Your organization’s IT administrator has disabled self-service
the following during signup: signup for Power BI.
We can't finish signing you up. Your IT department has To complete signup, contact your IT administrator and ask
turned off signup for Microsoft Power BI. Contact them to them to follow the instructions to enable sign-up.
complete signup.
You may also experience this problem if you signed up for
or Office 365 through a partner.
Email address is not an Office 365 ID You receive a Your organization uses IDs to sign in to Office 365 and other
message like the following during signup: Microsoft services that are different than your email address.
For example, your email address might be
We can't find you at contoso.com. Do you use a different ID [email protected] but your ID is
at work or school? [email protected].
Try signing in with that, and if it doesn't work, contact your To complete signup, use the ID that your organization has
IT department. assigned to for signing in to Office 365 or other Microsoft
services. If you don't know what this is, contact your IT
administrator.
Next steps
Purchasing Power BI Pro
Power BI Service agreement for individual users
More questions? Try asking the Power BI Community
Power BI licensing in your organization
3/22/2019 • 5 minutes to read • Edit Online
In the Power BI service, users have defined capabilities based on two types of licenses:
Per-user - Power BI Pro licensing and free licensing. A Power BI Pro license enables access to all content
and capabilities in the Power BI service, including the ability to share content and collaborate with other Pro
users. Only Pro users can publish to and consume content from app workspaces, share dashboards, and
subscribe to dashboards and reports. A free license enables access to some of the features of the Power BI
service. For more information, see Per-user license type comparison.
Capacity-based - Power BI Premium licensing. Premium provides dedicated capacity to deliver more
consistent performance and support larger data volumes in Power BI. For individual users, Premium also
enables widespread distribution of content by Pro users without requiring Pro licenses for recipients who
view the content. For more information, see What is Power BI Premium?.
This article focuses on per-user licensing from an administrator perspective.
4. Under Other Plans, hover over the ellipsis (. . .) for Power BI Pro and select Start free trial.
5. On the order confirmation screen, select Try now.
6. On the order receipt, select Continue.
Now you can assign licenses in Office 365.
2. If the block is available, you can now assign licenses in Office 365. If the block isn't available, you have two
choices:
Have a member of your organization sign up individually, which triggers the creation of the unlimited
block.
Go to the next procedure, where you can sign up for a fixed number of licenses.
If the unlimited Power BI (free) license block isn't available and you don't want to do an individual sign up, follow
this procedure.
1. Navigate to the Microsoft 365 admin center.
2. On the left navigation pane, select Billing > Subscriptions.
3. On the right side, select Add subscriptions +.
4. Under Other Plans, hover over the ellipsis (. . .) for Power BI (free) and select Buy now.
5. Enter the number of licenses you want to add and select Check out now or Add to cart.
6. Enter the required information in the check out flow.
There is no purchase when using this approach, although you will need to either enter your credit card
information for billing, or choose to be invoiced.
7. You can now assign licenses in Office 365.
8. If you decide later that you want to add more licenses, you can go back to Add subscriptions, and select
Change license quantity for Power BI (free).
$msolcred = get-credential
connect-msolservice -credential $msolcred
2. Once you are signed in, run the following command to see how your tenant is currently configured.
Get-MsolCompanyInformation | fl AllowAdHocSubscriptions
NOTE
The AllowAdHocSubscriptions flag is used to control several user capabilities in your organization, including the ability for
users to sign up for the Azure Rights Management Service. Changing this flag affects all of these capabilities.
Next steps
Self-service sign up for Power BI
Purchase and assign Power BI Pro licenses
More questions? Try asking the Power BI Community
Power BI service features by license type
1/14/2019 • 2 minutes to read • Edit Online
In the Power BI service, users have defined capabilities based on two types of licenses:
Per-user - Power BI Pro licensing and free licensing. A Power BI Pro license enables access to all content
and capabilities in the Power BI service, including the ability to share content and collaborate with other
Pro users. Only Pro users can publish to and consume content from app workspaces, share dashboards,
and subscribe to dashboards and reports. A free license enables access to some of the features of the
Power BI service. For more information, see Per-user license type comparison.
Capacity-based - Power BI Premium licensing. Premium provides dedicated capacity to deliver more
consistent performance and support larger data volumes in Power BI. For individual users, Premium also
enables widespread distribution of content by Pro users without requiring Pro licenses for recipients who
view the content. For more information, see What is Power BI Premium?.
FREE PRO
Publish to Web
Enterprise distribution
Apps
Email subscriptions
Collaboration
Peer-to-peer sharing
App workspaces
Next steps
If you are interested in learning more about Power BI Premium, see What is Power BI Premium?.
To get started with Power BI by signing up, see Signing up for Power BI as an individual.
More questions? Try asking the Power BI Community
10 tips for getting help with your Power BI questions
1/14/2019 • 3 minutes to read • Edit Online
Do you ever get frustrated using Power BI, or struggle because you can't get answers to your Power BI questions
when you need them -- i.e. "just-in-time"?
Here are 10 tips that Power BI experts (including people who work on the product at Microsoft) commonly follow
to find answers to their Power BI questions.
4 Try Twitter
Lots of Power BI customers and experts are on Twitter. Ask your question in a tweet. Add the hashtags #powerbi
and #powerbihelp so the people who know will see your tweet.
6 Attend training
The training options available to you are nearly endless, from in-person lab training to short videos.
Guided learning on the Power BI site.
Free Power BI webinars, live and on-demand, on the Power BI site.
You can find additional options online, such as:
edX.org offers a free course, Analyzing and Visualizing Data with Power BI.
Lynda.com offers has courses such as Power BI Pro Essential Training.
Look for in-person "Dashboard in a Day" training sessions.
10 Just try it
If all else fails, the final tip is to observe the system. Often, people ask what capabilities Power BI has. You can often
answer this type of question by going into the Power BI service or Power BI Desktop, looking at the options in the
user interface, and then trying to use them.
For example, say you're wondering if you can share dashboards with a security group. To answer that question, go
to the sharing dialog box and try adding a security group. Either way, you'll have your answer after this test.
Next steps
What is Power BI?
Try asking the Power BI Community
Still have an issue? Please visit the Power BI support page
Power BI Pro and Power BI Premium support options
3/26/2019 • 3 minutes to read • Edit Online
This article describes the support options that are available for customers of Power BI Pro and Power BI Premium.
* A one-hour SLA is available only through Sev A cases, which require justification of immediate, direct business
impact from work stoppage in existing production reporting.
IMPORTANT
The Extended Pro Trial is no longer available. To sign up for a free trial (if eligible), see Signing up for Power BI as an individual.
To purchase Power BI Pro, see Purchase and assign Power BI Pro licenses.
As part of the May 3, 2017 Power BI Premium announcement, Microsoft communicated changes to the free Power
BI service effective June 1,2017. These changes included extending access to all data sources, higher workspace
storage limits, and higher refresh and streaming rates, making those features equivalent to Power BI Pro.
Also announced was that sharing and collaboration features would be exclusive to Power BI Pro users, including
peer-to-peer dashboard sharing, group workspaces (now called app workspaces), export to PowerPoint, and
analyze in Excel with Power BI apps. Export to CSV/Excel and PowerPoint were identified in the May 3
communication as a capability limited to Power BI Pro. However, after receiving feedback from the broad user
community, the strategy evolved, and we made the capability available to users of the free service as well.
Beginning June 1, 2017 existing users of the Free service who were active users on or before May 2, 2017 were
eligible for a free, 12-month extended trial of Power BI Pro. The offer enabled users to take advantage of the full
capabilities of Power BI Pro for a year as a sign of appreciation to the community and to provide users with time to
adjust to the changes.
On June 1, 2017 eligible users received a notification when they signed into the service letting them know the
changes had gone into effect with a prompt to register for the Extended Power BI Pro trial offer. A user’s IT admin
dis not control the related in-product notifications, nor did the IT admin have the ability to register for the extended
Power BI Pro trial on behalf of a user. Each eligible user must have individually taken action to complete this
process.
Users could opt to register for the offer at any time during the 12-month period, but the Extended Pro trial
concluded on May 31, 2018 regardless of when users accepted the offer. At that time users had the option to
purchase Power BI Pro or be converted to the free version of Power BI, without the sharing and collaboration
capabilities, if they elected not to take action and purchase Power BI Pro.
No changes were made to Power BI Pro at the time. Power BI Pro users were not impacted and did not receive
notifications when they signed into the service on June 1, 2017 or after. Users who declined the extended Power BI
Pro trial offer or were ineligible for the offer could continue using the free version of Power BI without the sharing
and collaboration capabilities. They could register at any time for a standard 60-day Power BI Pro trial by visiting
the Power BI website.
NOTE
The Azure AD report does not indicate if a user has a free or Pro license within Power BI. It only reports which users have
signed in to Power BI and when they signed in. If a user is listed in this report, it does not necessarily mean that they are
eligible for the Extended Pro Trial.
Can admins restrict a user from activating the Extended Pro Trial?
No. Admins do not have a way to restrict users from activating the Extended Pro Trial or the in-service 60-day trial
of Power BI Pro.
Next steps
Extended Pro Trial offer terms and conditions
Power BI Service agreement for individual users
Power BI Premium announcement
Find Power BI users that have signed in
More questions? Try asking the Power BI Community
Power BI for US Government customers
3/26/2019 • 5 minutes to read • Edit Online
The Power BI service has a version available for United States Government customers as part of the Office 365
US Government Community subscriptions. The Power BI service version discussed in this article is specifically
designed for US Government customers, and is separate and different from the commercial version of the Power
BI service.
The following sections describe the features available to the US Government version of the Power BI service,
clarifies some of the limitations, lists Frequently Asked Questions (FAQ ) and answers (including how to sign up),
and provides links for more information.
https://app.powerbi.com/ https://app.powerbigov.us
Question: My account is provisioned in more than one national cloud. When using Power BI Desktop, how do I
select which cloud to connect to?
Answer: Beginning with the July 2018 release of Power BI Desktop, you can choose which cloud you want to
use when signing in to Power BI Desktop.
Next steps
There are all sorts of things you can do with Power BI. For more information and learning, including an article that
shows you how to sign up for the service, check out the following resources:
Sign up for Power BI for US Government
Power BI US Government Demo
Guided Learning for Power BI
Get started with the Power BI service
What is Power BI Desktop?
Frequently Asked Questions for Power BI for
Germany Cloud customers
1/14/2019 • 3 minutes to read • Edit Online
The Power BI service has a version available for European Union/European Free Trade Agreement (EU/EFTA)
customers, often referred to as Microsoft Cloud Deutschland (MCD ). The Power BI service version discussed in
this article is specific to EU/EFTA customers, and is separate and different from the commercial version of the
Power BI service, or Power BI services provided to government customers.
POWER BI SERVICE FOR GERMANY CLOUD EQUIVALENT URL IN PUBLIC CLOUD (FOR
ENDPOINT NAME AND/OR USAGE URL CROSS-REFERENCE)
Next steps
There are all sorts of things you can do with Power BI. For more information and learning, including an article that
shows you how to sign up for the service, check out the following resources:
Guided Learning for Power BI
Get started with the Power BI service
What is Power BI Desktop?
Microsoft Flow and Power BI
1/30/2019 • 3 minutes to read • Edit Online
Microsoft Flow is a SaaS offering for automating workflows across the growing number of applications and SaaS
services that business users rely on. With Flow you can automate tasks by integrating your favorite apps and
services (including Power BI) to get notifications, synchronize files, collect data, and more. Repetitive tasks become
easy with workflow automation.
Get started using Flow now.
Watch Sirui create a Flow that sends a detailed email to colleagues when a Power BI alert is triggered. Then follow
the step-by-step instructions below the video to try it out yourself.
https://www.youtube.com/embed/YhmNstC39Mw
4. Use the Search box to find Power BI templates and select Send an e-mail to any audience when a
Power BI data alert is triggered > Continue.
Build the flow
This template has one trigger (Power BI data alert for new Olympic medals for Ireland) and one action (send an
email). As you select a field, Flow displays dynamic content that you can include. In this example we'll included the
tile value and the tile URL in the message body.
1. From the trigger dropdown, select a Power BI data alert. Select New medal for Ireland. To learn how to
create an alert, see Data alerts in Power BI.
2. Enter one or more valid email addresses and then select Edit (shown below ) or Add dynamic content.
3. Flow creates a title and message for you which you can keep or modify. All the values you set when you
created the alert in Power BI are available for your use -- just place your cursor and select from the gray
highlighted area.
4. For example, if you created an alert title in Power BI of We won another medal, you can select Alert title
to add that text to your email Subject field.
And, you can accept the default Email body or create your own. The example above contains a few
modifications to the message.
5. When you're done, select Create flow or Save flow. The flow is created and evaluated. Flow lets you know
if it finds errors.
6. If errors are found, select Edit flow to fix them, otherwise, select Done to run the new flow.
7. When the data alert is triggered, an email will be sent to the addresses you indicated.
3. Use the Search box to find a Power BI trigger and select Power BI - when a data driven alert is
triggered.
Build your flow
1. From the dropdown, select the name of your alert. To learn how to create an alert, see Data alerts in Power
BI.
5. Select Create flow when done. Flow saves and evaluates the flow. If there are no errors, select Done to run
this flow. The new flow is added to your My flows page.
6. When the flow is triggered by your Power BI data alert, you'll receive an Outlook event notification similar
to this one.
Next steps
Get started with Microsoft Flow
Set data alerts in Power BI service
Set data alerts on your iPhone
Set data alerts in the Power BI mobile app for Windows 10
More questions? Try the Power BI Community
Get started with third party apps
1/14/2019 • 2 minutes to read • Edit Online
With Power BI, you can use an app built by a company or individual other than Microsoft. For example, you might
use a third party app which integrates Power BI tiles into a custom built web application. When you use a third
party app, you will be asked to grant that application certain permissions to your Power BI account and resources.
It is important that you only grant permissions to applications that you know and trust. Permissions to an
application can be revoked at any time. See Revoke third party app permissions.
Here are the types of access an application can request.
In Power BI, you can connect to or import data and reports from three types of files.
Microsoft Excel (.xlsx or .xlsm)
Power BI Desktop (.pbix)
Comma Separated Value (.csv)
NOTE
Data in Excel workbooks must be in a table, or in the data model, to be imported by Power BI.
Your manager wants to see a report on your latest sales figures combined with your last campaign impressions by
the end of the day. But the latest data resides on various third party systems and on files in your laptop. In the past
it’s taken hours to create visuals and format a report. You’re beginning to feel anxious.
No worries. With Power BI, you can create a stunning report in no time.
In this example, we’ll upload an Excel file from a local system, create a new report, and share it with colleagues—all
from within Power BI.
Next, format your data as a table. In Excel, on the Home tab, in the Styles group, select Format as Table. Select a
table style to apply to your worksheet. Your Excel worksheet is now ready to load into Power BI.
At the bottom of the left navigation pane, select Get Data. On the Get Data page, under Import or Connect to
Data, in the Files box, select Get.
On the Files page, select Local File. Navigate to the Excel workbook file on your computer and select it to load into
Power BI. Select Import.
NOTE: To follow along with the rest of this tutorial, use the Financial sample workbook.
Now you can begin to create visualizations. Your manager wants to see profit over time. In the Fields pane, drag
Profit to the report canvas. Power BI displays a bar chart by default. Next, drag Date to the report canvas. Power
BI updates the bar chart to show profit by date.
TIP: If your chart doesn't look like you expected, check your aggregations. For example, in the Value well, right
click the field you just added and make sure the data is being aggregated the way you'd like it to be. In this
example, we're using Sum.
Your manager wants to know which countries are the most profitable. Impress her with a map visualization. Select
a blank area on your canvas, and from the Fields pane, simply drag over the Country and then Profit fields. Power
BI creates a map visual with bubbles representing the relative profit of each location.
What about displaying a visual showing sales by product and market segment? Easy. In the Fields pane, select the
checkboxes next to the Sales, Product and Segment fields. Power BI creates a bar chart instantly. Change the type
of chart by choosing one of the icons in the Visualizations menu. For instance, change it to a Stacked Bar chart. To
sort the chart, select the ellipses (...) > Sort by.
Pin all of your visuals to your Dashboard. You’re ready to share it with your colleagues.
Share your dashboard
You want to share your dashboard with your manager, Paula. You can share your dashboard and underlying report
with any colleague who has a Power BI account. They can interact with your report, but cannot save changes.
To share your report, at the top of the dashboard, select Share.
Power BI displays the Share Dashboard page. In the top area, enter the email addresses of the recipients. Add a
message in the field below. To allow recipients to share your dashboard with others, select Allow recipients to
share your dashboard. Select Share.
Next steps
Get started with Power BI service
Get started with Power BI Desktop
Power BI - Basic Concepts
More questions? Try the Power BI Community
Get data from Excel workbook files
2/26/2019 • 8 minutes to read • Edit Online
Microsoft Excel is one of the most widely used business applications around. It’s also one of the most common
ways to get your data into Power BI.
NOTE
Workbooks with data models cannot be shared across Power BI tenants. For example, a user who logs in to Power BI
using a contoso.com account cannot share an Excel workbook with a user who logs in using a Power BI login account
from woodgrovebank.com.
Data types
Power BI supports the following data types: Whole Number, Decimal Number, Currency, Date, True/False, Text.
Marking data as specific data types in Excel will improve the Power BI experience.
4. If your workbook file is on OneDrive or SharePoint - Team Sites, choose Import or Connect.
Once the workbook is ready, you can find it in the Reports section of Power BI.
Publish from Excel 2016 to your Power BI site
Using the Publish to Power BI feature in Excel 2016 is effectively the same as using Get Data in Power BI to
import or connect to your file. We won't go into the details here, but you can see Publish to Power BI from Excel
2016 to learn more.
Troubleshooting
Workbook file too big? Check out Reduce the size of an Excel workbook to view it in Power BI.
Currently, when you choose Import, Power BI only imports data that is part of a named table or a data model.
As a result, if the workbook contains no named tables, Power View sheets, or Excel data models, you might see
this error: "We couldn't find any data in your Excel workbook". This article explains how to fix your
workbook and re-import it.
Next steps
Explore your data - Once you get data and reports from your file into Power BI, it's time to explore. Just right-
click the new dataset and then click Explore. If you chose to connect to a workbook file on OneDrive in step 4,
your workbook will appear in Reports. When you click on it, it will open in Power BI, just as it would if it were in
Excel Online.
Schedule refresh - If your Excel workbook file connects to external data sources, or you imported from a local
drive, you can setup scheduled refresh to make sure your dataset or report is always up-to-date. In most cases,
setting up scheduled refresh is quite easy to do, but going into the details is outside the scope of this article. See
Data refresh in Power BI to learn more.
Publish to Power BI from Excel 2016
Power BI publisher for Excel
Data refresh in Power BI
Get data from Power BI Desktop files
1/14/2019 • 3 minutes to read • Edit Online
Power BI Desktop makes business intelligence and reporting easy. Whether you're connecting to a many
different data sources, querying and transforming data, modeling your data, and creating powerful and dynamic
reports, Power BI Desktop makes business intelligence tasks intuitive and fast. If you're not familiar with Power
BI Desktop, check out Getting started with Power BI Desktop.
Once you bring data into Power BI Desktop and create a few reports, it’s time to get your saved file into the
Power BI service.
2. Sign in to Power BI. You'll only need to do this the first time.
When complete, you'll get a link to open your report in your Power BI site.
Next steps
Explore your data - Once you get data and reports from your file into Power BI, it's time to explore. If your file
already has reports in it, they'll appear in the navigator pane in Reports. If your file just had data, you can create
new reports; just right-click the new dataset and then click Explore.
Refresh external data sources - If your Power BI Desktop file connects to external data sources, you can setup
scheduled refresh to make sure your dataset is always up-to-date. In most cases, setting up scheduled refresh is
quite easy to do, but going into the details is outside the scope of this article. See Data refresh in Power BI to learn
more.
Edit parameter settings in the Power BI service
1/14/2019 • 2 minutes to read • Edit Online
Report creators add query parameters to reports in Power BI Desktop. Parameters allow them to make parts of
reports depend on one or more parameter values. For example, a report creator may create a parameter that
restricts the data to a single country/region, or a parameter that defines acceptable formats for fields like dates,
time, and text.
3. Expand Parameters. If the selected dataset has no parameters, you'll see a message with a link to Learn
more about query parameters. But if the dataset does have parameters, expanding the Parameters heading
will reveal those parameters.
Review the parameter settings and make changes if needed. Greyed out fields aren't editable.
Next steps
An ad-hoc way to add simple parameters is by modifying the URL.
Get data from Comma Separated Value (.CSV) files
1/14/2019 • 2 minutes to read • Edit Online
Comma separated value files, often known as a .CSV, are simple text files with rows of data where each value is
separated by a comma. These types of files can contain very large amounts of data within a relatively small file size,
making them an ideal data source for Power BI. You can download a sample .CSV file here.
If you have a .CSV, it’s time to get it into your Power BI site as a dataset where you can begin exploring your data,
create some dashboards, and share your insights with others.
TIP
Many organizations output a .CSV with updated data each day. To make sure your dataset in Power BI stays in-sync with
your updated file, be sure the file is saved to OneDrive with the same name.
Next steps
Explore your data - Once you get data from your file into Power BI, it's time to explore. Just right-click the new
dataset and then click Explore.
Schedule refresh - If your file is saved to a local drive, you can setup scheduled refresh so your dataset and
reports in Power BI stay up-to-date. To learn more, see Data refresh in Power BI. If your file is saved to OneDrive,
Power BI will automatically synchronize with it about every hour.
Real-time streaming in Power BI
1/14/2019 • 14 minutes to read • Edit Online
With Power BI real-time streaming, you can stream data and update dashboards in real-time. Any visual or
dashboard that can be created in Power BI can also be created to display and update real-time data and visuals.
The devices and sources of streaming data can be factory sensors, social media sources, service usage metrics, and
anything else from which time-sensitive data can be collected or transmitted.
This article shows you how to set up real-time streaming dataset in Power BI. But before we get to that, it's
important to understand the types of real-time datasets that are designed to display in tiles (and dashboards), and
how those datasets differ.
NOTE
When using datasets with the defaultMode flag set to pushStreaming, if a request exceeds the 15Kb size restriction for a
streaming dataset, but is less than the 16MB size restriction of a push dataset, the request will succeed and the data will be
updated in the push dataset. However, any streaming tiles will temporarily fail.
Once a dataset is created, use the REST APIs to push data using the PostRows API.
All requests to REST APIs are secured using Azure AD OAuth.
Using the Streaming Dataset UI to push data
In the Power BI service, you can create a dataset by selecting the API approach as shown in the following image.
When creating the new streaming dataset, you can select to enable Historic data analysis as shown below, which
has a significant impact.
When Historic data analysis is disabled (it is disabled by default), you create a streaming dataset as described
earlier in this article. When Historic data analysis is enabled, the dataset created becomes both a streaming
dataset and a push dataset. This is equivalent to using the Power BI REST APIs to create a dataset with its
defaultMode set to pushStreaming, as described earlier in this article.
NOTE
For streaming datasets created using the Power BI service UI, as described in the previous paragraph, Azure AD
authentication is not required. In such datasets, the dataset owner receives a URL with a rowkey, which authorizes the
requestor to push data into the dataset with out using an Azure AD OAuth bearer token. Take now, however, that the Azure
AD (AAD) approach still works to push data into the dataset.
If your Azure Stream Analytics query results in very rapid output to Power BI (for example, once or twice per
second), Azure Stream Analytics will begin batching those outputs into a single request. This may cause the request
size to exceed the streaming tile limit. In that case, as mentioned in previous sections, streaming tiles will fail to
render. In such cases, the best practice is to slow the rate of data output to Power BI; for example, instead of a
maximum value every second, set it to a maximum over 10 seconds.
If you don't have streaming data set up yet, don't worry - you can select manage data to get started.
On this page, you can input the endpoint of your streaming dataset if you already have one created (into the text
box). If you don't have a streaming dataset yet, select the plus icon ( + ) in the upper right corner to see the
available options to create a streaming dataset.
Create your streaming dataset with the option you like best
There are two ways to create a real-time streaming data feed that can be consumed and visualized by Power BI:
Power BI REST API using a real-time streaming endpoint
PubNub
The next sections look at each option in turn.
Using the POWER BI REST API
Power BI REST API - Recent improvements to the Power BI REST API are designed to make real-time streaming
easier for developers. When you select API from the New streaming dataset window, you're presented with
entries to provide that enable Power BI to connect to and use your endpoint:
If you want Power BI to store the data that's sent through this data stream, enable Historic data analysis and you'll
be able to do reporting and analysis on the collected data stream. You can also learn more about the API.
Once you successfully create your data stream, you're provided with a REST API URL endpoint, which your
application can call using POST requests to push your data to Power BI streaming data dataset you created.
When making POST requests, you should ensure the request body matches the sample JSON provided by the
Power BI user interface. For example, wrap your JSON objects in an array.
Using PubNub
With the integration of PubNub streaming with Power BI, you can use your low -latency PubNub data streams
(or create new ones) and use them in Power BI. When you select PubNub and then select Next, you see the
following window:
WARNING
PubNub channels can be secured by using a PubNub Access Manager (PAM) authentication key. This key will be shared with
all users who have access to the dashboard. You can learn more about PubNub access control.
PubNub data streams are often high volume, and are not always suitable in their original form for storage and
historical analysis. To use Power BI for historical analysis of PubNub data, you'll have to aggregate the raw
PubNub stream and send it to Power BI. One way to do that is with Azure Stream Analytics.
sub-c-5f1b7c8e-fbee-11e3-aa40-02ee2ddab7fe
Channel:
pubnub-sensor-network
4. In the following window, just select the defaults (which are automatically populated), then select Create.
5. Back in your Power BI workspace, create a new dashboard and then add a tile (see above for steps, if you
need them). This time when you create a tile and select Custom Streaming Data, you have a streaming
data set to work with. Go ahead and play around with it. Adding the number fields to line charts, and then
adding other tiles, you can get a real time dashboard that looks like the following:
Give it a try, and play around with the sample dataset. Then go create your own datasets, and stream live data to
Power BI.
Next steps
Here are a few links you might find useful when working with real-time streaming in Power BI:
Overview of the Power BI REST API with real-time data
Azure Stream Analytics
Publish to Power BI from Excel 2016
1/14/2019 • 4 minutes to read • Edit Online
With Excel 2016, you can publish your Excel workbooks right to your Power BI site, where you can create highly
interactive reports and dashboards based on your workbook’s data. You can then share your insights with others
in your organization.
Before we go any further, there are few things to keep in mind:
Before you can publish to Power BI, your workbook must be saved to OneDrive for Business.
The account you use to sign in to Office, OneDrive for Business, and Power BI must be the same account.
You cannot publish an empty workbook or a workbook that doesn’t have any Power BI supported content.
You cannot publish encrypted or password protected workbooks, or workbooks with Information Protection
Management.
Publishing to Power BI requires modern authentication be enabled (default). If disabled, the Publish option is
not available from the File menu.
IMPORTANT
Only Excel 2016 with an Office 365 subscription will see the experience to publish with local files. Excel 2016 standalone
installation will still have the "Publish" only behavior which requires the excel workbook be saved to OneDrive for Business
or SharePoint Online.
When you select Publish, you will be able to select the workspace you want to publish to. This can be your
personal or group workspace that you have access to.
you’ll get two options on how to get your workbook into Power BI.
Once published, it is kept as a copy in Power BI, separate from the local file. If you want to update the file in Power
BI, you need to publish the updated version again. You can refresh the data and set scheduled refresh on the
workbook or the dataset in Power BI.
Publishing from Excel Standalone
If your workbook isn’t already saved to OneDrive, you’ll need to save it there first. Select Save to Cloud and
choose a location in OneDrive for Business.
Once your workbook is saved to OneDrive, when you select Publish, you’ll get two options on how to get your
workbook into Power BI.
Upload your workbook to Power BI
When you choose this option, your workbook will appear in Power BI just like it would in Excel Online. But, unlike
Excel Online, you’ll have some great features to help you pin elements from your worksheets to dashboards.
You can’t edit your workbook in when open in Power BI, but if you need to make some changes, you can select
Edit, and then choose to edit your workbook in Excel Online or open it in Excel on your computer. Any changes
you make are saved to the workbook on OneDrive.
When you upload, no dataset is created in Power BI. Your workbook will appear in Reports, in your workspace
navigation pane. Workbooks uploaded to Power BI have a special Excel icon, identifying them as Excel workbooks
that have been uploaded.
Choose this option if you only have data in worksheets, or you have PivotTables and Charts you want to see in
Power BI. Using Upload from Publish to Power BI in Excel is pretty much the same as using Get Data > File >
OneDrive for Business > Connect, Manage and View Excel in Power BI from Power BI in your browser.
Export workbook data to Power BI
When you choose this option, any supported data in tables and/or a data model are exported into a new dataset
in Power BI. If you have any Power View sheets, those will be re-created in Power BI as reports.
You can continue editing your workbook. When your changes are saved, they’ll be synchronized with the dataset
in Power BI, usually within about an hour. If you need more immediate gratification, you can just select Publish
again, and your changes are exported right then and there. Any visualizations you have in reports and dashboards
will be updated, too.
Choose this option if you’ve used Get & Transform data or Power Pivot to load data into a data model, or if your
workbook has Power View sheets with visualizations you want to see in Power BI.
Using Export from Publish to Power BI in Excel is pretty much the same as using Get Data > File > OneDrive for
Business > Export Excel data into Power BI from Power BI in your browser.
Publishing
When you choose either option, Excel will sign in to Power BI with your current account, and then publish your
workbook to your Power BI site. Keep an eye on the status bar in Excel. It shows how things are going.
When complete, you can go to Power BI right from Excel.
Next steps
Excel data in Power BI
More questions? Try the Power BI Community
Reduce the size of an Excel workbook to view it in
Power BI
1/14/2019 • 2 minutes to read • Edit Online
You can upload any Excel workbook smaller than 1 GB to Power BI. An Excel workbook can have two parts: a Data
Model, and the rest of the report—the core worksheet contents. If the report meets the following size limits, you
can save it to OneDrive for Business, connect to it from Power BI, and view it in Excel Online:
The workbook as a whole can be up to 1 GB.
The core worksheet contents can be up to 30 MB.
Related info
Create a memory-efficient Data Model
Use OneDrive for Business links in Power BI Desktop
Azure and Power BI
1/30/2019 • 3 minutes to read • Edit Online
With Azure services and Power BI, you can turn your data processing efforts into analytics and reports that
provide real-time insights into your business. Whether your data processing is cloud-based or on-premises,
straightforward, or complex, single-sourced or massively scaled, warehoused, or real-time, Azure and Power BI
have the built-in connectivity and integration to bring your business intelligence efforts to life.
Power BI has a multitude of Azure connections available, and the business intelligence solutions you can create
with those services are as unique as your business. You can connect as few as one Azure data source, or a handful,
then shape and refine your data to build customized reports.
There's plenty more information for you to learn about Azure SQL Database.
When using Power BI with Azure data sources, you can avoid Azure egress charges by making sure your Power BI
tenant is in the same region as your Azure data sources.
When your Power BI tenant is deployed in the same Azure region as you deploy your data sources, you do not
incur egress charges for scheduled refresh and DirectQuery interactions.
Next steps
For more information about Power BI Premium or Multi-Geo, take a look at the following resources:
What is Microsoft Power BI Premium?
How to purchase Power BI Premium
Multi-Geo support for Power BI Premium (Preview )
Where is my Power BI tenant located?
Power BI Premium FAQ
Azure SQL Data Warehouse with DirectQuery
1/14/2019 • 3 minutes to read • Edit Online
Azure SQL Data Warehouse with DirectQuery allows you to create dynamic reports based on data and metrics you
already have in Azure SQL Data Warehouse. With DirectQuery, queries are sent back to your Azure SQL Data
Warehouse in real time as you explore the data. Real-time queries, combined with the scale of SQL Data
Warehouse enables users to create dynamic reports in minutes against terabytes of data. In addition, the
introduction of the Open in Power BI button allows users to directly connect Power BI to their SQL Data
Warehouse without having to manually specify the information.
When using the SQL Data Warehouse connector:
Specify the fully qualified server name when connecting (see below for details)
Ensure firewall rules for the server are configured to "Allow access to Azure services"
Every action such as selecting a column or adding a filter will directly query the data warehouse
Tiles are set to refresh approximately every 15 minutes and refresh does not need to be scheduled. Refresh can
be adjusted in the Advanced settings when you connect.
Q&A isn't available for DirectQuery datasets
schema changes aren't picked up automatically
These restrictions and notes may change as we continue to improve the experiences. The steps to connect are
detailed below.
The easiest way to move between your SQL Data Warehouse and Power BI is with the Open in Power BI button
within the Azure portal. This button allows you to seamlessly begin creating new dashboards in Power BI.
1. To get started, navigate to your SQL Data Warehouse instance in the Azure portal. Note that SQL Data
Warehouse only have a presence in the Azure Preview portal at this time.
2. Click the Open in Power BI button
3. If we aren't able to sign you in directly or if you do not have a Power BI account, you'll need to sign in.
4. You'll be directed to the SQL Data Warehouse connection page, with the information from your SQL Data
Warehouse pre-populated. Enter your credentials and hit connect to create a connection.
4. Enter the necessary information to connect. The Finding Parameters section below shows where this data
can be located in your Azure Portal.
NOTE
The username will be a user that is defined in your Azure SQL Data Warehouse instance.
5. Drill into the dataset by selecting the new tile or the newly created dataset, indicated by the asterisk. This
dataset will have the same name as your database.
6. You can explore all of the tables and columns. Selecting a column will send a query back to the source,
dynamically creating your visual. Filters will also be translated into queries back to your data warehouse.
These visuals can be saved in a new report and pinned back to your dashboard.
Finding Parameter Values
Your fully qualified server name and database name can be found in the Azure portal. Note that SQL Data
Warehouse only have a presence in the Azure Preview portal at this time.
NOTE
If your Power BI tenant is in the same region as the Azure SQL Data Warehouse there will be no egress charges. You can find
where your Power BI tenant is located using these instructions.
Next steps
What is Power BI?
Get Data for Power BI
Azure SQL Data Warehouse
More questions? Try the Power BI Community
Azure SQL Database with DirectQuery
1/14/2019 • 2 minutes to read • Edit Online
Learn how you can connect directly to Azure SQL Database and create reports that use live data. You can keep
your data at the source and not in Power BI.
With DirectQuery, queries are sent back to your Azure SQL Database as you explore the data in the report view.
This experience is suggested for users who are familiar with the databases and entities they connect to.
Notes:
Specify the fully qualified server name when connecting (see below for more details)
Ensure firewall rules for the database are configured to "Allow access to Azure services"
Every action such as selecting a column or adding a filter will send a query back to the database
Tiles are refreshed every hour (refresh does not need to be scheduled). This can be adjusted in the Advanced
settings when you connect.
Q&A is not available for DirectQuery datasets
Schema changes are not picked up automatically
These restrictions and notes may change as we continue to improve the experiences. The steps to connect are
detailed below.
IMPORTANT
We have been improving our connectivity to Azure SQL Database. For the best experience to connect to your Azure SQL
Database data source, use Power BI Desktop. Once you've built your model and report, you can publish it to the Power BI
service. The direct connector for Azure SQL Database in the Power BI service is now deprecated.
Single sign-on
After you publish an Azure SQL DirectQuery dataset to the service, you can enable single sign-on (SSO ) via Azure
Active Directory (Azure AD ) OAuth2 for your end users.
To enable SSO, go to settings for the dataset, open the Data Sources tab, and check the SSO box.
When the SSO option is enabled and your users access reports built atop the data source, Power BI sends their
authenticated Azure AD credentials in the queries to the Azure SQL database. This enables Power BI to respect the
security settings that are configured at the data source level.
The SSO option takes affect across all datasets that use this data source. It does not affect the authentication
method used for import scenarios.
NOTE
Azure Multi-Factor Authentication (MFA) is not supported. Users who want to use SSO with Azure SQL DirectQuery must be
exempted from MFA.
In Power BI, there are two ways you can connect to a live SQL Server Analysis Services server. In Get data, you
can connect to a SQL Server Analysis Services server, or you can connect to a Power BI Desktop file, or Excel
workbook, that already connects to an Analysis Services server. As a best practice, Microsoft strongly recommends
using Power BI Desktop because of the richness of the toolset and the ability to maintain a backup copy of the
Power BI Desktop file locally.
IMPORTANT
In order to connect to a live Analysis Services server, an On-premises data gateway must be installed and configured by
an administrator. For more information, see On-premises data gateway.
When you use the gateway, your data remains on-premises. The reports you create based on that data are saved in the
Power BI service.
Q&A natural language querying is in preview for Analysis Services live connections.
Dashboard tiles
If you pin visuals from a report to the dashboard, the pinned tiles are automatically refreshed every 10 minutes. If
the data in your on-premises Analysis Services server is updated, the tiles will get auto-updated after 10 minutes.
Common Issues
Cannot load the model schema error - This error occurs when the user connecting to SSAS does not have
access to the SSAS database, cube and model.
Next steps
On-premises data gateway
Manage Analysis Services data sources
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Configuring scheduled refresh
1/14/2019 • 4 minutes to read • Edit Online
NOTE
After two months of inactivity, scheduled refresh on your dataset is paused. See the Schedule refresh section later in this
article for more information.
If your dataset supports scheduled refresh, by using Refresh Now and Schedule Refresh, there are a few
requirements and settings important for refresh to be successful. These are Gateway connection, Data
Source Credentials, and Schedule Refresh. Let’s take a closer look at each.
This will describe the options available for both the Power BI Gateway – Personal and the On-premises data
gateway.
To get to the schedule refresh screen, you can do the following.
1. Select the ellipsis (...) next to a dataset listed under Datasets.
2. Select Schedule Refresh.
Gateway connection
You will see different options here depending on whether you have a personal, or enterprise, gateway online and
available.
If no gateway is available, you will see Gateway settings disabled. You will also see a message indicating how
to install the personal gateway.
If you have a personal gateway configured, it will be available to select, if it is online. It will show offline if it is not
available.
You can also select the enterprise gateway if one is available for you. You will only see an enterprise gateway
available if your account is listed in the Users tab of the data source configured for a given gateway.
You’re only required to sign in to data sources the first time you use refresh on that dataset. Once entered, those
credentials are retained with the dataset.
NOTE
For some authentication methods, if the password you use to sign into a data source expires or is changed, you'll need to
change it for the data source in Data Source Credentials too.
When things go wrong, the problem usually has something to do with either the gateway being offline because
it could not sign in to Windows and start the service, or Power BI could not sign in to the data sources in order
to query for updated data. If refresh fails, check the dataset’s settings. If the gateway service is offline, Gateway
Status is where you’ll see the error. If Power BI cannot sign into the data sources, you’ll see an error in Data
Source Credentials.
On-premises data gateway
If you are using the On-premises data gateway to refresh data, you do not need to supply credentials as they are
defined for the data source by the gateway administrator.
NOTE
When connecting to on-premises SharePoint for data refresh, Power BI supports only Anonymous, Basic, and Windows
(NTLM/Kerberos ) authentication mechanisms. Power BI does not support ADFS or any Forms-Based Authentication
mechanisms for data refresh of on-premises SharePoint data sources.
Schedule refresh
The scheduled refresh section is where you define the frequency and time slots to refresh the dataset. Some data
sources do not require a gateway present in order to be available to configure. Others will require a gateway.
You must set the Keep your data up to date slider to Yes in order to configure the settings.
NOTE
The Power BI service targets initiating the refresh of your data within 15 minutes of your scheduled refresh time.
NOTE
After two months of inactivity, scheduled refresh on your dataset is paused. A dataset is considered inactive when no user
has visited any dashboard or report built on the dataset. At that time, the dataset owner is sent an email indicating the
scheduled refresh is paused, and the refresh schedule for the dataset is displayed as disabled. To resume scheduled
refresh, simply revisit any dashboard or report built on the dataset.
What’s supported?
Certain datasets are supported against different gateways for scheduled refresh. Here is a reference to
understand what is available.
Power BI Gateway - Personal
Power BI Desktop
All online data sources shown in Power BI Desktop’s Get Data and Query Editor.
All on-premises data sources shown in Power BI Desktop’s Get Data and Query Editor except for Hadoop file
(HDFS ) and Microsoft Exchange.
Excel
NOTE
In Excel 2016, and later, Power Query is now listed on the Data section of the ribbon, under Get & Transform data.
SQL Server
SAP HANA
Oracle
Teradata
File
Folder
Web
OData
IBM DB2
MySQL
Sybase
SAP BW
ODBC
Troubleshooting
Sometimes refreshing data may not go as expected. Typically this will be an issue connected with a gateway.
Take a look at the gateway troubleshooting articles for tools and known issues.
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
Next steps
Data refresh in Power BI
Power BI Gateway - Personal
On-premises data gateway
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try asking the Power BI Community
Refresh a dataset created from a Power BI Desktop
file on a local drive
1/14/2019 • 2 minutes to read • Edit Online
What’s supported?
In Power BI, Refresh Now and Schedule Refresh is supported for datasets created from Power BI Desktop files
imported from a local drive where Get Data/Query Editor is used to connect to and load data from any of the
following data sources:
Power BI Gateway - Personal
All online data sources shown in Power BI Desktop’s Get Data and Query Editor.
All on-premises data sources shown in Power BI Desktop’s Get Data and Query Editor except for Hadoop file
(HDFS ) and Microsoft Exchange.
On-premises data gateway
DATA SOURCE
SQL Server
SAP HANA
Oracle
Teradata
File
Folder
Web
OData
IBM DB2
MySQL
Sybase
SAP BW
DATA SOURCE
ODBC
NOTE
A gateway must be installed and running in order for Power BI to connect to on-premises data sources and refresh the
dataset.
You can perform a one-time, manual refresh right in Power BI Desktop by selecting Refresh on the Home ribbon.
When you select Refresh here, the data in the file’s model is refreshed with updated data from the original data
source. This kind of refresh, entirely from within the Power BI Desktop application itself, is different from manual
or scheduled refresh in Power BI, and it’s important to understand the distinction.
When you import your Power BI Desktop file from a local drive, data, along with other information about the
model is loaded into a dataset in the Power BI service. In the Power BI service, not Power BI Desktop, you want to
refresh data in the dataset because that is what your reports, in the Power BI service, are based on. Because the
data sources are external, you can manually refresh the dataset by using Refresh now or you can setup a refresh
schedule by using Schedule Refresh.
When you refresh the dataset, Power BI does not connect to the file on the local drive to query for updated data. It
uses information in the dataset to connect directly to the data sources to query for updated data it then loads into
the dataset.
NOTE
Refreshed data in the dataset is not synchronized back to the file on the local drive.
Troubleshooting
Sometimes refreshing data may not go as expected. Typically this will be an issue connected with a gateway. Take a
look at the gateway troubleshooting articles for tools and known issues.
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try asking the Power BI Community
Refresh a dataset stored on OneDrive or SharePoint
Online
1/14/2019 • 4 minutes to read • Edit Online
Importing files from OneDrive, or SharePoint Online, into the Power BI service is a great way to make sure the
work you’re doing in Power BI Desktop stays in sync with the Power BI service.
When you import your Power BI Desktop file from OneDrive, or SharePoint Online, data, along with other
information about the model is loaded into a dataset in Power BI. In the Power BI service, not Power BI Desktop,
you want to refresh data in the dataset because that is what your reports, in the Power BI service, are based on.
Because the data sources are external, you can manually refresh the dataset by using Refresh now or you can
setup a refresh schedule by using Schedule Refresh.
When you refresh the dataset, Power BI does not connect to the file on OneDrive, or SharePoint Online, to query
for updated data. It uses information in the dataset to connect directly to the data sources to query for updated
data it then loads into the dataset. This refreshed data in the dataset is not synchronized back to the file on
OneDrive, or SharePoint Online.
What’s supported?
In Power BI, Refresh Now and Schedule Refresh is supported for datasets created from Power BI Desktop files
imported from a local drive where Get Data/Query Editor is used to connect to and load data from any of the
following data sources:
Power BI Gateway - Personal
All online data sources shown in Power BI Desktop’s Get Data and Query Editor.
All on-premises data sources shown in Power BI Desktop’s Get Data and Query Editor except for Hadoop file
(HDFS ) and Microsoft Exchange.
On-premises data gateway
DATA SOURCE
SQL Server
SAP HANA
Oracle
Teradata
File
Folder
Web
OData
IBM DB2
MySQL
Sybase
SAP BW
ODBC
NOTE
A gateway must be installed and running in order for Power BI to connect to on-premises data sources and refresh the
dataset.
If you make changes to your file on OneDrive that cannot be synchronized with the dataset or reports in Power BI,
because your Microsoft account credentials might have changed, you’ll need to connect to and import your file
again from your personal OneDrive.
Troubleshooting
Sometimes refreshing data may not go as expected. Typically this will be an issue connected with a gateway. Take a
look at the gateway troubleshooting articles for tools and known issues.
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try asking the Power BI Community
Refresh a dataset created from an Excel workbook on
a local drive
1/14/2019 • 3 minutes to read • Edit Online
What’s supported?
In Power BI, Refresh Now and Schedule Refresh is supported for datasets created from Excel workbooks imported
from a local drive where Power Query (Get & Transform data in Excel 2016) or Power Pivot is used to connect to
any of the following data sources and load data into the Excel data model:
Power BI Gateway - Personal
All online data sources shown in Power Query.
All on-premises data sources shown in Power Query except for Hadoop file (HDFS ) and Microsoft Exchange.
All online data sources shown in Power Pivot.*
All on-premises data sources shown in Power Pivot except for Hadoop file (HDFS ) and Microsoft Exchange.
On-premises data gateway
DATA SOURCE
SQL Server
SAP HANA
Oracle
Teradata
File
Folder
Web
OData
IBM DB2
MySQL
Sybase
DATA SOURCE
SAP BW
ODBC
Notes:
A gateway must be installed and running in order for Power BI to connect to on-premises data sources and
refresh the dataset.
When using Excel 2013, make sure you’ve updated Power Query to the latest version.
Refresh is not supported for Excel workbooks imported from a local drive where data exists only in
worksheets or linked tables. Refresh is supported for worksheet data if it is stored and imported from
OneDrive. To learn more, see Refresh a dataset created from an Excel workbook on OneDrive, or
SharePoint Online.
When you refresh a dataset created from an Excel workbook imported from a local drive, only the data
queried from data sources is refreshed. If you change the structure of the data model in Excel or Power
Pivot; for example, create a new measure or change the name of a column, those changes will not be copied
to the dataset. If you make such changes, you’ll need to re-upload or re-publish the workbook. If you expect
to make regular changes to the structure of your workbook and you want those to be reflected in the
dataset in Power BI without having to re-upload, consider putting your workbook on OneDrive. Power BI
automatically refreshes both the structure and worksheet data from workbooks stored and imported from
OneDrive.
NOTE
The images here show Excel 2016.
Or, If you click Edit in Navigator, you’ll open the Query Editor. There you can click Close & Load To….
Then in Load To, make sure you select Add this data to the Data Model.
What if I use Get External Data in Power Pivot?
No problem. Whenever you use Power Pivot to connect to and query data from an on-premises or online data
source, the data is automatically loaded to the data model.
IMPORTANT
Refresh is not supported for OData feeds connected to and queried from Power Pivot. When using an OData feed as a data
source, use Power Query.
Troubleshooting
Sometimes refreshing data may not go as expected. Typically this will be an issue connected with a gateway. Take a
look at the gateway troubleshooting articles for tools and known issues.
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
Next steps
More questions? Try the Power BI Community
Refresh a dataset created from an Excel workbook on
OneDrive, or SharePoint Online
1/14/2019 • 6 minutes to read • Edit Online
You can import Excel workbooks that are stored on your local machine, or in cloud storage such as OneDrive for
Business or SharePoint Online. We will look at the advantages of using cloud storage for your excel files. For more
information on how to import Excel files into Power BI, see Get data from Excel workbook files.
What’s supported?
In Power BI, Refresh Now and Schedule Refresh is supported for datasets created from Power BI Desktop files
imported from a local drive where Get Data/Query Editor is used to connect to and load data from any of the
following data sources:
Power BI Gateway - Personal
All online data sources shown in Power BI Desktop’s Get Data and Query Editor.
All on-premises data sources shown in Power BI Desktop’s Get Data and Query Editor except for Hadoop file
(HDFS ) and Microsoft Exchange.
On-premises data gateway
DATA SOURCE
SQL Server
SAP HANA
DATA SOURCE
Oracle
Teradata
File
Folder
Web
OData
IBM DB2
MySQL
Sybase
SAP BW
ODBC
NOTE
A gateway must be installed and running in order for Power BI to connect to on-premises data sources and refresh the
dataset.
NOTE
The images here show Excel 2016.
Or, If you click Edit in Navigator, you’ll open the Query Editor. There you can click Close & Load To….
Then in Load To, make sure you select Add this data to the Data Model.
Important notes
* Refresh is not supported for OData feeds connected to and queried from Power Pivot. When using an OData
feed as a data source, use Power Query.
Troubleshooting
Sometimes refreshing data may not go as expected. Typically this will be an issue connected with a gateway. Take
a look at the gateway troubleshooting articles for tools and known issues.
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try the Power BI Community
Refresh a dataset created from a .CSV file on
OneDrive or SharePoint Online
1/14/2019 • 2 minutes to read • Edit Online
What’s supported?
Comma separated value files are simple text files, so connections to external data sources and reports are not
supported. You cannot schedule refresh on a dataset created from a comma delimited file. However, when the file
is on OneDrive, or SharePoint Online, Power BI will synchronize any changes to the file with the dataset
automatically about every hour.
Next steps
Tools for troubleshooting refresh issues Troubleshooting refresh scenarios
More questions? Try asking the Power BI Community
Troubleshooting refresh scenarios
1/14/2019 • 3 minutes to read • Edit Online
Here you can find information regarding different scenarios you may face when refreshing data within the Power
BI service.
NOTE
If you encounter a scenario that is not listed below, and it is causing you issues, you can ask for further assistance on the
community site, or you can create a support ticket.
Refresh fails when updating data from sources that use AAD OAuth
The Azure Active Director (AAD ) OAuth token, used by many different data sources, expires in approximately one
hour. You can run into situations where loading data takes longer than the token expiration (more than one hour),
since the Power BI service waits for up to two hours when loading data. In that situation, the data loading process
can fail with a credentials error.
Data sources that use AAD OAuth include Microsoft Dynamics CRM Online, SharePoint Online (SPO ), and
others. If you’re connecting to such data sources, and get a credentials failure when loading data takes more than
an hour, this may be the reason.
Microsoft is investigating a solution that allows the data loading process to refresh the token and continue.
However, if your Dynamics CRM Online or SharePoint Online instance (or other AAD OAuth data source) is so
large that it could run into the two-hour data-load threshold, you may experience a data load timeout from the
Power BI service as well.
Also note that, for refresh to work properly, when connecting to a SharePoint Online data source using AAD
OAuth, you must use the same account that you use to sign in to the Power BI service.
Next steps
Data Refresh
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try asking the Power BI Community
Intro to dashboards for Power BI designers
1/14/2019 • 2 minutes to read • Edit Online
A Power BI dashboard is a single page, often called a canvas, that tells a story through visualizations. Because it is
limited to one page, a well-designed dashboard contains only the highlights of that story. Readers can view related
reports for the details.
Dashboards are a feature of the Power BI service. They're not available in Power BI Desktop. You can't create
dashboards on mobile devices but you can view and share them there.
Dashboard basics
The visualizations you see on the dashboard are called tiles. You pin tiles to a dashboard from reports. If you're
new to Power BI, you can get a good foundation by reading Power BI basic concepts.
IMPORTANT
You need a Power BI Pro license to create dashboards.
The visualizations on a dashboard come from reports and each report is based on a dataset. One way to think of a
dashboard is as an entryway to the underlying reports and datasets. Selecting a visualization takes you to the
report (and dataset) that it's based on.
Advantages of dashboards
Dashboards are a wonderful way to monitor your business and see all of your most important metrics at a glance.
The visualizations on a dashboard may come from one underlying dataset or many, and from one underlying
report or many. A dashboard combines on-premises and cloud data, providing a consolidated view regardless of
where the data lives.
A dashboard isn't just a pretty picture. It's highly interactive and the tiles update as the underlying data changes.
Data sources One or more reports and one or more A single dataset per report
datasets per dashboard
Featured Can set one dashboard as your Can't create a featured report
"featured" dashboard
Set alerts Available for dashboard tiles in certain Not available from reports
circumstances
Can see underlying dataset tables and No. Can export data but can't see tables Yes. Can see dataset tables and fields
fields and fields in the dashboard itself. and values.
Next steps
Get comfortable with dashboards by taking a tour of one of our sample dashboards.
Learn about dashboard tiles.
Want to track an individual dashboard tile and receive an email when it reaches a certain threshold? Create
alerts on tiles.
Learn how to use Power BI Q&A to ask a question about your data and get the answer in the form of a
visualization.
Intro to dashboard tiles for Power BI designers
2/13/2019 • 3 minutes to read • Edit Online
A tile is a snapshot of your data, pinned to the dashboard. A tile can be created from a report, dataset, dashboard,
the Q&A box, Excel, SQL Server Reporting Services (SSRS ) reports, and more. This screenshot shows many
different tiles pinned to a dashboard.
Dashboards and dashboard tiles are a feature of Power BI service, not Power BI Desktop. You can't create
dashboards on mobile devices but you can view and share them there.
Besides pinning, you can create standalone tiles directly on the dashboard using Add tile. Standalone tiles include:
text boxes, images, videos, streaming data, and web content.
Need help understanding the building blocks that make up Power BI? See Power BI - Basic Concepts.
NOTE
If the original visualization used to create the tile changes, the tile doesn't change. For example, if you pinned a line chart
from a report and then you changed the line chart to a bar chart, the dashboard tile continues to show a line chart. The
data refreshes, but the visualization type does not.
Run insights
NOTE
The exception to this is video tiles created directly on the dashboard using Add tile. Selecting a video tile (that was created
this way) causes the video to play right there on the dashboard.
Next steps
Create a Card (big number tile) for your dashboard
Dashboards in Power BI
Data refresh
Power BI - Basic Concepts
Export a tile to Power Point
Pin Reporting Services items to Power BI Dashboards
More questions? Try the Power BI Community
Create a Power BI dashboard from a report
1/14/2019 • 4 minutes to read • Edit Online
You've read Dashboards in Power BI, and now you want to create your own. There are many different ways to
create a dashboard - from a report, from scratch, from a dataset, by duplicating an existing dashboard, and more.
It can seem overwhelming when you're first getting started, so we'll start by creating a quick and easy dashboard
by pinning visualizations from a report that's already been built. Once you complete this quickstart, you'll have a
good understanding of the relationship between dashboards and reports, opening Editing view in the report
editor, pinning tiles, and navigating between a dashboard and a report. Then use the links in the Table of Contents
on the left or the Next steps at the bottom to move on to more-advanced topics.
NOTE: Dashboards are a feature of Power BI service, not Power BI Desktop. Dashboards can't be created in
Power BI mobile, but they can be viewed and shared.
5. Select Files.
6. Navigate to the location where you saved the Procurement Analysis sample Excel file. Select it and choose
Connect.
2. The report opens in Reading view. Notice it has two tabs at the bottom: Discount Analysis and Spend
Overview. Each tab represents a page of the report. Select Edit report to open the report in Editing view.
3. Hover over a visualization to reveal the options available. To add a visualization to a dashboard, select the
pin icon.
4. Since we're creating a new dashboard, select the option for New dashboard and give it a name.
5. When you select Pin, Power BI creates the new dashboard in the current workspace. When the Pinned to
dashboard message appears, select Go to dashboard. If you're prompted to save the report, choose Save.
6. Power BI opens the new dashboard and there is one tile - the visualization you just pinned.
7. To return to the report, select the tile. Pin a few more tiles to the new dashboard. This time when the Pin to
dashboard window displays, select Existing dashboard.
2. You want all of these visuals on your dashboard. In the upper-right corner of the menubar, select Pin live
page. On a dashboard, live page tiles update each time the page is refreshed.
3. When the Pin to dashboard window displays, select Existing dashboard.
4. When the Success message appears, select Go to dashboard. There you'll see the tiles you pinned from
the report. In the example below, we've pinned 2 tiles from page 1 of the report and one live tile that is page
2 of the report.
Congratulations on creating your first dashboard! Now that you have a dashboard, there's so much more you can
do with it. Try one of the suggested Next steps below, or start playing and exploring on your own.
Next steps
Resize and move tiles
All about dashboard tiles
Share your dashboard by creating an app
Power BI - Basic Concepts
Tips for designing a great dashboard
More questions? Try the Power BI Community
Create a copy of a dashboard in Power BI service
1/14/2019 • 2 minutes to read • Edit Online
There are many different reasons to make a copy of a dashboard. Maybe you want to make changes and test its
performance against the original; or create slightly different versions to distribute by colleague, region, or team.
Perhaps a colleague admires your dashboard design and wants to use it for reporting out to her managers.
Another reason would be if you have a new database with the same data structure and data types and want to
reuse the dashboard you've already created -- this too can be done but would require some work in Power BI
Desktop.
Dashboards are created (and copied) using Power BI service and can be viewed in Power BI mobile and Power BI
Embedded. Dashboards are not available in Power BI Desktop.
To make a copy of a dashboard, you must be the dashboard creator. Dashboards that have been shared with you
as an app cannot be duplicated.
1. Open the dashboard.
2. From the top-right corner, select the ellipses (...) and choose Duplicate dashboard.
Next steps
Tips for designing a great dashboard
More questions? Try the Power BI Community
Pin a tile to a Power BI dashboard from a report
1/14/2019 • 2 minutes to read • Edit Online
TIP: Some visualizations use background images. Pinning may not work if the background image is too
large. Try reducing the image size or using image compression.
1. Hover over the visualization you want to pin, and select the pin icon. Power BI opens the Pin to
dashboard screen.
5. From the navigation pane, select the dashboard with the new tile. Select the tile to jump back into the
report. Or, edit the tile display and behavior.
Next steps
Dashboards in Power BI
Dashboard tiles in Power BI
Reports in Power BI
Data refresh in Power BI
Power BI Basic Concepts
More questions? Try the Power BI Community
Pin a tile from one dashboard to another dashboard
2/13/2019 • 2 minutes to read • Edit Online
One way to add a new dashboard tile is by copying it from another dashboard. Each of these tiles, when clicked, is
a link back to where it was created -- either in Q&A or a report.
NOTE
You cannot pin tiles from shared dashboards.
5. Select Pin. A Success message (near the top right corner) lets you know the visualization was added, as a
tile, to the selected dashboard.
6. Select Go to dashboard to see the pinned tile. There, you can rename, resize, link, and move the pinned
visualization.
Next steps
Tiles in Power BI
Dashboards in Power BI
More questions? Try the Power BI Community
Pin a tile to a Power BI dashboard from Excel
2/13/2019 • 3 minutes to read • Edit Online
Before you can pin a tile from your Excel workbook, you'll connect that workbook to Power BI service
(app.powerbi.com). Connecting a workbook essentially brings a linked read-only version of that workbook into
Power BI service and allows you to pin ranges to dashboards. You can even pin an entire worksheet to a
dashboard.
If a workbook has been shared with you, you'll have the ability to view the tiles pinned by the owner, but not create
any dashboard tiles yourself.
For in-depth information about how Excel and Power BI work together, see Get data from Excel workbook files.
Watch Will demonstrate several ways to import data from, and connect to, Excel workbooks.
https://www.youtube.com/embed/l8JoB7w0zJA
3. In Power BI, the workbook is added to the Workbooks tab of your workspace. The icon indicates this is
an Excel workbook and a yellow asterisk indicates it's new.
4. Open the workbook in Power BI by selecting the workbook name.
Changes you make to the workbook in Power BI are not saved and do not affect the original workbook on
OneDrive for Business. If you sort, filter, or change values in Power BI, those changes cannot be saved or
pinned. If you need to make changes that will be saved, select Edit from the upper-right corner to open it
for editing in Excel Online or Excel. Changes made this way may take a few minutes to update the tiles on
the dashboards.
5. Select Go to dashboard. From here you can rename, resize, link, and move the pinned visualization. By
default, selecting the pinned tile opens the workbook in Power BI.
A tile created from a table or PivotTable will show the entire table. If you add/remove/filter rows or columns in the
original workbook, they will also be added/removed/filtered in the tile.
Next steps
Share a dashboard that has links to an Excel workbook
Get data from Excel workbooks
More questions? Try the Power BI Community
Pin a tile to a dashboard from Q&A
1/14/2019 • 2 minutes to read • Edit Online
3. For example, as you type "last year sales by month and territory"...
4. To add the chart to your dashboard as a tile, select the pin on the top-right side of the canvas. If the
dashboard has been shared with you, you won't be able to pin any visualizations.
5. Pin the tile to an existing dashboard or to a new dashboard.
Existing dashboard: select the name of the dashboard from the dropdown. Your choices will be limited to
only those dashboards within the current workspace.
New dashboard: type the name of the new dashboard and it will be added to your current workspace.
6. Select Pin.
A success message (near the top-right corner) lets you know the visualization was added, as a tile, to your
dashboard.
7. Select Go to dashboard to see the new tile. There, you can rename, resize, add a hyperlink, reposition the
tile, and more on your dashboard.
How does Q&A know which datasets to use? Q&A has access to all datasets that have at least one
visualization pinned to that dashboard.
Don't see the question box? Check with your Power BI administrator. The administrator has the ability to
disable Q&A.
Next steps
Rename, resize, add a hyperlink, reposition the tile, and more
Display your dashboard tile in Focus mode
Back to Q&A in Power BI
More questions? Try the Power BI Community
Pin an entire report page, as a live tile, to a Power BI
dashboard
1/14/2019 • 2 minutes to read • Edit Online
Another way to add a new dashboard tile is by pinning an entire report page. This is an easy way to pin more than
one visualization at a time. Also, when you pin an entire page, the tiles are live; you can interact with them right
there on the dashboard. And changes you make to any of the visualizations back in the report editor, like adding a
filter or changing the fields used in the chart, are reflected in the dashboard tile as well.
Pinning live tiles from reports to dashboards is only available in Power BI service (app.powerbi.com).
NOTE
You can't pin tiles from reports that are shared with you.
3. Pin the tile to an existing dashboard or to a new dashboard. Notice the highlighted text: Pin live page
enables changes to reports to appear in the dashboard tile when the page is refreshed.
Existing dashboard: select the name of the dashboard from the dropdown. Dashboards that have
been shared with you will not appear in the dropdown.
New dashboard: type the name of the new dashboard.
4. Select Pin live. A Success message (near the top right corner) lets you know the page was added, as a tile,
to your dashboard.
Next steps
Dashboards in Power BI
More questions? Try the Power BI Community
Data alerts in Power BI service
1/14/2019 • 3 minutes to read • Edit Online
Set alerts to notify you when data in your dashboards changes beyond limits you set.
You can set alerts on tiles if you have a Power BI Pro license, or if a dashboard has been shared with you from a
Premium capacity. Alerts can only be set on tiles pinned from report visuals, and only on gauges, KPIs and cards.
Alerts can be set on visuals created from streaming datasets that have been pinned from a report to a dashboard,
but cannot be set on streaming tiles created directly on the dashboard using Add tile > Custom streaming
data.
Only you can see the alerts you set, even if you share your dashboard. Data alerts are fully synchronized across
platforms; set and view data alerts in the Power BI mobile apps and in the Power BI service. They are not
available for Power BI Desktop. Alerts can even be automated and integrated with Microsoft Flow - try it out
yourself.
WARNING
Data-driven alert notifications provide information about your data. If you view your Power BI data on a mobile device and
that device gets stolen, we recommend using the Power BI service to turn off all data-driven alert rules.
2. Select the bell icon to add one or more alerts for Total stores.
3. To start, select + Add alert rule, ensure the slider is set to On, and give your alert a title. Titles help you
easily recognize your alerts.
4. Scroll down and enter the alert details. In this example we'll create an alert that notifies us once a day if the
number of total stores goes above 100. Alerts will appear in our Notification center. And we'll have Power
BI send us an email as well.
5. Select Save.
Receiving alerts
When the data being tracked reaches one of the thresholds you've set, several things will happen. First, Power BI
checks to see if it's been more than an hour or more than 24 hours (depending on the option you selected) since
the last alert was sent. As long as the data is past the threshold, you'll get an alert.
Next, Power BI sends an alert to your notification center and, optionally, in email. Each alert contains a direct link
to your data. Select the link to see the relevant tile where you can explore, share, and learn more.
1. If you've set the alert to send you an email, you'll find something like this in your Inbox.
2. Power BI adds a message to your Notification center and adds a new alert icon to the applicable tile.
NOTE
Alerts only work on data that is refreshed. When data refreshes, Power BI looks to see if an alert is set for that data.
If the data has reached an alert threshold, an alert is triggered.
Managing alerts
There are many ways to manage your alerts: From the dashboard tile itself, from the Power BI Settings menu, on
an individual tile in the Power BI mobile app on the iPhone or in the Power BI mobile app for Windows 10.
From the tile itself
1. If you need to change or remove an alert for a tile, re-open the Manage alerts window by selecting the
bell icon . All the alerts that you've set for that tile are displayed.
.
2. To modify an alert, select the arrow to the left of the alert name.
.
3. To delete an alert, select the trashcan to the right of the alert name.
.
2. Under Settings select Alerts.
3. From here you can turn alerts on and off, open the Manage alerts window to make changes, or delete the
alert.
Next steps
Create a Microsoft Flow that includes a data alert
Set data alerts on your mobile device
What is Power BI?
More questions? Try asking the Power BI Community
Add image, text, video, and more to your dashboard
2/13/2019 • 4 minutes to read • Edit Online
https://www.youtube.com/embed/e2PD8m1Q0vU
Add tile
The Add tile control lets you directly add an image, text box, video, streaming data, or web code to your
dashboard.
1. Select Add tile from the top menu bar. Depending on space limitations, you may see only the plus
sign.
2. Select which type of tile to add: Image, Text box, Video, Web content, or Custom streaming data.
Add an image
Say you want your company logo on your dashboard, or some other image. You'll need to save the image file
online and link to it. Make sure special credentials aren't required to access the image file. For example, OneDrive
and SharePoint require authentication, so images stored there can't be added to a dashboard this way.
1. Select Image > Next.
2. Add image information to the Add image tile window.
to display a title above the image, select Display title and subtitle and type a title and/or subtitle.
enter the image URL
to make the tile a hyperlink, select Set custom link and enter the URL. When colleagues click this
image or title, they'll be taken to this URL.
Select Apply. On the dashboard, resize and move the image as needed.
NOTE: To add a dashboard heading, type your heading in the text box and increase the font.
2. Format the text box:
to display a title above the text box, select Display title and subtitle and type a title and/or
subtitle.
enter and format content for the text box.
Optionally, set a custom link for the title. A custom link can be an external site or a dashboard or
report in your workspace. However, in this example we've added hyperlinks within the text box
itself, so will leave Set custom link unchecked.
3. Select Apply. On the dashboard, resize and move the text box as needed.
Add a video
When you add a YouTube or Vimeo video tile to your dashboard, the video plays right on your dashboard.
1. Select Video > Next.
2. Add video information to the Add video tile pane.
to display a title and subtitle at the top of the video tile, select Display title and subtitle and type a
title and/or subtitle. In this example, we'll add a subtitle and then turn it into a hyperlink back to the
entire playlist on YouTube.
enter the URL for the video
Add a hyperlink for the title and subtitle. Perhaps after your colleagues watch the embedded video
you'd like them to view the entire playlist on YouTube -- add a link to your playlist here.
Select Apply. On the dashboard, resize and move the video tile as needed.
to display a title above the tile, select Display title and subtitle and type a title and/or subtitle.
enter the embed code. In this example we're copying and pasting a Twitter feed.
3. Select Apply. On the dashboard, resize and move the web content tile as needed.
<iframe src="https://xyz.com">
Edit width and height information. This embed code embeds a video and sets the video player to 560 x
315 pixels. This size will not change as you resize the tile.
If you'd like the player to resize to fit the tile size, set width and height to 100%.
This code embeds a tweet and retains, as separate links on the dashboard, links for the AFK podcast,
@GuyInACube's Twitter page, Follow, #analytics, reply, retweet, and like. Selecting the tile itself
takes you to the podcast on Twitter.
Edit a tile
To make changes to a tile...
1. Hover over the top right corner of the tile and select the ellipses.
2. Select the edit icon to re-open the Tile details pane and make changes.
Considerations and troubleshooting
To make it easier to move the tile on your dashboard, add a title and/or subtitle.
If you'd like to embed some content from a website, but the website doesn't give you embed code to copy and
paste, check out embed.ly for help generating the embed code.
Next steps
Dashboard tiles
More questions? Try the Power BI Community.
Edit or remove a dashboard tile
1/14/2019 • 3 minutes to read • Edit Online
TIP
To change the visualization shown on the tile itself, delete the tile and add a new dashboard tile.
Prerequisites
To follow along, open Power BI service (not Power BI Desktop) and download the IT Spend Analysis
sample. When the "Success" message appears, select Go to dashboard
2. Open the report in Editing view by selecting Edit report from the top menubar.
3. Add a new report page by selecting the plus sign (+) at the bottom of the report.
4. From the FIELDS pane, select Fact > Amount and Business Area > Business Area.
5. From the VISUALIZATIONS pane, select the Donut chart icon to convert the visualization to a
Donut chart.
6. Select the pin icon and pin the Donut chart to the IT Spend Analysis sample dashboard.
7. When the "Success"message appears, select Go to dashboard. You will be prompted to save
your changes. Select Save.
2. Hover over the "Account" tile and select the ellipses to display the options. The options available
will vary by tile type. For example, the options available for a live tile are different from options
available for a standard visualization tile. Also, if a dashboard has been shared with you (you are
not the owner), you will have fewer options.
3. Select Apply.
4. The new title displays on the tile. And, when you select the tile, Power BI opens the Human
Resources dashboard.
Next steps
Dashboard tiles in Power BI
Dashboards in Power BI
Power BI - Basic Concepts
More questions? Try the Power BI Community
Tips for designing a great Power BI dashboard
1/14/2019 • 4 minutes to read • Edit Online
Now that you've created a dashboard and added some tiles, think about how to make your dashboard not just
pretty, but also functional. In general, that means making the most important information stand out, and making it
clean and uncluttered.
Here are a few tips.
TIP
Many of the design principles for reports apply to dashboards as well. Read our whitepaper Best design principles for
reports and visualizations.
Use the right visualization for the data and format it for easy reading
Avoid visualization variety for the sake of variety. Visualizations should paint a picture and be easy to "read" and
interpret. For some data and visualizations, a simple graphic visualization is enough. But other data may call for a
more-complex visualization - be sure to make use of titles and labels and other customization to help the reader.
Choose appropriate data visualizations. Be careful using charts that distort reality i.e. 3-D charts. Keep in mind
that it is difficult for the human brain to interpret circular shapes. Pie charts, donut charts, gauges and other
circular chart types may look pretty but they are not a data visualization best practice.
Be consistent with chart scales on axes, chart dimension ordering and also the colors used for dimension
values within charts.
Be sure to encode quantitative data nicely. Don’t exceed three or four numerals when displaying numbers.
Display measures to one or two numerals left of the decimal point and scale for thousands or millions i.e. 3.4
million not 3,400,000.
Don’t mix levels of precision and time. Make sure that time frames are well understood. Don’t have one chart
that has last month next to filtered charts from a specific month of the year.
Don’t mix big and small measures on the same scale, such as on a line or bar chart. For example one measure
can be in the millions and the other measure in the thousands. With such a large scale, it would be difficult to
see the differences of the measure that is in the thousands. If you need to mix, choose a visualization that
allows the use of a second axis.
Don’t clutter your charts with data labels that are not needed. The values in bar charts are usually well
understood without displaying the actual number.
Pay attention to how charts are sorted. If you want to draw attention to the highest or lowest number, sort by
the measure. If you want people to be able to quickly find a particular category within many other categories,
sort by the axis.
Pie charts are best if they have fewer than eight categories. Because you can't compare values side by side, it’s
harder to compare values in a pie chart than in bar and column charts. Pie charts can be good for viewing part-
to-whole relationships rather than for comparing the parts. And Gauge charts are great for displaying the
current status in the context of a goal.
For more visualization-specific guidance, see Visualization types in Power BI.
Next steps
Create a dashboard from a report
Power BI - Basic Concepts
More questions? Try the Power BI Community
Create a view of a Power BI dashboard optimized for
mobile phones
1/14/2019 • 2 minutes to read • Edit Online
When you view dashboards in the Power BI mobile app on a phone, you notice the dashboard tiles are laid out
one after another, all the same size. In the Power BI service, you can create a customized view of any dashboard
that you own, specifically for phones.
When you turn the phone sideways, then you see the dashboard as it's laid out in the service, not as you designed
it for the phone.
NOTE
As you edit the phone view, anyone viewing the dashboard on a phone can see the changes you make in real time. For
example, if you unpin all tiles on the dashboard phone view, the dashboard on the phone will suddenly have no tiles.
If you aren't the dashboard owner, you won't see this option.
The phone dashboard edit view opens. Here you can unpin, resize, and rearrange tiles to fit the phone view.
The web version of the dashboard doesn't change.
3. Select a tile to drag, resize, or unpin it. You notice the other tiles move out of the way as you drag a tile.
The unpinned tiles go in the Unpinned tiles pane, where they stay unless you add them back.
4. If you change your mind, select Reset tiles to put them back in the size and order they were before.
Just opening Phone Edit view in the Power BI service slightly changes the size and shape of the tiles on a
phone. So to return the dashboard to its exact state before you opened it in Phone Edit view, select Reset
tiles.
5. When you're satisfied with the phone dashboard layout, select the arrow next to Phone view in the upper-
right corner > select Web view.
Power BI saves the phone layout automatically.
Next steps
Create reports optimized for the Power BI phone apps
Create responsive visuals optimized for any size
More questions? Try asking the Power BI Community
Create a QR code for a tile in Power BI to use in the
mobile apps
1/14/2019 • 2 minutes to read • Edit Online
QR codes in Power BI can connect anything in the real world directly to related BI information no navigation or
search needed.
You can create a QR code in the Power BI service for tiles in any dashboard, even in dashboards you can't edit.
Then place the QR code in a key location. For example, you could paste it in an email, or print it out and paste it in a
specific location.
Colleagues you've shared the dashboard with can scan the QR code for access to the tile, right from their mobile
device. They can use either the QR code scanner located in the Power BI app, or any other QR scanner installed on
their device.
2. Select the ellipsis (...) in the top-right corner of the tile and select Focus mode .
3. Select the ellipsis (...) in the top-right corner and select Generate QR code.
5. From here you can scan the QR code or download and save it so you can:
Add it to an email or other document, or
Print it and place it in a specific location.
TIP
The JPG file has the same name as the tile. For example, "Opportunity Count - by Month, Sales Stage.jpg".
Next steps
Connect to Power BI data from the real world with the mobile apps
Scan a Power BI QR code from your mobile device
Create a QR code for a report
Questions? Try asking the Power BI Community
Add an image to a Power BI dashboard
1/14/2019 • 2 minutes to read • Edit Online
There are several ways to add a standalone image to a dashboard: one way is to pin an image from a report to a
dashboard and another way is to add it directly onto the dashboard using Add tile. For more information, visit
these articles:
Add dashboard tiles directly from a Power BI dashboard.
Pin images from a Power BI report.
Dashboard data classification
1/14/2019 • 3 minutes to read • Edit Online
Every dashboard is different, and depending on the data source you are connecting to, you will likely find that you
and the colleagues you share with will need to take different precautions depending on the sensitivity of the data.
Some dashboards should never be shared with those outside your company or printed out, while others can be
shared freely. By using dashboard data classification, you will be able to raise awareness with those viewing your
dashboards about what level of security should be used. You can tag your dashboards with classifications defined
by your company’s IT department, so everyone viewing the content will have the same level of understanding
around the sensitivity of the data.
It will also show up next to the dashboard tile in your Favorites list.
When you hover over the tag, you will see the full name of the classification.
Admins can also set an URL for a tag to provide additional information.
NOTE
Depending the classification settings set by your admin, some classification types may not show as a tag on the dashboard. If
you are a dashboard owner, you can always check your dashboard classification type under the dashboard settings.
2. Under Dashboard settings, you will be able to see the current classification for your dashboard and use the
drop down to change the classification type.
3. Select Apply when finished.
After you apply the change, anyone you shared with will see the update the next time they reload the dashboard.
2. Switch Data classification for dashboards and reports to on within the Tenant settings tab.
Once turned on, you will be presented with a form to create the various classifications in your organization.
Each classification has a name and a shorthand which will appear on the dashboard. For each classification, you
can decide if the shorthand tag will appear on the dashboard or not by selecting Show tag. If you decide not to
show the classification type on the dashboard, the owner will still be able to see the type by checking the
dashboard settings. Additionally, you can optionally add a URL that contains more information about your
organization’s classification guidelines and usage requirements.
The last thing you need to decide is which classification type will be the default.
Once you fill in the form with your classification types, select Apply to save the changes.
At this point, all dashboards will be assigned the default classification, and dashboard owners will now be able to
update the classification type to the one appropriate for her content. You can return here in the future to add or
remove classification types or change the default.
NOTE
There are a few important things to remember when you come back to make changes:
If you turn data classification off, none of the tags are remembered. You will need to start over if you decide to turn it
back on later.
If you remove a classification type, any dashboards assigned the removed classification type will be assigned back to the
default until the owner goes and sets it again.
If you change the default, all dashboards that weren’t already assigned a classification type by the owner will change to
the new default.
Use Dashboard Themes in Power BI service
1/14/2019 • 2 minutes to read • Edit Online
With Dashboard Themes you can apply a color theme to your entire dashboard, such as corporate colors,
seasonal coloring, or any other color theme you might want to apply. When you apply a Dashboard Theme, all
visuals on your dashboard use the colors from your selected theme (a few exceptions apply, described later in this
article).
Changing the colors of the report visuals on the dashboard will not affect the visuals in the report. Also, when you
pin tiles from a report that already has a report theme applied, you'll have the choice to keep the current theme or
use the dashboard theme.
Prerequisites
To follow along, open the Sales and Marketing sample dashboard.
You can also save your custom theme as a JSON file and then share it with other dashboard creators.
Use a theme from the Theme Gallery
Like the built-in and custom options, when the theme is uploaded, the colors will automatically be applied to all
tiles on the dashboard.
1. Hover over a theme and choose View report.
2. Scroll down and find the link to the JSON file. Select the download icon and save the file.
3. Back in Power BI service, in the Custom Dashboard theme window, select Upload JSON theme.
4. Navigate to the location where you saved the JSON theme file and select Open.
5. On the Dashboard theme page, select Save. The new theme is applied to your dashboard.
Dashboard themes cannot be applied to pinned live report pages, iframe tiles, SSRS tiles, workbook tiles, or
images.
Dashboard themes can be viewed on mobile devices but creating a dashboard theme can only be done in
Power BI service.
Dashboard custom themes only work with tiles pinned from reports.
Create a new report in Power BI service by importing
a dataset
2/13/2019 • 2 minutes to read • Edit Online
You've read Reports in Power BI and now you want to create your own. There are many different ways to create a
report, and in this article we'll start by creating a very basic report from an Excel dataset using Power BI service.
Once you understand the basics of creating a report, the Next steps at the bottom will direct you to more-
advanced report topics.
Prerequisites
Power BI service (for creating reports using Power BI Desktop, see Desktop report view )
Retail Analysis sample dataset
6. Viewing a dataset actually opens the report editor. You'll see a blank canvas and the report editing tools.
TIP: If you're unfamiliar with the report editing canvas, or need a refresher, Take a tour of the report editor
before continuing.
2. Convert the visual to a Gauge by selecting the Gauge template from the Visualizations pane.
3. Drag Sales > This Year Sales > Goal to the Target value well. Looks like we're very close to our goal.
4. Now would be a good time to save your report.
3. Convert the visual to an Area chart by selecting the Area chart template from the Visualizations
pane.
4. Select Time > Period to add it to the Axis well.
5. To sort the visualization by time period, select the ellipses and choose Sort by Period.
6. Now let's add the slicer. Select an empty area on the canvas and choose the Slicer template. This adds
an empty slicer to our canvas.
7. From the Fields pane, select District > District. Move and resize the slicer.
Next steps
Learn how to pin visualizations to a dashboard
More questions? Try the Power BI Community
About filters and highlighting in Power BI reports
1/14/2019 • 4 minutes to read • Edit Online
This article introduces you to filtering and highlighting in Power BI service. The experience is almost exactly the
same in Power BI Desktop. Filters remove all but the data you want to focus on. Highlighting is not filtering. It
doesn't remove data, but instead highlights a subset of the visible data; the unhighlighted data remains visible
but dimmed.
There are many different ways you can filter and highlight reports in Power BI. Putting all of that information in
one article would get confusing, so we've broken it into these sections:
Introduction to filters and highlighting (the article you're reading now )
The ways you can create and use filters in Editing view in reports. When you have editing permissions for a
report, you can create, modify, and delete filters in reports.
The ways you can filter and highlight in a report shared with you, in report Reading view. What you can do is
more limited, but you still have a wide range of filtering and highlighting options.
A detailed tour of the filter and highlighting controls available in Editing view including an in-depth look at
types of filters (e.g., date and time, numeric, text) and the difference between basic and advanced options.
After you've learned how filters and highlighting work by default, learn how to change the way visualizations
on a page filter and highlight each other
So this page of the report has six page-level filters and one report-level filter.
Each visual can have filters for all the fields in the visual, and a report author may add more. In the image below,
the bubble chart has six filters.
In Reading view, explore the data by modifying the existing filters. The changes you make are saved with the
report, even if you open the report in a mobile app. Learn how when you take a tour of the report Filters pane
When you exit the report, your filters are saved. To undo your filtering and return to the default filtering, slicing,
drill, and sorting set by the report author, select Reset to default from the top menubar.
As in Reading view, we see this page of the report has six page-level filters and one report-level filter. And by
selecting the bubble chart, we'd see it has six visual level filters applied.
We can do more with filters and highlighting in Editing view. Mainly, we can add new filters. Learn how to Add a
filter to a report and much more.
Ad-hoc highlighting
Select a field on the report canvas to highlight the other visuals on the page. Select any empty space in the same
visual to remove it. This type of highlighting is a fun way to quickly explore data impacts. To fine-tune how this
type of cross-highlighting works, see Visual interactions.
Next steps
Add a filter to a report (in Editing view )
Take a tour of report filters
Change how report visuals cross-filter and cross-highlight each other
More questions? Try the Power BI Community
Add a filter to a report in Editing view
1/14/2019 • 6 minutes to read • Edit Online
This article explains how to add a page filter, visualization filter, report filter, or drillthrough filter to a report in
Power BI. The examples in this article are in the Power BI service. The steps are almost identical in Power BI
Desktop.
Did you know? Power BI has a new filter experience, currently in preview. Read more about the new filter
experience in Power BI reports.
Because filters persist, when you navigate away from the report Power BI retains the filter, slicer, and other data
view changes that you've made. So you can pick up where you left off when you return to the report. If you don't
want your filter changes to persist, select Reset to default from the top menubar.
2. Open the Visualizations and Filters pane and the Fields pane (if they're not already open).
3. Select a visual to make it active. All the fields being used by the visual are in the Fields pane and also
listed in the Filters pane, under the Visual level filters heading.
4. At this point, we'll add a filter to a field already being used by the visualization.
Scroll down to the Visual level filters area and select the arrow to expand the field you'd like to filter. In
this example, we'll filter StoreNumberName.
Set either Basic, Advanced, or Top N filtering controls. In this example, we'll search in Basic filtering for
cha and select those five stores.
The visual changes to reflect the new filter. If you save your report with the filter, report readers will see
the visual filtered to begin with, and can interact with the filter in Reading view, selecting or clearing
values.
And the visualization itself is now filtered to show only those managers' sales this year for the specified
stores.
If you save your report with this filter, report readers can interact with the District Manager filter in
Reading view, selecting or clearing values.
If you save your report with the filter, report readers can interact with the filter in Reading view, selecting
or clearing values.
Notice that Power BI adds a back arrow to the report page. Selecting the back arrow returns users to the
originating report page -- the page they were on when they opted to drillthrough. The back arrow only
works in Reading view.
3. Select Drillthrough > Team Executive to drillthrough to the report page named Team Executive. The
page is filtered to show information about the data point from which you right-clicked; in this case
Andrew Ma. Only the field that is in the Drillthrough filters well gets passed through to the drillthrough
report page.
Next steps
Take a tour of the report Filters pane
Filters and highlighting in reports
Interact with filters and highlighting in report Reading view
Change how report visuals cross-filter and cross-highlight each other
More questions? Try the Power BI Community
Save a report in Power BI service and Power BI
Desktop
1/14/2019 • 2 minutes to read • Edit Online
After you make changes to a report in Power BI, you can save it, save it with a new name, or just close it without
saving your changes. Say you open the report, create a visualization, and pin it to your dashboard. If you close it
now without saving your changes, the tile remains on the dashboard, but the visualization isn't saved in the
report. When you click that tile on the dashboard, the report opens, but the visualization doesn't exist in the
report.
TIP
Pay attention to which workspace is active so you can find the saved report. The report is saved to the active workspace.
To save a report:
1. If you attempt to navigate away from a report, and the report has changes, Power BI will display a prompt.
2. Another way to save the report is to select FILE > Save or Save As. If you are in Reading view you will
only see the option to Save As.
3. If this is a new report (Save), or a new version of an existing report (Save as), give it a descriptive name.
The report will be added to the active workspace.
Next steps
Read more about reports in Power BI
Power BI - Basic Concepts
More questions? Try the Power BI Community
Interact with a report in Editing view in Power BI
service
1/14/2019 • 2 minutes to read • Edit Online
Reports can be created and edited in Power BI service and Power BI Desktop. In Power BI service, reports can
be created and edited in Editing view. And in Power BI Desktop, reports can be created and edited in Report
view. This article covers Editing view in Power BI service.
Power BI service has two different modes for interacting with reports -- Reading view for report consumers
and Editing view for report owners and creators. A Power BI Pro license is required for sharing reports as well
as for editing reports created by others. If you don't have a Pro license, you'll still be able to create reports, but
you won't be able to share them.
In report Editing view, you have lots of flexibility in both exploring and designing a report. All the Reading view
functionality is available -- plus lots more. Editing view is only available to the person who created the report or
to colleagues who co-own a report as a member or admin of an app workspace.
Next steps
Back to Reading view and Editing view in Power BI service
More questions? Try the Power BI Community
Analyze in Excel
3/28/2019 • 5 minutes to read • Edit Online
There are times when you may want to use Excel to view and interact with a dataset that you have Power BI. With
Analyze in Excel, you can do just that, and access PivotTable, chart, and slicer features in Excel based on the
dataset that exists in Power BI.
Requirements
There are a few requirements for using Analyze in Excel:
Analyze in Excel is supported for Microsoft Excel 2010 SP1 and later.
Excel PivotTables do not support drag-and-drop aggregation of numeric fields. Your dataset in Power BI must
have pre-defined measures.
Some organizations may have Group Policy rules that prevent installing the required Analyze in Excel
updates to Excel. If you’re unable to install the updates, check with your administrator.
Analyze in Excel requires that the dataset be in Power BI Premium or that the user have a Power BI Pro
license. To learn more about the differences in functionality between license types, take a look at Power BI
features by license type.
Users can connect to datasets through Analyze in Excel if they have read permission on the underyling dataset.
A user could have this in several ways, such as being a member of the workspace containing the dataset,
having a report or dashboard shared to them that uses the dataset, or having permission to an app that
contains the dataset.
When you open the file in Excel, an empty PivotTable and Fields list appears with the tables, fields, and measures
from the Power BI dataset. You can create PivotTables, charts, and analyze that dataset just as you would work
with a local dataset in Excel.
The .ODC file has an MSOLAP connection string that connects to your dataset in Power BI. When you analyze or
work with the data, Excel queries that dataset in Power BI and returns the results to Excel. If that dataset connects
to a live data source using DirectQuery, Power BI queries the data source and returns the result to Excel.
Analyze in Excel is very useful for datasets and reports that connect to Analysis Services Tabular or
Multidimensional databases, or from Power BI Desktop files or Excel workbooks with data models that have
model measures created using Data Analysis Expressions (DAX).
NOTE
Be sure to check Don’t show this again in the Install Excel updates dialog. You only need to install the update once.
If you do need to install the Excel updates for Analyze in Excel again, you can download the update from the
Download icon in Power BI, as shown in the following image.
Sign in to Power BI
Although you’re signed in to Power BI in your browser, the first time you open a new .ODC file in Excel you may
be asked to sign in to Power BI with your Power BI account. This authenticates the connection from Excel to Power
BI.
Users with multiple Power BI accounts
Some users have multiple Power BI accounts, and those users may encounter a situation where they're logged
into Power BI with one account, but the account that has access to the dataset being used in Analyze in Excel is a
different account. In those situations, you may get a Forbidden error or a sign-in failure when attempting to
access a dataset that's being used in an Analyze in Excel workbook.
You'll be provided an opportunity to sign in again, at which time you can sign in with the Power BI account that
has access to the dataset being accessed by Analyze in Excel. You can also select Profile from the Power BI
ribbon tab in Excel, which identifies which account you're currently logged in with, and provides a link that lets you
sign out (and subsequently, sign in with a different account).
NOTE
Administrators for Power BI tenants can use the Power BI Admin Portal to disable the use of Analyze in Excel with on-
premises datasets housed in Analysis Services (AS) databases. When that option is disabled, Analyze in Excel is disabled for
AS databases, but continues to be available for use with other datasets.
Analyze away
Now that Excel has opened and you have an empty PivotTable, you're ready to do all sorts of analysis with your
Power BI dataset. Just as with other local workbooks, with Analyze with Excel you can create PivotTables, charts,
add data from other sources, and so on. And of course, you can create different worksheets with all sorts of views
into your data.
NOTE
It's important to know that using Analyze in Excel exposes all detail-level data to any users with permission to the dataset.
Save
You can save this Power BI dataset connected workbook just like any other workbook. However, you cannot
publish or import the workbook back into Power BI because you can only publish or import workbooks into
Power BI that have data in tables, or that have a data model. Since the new workbook simply has a connection to
the dataset in Power BI, publishing or importing it into Power BI would be going in circles!
Share
Once your workbook is saved, you can share it with other Power BI users in your organization.
When a user with whom you’ve shared your workbook opens the workbook, they’ll see your PivotTables and data
as they appeared when the workbook was last saved, which may not be the latest version of the data. To get the
latest data, users must use the Refresh button on the Data ribbon. And since the workbook is connecting to a
dataset in Power BI, users attempting to refresh the workbook must sign into Power BI and install the Excel
updates the first time they attempt to update using this method.
Since users will need to refresh the dataset, and refresh for external connections is not supported in Excel Online,
it’s recommended that users open the workbook in the desktop version of Excel on their computer.
Troubleshooting
There may be times when using Analyze in Excel that you get an unexpected result, or the feature doesn't work as
you expected. This page provides solutions for common issues when using Analyze in Excel
Tips and tricks for creating reports in Power BI
Desktop and Power BI service
2/13/2019 • 18 minutes to read • Edit Online
To get the most out of your data, sometimes you need a little extra help. We’ve put together some tips & tricks you
can use when creating reports in the Microsoft Power BI Desktop, Power BI service, and in Microsoft Excel 2016,
or Excel 2013 Pro-Plus editions with the Power Pivot add-in enabled and Power Query installed and enabled.
Power BI Desktop
Learning to use the Query Editor
Query Editor in Power BI Desktop is similar to the Power Query add-in capability in Excel 2013. While there are
several helpful articles in Power BI Support, you might also want to review the Power Query documentation on
support.office.com to get started.
You can get additional information from the Power Query Resource Center.
You can also view the Formula Reference.
Data types in Query Editor
When using Query Editor in Power BI Desktop to load data, we do a best guess data type detection. When using
formulas, sometimes data type settings on columns are not preserved. You should check the data type of columns
are correct after doing the following operations: Load data initially to the query tab, First Row as Header, Add
column, Group by, Merge, Append, and before pressing loading the data for the first time.
One key thing to remember: italics in the data grid do not mean the data type is correctly set, it just means the data
is not considered as Text.
Reference queries in the Query Editor
In Query Editor's navigator in Power BI Desktop, when you right click one of the queries, an option for "Reference"
is available. This is useful for the following reason:
When you use files as the data source for a query, the absolute path to the file is stored in the query. When
sharing or moving Power BI Desktop file or Excel workbook, you'll save time when you update the paths by
updating it just once rather than the paths.
By default all queries load to either an Excel worksheet or the data model (or both). Some queries are intermediary
steps and not intended for end-users. When referencing queries as mentioned above, this is often the case. You can
control query loading behavior by right clicking the query in the navigator and toggling the "Enable Load" option.
When "Enable Load" does not have a checkmark next to it, the query is still be available in the query tab and you
can use it with other queries. It is especially useful in combination with Merge, Append, and Reference transforms.
However since the query results are not loaded to the data model, the query will not clutter your reports field list
or your data model.
Scatter charts need a point identifier
Taking an example of a simple table of Temperatures and the Time the reading was taken. If you plot this directly
on a scatter chart, Power BI aggregates all the values into a single point. To show individual data points you'll to
add a field to the Details bucket in the field well. A simple way to do this in Power BI Desktop is on the query tab by
using the "Add index column" option on the "Add Column" ribbon.
Reference lines in your report
You can use a calculated column in Power BI Desktop to define a reference line. Identify the table and column on
which you want to create a reference line. Select "New Column" in the ribbon and, in the formula bar, type the
following formula:
This calculated column will return the value 100 regardless of where it is used. Your new column will show up in
the Field List. Add the Target Value calculated column to a line chart to show how any series relates to that specific
reference line.
Sort by another column
When you use a categorical (string) value in Power BI for chart axes or in a slicer or filter, the default order is
alphabetical. If you need to override this order, for example for things like days of the week or months, then you can
tell Power BI Desktop to sort by a different column.To learn more, see Sort by Column in Power BI Desktop.
Building maps more easily with hints to Bing
Power BI integrates with Bing to provide default map coordinates (a process called geo-coding) so it's easier for
you to create maps. Bing uses some algorithms and hints to try to get the right location, but it's a best guess. To
increase the likelihood of correct geo-coding, you can use the following tips:
When you create a map, you're often looking to plot countries, states, and cities. In Power BI Desktop, if you name
columns after the geographic designation it will help Bing guess what you're looking to display. For example, if you
have a field of US state names such as "California" and "Washington", Bing might return the location of
Washington, DC instead of Washington State for the word "Washington". Naming the column "State" will improve
the geocoding. The same goes for columns named "Country" and "City".
Some designations are ambiguous when considered in the context of multiple countries/regions. In some cases
what one country/region considers a 'state' is treated as a 'province' or a 'county' or some other designation. You
can increase the accuracy of geo-coding by building columns that append multiple fields together and use those for
plotting data locations. An example would be instead of passing only "Wiltshire", you can pass "Wiltshire, England"
to get a more accurate geo-coding result.
You can always provide specific latitude and longitude locations in Power BI service or Desktop. When you do this,
you'll also need to pass a Location field, otherwise the data is aggregated by default, so the location of the latitude
and longitude may not match what you expected.
Categorizing geographic fields to hint Bing's geocoding
Another way to ensure fields are correctly geocoded is by setting the Data Category on the data fields. In Power BI
Desktop, select the desired table, go to the Advanced ribbon and then set the Data Category to Address, City,
Continent, Country/Region, Country, Postal Code, State or Province. These data categories help Bing to correctly
encode the data. To learn more, see Data categorization in Power BI Desktop.
Better geocoding with more specific locations
Sometimes, even setting the data categories for mapping is insufficient. Build a more specific location like a street
address using the Query Editor in Power BI Desktop. Use the Add Column feature to build a custom column. Then
build the desired location as follows:
Then use this resulting field in the map visualizations. This is very useful for building street addresses from
shipping address fields that are common in data sets. One note is that the concatenation only works with text fields.
If needed, convert the street number to a text data type before using it to build an address.
Histograms in the query stage
There are several ways to build histograms in Power BI Desktop, we'll start with the simplest and go from there:
Simplest Histograms - Determine which query has the field you want to build a histogram on. Use the "Reference"
option for the query to create a new query and name it "FieldName Histogram". Use the "Group by" option in the
"Transform" ribbon and select the "count rows" aggregate. Ensure the data type is a number for the resulting
aggregate column. Then visualize this data on the reports page. This is fast and easy to build, but doesn't work well
if you have many data points and does not allow brushing across visuals.
Defining buckets to build a histogram - Determine which query has the field you want to build a histogram on. Use
the "Reference" option for the query to create a new query and name it "FieldName". Now define the buckets with
a rule. Use the Add Custom Column option on the Add Column ribbon and build a custom rule. A simple
bucketing rule might look like this:
Ensure the data type is a number for the resulting aggregate column. Now you can use the group by technique
described in Simplest Histogram to achieve the histogram. This option handles more data points but still does not
help with brushing.
Defining a histogram that supports brushing - Brushing is when visuals are linked together so that when a user
selects a data point in one visual other visuals on the report page highlight or filter data points related to the
selected data point. Since we're manipulating data at query time, we will need to create a relationship between
tables and ensure we know which detail item relates to the bucket in the histogram and vice-versa.
Start the process by using the "Reference" option on the query that has the field you want to build a histogram on.
Name the new query "Buckets". For this example let's call the original query "Details". Next remove all columns
except the column you'll use as the bucket for the histogram. Now use the "Remove Duplicates" feature in query,
it's on the right click menu when you select the column, so the remaining values are the unique values in the
column. If you have decimal numbers you can first use the tip for defining buckets to build a histogram to get a
manageable set of buckets. Now, check the data shown in the query preview. If you see blank values or null you'll
need to fix those up before creating a relationship. See "Creating a relationship if my data has null or blank values".
Using this approach can be problematic due to the need to sort. To get the buckets to sort correctly, see "Sorting
order: make categories appear in the order I want".
NOTE
It's useful to think about the sort order before building any visuals.
Next step in the process is to define a relationship between the "Buckets" and "Details" queries on the buckets
column. In Power BI Desktop, click Manage Relationships in the ribbon. Create a relationsship where Buckets is
in the left table and Details in on the right table and select the field you're using for the histogram.
Last step is to create the histogram. Drag the Bucket field from the "Buckets" table. Remove the default field from
the resulting column chart. Now from the "Details" table drag the histogram field into the same visual. In the field
well, change the default aggregate to Count. The result is the histogram. If you create another visual like a treemap
from the Details table, select a data point in treemap to see the histogram highlight and show the histogram for the
selected data point relative to the trend for the entire dataset.
Histograms
In Power BI Desktop, you can use a calculated field to define a Histogram. Identify the table and column on which
you want to create a histogram. In the calculation area, type the following formula:
Frequency:=COUNTROWS (<Column Name>)
Save your changes and return to your report. Add the <Column Name> and the Frequency to a table then convert
to a bar chart. Ensure the <Column Name> is on the x-axis and the calculated field Frequency is on the y-axis.
Tips and tricks for creating relationships in Power BI Desktop
Often when loading detail data sets from multiple sources, issues like null values, blank values, or duplicate values
prevent you from creating relationships.
Let's look at an example:
If we load data sets from of active customer support requests and another dataset of work items that have schemas
as follows:
When we want to track all incidents and workitems that relate to a specific a CustomerName we cannot simply
create a relationship between these two datasets. Some WorkItems may not be related to a CustomerName, so
that field would be blank or NULL. There might be multiple records in WorkItems and CustomerIncidents for any
given CustomerName.
Creating relationships in Power BI Desktop when the data has null or blank values
Often data sets contain columns with null or blank values. This can cause problems when trying to use
relationships. You have essentially two options for addressing the issues. You can remove the rows that have null or
blank values. You can do this using either the filter feature in the query tab or if you're merging queries, select the
"keep only matching rows" option. Alternatively, you can replace the null or blank values with values that work in
relationships, typically strings like "NULL" and "(Blank)". There's no right approach here - Filtering out rows at the
query stage removes rows and can affect summary statistics and calculations. The latter approach preserves that
data rows but can make unrelated rows appear related in the model leading to miscalculations. If you adopt the
latter solution ensure you use filters at the View/Chart where appropriate to ensure you're getting accurate results.
Most importantly, evaluate which rows are kept/removed and understand overall impact on the analysis..
Creating relationships in Power BI Desktop when the data has duplicate values
Often when loading detailed datasets from multiple sources, duplicate data values prevent you from creating
relationships. You can overcome this by creating a dimension table with the unique values from both data sets.
Let's look at an example:
If we load datasets from of active customer support requests and another dataset of work items that have schemas
as follows:
When we want to track all incidents and workitems that relate to a specific CustomerName we cannot simply
create a relationship between these two data sets. Some WorkItems may not be related to a CustomerName, so
that field would be blank or NULL. If you have any blank values or null in the CustomerNames table, you might
still not be able to create a relationship - see Creating relationships if my data has null or blank values. There might
be multiple WorkItems and CustomerIncidents for a single CustomerName.
To create a relationship in this case, we need to create a logical dataset of all the CustomerNames across the two
datasets. In the Query tab, you can use the following sequence to create the logical dataset:
1. Duplicate both queries, naming the first Temp and the second CustomerNames.
2. In each query, remove all columns except the CustomerName column
3. In each query, use Remove Duplicate.
4. In the CustomerNames query, select the Append option in the ribbon, select the query Temp.
5. In the CustomerNames query, select Remove Duplicates.
Now you have a dimension table that you can use to relate to CustomerIncidents and WorkItems that contains all
the values of each.
Patterns to jump start your use of the Query Editor
Query Editor is very powerful in how it can manipulate data to shape and clean it so it is ready to be visualized or
modeled. There are a few patterns you should be aware of.
Temporary columns can be deleted after computing a result
Often you need to build a calculation in Power BI Desktop that transforms data from multiple columns into single
new column. This can be complex. One easy way to overcome the problem is do decompose the operation into
steps. Start by duplicating the initial columns. Then build the steps a temporary columns. Then create the a column
for the final result. You can then delete the temporary columns so the final dataset is not cluttered. This is possible
because the query tab executes steps in order.
Duplicate or Reference queries followed by merge to original query
Sometimes it's useful to compute summary statistics for a dataset. The easy way to do this is to duplicate or
reference the query in the query tab. Then use Group by to compute the summary statistics. Summary statistics
help you normalize the data in the original data so they're more comparable as in . This is especially useful for
comparing individual values to the whole. To do this go to the original query, and select the merge option. Then
merge the data from the summary statistics query matching on the appropriate identifiers. Now you're ready to
normalize the data as needed for your analysis.
Using DAX for the first time
DAX is the calculations formula language in Power BI Desktop. It's optimized for BI analytics. It's a little different
than what you might be familiar with if you've only used a SQL like query language. There are very good resources
online and in literature for learning DAX.
Learn DAX Basics in Power BI Desktop
Data Analysis Expressions (DAX) Reference
DAX Resource Center
Next steps
Power BI - Basic Concepts
Reports in Power BI
More questions? Try the Power BI Community
Work with aggregates (sum, average, etc.) in the
Power BI service
1/14/2019 • 7 minutes to read • Edit Online
What is an aggregate?
Sometimes you want to mathematically combine values in your data. The mathematical operation could be sum,
average, maximum, count, etc. When you combine values in your data, it is called aggregating. The result of that
mathematical operation is an aggregate.
When Power BI service and Power BI Desktop create visualizations, they may aggregate your data. Often the
aggregate is just what you need, but other times you may want to aggregate the values in a different way. For
example, a sum versus an average. There are several different ways to manage and change the aggregate being
used in a visualization.
First, let's take a look at data types because the type of data determines how, and if, it can be aggregated.
Types of data
Most datasets have more than one type of data. At the most basic level, the data is either numeric or it is not.
Numeric data can be aggregated using a sum, average, count, minimum, variance, and much more. Even textual
data, often called categorical data, can be aggregated. If you try to aggregate a categorical field (by placing it in a
numeric only bucket like Values or Tooltips), Power BI will count the occurrences of each category or count the
distinct occurrences of each category. And special types of data, like dates, have a few of their own aggregate
options: earliest, latest, first, and last.
In the example below:
Units Sold and Manufacturing Price are columns that contain numeric data
Segment, Country, Product, Month, and Month Name contain categorical data
When creating a visualization in Power BI, numeric fields will be aggregated (the default is sum) over some
categorical field. For example, "Units Sold by Product, "Units Sold by Month" and "Manufacturing Price by
Segment. Some numeric fields are referred to as measures. It's easy to identify measures in the Power BI report
editor -- measures are shown with the ∑ symbol in the Fields list. For more information, see The report editor...
take a tour.
Why don't aggregates work the way I want them to?
Working with aggregates in Power BI service can be confusing; maybe you have a numeric field and Power BI
won't let you change the aggregation. Or maybe you have a field, like a year, and you don't want to aggregate it,
you just want to count the number of occurrences.
Most often, the source of the problem is how the field was defined in the dataset. Maybe the field is defined as text
and that explains why it can't be summed or averaged. Unfortunately, only the dataset owner can change the way
a field is categorized. So if you have owner permissions to the dataset, either in Desktop or the program that was
used to create the dataset (for example, Excel), you can fix this problem. Otherwise, you'll need to contact the
dataset owner for help.
To help you navigate the confusion, we have a special section at the end of this article called Considerations and
troubleshooting. If you don't find your answer there, post your question on the Power BI Community forum for
a quick response directly from the Power BI team.
2. In the Visualizations pane, right-click the measure, and select the aggregate type you need. In this case,
we're selecting Average. If you don't see the aggregation you need, see "Considerations and
troubleshooting" below.
NOTE
The options available in the dropdown will vary depending on 1) the field selected and 2) the way that field was
categorized by the dataset owner.
USA 100
UK 150
Canada 100
Germany 125
France
Japan 125
Australia 150
2. If we change the aggregation from the default Do not summarize to Count (Distinct), Power BI counts
the number of different products. In this case, there are 4.
3. And if we change the aggregation to Count, Power BI counts the total number. In this case, there are 7
entries for Product.
4. By dragging the same field (in this case Product) into the Values well, and leaving the default aggregation
Do not summarize, Power BI breaks down the count by product.
Q: Why can't I aggregate text fields for SQL Server Analysis Services (SSAS ) data sources?
A: Live connections to SSAS multidimensional models don't allow any client-side aggregations, including first,
last, avg, min, max, and sum.
Q: I have a scatter chart and I want my field to not aggregate. How?
A: Add the field to the Details bucket and not to the X or Y axes buckets.
Q: When I add a numeric field to a visualization, most of them default to sum but some default to average or
count or some other aggregation. Why isn't the default aggregation always the same?
A: Dataset owners have the option to set the default summarization for each field. If you are a dataset owner,
change the default summarization in the Modeling tab of Power BI Desktop.
Q: I'm a dataset owner and I want to ensure that a field is never aggregated.
A: In Power BI Desktop, in the Modeling tab, set Data type to Text.
Q: I do not see Do not summarize as an option in my dropdown.
A: Try removing the field and adding it back in.
More questions? Try the Power BI Community
Monitor usage metrics for Power BI dashboards and
reports
3/18/2019 • 11 minutes to read • Edit Online
If you create dashboards and reports, usage metrics help you understand their impact. When you run either
dashboard usage metrics or report usage metrics, you discover how those dashboards and reports are being used
throughout your organization; what is being used, by whom, and for what purpose.
NOTE
Usage metrics track usage of reports that are embedded in SharePoint Online. However, usage metrics don't track
embedding of dashboards and reports via the “user owns credentials” or “app owns credentials” flow. Usage metrics also
don't track usage of reports embedding via publish to web.
These usage metrics reports are read-only. However, you can personalize a usage metrics report by using "Save
as." This creates a brand new dataset and converts the read-only report to a full-featured Power BI report that you
can edit. Not only does the personalized report contain metrics for the selected dashboard or report, but by
removing the default filter, you now have access to usage metrics for all dashboards or all reports in the selected
workspace. And you can even see the names of your end users.
3. The first time you do this, Power BI creates the usage metrics report and lets you know when it's ready.
4. To open the results, select View usage metrics.
Usage metrics are a powerful ally as you work to deploy and maintain Power BI dashboards and reports.
Wondering which pages of your report are most useful, and which ones you should phase out? Slice by
Report page to find out. Wondering if you should build a mobile layout for your dashboard? Slice by
Platforms to discover how many users are accessing your content via the mobile apps vs. via web browser.
5. Optionally, hover over a visualization and select the pin icon to add the visualization to a dashboard. Or,
from the top menubar, select Pin Live Page to add the entire page to a dashboard. From the dashboard
you can monitor the usage metrics more-easily or share them with others.
NOTE
If you pin a tile from a usage metrics report to a dashboard, that dashboard cannot be added to an app or content
pack.
Distribution method slicer yes yes How users got access to the
content. There are 3 possible
methods: users can access
the dashboard or report by
being members of an app
workspace, by having the
content shared with them,
or by installing a content
pack/app. Note that views
through an app are counted
as "content pack."
Use Save as to convert the usage metrics report to a full-featured Power BI report that can be customized and
shared. Once you’ve created a personalized copy, you’ll get full access to the underlying dataset, allowing you to
customize the usage metrics report to your specific needs. You can even use Power BI Desktop to build custom
usage metrics reports using the live connection to Power BI service feature.
Better yet, the underlying dataset includes the usage details for all dashboards or reports in the workspace. This
opens up yet another world of possibilities. You could, for example, create a report which compares all dashboards
in your workspace based on usage. Or, you could create a usage metrics dashboard for your Power BI app by
aggregating usage across all the content distributed within that app. See remove the Page level filter below.
What is created when using "Save as"?
When Power BI creates the full-featured report, it also creates a new dataset made up of all the dashboards or
all the reports contained in the current workspace that have been accessed in the last 90 days. For example,
say you have a workspace named "Sales" and it contains three dashboards and two reports, and you create a
usage metrics report on the "Northeast" dashboard. And then you use Save as to personalize and convert it to a
full-featured report. The dataset for that new report contains the usage metrics not only for that one dashboard
named "Northeast" but for all three dashboards in the "Sales" workspace. By default, the report displays data for
the "Northeast" dashboard and you'll need to remove a filter (single click) to display data for all three dashboards.
Create a copy of the usage report using "Save as"
When you create a copy using "Save as" (personalize), Power BI converts the read-only pre-built report to a full-
featured report. At first glance, it looks exactly the same. However, you can now open the report in Editing view,
add new visualizations, filters, and pages, modify or delete existing visualizations, and so much more. Power BI
saves the brand new report and dataset in the current workspace. In the example below, the current workspace is
mihart.
1. From the pre-built usage metrics report, select File > Save As. Power BI converts the usage metrics report
into a full-featured Power BI report. This is called a personalized usage metrics report. The personalized
usage report and dataset are saved in the current workspace which is named *mihart.
2. Open the report in Editing view and interact with it as you would with any other Power BI report. For
example, add new pages and build new visualizations, add filters, format the fonts and colors, etc.
3. Alternately, start with the new dataset and build a report from scratch.
4. The new report is saved in the current workspace (mihart) and also added to the Recent content list.
Remove the filter to see all the usage metrics data in the workspace
To see the metrics for all the dashboards or for all the reports in the workspace, you'll have to remove a filter. By
default, the personalized report is filtered to display metrics for only the dashboard or report that was used to
create it.
If, for example, you used the dashboard named "European sales" to create this new personalized report, only
usage data from the "European sales" dashboard displays. To remove the filter, and enable data from all the
dashboards in that workspace:
1. Open the personalized report in Editing view.
2. In the Filters pane, locate the Report level filters bucket and remove the filter by selecting the "x".
Now your personalized report displays metrics for the entire workspace.
Admin controls for usage metrics - for Power BI administrators
Usage metrics reports are a feature that the Power BI or Office 365 administrator can turn on or off.
Administrators have granular control over which users have access to usage metrics; they are On by default for all
users in the organization.
1. Open the Admin portal by selecting the gear icon in the top-right-corner of Power BI service and choosing
Admin portal.
2. From the Admin portal, select Tenant settings and choose Usage metrics for content creators.
By default, per-user data is enabled for usage metrics, and content creator account information is included in the
metrics report. If you don’t want to include this information for some or all users, disable the feature for specified
security groups or for an entire organization. Account information then shows in the report as Unnamed.
When disabling usage metrics for their entire organization, admins can use the delete all existing usage
metrics content option to delete all existing reports and dashboard tiles that were built using the usage metrics
reports and datasets. This option removes all access to usage metrics data for all users in the organization who
may already be using it. Be careful, because deleting existing usage metrics content is irreversible.
Next steps
Favorite a dashboard
More questions? Try the Power BI Community
Create a QR code for a report in Power BI to use in
the mobile apps
1/14/2019 • 2 minutes to read • Edit Online
QR codes in Power BI can connect anything in the real world directly to related BI information no navigation or
search needed.
You can create a QR code in the Power BI service for any report, even for a report you can't edit. Then you place
the QR code in a key location. For example, you could paste it in an email, or print it out and paste it in a specific
location.
Colleagues you've shared the report with can scan the QR code for access to the report, right from their mobile
device. They can use either the QR code scanner located in the Power BI app, or any other QR scanner installed on
their device. They can also scan a report QR code with the Power BI for Mixed Reality app.
4. From here you can scan the QR code or download and save it so you can:
Add it to an email or other document, or
Print it and place it in a specific location.
Next steps
Connect to Power BI data from the real world with the mobile apps
Scan a Power BI QR code from your mobile device
Create a QR code for a tile
Questions? Try asking the Power BI Community
Export a report from Power BI service to Desktop
(Preview)
1/14/2019 • 2 minutes to read • Edit Online
In Power BI Desktop, you can export (also referred to as download) a report to Power BI service by saving the
report and selecting Publish. You can also export in the other direction as well, and download a report from Power
BI service to Desktop. The extension for files being exported, in either direction, is .pbix.
There are a few limitations and considerations to keep in mind, which are discussed later in this article.
NOTE
The report must have been created using Power BI Desktop after November 23, 2016 - and updated since then - to
be able to download the report. If it hasn't, the Download Report menu option in Power BI service is grayed out.
3. While the .pbix file is being created, a status banner displays the progress. When the file is ready, you'll be
asked to open or save the .pbix file. The name of the file matches the title of the report.
You now have the option of opening the .pbix file in either Power BI service (app.powerbi.com) or Power BI
Desktop.
4. To immediately open the report in Desktop, select Open. To save the file to a specific location, select Save >
Save-As. If you haven't already, install Power BI Desktop.
When you open the report in Desktop, you may see a warning message letting you know that some features
available in the Power BI service report may not be available in Desktop.
5. The report editor in Desktop looks very much like the report editor in Power BI service.
Next steps
View the Guy in a Cube one-minute video about this feature:
https://www.youtube.com/embed/ymWqU5jiUl0
Also, here are some additional articles that can help you learn to use Power BI service:
Reports in Power BI
Power BI - Basic Concepts
Once you get Power BI Desktop installed, the following content can help you get up and running quickly:
Getting Started with Power BI Desktop
More questions? Try the Power BI Community
Filter a report using query string parameters in the
URL
2/1/2019 • 6 minutes to read • Edit Online
When you open a report in Power BI service, each page of the report has its own unique URL. To filter that report
page, you could use the Filters pane on the report canvas. Or you could add query string parameters to the URL
to pre-filter the report. Perhaps you have a report you'd like to show colleagues and you want to pre-filter it for
them. One way to filter it is to start with the default URL for the report, add the filter parameters to the URL, and
then email them the entire new URL.
Filter on a field
Let’s assume that the URL to our report is the following.
And we see in our map visualization (above) that we have stores in North Carolina.
NOTE
This example is based on the Retail Analysis sample.
To filter the report to show data only for stores in "NC" (North Carolina), append the URL with the following;
?filter=Store/Territory eq 'NC'
NOTE
NC is a value stored in the Territory field of the Store table.
Our report is filtered for North Carolina; all the visualizations on the report page show data for only North
Carolina.
Filter on multiple fields
You can also filter on multiple fields by adding additional parameters to your URL. Let's go back to our original
filter parameter.
?filter=Store/Territory eq 'NC'
To filter on additional fields, add an 'and' and another field in the same format as above. Here is an example.
https://www.youtube.com/embed/0sDGKxOaC8w?showinfo=0
Operators
Power BI supports many operators in addition to 'and'. The table below lists those operators along with the
content type they support.
** When using in, the values to the right of in can be a comma-separated list enclosed in parentheses, or a single
expression that returns a collection.
Numeric data types
A Power BI URL filter can include numbers in the following formats.
integer 5
long 5 L or 5 l
Table_x0020_Name/Column_x002B_Plus eq 3
https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?
filter=Store/TerritoryChain eq 'NC – Lindseys'
Next steps
Pin a visualization to a dashboard
Sign up for a free trial
More questions? Try asking the Power BI Community
Power BI performance best practices
1/14/2019 • 9 minutes to read • Edit Online
This article offers guidance for building fast and reliable reports in Power BI.
NOTE
When you pin live report tiles a dashboard, they are not served from the query cache – instead, they behave like reports,
and make queries to back-end cores on the fly.
As the name suggests, retrieving the data from the query cache provides better and more consistent performance
than relying on the data source. One way to take advantage of this functionality is to have dashboards be the first
landing page for your users. Pin often used and highly requested visuals to the dashboards. In this way,
dashboards become a valuable “first line of defense”, which provide consistent performance with less load on the
capacity. Users can still click through to the report to dig into the details.
For DirectQuery and live connection, this query cache is updated on a periodic basis by querying the data source.
By default, this happens every hour, though it can be configured in dataset settings. Each query cache update will
send queries to the underlying data source to update the cache. The number of queries generated depends on the
number of visuals pinned to dashboards relying on that data source. Notice that if row -level security is enabled,
queries are generated for each different security context. For example, if you have two different roles that your
users fall into, with two different views of the data, then during query cache refresh, two sets of queries are
generated.
NOTE
Power BI desktop supports connecting to a diagnostics port. The diagnostic port allows for other tools to connect to and
perform traces for diagnostic purposes. Making any changes to the model is not supported! Changes to the model may
lead to corruption and data loss.
Instructions as follows:
1. Install SQL Server Profiler and run Power BI Desktop
SQL Server Profiler is available as part of SQL Server Management Studio.
2. Determine the port being used by Power BI Desktop
Run the command prompt or PowerShell with administrator privileges, and use netstat to find the port that
Power BI Desktop is using for analysis:
> netstat -b -n
The output should be a list of applications and their open ports, for example:
TCP [::1]:55786 [::1]:55830 ESTABLISHED
[msmdsrv.exe]
Look for the port used by msmdsrv.exe, and write it for later use. In this case, you use port 55786.
3. Connect SQL Server Profiler to Power BI Desktop
Start SQL Server Profiler from the Start menu
File > New Trace
Server Type: Analysis Services
Server name: localhost:[port number found above]
At the next screen, select Run
Now the SQL Profiler is live, and actively profiling the queries that Power BI Desktop is sending.
As queries are executed, you can see their respective durations and CPU times – using this information,
you can determine which queries are the bottlenecks.
Through the SQL Profiler, you can identify the queries, which are taking up the longest CPU time, which in turn
are likely the performance bottlenecks. The visuals, which execute those queries should be a focal point of
continued optimization.
Network latency
Network latency can impact report performance by increasing the time required for requests to reach the Power BI
service, and for responses to be delivered. Tenants in Power BI are assigned a specific region. You can view your
tenant’s “home” region by navigating to powerbi.com, selecting?** in the top right and then About Power BI.
When users from a tenant access the Power BI service, their requests are always routed to this region. Once the
requests reach the Power BI service, the service may then send additional requests – for example, to the underlying
data source or the gateway – which are also subject to network latency.
Tools such as Azure Speed Test can provide an indication of network latency between the client and the Azure
region. In general, to minimize the impact of network latency, strive to keep data sources, gateways, and your
Power BI cluster as close as possible. If network latency is an issue, you can try locating gateways and data sources
closer to your Power BI cluster by placing them on virtual machines.
To further improve network latency, consider using Azure ExpressRoute, which is able of creating faster, more
reliable network connections between your clients and Azure datacenters.
Next steps
Planning a Power BI Enterprise Deployment, with all-around guidance on large-scale Power BI deployments
DirectQuery in SQL Server 2016 Analysis Services
[YouTube] Building Fast and Reliable Reports in Power BI
[YouTube] Power BI Enterprise Deployments
Get started with Power BI Q&A
1/14/2019 • 2 minutes to read • Edit Online
Sometimes the fastest way to get an answer from your data is to ask a question using natural language. In this
quickstart we'll look at two different ways of creating the same visualization: first, building it in a report and,
second, asking a question with Q&A. We'll use Power BI service, but the process is almost identical using Power BI
Desktop.
To follow along, you must use a report that you can edit, so we'll use one of the samples available with Power BI.
3. Open the report in Editing View by selecting Edit Report. If you aren't the owner of a report, you don't
have the option to open the report in Editing view.
4. Select the area chart and review the settings in the Fields pane. The report creator built this chart by
selecting these three values (Time > FiscalMonth, Sales > This Year Sales, Sales >Last Year Sales
>Value) and organizing them in the Axis and Values wells.
Create the same visual with Q&A
How would we go about creating this same line chart using Q&A?
Next steps
Q&A in Power BI
Make your data work well with Q&A in Power BI
More questions? Try the Power BI Community
Tutorial: How to use Q&A to create visualizations and
build reports
1/14/2019 • 5 minutes to read • Edit Online
The Q&A overview introduced you to Power BI Q&A and made the distinction between consumers (have
dashboards and reports shared with them) and creators (own the underlying reports and datasets). The first part
of this tutorial is designed primarily for people consuming dashboards using Power BI service. And the second
part is designed for people creating reports using either Power BI service or Power BI Desktop. Q&A and Power
BI mobile and Q&A with Power BI Embedded are covered in separate articles.
Q&A is interactive and even fun, and, more often than not, one question will lead to many others as the
visualizations reveal interesting paths to pursue. Watch Amanda demonstrate using Q&A to create visualizations,
dig into those visuals, and pin them to dashboards.
https://www.youtube.com/embed/qMf7OLJfCz8?list=PL1N57mwBHtN0JFoKSR0n-tBkUJHeMP2cP
The Q&A question box is located in the upper-left corner of your dashboard, and this is where you type your
question using natural language. Q&A recognizes the words you type and figures out where (which dataset) to
find the answer. Q&A also helps you form your question with auto-completion, restatement, and other textual and
visual aids.
The answer to your question is displayed as an interactive visualization and updates as you modify the question.
1. Open a dashboard and place your cursor in the question box. Even before you start typing, Q&A displays a
new screen with suggestions to help you form your question. You'll see the names of the tables in the
underlying dataset(s) and may even see complete questions listed if the dataset owner has created featured
questions,
You can always choose one of these questions as a starting point and continue to refine the question to find
the specific answer you are looking for. Or, use a table name to help you word a new question.
2. Select from the dataset options or begin typing your own question and select from the dropdown
suggestions.
3. As you type a question, Q&A picks the best visualization to display your answer; and the visualization
changes dynamically as you modify the question.
4. When you type a question, Power BI looks for the best answer using any dataset that has a tile on that
dashboard. If all the tiles are from datasetA, then your answer will come from datasetA. If there are tiles
from datasetA and datasetB, then Q&A will search for the best answer from those 2 datasets.
TIP
So be careful, if you only have one tile from datasetA and you remove it from your dashboard, Q&A will no longer
have access to datasetA.
5. When you're happy with the result, pin the visualization to a dashboard by selecting the pin icon in the top
right corner. If the dashboard has been shared with you, or is part of an app, you won't be able to pin.
Service
2. A Q&A question box displays on your report canvas. In the example below, the question box displays on
top of another visualization. This is fine, but it might be better to add a blank page to the report before
asking a question.
3. Place your cursor in the question box. As you type, Q&A displays suggestions to help you form your
question.
4. As you type a question, Q&A picks the best visualization to display your answer; and the visualization
changes dynamically as you modify the question.
5. When you have the visualization you like, select ENTER. To save the visualization with the report, select File
> Save.
6. Interact with the new visualization. It doesn't matter how you created the visualization -- all the same
interactivity, formatting, and features are available.
If you've created the visualization in Power BI service, you can even pin it to a dashboard.
Next steps
Back to Q&A in Power BI
Tutorial: Use Q&A with the Retail Sales sample
Tips for asking questions in Q&A
Prepare a workbook for Q&A
Prepare an on-premises dataset for Q&A Pin a tile to the dashboard from Q&A
How to make your Excel data work well with Q&A in
Power BI
1/30/2019 • 2 minutes to read • Edit Online
If you are a person who creates data models or builds Excel workbooks that will be used with Power BI, read on...
In Power BI, Q&A can search structured data and choose the right visualization for your question -- that's what
makes it a compelling tool to use.
Q&A can work on any uploaded Excel file that has tables, ranges, or contains a PowerPivot model, but the more
optimizations and data cleaning you do, the more robust Q&A performance is. If you plan on sharing reports and
dashboards based on your dataset, you'll want your colleagues to have an easy time asking questions and getting
quality answers.
How Q&A works with Excel
Q&A has a set of core natural language understanding abilities that work across your data. It has context-
dependent keyword search for your Excel table, column, and calculated field names. It also has built-in knowledge
for how to filter, sort, aggregate, group, and display data.
For example, in an Excel table named “Sales”, with columns “Product”, “Month”, “Units Sold”, “Gross Sales”, and
“Profit”, you could ask questions about any of those entities. You could ask to show sales, total profit by month,
sort products by units sold, and many others. Read more about the kinds of questions you can ask, and
visualization types you can specify in a Q&A query.
Prepare an Excel dataset for Q&A
Q&A relies on the names of tables, columns, and calculated fields to answer data-specific questions, meaning what
you call entities in your workbook is important!
Here are some tips for making the most of Q&A in your workbook.
Make sure your data is in an Excel table. Here's how to create an Excel table.
Make sure the names of your tables, columns, and calculated field make sense in natural speech.
For example, if you have a table with sales data, call the table “Sales”. Column names like “Year”, “Product”,
“Sales Rep”, and “Amount” will work well with Q&A.
If your workbook has a Power Pivot data model, you can do even more optimizations. Read more about
Demystifying Power BI Q&A part 2 from our in-house team of natural language experts.
Open the dataset in Power BI Desktop and create new columns, create calculated measures, concatenate
fields to create unique values, classify data by type (e.g., dates, strings, geography, images, URLs), and more.
Next steps
Back to Q&A in Power BI
Prepare on-premises datasets for Q&A
Q&A quickstart
Get data (for Power BI)
More questions? Try the Power BI Community
Create featured questions for Power BI Q&A
1/14/2019 • 2 minutes to read • Edit Online
If you own a dataset, you can add your own featured questions to that dataset. And Power BI Q&A will show those
questions to colleagues who use (consume) your dataset. Featured questions give your colleagues ideas about the
types of questions they can ask about the dataset. The featured questions you add are up to you -- add popular
questions, questions that display interesting results, or questions that may be hard to phrase.
Watch Will add some featured questions to Power BI Q&A and then use those featured questions to explore his
dataset. Then follow the step-by-step instructions below the video to try it out yourself.
https://www.youtube.com/embed/E1mIAyEXuF4
NOTE
Q&A featured questions are available for use in the Microsoft Power BI app for iOS on iPads, iPhones, and iPod Touch
devices and Power BI Desktop Q&A Preview. But creating the questions is only available in Power BI service
(app.powerbi.com).
3. Select Settings > Datasets > Retail Analysis sample > Featured Q&A Questions.
4. Select Add a question.
5. Type your question in the text box and select Apply. Optionally, add another question by selecting Add a
question.
6. Navigate back to the Power BI dashboard for Retail Analysis Sample, and place your cursor in the Q&A
question box.
7. The new featured question, Sales by territory as a map, is first in the list. Select it.
8. The answer displays as a filled map visualization.
Next steps
Q&A in Power BI
Tutorial: Introduction to Power BI Q&A
Power BI - Basic Concepts
More questions? Try the Power BI Community
Visualization types in Power BI
2/21/2019 • 3 minutes to read • Edit Online
Power BI visualizations
We'll be adding new visualizations, stay tuned!
And check out the Microsoft AppSource , where you'll find a growing list of custom visuals you can
download and use in your own dashboards and reports. Feeling creative? Learn how to create and add your
own visuals to this community site.
TIP
The Basic Area chart is based on the line chart with the area between the axis and line filled in.
TIP
Bar charts are the standard for looking at a specific value across different categories.
Cards: Multi row
TIP
A Combo chart combines a column chart and a line chart. Choose from Line and Stacked Column and Line and
Clustered Column.
TIP
Doughnut charts are similar to Pie charts. They show the relationship of parts to a whole.
TIP
Displays current status in the context of a goal.
A key influencer chart displays the major contributors to a selected result or value.
For more information, see Key influencer charts in Power BI
KPIs
TIP
Displays progress toward a measurable goal.
TIP
Emphasize the overall shape of an entire series of values, usually over time.
TIP
Used to associate both categorical and quantitative information with spatial locations.
For more information, see Tips and tricks for map visuals.
Maps: ArcGIS maps
TIP
Compares regions by color.
Ribbon charts show which data category has the highest rank (largest value). Ribbon charts are effective at
showing rank change, with the highest range (value) always displayed on top for each time period.
Scatter and Bubble charts
TIP
Display relationships between 2 (scatter) or 3 (bubble) quantitative measures -- whether or not, in which order, etc.
For more information, see High Density Scatter charts in Power BI.
Slicers
TIP
Work well with quantitative comparisons among items where there are many categories.
TIP
Are charts of colored rectangles, with size representing value. They can be hierarchical, with rectangles nested within
the main rectangles.
Waterfall charts
TIP
Waterfall charts show a running total as values are added or subtracted.
Next steps
Visualizations in Power BI reports
The right visual reference from sqlbi.com
Enable Q&A for live connections in Power BI
1/14/2019 • 3 minutes to read • Edit Online
Enable Q&A
Once you have the data gateway set up, connect to your data from Power BI. Either create a dashboard using your
on-premises data, or upload a .pbix file that uses on-premises data. You may also already have on-premises data
in dashboards, reports, and datasets that have been shared with you.
1. In the upper-right corner of Power BI, select the cog icon and choose Settings.
2. Select datasets and choose the dataset to enable for Q&A.
3. Expand Q&A and Cortana, select the checkbox for Turn on Q&A for this dataset and choose Apply.
Next steps
On-premises data gateway
Manage your data source - Analysis Services
Power BI - Basic Concepts
Power BI Q&A Overview
More questions? Try asking the Power BI Community
Quickly find and view your Power BI data using
Cortana for Power BI
1/31/2019 • 5 minutes to read • Edit Online
Use Cortana across your Windows 10 devices to get instant answers to your important business questions. By
integrating with Power BI, Cortana can retrieve key information directly from Power BI dashboards and reports.
All it takes is Windows 10 November 2015 version or later, Cortana, Power BI, and access to at least one dataset.
NOTE
If it doesn't "just work," see the Troubleshooting article for help.
The underlying technology is using Microsoft Azure Search Service. This search service provides extra capabilities
such as smart ranking, error correction, and auto complete.
Both Cortana experiences will exist side-by-side.
NOTE
Before Cortana can look for answers in your Power BI reports, you'll need to enable this feature using the Power BI service
and set up Windows to communicate with Power BI.
2. Once Cortana is ready, type or speak your question into the Cortana search bar. Cortana displays the
available results. If there is a Power BI dashboard that matches the question, it shows up under Best match
or Power BI.
NOTE
At the current time, only English is supported.
5. Now let's use Cortana to search for a report. We'll need to know of a report that has a page with a Cortana
answer card . In this example, a report named "Cortana-New -Stores" has a Cortana answer card page
named "cortana stores".
Type or speak your question into the Cortana search bar. Cortana displays the available results. If there is a
Power BI report page that matches the question, it shows up under Best match or Power BI. And in this
example the .pbix file (and backup) that I used to create the answer card also displays -- under Documents.
6. Select the Cortana stores report page to display it in the Cortana window.
Remember, an answer card is a special type of Power BI report page that was created by a dataset owner.
For more information, see Create a Cortana answer card.
7. But that's not all. Interact with the visualizations on the answer card as you would in Power BI.
For example, select an element on one visualization to cross-filter and highlight the other
visualizations on the answer card.
Or, use natural language to filter the results instead. For example, ask "Cortana stores for Lindseys"
and see the card filtered to only show data for the Lindseys chain.
8. Continue exploring. Scroll to the bottom of the Cortana window and select Open in Power BI.
9. The report page opens in Power BI.
Next steps
Enable the Cortana - Power BI - Windows integration for reports
Enable Cortana to access Power BI reports (and their
underlying datasets)
2/13/2019 • 3 minutes to read • Edit Online
You've read the Introduction to Cortana and Power BI (if not, you might want to read that first and then come
back). And now you want to try it out yourself. Before you can ask natural language questions in Cortana and
find answers from data stored in Power BI reports, there are a few requirements. Specifically, you'll need to do
the following.
NOTE
If you are trying out the Cortana and Power BI dashboard preview, you can skip the rest of this article. There are no setup
requirements for Cortana to be able to search your Power BI dashboards.
In Power BI service
enable one or more datasets for Cortana (reports are built on top of datasets, so Cortana needs access to
those datasets)
In Microsoft Windows
Check that you are running Windows 10 version 1511 or later
Make sure that Power BI and Windows can "talk" to each other. This means connecting your account to
Windows.
3. To the right of the dataset name, select the ellipses (...) > Settings.
4. Select Q&A and Cortana > Allow Cortana to access this dataset > Apply.
NOTE
When a new dataset or Cortana answer card is added to Power BI and enabled for Cortana, it can take up to 30
minutes for results to begin appearing. Logging in and out of Windows 10, or otherwise restarting the Cortana
process in Windows 10, will allow new content to appear immediately.
If you enable a dataset for Cortana, and that dataset is part of a content pack or app you own, you will need to re-
publish for your colleagues to also be able to use it with Cortana.
Scroll to the bottom and select Add a work or school account. Or, from the Accounts page
select Access work or school >Connect.
Cortana will use this work or school account to check Power BI for potential answers to your questions in
Cortana.
Next steps
Create Cortana answer cards in Power BI
Troubleshoot Cortana and Power BI integration issues
More questions? Try the Power BI Community
Generate data insights automatically with Power BI
1/14/2019 • 2 minutes to read • Edit Online
Have a new dataset and not quite sure where to start? Need to build a dashboard quickly? Want to look for
insights you may have missed?
Run quick insights to generate interesting interactive visualizations based on your data. Quick insights can be run
on an entire dataset (quick insights) or on a specific dashboard tile (scoped insights). You can even run insights on
an insight!
NOTE
Insights doesn't work with DirectQuery - it only works with data uploaded to Power BI.
The insights feature is built on a growing set of advanced analytical algorithms developed in conjunction with
Microsoft Research that we’ll continue to use to allow more people to find insights in their data in new and
intuitive ways.
NOTE
Some datasets can't generate insights because the data isn't statistically significant. To learn more, see Optimize your
data for insights.
4. The visualizations display in a special Quick Insights canvas with up to 32 separate insight cards. Each
card has a chart or graph plus a short description.
1. Hover over a card and select the pin icon to add the visualization to a dashboard.
2. Hover over a card, select the ellipses (...) and choose View insights. This opens the insight fullscreen.
3. In Focus mode you can:
Filter the visualizations. To display the filters, in the top right corner, select the arrow to expand the
Filters pane.
Pin the insight card to a dashboard by selecting the pin icon or Pin visual.
Run insights on the card itself. This is often referred to as scoped insights. In the top-right corner,
select the lightbulb icon or Get insights.
The insight displays on the left and new cards, based solely on the data in that single insight, display
along the right.
4. To return to the original insights canvas, in the top-left corner, select Exit Focus mode.
3. Does one insight pique your interest? Select that insight card to dig further. The selected insight appears on
the left and new insight cards, based solely on the data in that single insight, display along the right.
4. Continue digging into your data, and when you find an interesting insight, pin it to your dashboard by
selecting Pin visual from the top-right corner.
Next steps
If you own a dataset, optimize it for Quick Insights
Learn about the types of Quick Insights available
More questions? Try the Power BI Community
Optimize your data for Power BI Quick Insights
2/13/2019 • 2 minutes to read • Edit Online
Want to improve quick insights results? If you are a dataset owner, try these:
Hide or unhide columns in your dataset. Power BI quick insights doesn't search hidden columns. So hide
duplicate or unnecessary columns and unhide interesting columns.
Use a mix of data types such as names, times, dates, and numbers.
Avoid (or hide) columns with duplicate information. This takes valuable time away from searching for
meaningful patterns. For example, one column with state names spelled out and another column with state
name abbreviations.
Do you get an error message stating that your data isn't statistically significant? This can happen with models
that are very simple, or that don't have much data, or that don't have date or numeric columns.
Next steps
Power BI quick insights
More questions? Try the Power BI Community
Create workspaces with your colleagues in Power BI
1/14/2019 • 5 minutes to read • Edit Online
In Power BI, you can create workspaces, places to collaborate with colleagues to create and refine collections of
dashboards and reports. Then you bundle the collection together into apps that you can distribute to your whole
organization or to specific people or groups.
When you create a workspace, you're creating an underlying, associated Office 365 group. All the workspace
administration is in Office 365. You can add colleagues to these workspaces as members or admins. In the
workspace, you can all collaborate on dashboards, reports, and other articles that you plan to publish to a wider
audience. Everyone you add to an app workspace needs a Power BI Pro license.
Did you know? Power BI is previewing a new workspace experience. Read Organize work in the new
workspaces (preview ) for details about the new workspaces.
3. You have a few options to set. If you choose Public, anyone in your organization can see what’s in the
workspace. Private, on the other hand, means only members of the workspace can see its contents.
You can't change the Public/Private setting after you've created the group.
4. You can also choose if members can edit or have view-only access.
Only add people to the app workspace so they can edit the content. If they're only going to view the
content, don't add them to the workspace. You can include them when you publish the app.
5. Add email addresses of people you want to have access to the workspace, and select Add. You can’t add
group aliases, just individuals.
6. Decide whether each person is a member or an admin.
Admins can edit the workspace itself, including adding other members. Members can edit the content in
the workspace, unless they have view -only access. Both admins and members can publish the app.
7. Select Save.
Power BI creates the workspace and opens it. It appears in the list of workspaces you’re a member of. Because
you’re an admin, you can select the ellipsis (…) to go back and make changes to it, adding new members or
changing their permissions.
When you first create it, you may need to wait an hour or so for the workspace to propagate to Office 365.
Add an image to your Office 365 app workspace (optional)
By default, Power BI creates a little colored circle for your app, with the app's initials. But maybe you want to
customize it with an image. To add an image, you need an Exchange Online license.
1. Select Workspaces, select the ellipsis (...) next to the name of the workspace, then Members.
The Office 365 Outlook account for the workspace opens in a new browser window.
2. When you hover over the colored circle in the upper left, it turns into a pencil icon. Select it.
3. Select the pencil icon again, and find the image you want to use.
4. Select Save.
The image replaces the colored circle in the Office 365 Outlook window.
In a few minutes, it will appear in the app in Power BI, too.
Distribute an app
When the content is ready, you choose which dashboards and reports you want to publish, and then you publish
it as an app. Your coworkers can get your apps in a few different ways. You can install them automatically in your
coworkers' Power BI accounts if your Power BI administrator gives you permission. Otherwise, they can find and
install your apps from Microsoft AppSource, or you can send them a direct link. They get updates automatically
and you can control how frequently the data refreshes. See Publish apps with dashboards and reports in Power
BI for details.
Next steps
Install and use apps in Power BI
Create the new workspaces (preview )
Questions? Try asking the Power BI Community
Create the new workspaces (preview) in Power BI
1/14/2019 • 3 minutes to read • Edit Online
Power BI is introducing a new workspace experience as a preview. Workspaces are still places to collaborate
with colleagues to create collections of dashboards and reports, which you can bundle into apps and distribute
to your whole organization or to specific people or groups.
5. Select Save.
Here in the Welcome screen for your new workspace, you can add data.
6. For example, select Samples > Customer Profitability Sample.
Now in the workspace content list, you see New workspaces preview. Because you're an admin, you
also see a new action, Access.
7. Select Access.
8. Add security groups, distribution lists, Office 365 groups, or individuals to these workspaces as
members, contributors, or admins. See Roles in the new workspaces for an explanation of the different
roles.
9. Select Add > Close.
10. Power BI creates the workspace and opens it. You see it in the list of workspaces you’re a member of.
Because you’re an admin, you can select the ellipsis (…) to go back and make changes to workspace
settings, adding new members, or changing their permissions.
Distribute an app
When the content is ready, you choose which dashboards and reports you want to publish, and then you
publish it as an app. You can create one app from each workspace. Your coworkers can get your app in a few
different ways. You can install it automatically in your coworkers' Power BI accounts if your Power BI
administrator gives you permission. Otherwise, they can find and install your app from Microsoft AppSource,
or you can send them a direct link. They get updates automatically and you can control how frequently the data
refreshes. See Publish apps with dashboards and reports in Power BI for details.
Next steps
Read about organizing work in the new workspaces (preview ) in Power BI
Create the current workspaces
Install and use apps in Power BI
Questions? Try asking the Power BI Community
Publish apps with dashboards and reports in
Power BI
3/13/2019 • 6 minutes to read • Edit Online
In Power BI, you can publish apps with collections of related dashboards and reports. You create apps in app
workspaces, where you can collaborate on Power BI content with your colleagues. Then you can publish the
finished apps to large groups of people in your organization. Read more about creating app workspaces.
Your business users often need multiple Power BI dashboards and reports to run their business. With Power
BI apps, you can create collections of dashboards and reports and publish these apps to your whole
organization or to specific people or groups. For you as a report creator or admin, apps make it easier to
manage permissions on these collections.
Business users get your apps in a few different ways. If the Power BI administrator gives you permission, you
can install apps automatically in your coworkers' Power BI accounts. Otherwise, they can install your apps
from Microsoft AppSource, or you can send them a direct link. They can easily find and return to your
content because it’s all in one place. They can’t modify the contents of the app, but they can interact with it
either in the Power BI service, or one of the mobile apps -– filtering, highlighting, and sorting the data
themselves. They get updates automatically and you can control how frequently the data refreshes. Read
more about the app experience for business users.
Did you know? Power BI is previewing a new workspace experience. Read Create the new workspaces
(preview ) to see how workspaces will change in the future.
If you choose not to publish a report, you see a warning next to the report and its related dashboard.
You can still publish the app, but the related dashboard will be missing the tiles from that report.
2. Select the Publish app button in the upper right to start the process of sharing all the content in that
workspace.
3. On Details, fill in the description to help people find the app. You can set a background color to
personalize it.
4. On Content, you see the content that’s going to be published as part of the app – everything that
you've selected in that workspace. You can also set the app landing page – the dashboard or report
people will see first when they go to your app. You can choose None. Then they’ll land on a list of all
the content in the app.
5. On Access, decide who has access to the app: either everyone in your organization, specific people,
Active Directory security groups. If you have permissions, you can decide to install the app
automatically for the recipients. A Power BI admin can enable this setting in the Power BI Admin
Portal. Read more automatically installing an app.
6. When you select Finish, you see a message confirming it’s ready to publish. In the success dialog box,
you can copy the URL that’s a direct link to this app and send it to the people you’ve shared it with.
Read more about the app experience for business users.
2. Open the dashboard or the report. You see that you can make any changes you want.
The app workspace is your staging area, so your changes aren't live in the app until you publish again.
This lets you make changes without affecting the published apps.
3. Go back to the app workspace list of contents and select Update app.
4. Update Details, Content, and Access, if you need to, then select Update app.
The people you’ve published the app to automatically see the updated version of the app.
Unpublish an app
Any member of an app workspace can unpublish the app.
NOTE
When you unpublish an app, app users lose their customizations. This means that any personal bookmarks,
comments, or subscriptions associated with content in the app are lost. Only unpublish an app if you need to remove
it.
In an app workspace, select the ellipsis (...) in the upper-right corner > Unpublish app.
This action uninstalls the app for everyone you've published it to, and they no longer have access to it. It
doesn't delete the app workspace or its contents.
Next steps
Create an app workspace
Install and use apps in Power BI
Power BI apps for external services
Power BI Admin Portal
Questions? Try asking the Power BI Community
Manage data storage in Power BI workspaces
1/14/2019 • 3 minutes to read • Edit Online
Learn how you can manage data storage in your individual or app workspace to make sure you can continue to
publish reports and datasets.
Users and app workspaces have their own data capacities:
All users have a maximum 10 GB of data storage.
Users with a Power BI Pro license can create app workspaces, with a maximum 10 GB of data storage each.
An app workspace in a Premium capacity doesn't count toward the storage of a Power BI Pro user.
At the tenant level, total usage can’t exceed 10 GB per Pro user across all Pro users and app workspaces in the
tenant.
Read about other features of the Power BI pricing model.
Included in your data storage are your own datasets and Excel reports, and those items that someone has shared
with you. Datasets are any of the data sources you’ve uploaded or connected to. These data sources include Power
BI Desktop files and Excel workbooks you’re using. The following are also included in your data capacity.
Excel ranges pinned to dashboard.
Reporting Services on-premises visualizations pinned to a Power BI dashboard.
Uploaded images.
The size of a dashboard that you share varies depending on what is pinned to it. For example, if you pin items from
two reports that are part of two different datasets, the size includes both datasets.
2. Select the gear icon in the upper-right corner > Manage group storage.
The top bar shows how much of the group’s storage limit is used.
The datasets and reports are separated onto two tabs:
Owned by Us: You or someone else has uploaded these reports and datasets to the group’s Power BI
account, including service datasets such as Salesforce and Dynamics CRM. Owned by Others: Others have
shared these reports and datasets with your group.
NOTE
Any member, with edit permissions, of an app workspace has permissions to delete datasets and reports from the
app workspace.
Keep in mind that you or someone else in the group may have reports and dashboards based on a dataset. If you
delete the dataset, those reports and dashboards won’t work anymore.
Dataset limits
There is a 1 GB limit, per dataset, that is imported into Power BI. If you have chosen to keep the Excel experience,
instead of importing the data, the limit is 250 MB for the dataset.
When you select the gear icon , you see a red bar indicating you are over your data capacity limit.
After you've created an app workspace in Power BI, you can store your Excel, CSV, and Power BI Desktop files on
the OneDrive for Business for your Power BI app workspace. You can continue updating the files you store in
OneDrive, and those updates are automatically reflected in the Power BI reports and dashboards based on the files.
NOTE
The new workspace experience preview will change the relationship between Power BI workspaces and Office 365 groups. You
won't automatically be creating an Office 365 group every time you create one of the new workspaces. Read about creating
the new workspaces (preview)
NOTE
App workspaces are only available with Power BI Pro.
1 Upload files to the OneDrive for Business for your app workspace
1. In the Power BI service, select the arrow next to Workspaces > select the ellipsis ( … ) next to your workspace
name.
2. Select Files to open the OneDrive for Business for your app workspace on Office 365.
NOTE
If you don't see Files on the app workspace menu, select Members to open the OneDrive for Business for your app
workspace. There, select Files. Office 365 sets up a OneDrive storage location for your app's group workspace files.
This process may take some time.
3. Here, you can upload your files to the OneDrive for Business for your app workspace. Select Upload, and
navigate to your files.
7. If you select Import, then the workbook appears on the Datasets tab.
Next steps
Create apps and app workspaces in Power BI
Import data from Excel workbooks
Connect to whole Excel workbooks
More questions? Try the Power BI Community
Feedback? Visit Power BI Ideas
Collaborate in your Power BI app workspace
3/18/2019 • 2 minutes to read • Edit Online
Power BI app workspaces are great places to collaborate with your colleagues on dashboards, reports, and
datasets to create apps. Collaboration doesn’t end with workspaces in Power BI. Office 365 offers other group
services such as sharing files on OneDrive for Business, conversations in Exchange, shared calendar and tasks, and
so on. Read more about groups in Office 365.
NOTE
The new workspace experience preview will change the relationship between Power BI workspaces and Office 365 groups.
You won't automatically be creating an Office 365 group every time you create one of the new workspaces. Read about
creating the new workspaces (preview)
2. In the Power BI service, select the arrow next to Workspaces > select your app workspace.
3. Select the Reports tab, then select your report.
From here, it's like any other report in Power BI. You and others in your app workspace can modify the
report and save tiles to a dashboard of your choosing.
The email and conversation site for your app's group workspace opens in Outlook for Office 365.
2. Read more about group conversations in Outlook for Office 365.
This opens the calendar for your app's group workspace in Outlook for Office 365.
Next steps
Create apps and app workspaces in Power BI
More questions? Try the Power BI Community
Feedback? Visit Power BI Ideas
Manage your app workspace in Power BI and Office
365
1/14/2019 • 2 minutes to read • Edit Online
As creator or admin of an app workspace in Power BI or in Office 365, you manage some aspects of the
workspace in Power BI. Other aspects you manage in Office 365.
NOTE
The new workspace experience preview will change the relationship between Power BI workspaces and Office 365 groups.
You won't automatically be creating an Office 365 group every time you create one of the new workspaces. Read about
creating the new workspaces (preview)
2. Here you can rename, add or remove members, or delete the app workspace.
Add an image and set other workspace properties in the Office 365
group
When you distribute your app from the app workspace, the image you add here will be the image for your app.
See the Add an image to your app section of the article Create the new workspaces.
1. In the Outlook for Office 365 view of your app workspace, select the group image to edit group workspace
properties.
2. You can edit the name, description, and language, add an image, and set other properties here.
3. Select Save or Discard.
Next steps
Publish apps with dashboards and reports in Power BI
More questions? Try the Power BI Community
Share your Power BI dashboards and reports with
coworkers and others
3/18/2019 • 7 minutes to read • Edit Online
Sharing is a good way to give a few people access to your dashboards and reports. Power BI also offers several
other ways to collaborate and distribute dashboards and reports.
With sharing, whether you share content inside or outside your organization, you need a Power BI Pro license.
Your recipients also need Power BI Pro licenses, or the content needs to be in a Premium capacity.
You can share dashboards and reports from most places in the Power BI service: your Favorites, Recent, Shared
with me (if the owner allows it), My Workspace, or other workspaces. When you share a dashboard or report,
those you share it with can view it and interact with it, but can't edit it. They see the same data that you see in the
dashboard or report, unless row -level security (RLS ) is applied. The coworkers you share with can also share
with their coworkers, if you allow them to. The people outside your organization can view and interact with the
dashboard or report too, but can't share it.
You can also share a dashboard from any of the Power BI mobile apps. You can share dashboards from the
Power BI service and the Power BI mobile apps, but not from Power BI Desktop.
Power BI sends an email invitation to the individuals but not to groups, with a link to the shared content.
You see a Success notification.
When recipients in your organization click the link, Power BI adds the dashboard or report to their
Shared with me list page. They can select your name to see all the content you've shared with them.
When recipients outside your organization click the link, they see the dashboard or report, but not in the
usual Power BI portal. For more information, see Share a dashboard or report with people outside your
organization below.
1. In the list of dashboards and report, or in the dashboard or report itself, select Share .
2. In the Share dashboard/report dialog box, select Access.
3. Select the ellipsis (...) next to Read and reshare and select:
Troubleshoot sharing
My dashboard recipients see a lock icon in a tile or a "Permission required" message
The people you share with may see a locked tile in a dashboard, or a "Permission required" message when they
try to view a report.
If so, you need to grant them permission to the underlying dataset. Here's how.
1. Go to the Datasets tab in your content list.
2. Select the ellipsis (...) next to the dataset > Manage permissions.
3. Select Add user.
4. Enter the full email addresses for individuals, distribution groups, or security groups. You can't share with
dynamic distribution lists.
5. Select Add.
I can't share a dashboard or report
To share a dashboard or report, you need permission to reshare the underlying content -- any related reports
and datasets. If you see a message saying you can't share, ask the report author to give you re-share permission
for those reports and datasets.
Next steps
Have feedback? Go to the Power BI Community site with your suggestions.
How should I collaborate on and share dashboards and reports?
Share a filtered Power BI report
Questions? Try the Power BI Community.
Share a filtered Power BI report with your coworkers
1/14/2019 • 2 minutes to read • Edit Online
Sharing is a good way to give a few people access to your dashboards and reports. Power BI also offers several
other ways to collaborate and distribute your reports.
With sharing, you and your recipients need a Power BI Pro license, or the content needs to be in a Premium
capacity.
You can share a report with coworkers in the same email domain as you, from most places in the Power BI
service: your Favorites, Recent, Shared with me (if the owner allows it), My Workspace, or other workspaces.
When you share a report, those coworkers you share it with can view it and interact with it, but can't edit it. They
see the same data that you see in the report, unless row -level security (RLS ) is applied.
What if you want to share a filtered version of a report? Maybe a report that only shows data for a specific city or
salesperson or year. Try creating a custom URL. The report will be filtered when recipients first open it. They can
remove the filter by modifying the URL.
Your browser adds special characters to represent slashes, spaces, and apostrophes, so you end up with:
app.powerbi.com/groups/me/reports/010ae9ad-a9ab-4904-a7a1-xxxxxxxxxxxx/ReportSection2?
filter=Store%252FTerritory%20eq%20%27NC%27
3. Share the report, but clear the Send email notification to recipients check box.
4. Send the link with the filter that you created earlier.
Next steps
Have feedback? Go to the Power BI Community site with your suggestions.
How should I collaborate on and share dashboards and reports?
Share a dashboard
More questions? Try the Power BI Community.
Subscribe yourself and others to a report or
dashboard in the Power BI service
3/20/2019 • 7 minutes to read • Edit Online
You can subscribe yourself and your colleagues to the report pages and dashboards that matter most to you, and
Power BI emails a snapshot to your inbox. You tell Power BI how often you want to receive the emails: daily,
weekly, or once a day after the initial data refresh. If you choose daily or weekly, you can choose the time(s) you'd
like to have the subscription run. In all, you can set up to 24 different subscriptions per day, for every report page
and dashboard.
You can only create subscriptions in the Power BI service. You receive an email with a snapshot of the report page
or dashboard, with a link to open the report or dashboard. On mobile devices with Power BI apps installed,
selecting this link launches the Power BI app, instead of opening the report or dashboard in the Power BI web site.
Requirements
Creating a subscription is a Power BI Pro feature.
You don't need edit permissions to the content (dashboard or report) to create a subscription for yourself, but
you must have edit permissions to create one for someone else.
As of January 2019, you no longer must have dataset refresh set up to run a subscription. It runs independent
of any scheduled refreshes you have set up.
3. Use the yellow slider to turn the subscription on and off. Setting the slider to Off doesn't delete the
subscription. To delete the subscription, select the trashcan icon.
4. Your email is already in the Subscribe box. You can add other email addresses to the subscription as well,
but only in the same domain. If the report or dashboard is hosted in Premium capacity, you can subscribe
other individual email addresses and group aliases. If the report or dashboard isn't hosted in Premium
capacity, you can subscribe other individuals, but they too must have Power BI Pro licenses. See
Considerations and troubleshooting below for details.
5. Fill in the email Subject and Message details.
6. Select a Frequency for your subscription: Daily, Weekly, or After Data Refresh (Daily). To receive the
subscription email only on certain days, select Weekly and select the days you'd like to receive it. For
example, if you'd like to receive the subscription email only on weekdays, select Weekly and uncheck the
boxes for Sat and Sun.
7. If you choose Daily or Weekly, you can also choose a Scheduled Time for the subscription. You have it
run on the hour, or at 15, 30, or 45 minutes past. Select morning (AM ) or afternoon/evening (PM ). You can
also specify the time zone.
8. By default, the start date for your subscription is the date you create it. You have the option to select an end
date. If you don't set an end date, the end date is automatically one year after the start date. You can change
it to any date in the future (up to the year 9999) at any time before the subscription ends. When a
subscription reaches an end date, it stops until you re-enable it. You'll receive notification(s) before the
scheduled end date to ask if you'd like to extend it.
In the screenshot below, notice that when you subscribe to a report, you're actually subscribing to a report
page. To subscribe to more than one page in a report, select Add another subscription and select a
different page.
9. Select Save and close. Those subscribed receive an email and snapshot of the dashboard or report page
for the frequency and time you selected. In all, you may create up to 24 subscriptions per report or
dashboard, and can provide unique recipients, times, and frequencies for each subscription. All
subscriptions set to After Data Refresh for your dashboard or report will still only send an email after the
first scheduled refresh.
TIP
Want to send the email from a subscription right away or on-demand at any time? Select Run Now for the
subscriptions for the dashboard or report you want to send. You'll see a notification that an e-mail is on its way to
everyone for that particular subscription. You may do this as often as you'd like. It doesn't count against your limit of
24 scheduled subscription runs per day per report or dashboard. Note this does NOT trigger a data refresh of the
underlying dataset.
Email languages
The email and snapshot use the language set in Power BI settings (see Supported languages and countries/regions
for Power BI). If no language is defined, Power BI uses the language according to the locale setting in your current
browser. To see or set your language preference, select the cog icon > Settings > General > Language.
The particular subscriptions displayed depend on which workspace is currently active. To see all of your
subscriptions at once for all workspaces, be sure that My Workspace is active. For help understanding
workspaces, see Workspaces in Power BI.
A subscription ends if the Pro license expires, the owner deletes the dashboard or report, or the user account used
to create the subscription is deleted.
Next steps
More questions? Try asking the Power BI Community
Read the blog post
Embed with report web part in SharePoint Online
3/25/2019 • 5 minutes to read • Edit Online
With Power BI's new report web part for SharePoint Online, you can easily embed interactive Power BI reports in
SharePoint Online pages.
When using the new Embed in SharePoint Online option, the embedded reports are fully secure so you can
easily create secure internal portals.
Requirements
There are a few requirements in order for Embed in SharePoint Online reports to work.
You need a Power BI Pro license or a Power BI Premium capacity (EM or P SKU ) with a Power BI license.
The Power BI web part for SharePoint Online requires Modern Pages.
Or, create a new modern site page by selecting + New within SharePoint Online.
4. Paste the report URL into the property pane. This report URL is the URL you copied from the steps above.
The report loads automatically.
5. Select Publish to make the change visible to your SharePoint Online users.
Grant access to reports
Embedding a report in SharePoint Online does not automatically give users permission to view the report. The
permissions to view the report are set within the Power BI service.
IMPORTANT
Make sure to review who can see the report within the Power BI service and grant access to those not listed.
There are two ways to provide access to the report within the Power BI service. If you are using an Office 365
Group to build your SharePoint Online team site, you list the user as a member of the app workspace within
the Power BI service and the SharePoint page. For more information, see how to manage an app workspace.
Alternatively, you can share a report directly with users by embedding the report within an app. There are a few
steps to follow for embedding a report within an app.
1. The author of the app is a Pro user.
2. The author creates a report in an app workspace. To share with Power BI free users, the app workspace
needs to be set as a Premium workspace.
3. The author publishes the app then installs it. The author needs to make sure to install the app to have
access to the report URL that is used to embed in SharePoint Online.
4. Now all end users need to install the app too. However, you can set the app to be preinstalled for end users
by using the Install app automatically feature, which can be enabled in the Power BI admin portal.
5. The author opens the app and goes to the report.
6. The author copies the embed report URL from the report installed by the app. Do Not use the original
report URL from the app workspace.
7. Create a new team site in SharePoint Online.
8. Add the report URL copied from step 6 to the Power BI web part.
9. Add all end users and/or groups who are going to consume the data on the SharePoint Online page and in
the Power BI app you created.
NOTE
Users or groups need access to both the SharePoint Online page and the report in the Power BI app to see
the report on the SharePoint page.
10. Now the end user can go to the team site in SharePoint Online and view the reports on the page.
Multi-factor authentication
If your Power BI environment requires you to sign in using multi-factor authentication, you may be asked to sign
in with a security device to verify your identity. This occurs if you did not sign in to SharePoint Online using multi-
factor authentication but your Power BI environment requires an account validated by a security device.
NOTE
Multi-factor authentication is not yet supported with Azure Active Directory 2.0. Users receive a message saying error. If the
user signs in again to SharePoint Online using their security device, they may be able to view the report.
Page name Sets the default page that is shown by the web part. Select a
value from the drop-down. If no pages are displayed, either
your report has one page, or the URL you pasted contains a
page name. Remove the report section from the URL to select
a specific page.
Display Option to adjust how the report is fit within the SharePoint
Online page.
Licensing
Users viewing a report in SharePoint need either a Power BI Pro license or the content needs to be in a
workspace that's in a Power BI Premium capacity (EM or P SKU ).
Next steps
Allow or prevent creation of modern site pages by end users
Create and distribute an app in Power BI
Share a dashboard with colleagues and others
What is Power BI Premium?
Embed report in a secure portal or website
More questions? Try asking the Power BI Community
Embed a report in a secure portal or website
1/14/2019 • 4 minutes to read • Edit Online
The new secure Embed option for reports in Power BI enables users to easily and securely embed reports in
internal web portals, whether cloud-based or hosted on-premises, such as SharePoint 2019. Reports
embedded in this way respect all item permissions and data security through row -level security (RLS ). The feature
is designed to allow no-code embedding into any portal that accepts a URL or iFrame to embed.
The Embed option also supports URL Filters and URL settings. The Embed option allows you to integrate with
portals using a low -code approach that requires basic HTML and JavaScript knowledge.
2. Select the Embed option to open a dialog that provides a link and an iFrame that is used to embed the
report securely.
3. After you embed your URL in your web portal, or if you open the URL directly, the user is authenticated
before given access to the report. Below, the user has not signed-in to Power BI in the browser session.
When they press Sign-In, a new browser window or tab may need to open. Check for pop-up blockers if
you don't get prompted to sign in.
4. After the user has signed in, the report opens, showing the data and allowing users to navigate between
pages and to set filters. The report is shown only to users who have permission to view the report in Power
BI. All row -level security (RLS ) rules are also applied. Lastly, the user needs to be correctly licensed – either
they need a Power BI Pro license, or the report must be in a workspace that is in a Power BI Premium
capacity. The user needs to sign in each time they open a new browser window, but after they’ve signed in
once other reports load automatically.
5. When using the iFrame option, it's best to edit the HTML provided to specify the desired height and width
to fit into your portal’s web page.
Licensing
Users viewing the embedded report need either a Power BI Pro license or the content needs to be in a workspace
that's in a Power BI Premium capacity (EM or P SKU ).
PROPERTY DESCRIPTION
PROPERTY DESCRIPTION
When pressed, the button calls a function to update the iFrame with an updated URL, which includes the filter for
the Energy industry.
function show(pageName, filterValue)
report.src = newUrl;
You can add as many buttons as you’d like to create a low -code custom experience.
Next steps
Ways to share your work
URL filters
SharePoint Online report web part
Publish to Web
Publish to web from Power BI
1/14/2019 • 9 minutes to read • Edit Online
With Power BI Publish to web, you can easily embed interactive Power BI visualizations online, such as in blog
posts, websites, through emails or social media, on any device.
You can also easily edit, update, refresh, or unshare your published visuals.
WARNING
When you use Publish to web, the report or visual you publish can be viewed by anyone on the Internet. There is no
authentication used when viewing these reports. Only use Publish to web with reports and data that the anyone on the
Internet (unauthenticated members of the public) should be able to see. This includes detail level data that is aggregated in
your reports. Before publishing this report, ensure you have the right to share the data and visualizations publicly. Do not
publish confidential or proprietary information. If in doubt, check your organization's policies before publishing.
NOTE
To embed your content securely in an internal portal or website, use the Embed or Embed in SharePoint Online options.
This ensures all permissions and data security is enforced when your users are viewing your internal data.
2. Review the content on the dialog, and select Create embed code as shown in the following dialog.
3. Review the warning, shown in the following dialog, and confirm that the data is okay to embed in a public
website. If so, select Publish.
4. A dialog appears that provides a link that can be sent in email, embedded in code (such as an iFrame), or
that you can paste directly into your web page or blog.
5. If you’ve previously created an embed code for the report, the embed code quickly appears. You can only
create one embed code for each report.
Fit to page will respect the page height and width of your
report. If you set your page to 'Dynamic' ratios like 16:9 or
4:3 your content will scale to fit within the iFrame, you
provided. When embedded in an iFrame, using Fit to page
can result in letterboxing, where a gray background is
shown in areas of the iFrame after the content as scaled to fit
within the iFrame. To minimize letterboxing, set your iFrame
height/width appropriately.
Actual size will ensure the report preserves its size as set on
the report page. This can result in scrollbars being present in
your iFrame. Set the iFrame height and width to avoid the
scrollbars.
You can edit the width and height manually to ensure it's precisely how you want it to fit onto the page into
which you're embedding it.
To achieve a more perfect fit, you can try adding 56 pixels to the height dimension of the iFrame. This
accommodates the current size of the bottom bar. If your report page uses the Dynamic size, the table below
provides some sizes you can use to achieve a fit without letterboxing.
2. The list of embed codes you’ve created appears, as shown in the following image.
3. For each Publish to web embed code in the list, you can either retrieve the embed code, or delete the
embed code and thus make any links to that report or visual no longer work.
4. If you select Delete, you’re asked if you’re sure you want to delete the embed code.
Updates to reports, and data refresh
After you create your Publish to web embed code and share it, the report is updated with any changes you
make. However, it’s important to know that it can take a while for update to be visible to your users. Updates to a
report or visual take approximately one hour to be reflected in Publish to web embed codes.
When you initially use Publish to web to get an embed code, the embed code link is immediately active and can
be viewed by anyone who opens the link. After the initial Publish to web action, subsequent updates to reports
or visuals to which a Publish to web link points can take approximately one hour to be visible to your users.
To learn more, see the How it works section later in this article. If you need your updates to be immediately
available, you can delete the embed code and create a new one.
Data refresh
Data refreshes are automatically reflected in your embedded report or visual. It can take approximately 1 hour
for refreshed data to be visible from embed codes. You can disable automatic refresh by selecting don't refresh
on the schedule for the dataset used by the report.
Custom visuals
Custom visuals are supported in Publish to web. When you use Publish to web, users with whom you share
your published visual do not need to enable custom visuals to view the report.
Limitations
Publish to web is supported for the vast majority of data sources and reports in the Power BI service, however,
the following are not currently supported or available with Publish to web:
Reports using row level security.
Reports using any Live Connection data source, including Analysis Services Tabular hosted on-premises,
Analysis Services Multidimensional, and Azure Analysis Services.
Reports shared to you directly or through an organizational content pack.
Reports in a group in which you are not an edit member.
"R" Visuals are not currently supported in Publish to web reports.
Exporting Data from visuals in a report, which has been published to the web
ArcGIS Maps for Power BI visuals
Reports containing report-level DAX measures
Single sign-on data query models
Secure confidential or proprietary information
The automatic authentication capability provided with the Embed option doesn't work with the Power BI
JavaScript API. For the Power BI JavaScript API, use the user owns data approach to embedding. Learn more
about user owns data.
Tenant setting
Power BI administrators can enable or disable the publish to web feature. They may also restrict access to
specific groups. Your ability to create an embed code changes based on this setting.
Publish to web under Enabled for all Not visible for all Only visible for authorized
report's File menu. users or groups.
Manage embed codes Enabled for all Enabled for all Enabled for all
under Settings
* Delete option only for
authorized users or groups.
* Get codes enabled for all.
Embed codes within admin Status will reflect one of the Status will display Disabled Status will reflect one of the
portal following: following:
* Active * Active
* Not supported * Not supported
* Blocked * Blocked
Existing published reports All enabled All disabled Reports continue to render
for all.
STATUS DESCRIPTION
Active The report is available for Internet users to view and interact
with.
Not supported The report's data set is using row level security, or another
unsupported configuration. See the Limitations section for a
complete list.
Infringed The embed code is outside of the defined tenant policy. This
typically occurs when an embed code was created and then
the publish to web tenant setting was changed to exclude
the user that owns the embed code. If the tenant setting is
disabled, or the user is no longer allowed to create embed
codes, existing embed codes will show the status of
Infringed.
STATUS DESCRIPTION
Next steps
SharePoint Online report web part
Embed report in a secure portal or website
More questions? Try the Power BI Community
Share a Power BI dashboard that links to an Excel file
in OneDrive
1/14/2019 • 2 minutes to read • Edit Online
In Power BI, you can connect to Excel workbooks on OneDrive for Business and pin tiles to a dashboard from that
workbook. When you share that dashboard, or create a content pack that includes that dashboard:
Your colleagues can view the tiles without needing permissions for the workbook itself. So you can create a
content pack and know that your colleagues can see the tiles created from the Excel workbook on OneDrive.
Clicking the tile opens the workbook inside of Power BI. The workbook will only open if your colleagues have at
least read permissions to the workbook on OneDrive for Business.
NOTE
Your colleagues won't be able to pin additional tiles from that workbook, or make changes to the Excel workbook from Power
BI.
Create an organizational content pack with a dashboard that contains
workbook tiles
When you publish a content pack you give access to individual colleagues or groups. When you publish a content
pack that contains workbook links, you'll have the option to modify the permissions for the linked Excel workbook
before publishing.
1. In the Create content pack screen, enter email addresses, give the content pack a title and description, and
upload an image.
2. Select the dashboard and/or report that is linked to the Excel workbook on OneDrive for Business.
With Microsoft Power BI publisher for Excel, you can take snapshots of your most important insights in Excel,
like PivotTables, charts, and ranges and pin them to dashboards in Power BI.
What can you pin? Just about anything in an Excel worksheet. You can select a range of cells from a simple sheet
or table, a PivotTable or PivotChart, illustrations and images, text.
What you can't pin: you cannot pin 3D Maps or visualizations in Power View sheets. There are also some elements
you can pin, but it wouldn't make much sense to, like a Slicer or Timeline filter.
When you pin an element from Excel, a new tile is added to a new or existing dashboard in Power BI. The new tile
is a snapshot, so it's not dynamic but you can still update it. For example, if you make a change to a PivotTable or
chart you've already pinned, the dashboard tile in Power BI isn't updated automatically, but you can still update
your pinned elements by using Pin Manager. You'll learn more about Pin Manager in the following sections.
2. If you're not signed in, select the Sign In link that appears when you select Profile from the Power BI
ribbon tab in Excel, in the Connect to Power BI dialog type in the email address of the Power BI account
you want to use, then select Sign In.
Once you're signed in, follow these steps to pin a range to a dashboard:
1. In Excel, select the Power BI ribbon tab to see the Pin ribbon button.
2. Select a range from your Excel workbook.
3. Click the Pin button from the Power BI ribbon to show the Pin to dashboard dialog. If you're not already
signed into Power BI, you'll be prompted to do so. Select a workspace from the Workspace dropdown list.
If you want to pin to your own dashboard, verify My Workspace is selected. If you want to pin to a
dashboard in a group workspace, select the group from the drop-down list.
4. Choose whether you want to pin to an existing dashboard or create a new dashboard.
5. Click Okay to pin your selection to the dashboard.
6. In Pin to dashboard, select an existing dashboard in the workspace or create a new one, and then click the
Ok button.
Pin a Chart to a dashboard
Just click on the chart, and then click Pin .
delete, select the Open menu icon and then select Delete tile .
3. Excel connects to Power BI using an HTTPS connection and presents the Connect to data in Power BI
dialog, where you can select the workspace from which you want to select your data (1, in the image below ),
which type of data you want to connect to, either a report or a dataset (2), and a drop down (3) that allows
you to select which available report or dataset to which to connect.
4. When you make your choices and select Connect from the Connect to data in Power BI dialog, Excel
prepares a PivotTable and displays the PivotTable Fields pane, where you can select fields from your
connected Power BI data, and create tables or charts that help you analyze the data.
If you don't have any data in Power BI, Excel detects that and offers to create sample data for you to connect to and
try.
There are a few things to consider in this release of Power BI publisher for Excel:
Shared data - Data that has been shared with you, but isn't directly visible to you in Power BI, is not available
in Connect to Data.
SSAS on-premises - If the dataset you select originates from an on-premises SQL Server Analysis Services
(SSAS ) and the dataset in Power BI uses DirectQuery to access the data, Power BI publisher for Excel
connects to that data through the on-premises network connection, and does not go through Power BI to
connect to that data. As such, any user trying to connect to such datasets must be connected to the on-premises
network, and is authenticated for access to that data using the authentication method employed by the Analysis
Services instance where the data is stored.
Required drivers - Power BI publisher for Excel installs all the necessary drivers for this feature to work,
and does so automatically. Among those automatically installed drivers is the Excel OLE DB driver for Analysis
Services; if that driver is removed by the user (or for any other reason), the connection to Power BI data will not
work.
Dataset must have measures - The dataset must have model measures defined in order for Excel to treat the
measures as values in PivotTables, and to correctly analyze the data. Learn more about measures.
Support for Groups - Datasets shared with people outside the specified group are not supported, and cannot
be connected to.
Free versus Pro subscriptions - Activities associated with groups are not supported for free users of Power
BI, and thus won't see any datasets or reports shared with a group in their own workspace.
Shared reports or datasets - Reports or datasets that were shared with you cannot be connected to.
Using Tables instead of Data models - Datasets and reports that are created by importing only tables from
Excel (without a data model) are not supported at this time, and cannot be connected to.
Once you've created compelling charts or other visuals such as a range of data, you can easily pin those to a
dashboard in Power BI, as described earlier in this article.
Related Articles
There are many ways to use Excel and Power BI together, and get the best out of both. Take a look at the following
articles for more information.
Analyze in Excel
Analyze in Excel troubleshooting
Self-service data prep in Power BI
4/1/2019 • 7 minutes to read • Edit Online
As data volume continues to grow, so does the challenge of wrangling that data into well-formed, actionable
information. We want data that’s ready for analytics, to populate visuals, reports, and dashboards, so we can
quickly turn our volumes of data into actionable insights. With self-service data prep for big data in Power BI,
you can go from data to Power BI insights with just a few clicks.
Power BI introduces dataflows to help organizations unify data from disparate sources and prepare it for
modeling. Analysts can easily create dataflows, using familiar, self-service tools. Dataflows are used to ingest,
transform, integrate, and enrich big data by defining data source connections, ETL logic, refresh schedules, and
more. In addition, the new model-driven calculation engine that's part of dataflows makes the process of data
preparation more manageable, more deterministic, and less cumbersome for data analysts and report creators
alike. Similar to how spreadsheets handle recalculations for all affected formulas, dataflows manage changes
for an entity or data element on your behalf, automating updates, and alleviating what used to be tedious and
time consuming logic checks for even a basic data refresh. With dataflows, tasks that once required data
scientists to oversee (and many hours or days to complete) can now be handled with a few clicks by analysts
and report creators.
Data is stored as entities in the Common Data Model in Azure Data Lake Storage Gen2. Dataflows are
created and managed in app workspaces by using the Power BI service.
Dataflows are designed to use the Common Data Model, a standardized, modular, extensible collection of
data schemas published by Microsoft that are designed to make it easier for you to build, use, and analyze data.
With this model, you can go from data sources to Power BI dashboards with nearly zero friction.
You can use dataflows to ingest data from a large and growing set of supported on-premises and cloud- based
data sources including Dynamics 365, Salesforce, Azure SQL Database, Excel, SharePoint, and more.
You can then map data to standard entities in the Common Data Model, modify and extend existing entities,
and create custom entities. Advanced users can create fully customized dataflows, using a self-service, low -
code/no-code, built-in Power Query authoring experience, similar to the Power Query experience that millions
of Power BI Desktop and Excel users already know.
Once you’ve created a dataflow, you can use Power BI Desktop and the Power BI service to create datasets,
reports, dashboards, and apps that leverage the power of the Common Data Model to drive deep insights into
your business activities.
Dataflow refresh scheduling is managed directly from the workspace in which your dataflow was created, just
like your datasets.
NOTE
You must have a paid Power BI account to use dataflows, such as a Power BI Pro or Power BI Premium account, but you
are not charged separately for using dataflows.
New connectors + +
For more information about how to enable dataflows workloads on premium capacity, see the Configure
workloads in a Premium capacity. Dataflow workloads are not currently available in multi-geo capacities.
Next Steps
This article provided an overview of self service data prep for big data in Power BI, and the many ways you can
use it. The following articles go into more detail about common usage scenarios for dataflows.
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration
For more information about Power Query and scheduled refresh, you can read these articles:
Query overview in Power BI Desktop
Configuring scheduled refresh
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
Creating and using dataflows in Power BI
4/1/2019 • 8 minutes to read • Edit Online
With advanced data preparation available in Power BI, you can create a collection of data called a dataflow,
which you can then use to connect with business data from various sources, clean the data, transform it, and then
load it to Power BI storage.
A dataflow is a collection of entities (entities are similar to tables) that are created and managed in app
workspaces in the Power BI service. You can add and edit entities in your dataflow, as well as manage data
refresh schedules, directly from the workspace in which your dataflow was created.
Once you create a dataflow, you can use Power BI Desktop and the Power BI service to create datasets,
reports, dashboards, and apps that are based on the data you put into Power BI dataflows, and thereby gain
insights into your business activities.
Creating a dataflow
To create a dataflow, launch the Power BI service in a browser then select an app workspace (dataflows are not
available in my-workspace in the Power BI service) from the navigation pane on the left, as shown in the
following screen. You can also create a new workspace in which to create your new dataflow.
Once you’re in an app workspace area where you can create a dataflow, the + Create button appears in the
upper-right corner of the canvas. Select the + Create button, then select Dataflow from the drop-down list.
It's important to know that there is only one owner of any dataflow, which is the person who creates it. Only the
owner can edit the dataflow. All members of the app workspace who have read or write permissions to the app
workspace where the dataflow is created can connect to the dataflow from within Power BI Desktop, as
described later in this article.
From there, you add Entities, which we describe more in the next section.
Add Entities
An entity is a set of fields that are used to store data, much like a table within a database. In the following image,
you see the selection of data sources from which you can ingest data to Power BI.
When you select a data source, you’re prompted to provide the connection settings, including the account to use
when connecting to the data source, as shown in the following image.
Once connected, you can select which data to use for your entity. When you choose data and a source, Power BI
will subsequently reconnect to the data source in order to keep the data in your dataflow refreshed, at the
frequency you select later in the setup process.
Once you select the data for use in the entity, you can use dataflow editor to shape or transform that data into
the format necessary for use in your dataflow.
Using the dataflow editor
Once you select which data from your source to use for your entity, you can shape your data selection into a
form that works best for your entity, using a Power Query editing experience, similar to the Power Query
Editor in Power BI Desktop. You can learn more about Power Query (Power Query is incorporated into Power
BI Desktop as the Power Query Editor) in the Query overview article for Power BI Desktop.
If you want to see the code that Query Editor is creating with each step, or want to create your own shaping
code, you can use the Advanced Editor.
When you select Save, you're prompted to name your dataflow and provide a description.
When you’re ready and select the Save button, a window appears that lets you know your dataflow has been
created.
Great – now you’re ready for the next step, which is scheduling the refresh frequency of your data sources.
The Dynamics dataflow entry in the previous image is the dataflow we created in the previous section. To
schedule refresh, select the Schedule refresh icon, under the Actions section, as shown in the following image.
When you select the Schedule refresh icon you’re taken to the Schedule refresh pane, which lets you set the
dataflow refresh frequency and time.
For more information about scheduling refresh, see the article about configuring scheduled refresh, which
describes the refresh behavior of Power BI datasets. Dataflows behave the same behavior as Power BI datasets
in terms of refresh settings.
Next Steps
This article described how you can create your own dataflow and create a dataset and report in Power BI
Desktop to take advantage of it. The following articles are useful for further information and scenarios when
using dataflows:
Self-service data prep with dataflows
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration (Preview )
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
Learn more about the Common Data Model schema and entities on GitHub
Related Power BI Desktop articles:
Connect to datasets in the Power BI service from Power BI Desktop
Query overview in Power BI Desktop
Related Power BI service articles:
Configuring scheduled refresh
Using computed entities on Power BI Premium
4/1/2019 • 3 minutes to read • Edit Online
You can perform in-storage computations when using dataflows with a Power BI Premium subscription. This
lets you perform calculations on your existing dataflows, and return results that enable you to focus on report
creation and analytics.
To perform in-storage computations, you first must create the dataflow and bring data into that Power BI
dataflow storage. Once you have a dataflow that contains data, you can create computed entities, which are
entities that perform in-storage computations.
There are two ways you can connect dataflow data to Power BI:
Using self-service authoring of a dataflow
Using an external dataflow
The following sections describe how to create computed entities on your dataflow data.
Any transformation you perform on this newly created entity will be run on the data that already resides in
Power BI dataflow storage. That means that the query will not run against the external data source from which
the data was imported (for example, the SQL database from which the data was pulled), but rather, is performed
on the data that resides in the dataflow storage.
Example use cases
What kind of transformations can be performed with computed entities? Any transformation that you usually
specify using the transformation user interface in Power BI, or the M editor, are all supported when performing
in-storage computation.
Consider the following example: you have an Account entity that contains the raw data for all the customers from
your Dynamics 365 subscription. You also have ServiceCalls raw data from the Service Center, with data from
the support calls that were performed from the different account in each day of the year.
Imagine you want to enrich the Account entity with data from the ServiceCalls.
First you would need to aggregate the data from the ServiceCalls to calculate the number of support calls that
were done for each account in the last year.
Next, you would want to merge the Account entity with the ServiceCallsAggregated entity to calculate the
enriched Account table.
And then you can see the results, shown as EnrichedAccount in the following image.
And that's it - the transformation is performed on the data in the dataflow that resides in your Power BI Premium
subscription, not on the source data.
Next Steps
This article described computed entities and dataflows available in the Power BI service. Here are some more
articles that might be useful.
Self-service data prep with dataflows
Create and use dataflows in Power BI
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Configure workspace dataflow settings (Preview )
Add a CDM folder to Power BI as a dataflow (Preview )
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
For more information about Power Query and scheduled refresh, you can read these articles:
Query overview in Power BI Desktop
Configuring scheduled refresh
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
Connect to data sources for Power BI dataflows
4/1/2019 • 4 minutes to read • Edit Online
With Power BI dataflows, you can connect to many different data sources to create new dataflows, or add new
entities to an existing dataflow.
This article lists the many available data sources for creating or adding to dataflows, and describes how to create
those dataflows using these data sources.
For an overview of how to create and use dataflows, see creating and using dataflows in Power BI.
If your dataflow already exists, you can add new entities to your dataflow by selecting Add entities, shown below,
or by selecting Get data in the dataflow authoring tool.
The following image shows the Get data button in the dataflow authoring tool.
Data sources for dataflows are organized into the following categories, which appear across the top of the Get
data dialog:
All categories
File
Database
Power BI
Azure
Online Services
Other
The All categories category contains all data sources, from all categories.
The File category includes the following available data connections for dataflows:
Access
Excel
JSON
Text/CSV
XML
The Database category includes the following available data connections for dataflows:
IBM DB2 Database
MySQL Database
Oracle Database
PostgreSQL Database
SQL Server Database
Sybase Database
Teradata Database
Vertica
The Power BI category includes the following available data connections for dataflows:
Power BI dataflows
The Azure category includes the following available data connections for dataflows:
Azure Blobs
Azure Data Explorer
Azure SQL Data Warehouse
Azure SQL Database
Azure Tables
The Online Services includes the following available data connections for dataflows:
Amazon Redshift
Common Data Service for Apps
Microsoft Exchange Online
Salesforce Objects
Salesforce Reports
SharePoint Online List
Smartsheet
The Other category includes the following available data connections for dataflows:
Active Directory
OData
SharePoint List
Web API
Web page
Blank table
Blank Query
A connection window for the selected data connection is displayed. If credentials are required, you're prompted to
provide them. The following image shows a Server URL being entered to connect to a Common Data Service for
Apps server.
Once the Server URL or resource connection information is provided, select Sign in to enter the credentials to use
for the data access, then select Next.
Power Query Online initiates and establishes the connection to the data source, and then presents the available
tables from that data source in the Navigator window, shown in the following image.
You can select tables and data to load by selecting the checkbox next to each in the left pane. To load the data, select
OK from the bottom of the Navigator pane. A Power Query Online dialog appears, where you can edit queries
and perform any other transformation you want to perform on the selected data.
That's all there is to it. Other data sources have similar flows, and use Power Query Online to edit and transform
the data you bring into your dataflow.
4. Paste the copied query into the blank query for the dataflow.
And then your script connects to the data source you specified.
The following list shows which connectors you can currently use by copying and pasting the M query into a blank
query:
SAP Business Warehouse
Azure analysis Services
Adobe Analytics
ODBC
OLE DB
Folder
SharePoint Online folder
SharePoint folder
Hadoop HDFS
Azure HDInsight (HDFS )
Hadoop file HDFS
Informix (beta)
That's all there is to connecting to data sources in Power BI dataflows.
Next Steps
This article showed which data sources you can connect to for dataflows. The following articles go into more detail
about common usage scenarios for dataflows.
Self-service data prep in Power BI
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration (Preview )
For more information about Power Query and scheduled refresh, you can read these articles:
Query overview in Power BI Desktop
Configuring scheduled refresh
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
Using dataflows with on-premises data sources
4/1/2019 • 2 minutes to read • Edit Online
With dataflows, you can create a collection of data from various sources, clean the data, transform it, and then
load it to Power BI storage. When creating dataflow you may want to use on-premises data sources. This article
clarifies requirement associated with creating dataflows and how your Enterprise Gateway needs to be
configured to enabled those connections.
NOTE
Dataflows are only supported using Enterprise Gateways.
NOTE
The dataflow will try to find or create the required datasources using the new gateway. If it cannot do so, you will
not be able to change the gateway until all needed dataflows are available from the selected gateway.
2. From the settings screen - you can change the assigned gateway using the settings screen for the
dataflow in the Power BI service.
To learn more about Enterprise Gateways, see On-premises data gateway.
Next Steps
This article provided information about using on-premises data source for dataflows, and how to use and
configure gateways to access such data. The following articles may also be helpful
Self-service data prep with dataflows
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Developer resources for Power BI dataflows
For more information about Power Query and scheduled refresh, you can read these articles:
Query overview in Power BI Desktop
Configuring scheduled refresh
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
Link entities between dataflows in Power BI
4/1/2019 • 4 minutes to read • Edit Online
With dataflows in Power BI, you can have a single organizational data storage source where business analysts can
prep and manage their data once, and then reuse it between different analytics apps in the organization.
When you link entities between dataflows, you can reuse entities that have already been ingested, cleansed and
transformed by other dataflows owned by others without the need to maintain that data. The linked entities simply
point to the entities in other dataflows, and do not copy or duplicate the data.
Linked entities are read only. If you want to create transformations for a linked entity, you must create a new
computed entity with a reference to the linked entity.
You can also select Add linked entities from the Add entities menu item in the Power BI service.
To link entities, you must sign in with your Power BI credentials.
A Navigator window opens and lets you choose a set of entities to which you can connect. The entities displayed
are entities for which you have permissions, across all workspaces in your Power BI tenant.
Once your linked entities are selected, they appear in the list of entities for your dataflow in the authoring tool, with
a special icon identifying them as Linked entities.
You can also view the source dataflow from the dataflow settings of your linked entity.
With dataflows, you can bring large amounts of data into Power BI to create compelling reports and analytics. In
some cases, however, it's not practical to update a full copy of source data in each refresh. A good alternative is
incremental refresh, which provides the following benefits for dataflows:
Refresh occurs faster - only data that's changed needs to be refreshed. For example, refresh only the last five
days of a 10-year dataflow.
Refresh is more reliable - for example, it is not necessary to maintain long-running connections to volatile
source systems.
Resource consumption is reduced - less data to refresh reduces overall consumption of memory and other
resources.
Using incremental refresh for Power BI dataflows requires that the workspace where the dataflow resides be in
Premium capacity to run, and the data source ingested into the dataflow must have a datetime field on which
incremental refresh can filter.
TIP
The current design requires that the column to detect data changes be persisted and cached into memory. You may want to
consider one of the following techniques to reduce cardinality and memory consumption:
Persist only the maximum value of this column at time of refresh, perhaps using a Power Query function.
Reduce the precision to a level that is acceptable given your refresh-frequency requirements.
5. Only refresh complete periods - imagine your refresh is scheduled to run at 4:00 AM every morning. If
data appears in the source system during those first four hours of that day, you may not want to account for
it. Some business metrics, such as barrels per day in the oil and gas industry, are not practical or sensible to
account for based on partial days.
Another example where only refreshing complete periods is appropriate is refreshing data from a financial
system. Imagine a financial system where data for the previous month is approved on the 12th calendar day
of the month. You could set the incremental range to 1 month and schedule the refresh to run on the 12th
day of the month. With this option checked, it would refresh January data (the most recent complete
monthly period) on February 12th.
NOTE
Dataflow incremental refresh determines dates according to the following logic: if a refresh is scheduled, incremental refresh
for dataflows uses the time-zone defined in the refresh policy. If no schedule for refreshing exists, incremental refresh uses the
time from the machine running the refresh.
There are many ways to use dataflows with no code, by creating or connecting to entities in the Power BI service
and connecting to them in Power BI Desktop. Many organizations want the flexibility to develop their own
solutions. This article provides information about the Power BI REST API and other developer resources.
Developer resources
The following developer resources are available for working with Power BI dataflows:
Power BI dataflow REST API Reference A complete reference guide to the dataflow REST API.
Next Steps
This article provided information about developer resources for dataflows. For more information about
dataflows, the following articles may be helpful:
Self-service data prep with dataflows
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
For information about CDM development and tutorial resources, see the following:
Common Data Model - overview
CDM folders
CDM model file definition
For more information about Power Query and scheduled refresh, you can read these articles:
Query overview in Power BI Desktop
Configuring scheduled refresh
Connect to data created by Power BI dataflows in
Power BI Desktop (Beta)
1/14/2019 • 3 minutes to read • Edit Online
In Power BI Desktop, you can connect to data created by Power BI dataflows just like any other data source in
Power BI Desktop.
The Power BI dataflows (Beta) connector lets you connect to entities created by dataflows in the Power BI
service.
Desktop performance
Power BI Desktop runs locally on the computer on which it is installed. Ingestion performance of dataflows is
determined by a variety of factors. Those factors include the size of the data, your computer's CPU and RAM,
network bandwidth, distance form the data center, and other factors.
You can improve data ingestion performance for dataflows. For example, if the ingested data size is too large for
Power BI Desktop to manage on your computer, you can use linked and computed entities in dataflows to
aggregate the data (within dataflows) and ingest only the pre-prepared, aggregated data. In that manner, the
processing of large data is performed online in dataflows, rather than being performed locally in your running
instance of Power BI Desktop. That approach lets Power BI Desktop ingest smaller amounts of data, and keeps
the experience with dataflows responsive and quick.
To resolve this issue, Ben must be granted reader permissions to the CDM Folder and its files. You can learn more
about how to grant access to the CDM Folder in this article.
Next steps
There are all sorts of interesting things you can do with Power BI dataflows. For more information, check out the
following resources:
Self-service data prep with dataflows
Create and use dataflows in Power BI
Using computed entities on Power BI Premium (Preview )
Using dataflows with on-premises data sources (Preview )
Developer resources for Power BI dataflows (Preview )
For more information about integration with Azure Data Lake Storage Gen2, see the following articles:
Dataflows and Azure Data Lake integration (Preview )
Configure workspace dataflow settings (Preview )
Add a CDM folder to Power BI as a dataflow (Preview )
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
There are also articles about Power BI Desktop that you might find useful:
Data Sources in Power BI Desktop
Shape and Combine Data with Power BI Desktop
Enter data directly into Power BI Desktop
Dataflows and Azure Data Lake integration
(Preview)
4/1/2019 • 5 minutes to read • Edit Online
By default, data used with Power BI is stored in internal storage provided by Power BI. With the integration of
dataflows and Azure Data Lake Storage Gen2 (ADLS Gen2), you can store your dataflows in your organization's
Azure Data Lake Storage Gen2 account.
The model.json or metadata file in the previous image would provide pointers to the entity data files throughout
the CDM folder.
Next steps
This article provided an overview of the integration of Power BI dataflows, CDM folders, and Azure Data Lake
Storage Gen2. For additional information, take a look at the following articles:
For more information about dataflows, CDM, and Azure Data Lake Storage Gen2, take a look at the following
articles:
Configure workspace dataflow settings (Preview )
Add a CDM folder to Power BI as a dataflow (Preview )
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
For information about dataflows overall, check out these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
For more information about Azure storage, you can read these articles:
Azure Storage security guide
Get started with github samples from Azure Data Services
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
CDM folders
CDM model file definition
And you can always try asking questions of the Power BI Community.
Connect Azure Data Lake Storage Gen2 for dataflow
storage (Preview)
4/1/2019 • 9 minutes to read • Edit Online
You can configure Power BI workspaces to store dataflows in your organization’s Azure Data Lake Storage Gen2
account. This article describes the general steps necessary to do so, and provides guidance and best practices
along the way. There are some advantages to configuring workspaces to store dataflow definitions and datafiles
in your data lake, including the following:
Azure Data Lake Storage Gen2 provides an enormously scalable storage facility for data
Dataflow data and definition files can be leveraged by your IT department's developers to leverage Azure Data
and artificial intelligence (AI) services as demonstrated in the GitHub samples from Azure Data Services
Enables developers in your organization to integrate dataflow data into internal applications, and line-of-
business solutions, using developer resources for dataflows and Azure
To use Azure Data Lake Storage Gen2 for dataflows, you need the following:
Power BI tenant - at least one account in your Azure Active Directory (AAD ) tenant must have signed up for
Power BI
A Global Administrator account - this account is required to connect and configure Power BI to store the
dataflow definition, and data, in your Azure Data Lake Storage Gen2 account
An Azure subscription - you need an Azure subscription to use Azure Data Lake Storage Gen2
Resource group - use a resource group you already have, or you can create a new one
An Azure Storage account with Data Lake Storage Gen2 (Preview) feature enabled - to connect to
Azure Data Lake Storage Gen2, you need to sign up for its public preview
TIP
If you don't have an Azure subscription, create a free account before you begin.
NOTE
Allow at least 30 minutes for permission for propagate to Power BI from the portal. Any time you change permissions in
the portal, allow 30 minutes for those permissions to be reflected in Power BI.
4. A text box will appear below the Blob Containers folder. Enter the name powerbi
5. Press Enter when done to create the blob container
In the next section, you grant the Power BI family of services full access to the file system you created.
Grant Power BI permissions to the file system
To grant permissions to the file system, you apply Access Control List (ACL ) settings that grant the Power BI
service access. The first step in doing so is obtaining the Power BI services identity in your tenant. You can view
your Azure Active Directory (AAD ) applications in the Enterprise apps section of the Azure portal.
To find your tenant applications, follow these steps:
1. In the Azure portal, select Azure Active Directory from the left navigation panel.
2. In the Azure Active Directory blade, select Enterprise applications.
3. From the Application Type drop-down menu, select All Applications and then select Apply. A sample
of your tenant applications appears, similar to the following image.
4. In the search bar, type Power and a collection of Object IDs for Power BI and Power Query applications
appear. You'll need all three values in the subsequent steps.
5. Select and copy both Object IDs for Power BI service and Power BI premium from the results of your
search. Be ready to paste those values in subsequent steps.
6. Next, use Azure Storage Explorer to navigate to the powerbi file system you created in the previous
section. Follow the instructions in Managing access section of Set file and directory level permissions using
Azure Storage explorer article.
7. For each of the two Power BI Object IDs collected in step 5, Assign Read, Write, Execute Access and
Default ACLs to your powerbi file system.
8. For the Power Query Online Object ID collected in step 4, Assign Write, Execute Access and Default
ACLs to your powerbi file system.
9. In addition, for the Other, Assign Execute Access and Default ACLs as well.
Connect your Azure Data Lake Storage Gen2 to Power BI
Once you've set up your Azure Data Lake Storage Gen2 account in the Azure portal, you connect it to Power BI in
the Power BI admin portal. You also manage Power BI dataflow storage in the Dataflow storage settings
section of the Power BI admin portal. For guidance on launching and basic use, see How to get to the admin
portal for detailed information.
You connect your Azure Data Lake Storage Gen2 account with the following steps:
1. Navigate to the Dataflow settings tab of the Power BI admin portal
2. Select the Connect your Azure Data Lake Storage Gen2 Preview button. The following window
appears.
3. Provide the Subscription ID of the Storage Account.
4. Provide the Resource Group name in which the storage account was created.
5. Provide the Storage Account name.
6. Select Connect.
Once those steps are successfully completed, your Azure Data Lake Storage Gen2 account is connected to Power
BI.
NOTE
To configure a connection to Azure Data Lake Storage Gen2 in the Power BI admin portal, you must have Global
Administrator permissions. However, Global Administrators cannot connect external storage in the admin portal.
Next you need to enable people in your organization to configure their workspaces, which enables them to use
this storage account for dataflow definition and data storage. Let's do that in the next section.
With Power BI and dataflows, you can store a workspace's dataflow definition file and data files in your Azure
Data Lake Storage Gen2 account. Workspaces administrators can configure Power BI to do so, and this article
walks through the steps necessary to get there.
Before you can configure a workspace’s dataflow storage location, your company's global administrator must
connect your organization’s storage account to Power BI, and enable storage assignment permissions to that
storage account. Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
There are two ways to configure the workspace dataflow storage settings:
During creation of the workspace
By editing an existing workspace
We'll take a look at each in the following sections.
IMPORTANT
The workspace dataflow storage setting can only be changed if the workspace doesn't contain any dataflows. Also, this
feature is only available in the new workspace experience. You can learn more about new workspace in the Create the new
workspaces (preview) in Power BI article.
In the dialog that appears, you can give your new workspace a unique name. Don't select Save yet, since you
need to make advanced settings.
Next, expand the Advanced area of the Create an app workspace dialog, where you can turn on the Dataflow
storage (preview) setting.)
Select Save to create your new workspace. Any new dataflow created in this workspace now stores its definition
file (its Model.json file) and data in your organization's Azure Data Lake Storage Gen2 account.
In the Edit workspace window that appears, expand Advanced, then turn the Dataflow storage (preview)
setting to On.
Then select Save, and any new dataflow created in that workspace stores its definition file and data in your
organization's Azure Data Lake Storage Gen2 account.
NOTE
Power BI configures the dataflow owner with reader permissions to the CDM folder where dataflow files are stored. Granting
access to other people or services to the dataflow storage location requires the owner of the storage account to grant
access in Azure.
Next steps
This article provided guidance on how to configure workspace storage for dataflows. For additional information,
take a look at the following articles:
For more information about dataflows, CDM, and Azure Data Lake Storage Gen2, take a look at the following
articles:
Dataflows and Azure Data Lake integration (Preview )
Add a CDM folder to Power BI as a dataflow (Preview )
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
For information about dataflows overall, check out these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium (Preview )
Using dataflows with on-premises data sources (Preview )
Developer resources for Power BI dataflows (Preview )
For more information about Azure storage, you can read these articles:
Azure Storage security guide
Get started with github samples from Azure Data Services
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
CDM folders
CDM model file definition
And you can always try asking questions of the Power BI Community.
Add a CDM folder to Power BI as a dataflow
(Preview)
4/1/2019 • 4 minutes to read • Edit Online
In Power BI, you can add Common Data Model (CDM ) folders stored in your organization's Azure Data Lake
Store Gen2 as dataflows. And once you create a dataflow from a CDM folder, you can use Power BI Desktop
and the Power BI service to create datasets, reports, dashboards, and apps that are based on the data you put
into CDM folders.
There are a few requirements for creating dataflows from CDM folders, as the following list describes:
Creating dataflows from CDM folders is only available in the new workspace experience.
Adding a CDM folder to Power BI requires the user adding the folder to have authorization for the CDM
folder and its files.
You must be granted read and execute permissions, on all files and folders in the CDM folder, to add them to
Power BI.
The following sections describe how to create a dataflow from a CDM folder.
The screen that appears next lets you name your dataflow, provide a description of the dataflow, and provide the
path to the CDM folder in your organization's Azure Data Lake Gen2 account. Read the section in the article that
describes how to get your CDM folder path.
Once you've provided the information, select Create and attach to create the dataflow.
Dataflows from CDM folders are marked with external icon when displayed in Power BI. In the next section, we
describe differences between standard dataflows, and dataflows created from CDM folders.
Once permissions are properly set, as described previously in this article, you can connect to your dataflow in
Power BI Desktop.
To resolve this issue, Ben must be granted reader permissions to the CDM Folder and its files. You can learn more
about how to grant access to the CDM Folder in this article.
Next Steps
This article provided guidance on how to configure workspace storage for dataflows. For additional information,
take a look at the following articles:
For more information about dataflows, CDM, and Azure Data Lake Storage Gen2, take a look at the following
articles:
Dataflows and Azure Data Lake integration (Preview )
Configure workspace dataflow settings (Preview )
Connect Azure Data Lake Storage Gen2 for dataflow storage (Preview )
For information about dataflows overall, check out these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
For more information about Azure storage, you can read these articles:
Azure Storage security guide
Configuring scheduled refresh
Get started with github samples from Azure Data Services
For more information about the Common Data Model, you can read its overview article:
Common Data Model - overview
CDM folders
CDM model file definition
And you can always try asking questions of the Power BI Community.
Azure Machine Learning integration in Power BI
(Preview)
4/1/2019 • 4 minutes to read • Edit Online
Numerous organizations use Machine Learning models for better insights and predictions about their business.
The ability to visualize and invoke insights from these models, in your reports and dashboards and other analytics,
can help disseminate these insights to the business users who need it the most. Power BI now makes it simple to
incorporate the insights from models hosted on the Azure Machine Learning service, using straightforward point-
and-click gestures.
To use this capability, a data scientist can simply grant access to the Azure ML model to the BI analyst using the
Azure portal. Then, at the start of each session, Power Query discovers all the Azure ML models to which the user
has access and exposes them as dynamic Power Query functions. The user can then invoke those functions by
accessing them from the ribbon in Power Query Editor, or by invoking the M function directly. Power BI also
automatically batches the access requests when invoking the Azure ML model for a set of rows to achieve better
performance.
This functionality is currently only supported for Power BI dataflows, and for Power Query online in the Power BI
service.
To learn more about dataflows, see Self-service data prep in Power BI.
To learn more about Azure Machine Learning, please see:
Overview: What is Azure Machine Learning service?
Quick Starts and Tutorials for Azure Machine Learning: Azure Machine Learning Documentation
4. Select Access Control (IAM ), and then select the Add button.
5. Select Reader as the Role. Select the Power BI user to whom you wish to grant access to the Azure ML
model.
6. Select Save.
7. Repeat steps three through six to grant Reader access to the user for the specific Machine Learning Studio
web service, or the Machine Learning service workspace hosting the model.
Selecting the Edit button opens the Power Query Editor for the entities in your dataflow.
Select the AI Insights button in the ribbon, and then select the Azure Machine Learning Models folder from the
left navigation menu. All the Azure ML models to which you have access are listed here as Power Query functions.
Also, the input parameters for the Azure ML model are automatically mapped as parameters of the corresponding
Power Query function.
To invoke an Azure ML model, you can specify any of the selected entity's columns as an input from the drop-
down. You can also specify a constant value to be used as an input by toggling the column icon to the left of the
input dialog.
Select Invoke to view the preview of the Azure ML model's output as a new column in the entity table. You will
also see the model invocation as an applied step for the query.
If the model returns multiple output parameters, they are grouped together as a record in the output column. You
can expand the column to produce individual output parameters in separate columns.
Once you save your dataflow, the model is automatically invoked when the dataflow is refreshed, for any new or
updated rows in the entity table.
Next Steps
This article provided an overview of integrating Machine Learning into the Power BI service. The following
articles might also be interesting and useful.
Tutorial: Invoke a Machine Learning Studio model in Power BI (Preview )
Tutorial: Using Cognitive Services in Power BI
Cognitive Services in Power BI (Preview )
For more information about dataflows, you can read these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration (Preview )
Cognitive Services in Power BI (Preview)
4/1/2019 • 5 minutes to read • Edit Online
With the Cognitive Services in Power BI, you can apply different algorithms from Azure Cognitive Services to
enrich your data in the self-service data prep for Dataflows.
The services that are supported today are Sentiment Analysis, Key Phrase Extraction, Language Detection, and
Image Tagging. The transformations are executed on the Power BI Service and do not require an Azure Cognitive
Services subscription. This feature requires Power BI Premium.
Enabling AI features
Cognitive services are supported for Premium capacity nodes EM2, A2, or P1 and above. A separate AI workload
on the capacity is used to run cognitive services. During public preview, this workload is disabled by default.
Before using cognitive services in Power BI, the AI workload needs to be enabled in the capacity settings of the
admin portal. You can turn on the AI workload in the workloads section, and define the maximum amount of
memory you would like this workload to consume. The recommended memory limit is 20%. Exceeding this limit
causes the query to slow down.
In the pop-up window, select the function you want to use and the data you want to transform. In this example, I'm
scoring the sentiment of a column that contains review text.
Cultureinfo is an optional input to specify the language of the text. This field is expecting an ISO code. You can
use a column as input for Cultureinfo, or a static field. In this example, the language is specified as English (en) for
the whole column. If you leave this field blank, Power BI automatically detects the language before applying the
function. Next, select Invoke.
After invoking the function, the result is added as a new column to the table. The transformation is also added as
an applied step in the query.
If the function returns multiple output fields, invoking the function adds a new column with a record of the
multiple output fields.
Use the expand option to add one or both values as columns to your data.
Available functions
This section describes the available functions in Cognitive Services in Power BI.
Detect Language
The language detection function evaluates text input, and for each field, returns the language name and ISO
identifier. This function is useful for data columns that collect arbitrary text, where language is unknown. The
function expects data in text format as input.
Text Analytics recognizes up to 120 languages. For more information, see supported languages.
Extract Key Phrases
The Key Phrase Extraction function evaluates unstructured text, and for each text field, returns a list of key
phrases. The function requires a text field as input, and accepts an optional input for Cultureinfo. (See the
Getting Started section earlier in this article).
Key phrase extraction works best when you give it bigger chunks of text to work on. This is opposite from
sentiment analysis, which performs better on smaller blocks of text. To get the best results from both operations,
consider restructuring the inputs accordingly.
Score Sentiment
The Score Sentiment function evaluates text input and returns a sentiment score for each document, ranging
from 0 (negative) to 1 (positive). This function is useful for detecting positive and negative sentiment in social
media, customer reviews, and discussion forums.
Text Analytics uses a machine learning classification algorithm to generate a sentiment score between 0 and 1.
Scores closer to 1 indicate positive sentiment, scores closer to 0 indicate negative sentiment. The model is pre-
trained with an extensive body of text with sentiment associations. Currently, it's not possible to provide your own
training data. The model uses a combination of techniques during text analysis, including text processing, part-of-
speech analysis, word placement, and word associations. For more information about the algorithm, see
Introducing Text Analytics.
Sentiment analysis is performed on the entire input field, as opposed to extracting sentiment for a particular entity
in the text. In practice, there's a tendency for scoring accuracy to improve when documents contain one or two
sentences rather than a large block of text. During an objectivity assessment phase, the model determines whether
an input field as a whole is objective or contains sentiment. An input field that is mostly objective does not
progress to the sentiment detection phrase, resulting in a .50 score, with no further processing. For input fields
continuing in the pipeline, the next phase generates a score above or below .50, depending on the degree of
sentiment detected in the input field.
Currently, Sentiment Analysis supports English, German, Spanish, and French. Other languages are in preview.
For more information, see Supported languages.
Tag Images
The Tag Images function returns tags based on more than 2,000 recognizable objects, living beings, scenery, and
actions. When tags are ambiguous or not common knowledge, the output provides 'hints' to clarify the meaning
of the tag in context of a known setting. Tags are not organized as a taxonomy and no inheritance hierarchies exist.
A collection of content tags forms the foundation for an image 'description' displayed as human readable
language formatted in complete sentences.
After uploading an image or specifying an image URL, Computer Vision algorithms output tags based on the
objects, living beings, and actions identified in the image. Tagging is not limited to the main subject, such as a
person in the foreground, but also includes the setting (indoor or outdoor), furniture, tools, plants, animals,
accessories, gadgets, and so on.
This function requires an image URL or abase-64 field as input. At this time, image tagging supports English,
Spanish, Japanese, Portuguese, and Simplified Chinese. For more information, see Supported languages.
Next Steps
This article provided an overview of using Cognitive Services with Power BI service. The following articles might
also be interesting and useful.
Tutorial: Invoke a Machine Learning Studio model in Power BI (Preview )
Azure Machine Learning integration in Power BI (Preview )
Tutorial: Using Cognitive Services in Power BI
For more information about dataflows, you can read these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration (Preview )
Automated Machine Learning in Power BI (Preview)
4/1/2019 • 16 minutes to read • Edit Online
Automated machine learning (AutoML ) for dataflows enables business analysts to train, validate and invoke
Machine Learning models directly in Power BI. It includes a simple experience for creating a new ML model where
analysts can use their dataflows to specify the input data for training the model. The service automatically extracts
the most relevant features, selects an appropriate algorithm and tunes and validates the ML model. After a model
is trained, Power BI automatically generates a report that includes the results of validation that explains the
performance and results to analysts. The model can then be invoked on any new or updated data within the
dataflow.
Automated machine learning is available for dataflows that are hosted on Power BI Premium and Embedded
capacities only. In this preview, AutoML enables you to train machine learning models for Binary Prediction,
Classification, and Regression models.
A simplified experience is launched, consisting of a wizard that guides you through the process of creating the ML
model. The wizard includes the following simple steps.
1. Select the entity with the historical outcome data, and the field for which you want a prediction
2. Choose a model type based on the type of prediction you'd like to see
3. Select the inputs you want the model to use as predictive signals
4. Name your model and save your configuration
The historical outcome field identifies the label attribute for training the ML model, shown in the following image.
When you specify the historical outcome field, AutoML analyzes the label data to identify the types of ML models
that can be trained for that data and suggests the most likely ML model type that can be trained.
NOTE
Some model types may not be supported for the data that you have selected.
AutoML also analyzes all the fields in the selected entity to suggest the inputs that can be used for training the ML
model. This process is approximate and is based on statistical analysis, so you should review the inputs used. Any
inputs that are dependent on the historical outcome field (or the label field) should not be used for training the ML
model, since they will affect its performance.
In the final step, you can name the model and save its settings.
At this stage, you are prompted to refresh the dataflow, which begins the training process for the ML model.
ML model training
Training of AutoML models is a part of the dataflow refresh. AutoML first prepares your data for training.
AutoML splits the historical data you provide into a training and testing datasets. The test dataset is a holdout set
that is used for validating the model performance after training. These are realized as Training and Testing
entities in the dataflow. AutoML uses cross-validation for the model validation.
Next, each input field is analyzed and imputation is applied, which replaces any missing values with substituted
values. A couple of different imputation strategies are used by AutoML. Then, any required sampling and
normalization are applied to your data.
AutoML applies several transformations are each selected input field based on its data type, and its statistical
properties. AutoML uses these transformations to extract features for use in training your ML model.
The training process for AutoML models consists of up to 50 iterations with different modeling algorithms and
hyperparameter settings to find the model with the best performance. The performance of each of these models is
assessed by validation with the holdout test dataset. During this training step, AutoML creates several pipelines for
training and validation of these iterations. The process of assessing the performance of the models can take time,
anywhere from several minutes to a couple of hours, depending on the size of your dataset and the dedicated
capacity resources available.
In some cases, the final model generated may use ensemble learning, where multiple models are used to deliver
better predictive performance.
AutoML model explainability
After the model has been trained, AutoML analyzes the relationship between the input features and the model
output. It assesses the magnitude and direction of change to the model output for the holdout test dataset for each
input feature. This is known as the feature importance.
AutoML model report
AutoML generates a Power BI report that summarizes the performance of the model during validation, along with
the global feature importance. The report summarizes the results from applying the ML model to the holdout test
data and comparing the predictions with the known outcome values.
You can review the model report to understand its performance. You can also validate that the key influencers of
the model align with the business insights about the known outcomes.
The charts and measures used to describe the model performance in the report depend on the model type. These
performance charts and measures are described in the following sections.
Additional pages in the report may describe statistical measures about the model from a data science perspective.
For instance, the Binary Prediction report includes a gain chart and the ROC curve for the model.
The reports also include a Training Details page that includes a description of how the model was trained, and
includes a chart describing the model performance over each of the iterations runs.
Another section on this page describes how the imputation method used for filling missing values for the input
fields, as well as how each input field was transformed to extract the features used in the model. It also includes the
parameters used by the final model.
If the model produced uses ensemble learning, then the Training Details page also includes a section describing
the weight of each constituent model in the ensemble, as well as its parameters.
Applying the AutoML model
If you're satisfied with the performance of the ML model created, you can apply it to new or updated data when
your dataflow is refreshed. You can do this from the model report, by selecting the Apply button in the top-right
corner.
To apply the ML model, you must specify the name of the entity to which it must be applied, and a prefix for the
columns that will be added to this entity for the model output. The default prefix for the column names is the
model name. The Apply function may include additional parameters specific to the model type.
Applying the ML model creates a new dataflow entity with the suffix enriched <model_name>. For instance, if
you apply the PurchaseIntent model to the OnlineShoppers entity, the output will generate the OnlineShoppers
enriched PurchaseIntent.
Currently, the output entity cannot be used to preview the ML model results in the Power Query editor. The output
columns always show null as the result. To view the results, a second output entity with the suffix enriched
<model_name> Preview is created when the model is applied.
You must refresh the dataflow, to preview the results in the Query Editor.
When you apply the model, AutoML always keeps your predictions up-to-date when the dataflow is refreshed.
AutoML also includes an individualized explanation for each row that it scores in the output entity.
To use the insights and predictions from the ML model in a Power BI report, you can connect to the output entity
from Power BI Desktop using the dataflows connector.
The Accuracy Report page of the model report includes the Cumulative Gains chart and the ROC curve for the
model. These are statistical measures of model performance. The reports include descriptions of the charts shown.
Applying a Binary Prediction model
To apply a Binary Prediction model, you must specify the entity with the data to which you want to apply the
predictions from the ML model. Other parameters include the output column name prefix and the probability
threshold for classifying the predicted outcome.
When a Binary Prediction model is applied, it adds three output columns to the enriched output entity. These are
the PredictionScore, PredictionOutcome and PredictionExplanation. The column names in the entity have
the prefix specified when the model is applied.
The PredictionOutcome column contains the predicted outcome label. Records with probabilities exceeding the
threshold are predicted as likely to achieve the outcome, and those below are predicted as unlikely to achieve the
outcome.
The PredictionExplanation column contains an explanation with the specific influence that the input features had
on the PredictionScore. This is a JSON formatted collection of weights of the input features for the prediction.
Classification models
Classification models are used to classify a dataset into multiple groups or classes. They're used to predict events
that can have one of multiple possible outcomes, such as whether a customer is likely to have a very high, high,
medium, or low Lifetime Value; whether the risk for default is High, Moderate, Low or Very Low; and so on.
The output of a Classification model is a probability score, which identifies the likelihood that a record will achieve
the criteria for a given class.
Training a Classification model
The input entity containing your training data for a Classification model must have a string or numeric field as the
historical outcome field, which identifies the past known outcomes.
Pre-requisites:
A minimum of 50 rows of historical data is required for each class of outcomes
The process of creation for a Classification model follows the same steps as other AutoML models, described in
the section Configuring the ML model inputs above.
Classification model report
The Classification model report is produced by applying the ML model to the holdout test data and comparing the
predicted class for a record with the actual known class.
The model report includes a chart that includes the breakdown of the correctly and incorrectly classified records
for each known class.
A further class-specific drilldown enables an analysis of how the predictions for a known class are distributed. This
includes the other classes in which records of that known class are likely to be misclassified.
The model explanation in the report also includes the top predictors for each class.
The Classification model report also includes a Training Details page similar to the pages for other model types, as
described in the section AutoML model report earlier in this article.
Applying a classification model
To apply a Classification ML model, you must specify the entity with the input data and the output column name
prefix.
When a Classification model is applied, it adds three output columns to the enriched output entity. These are the
PredictionScore, PredictionClass and PredictionExplanation. The column names in the entity have the prefix
specified when the model is applied.
The PredictionClass column contains the most likely predicted class for the record. The PredictionScore column
contains the list of probability scores for the record for each possible class.
The PredictionExplanation column contains an explanation with the specific influence that the input features had
on the PredictionScore. This is a JSON formatted collection of weights of the input features for the prediction.
Regression models
Regression models are used to predict a value, such as the revenue likely to be realized from a sales deal, the
lifetime value of an account, the amount of a receivable invoice that is likely to be paid, the date on which an
invoice may be paid, and so on.
The output of a Regression model is the predicted value.
Training a Regression model
The input entity containing the training data for a Regression model must have a numeric field as the historical
outcome field, which identifies the past known outcome values.
Pre-requisites:
A minimum of 100 rows of historical data is required for a Regression model
The process of creation for a Regression model follows the same steps as other AutoML models, described in the
section Configuring the ML model inputs above.
Regression model report
Like the other AutoML model reports, the Regression report is based on the results from applying the model to
the holdout test data.
The model report includes a chart that compares the predicted values to the actual value. In this chart, the distance
from the diagonal indicates the error in the prediction.
The residual error chart shows the distribution of the percentage of average error for different values in the
holdout test dataset. The horizontal axis represents the mean of the actual value for the group, with the size of the
bubble showing the frequency or count of values in that range. The vertical axis is the average residual error.
The Regression model report also includes a Training Details page like the reports for other model types, as
described in the section AutoML model report above.
Applying a regression model
To apply a Regression ML model, you must specify the entity with the input data and the output column name
prefix.
When a Regression model is applied, it adds two output columns to the enriched output entity. These are the
PredictionValue, and PredictionExplanation. The column names in the entity have the prefix specified when
the model is applied.
The PredictionValue column contains the predicted value for the record based on the input fields. The
PredictionExplanation column contains an explanation with the specific influence that the input features had on
the PredictionValue. This is a JSON formatted collection of weights of the input features.
Next steps
This article provided an overview of Automated Machine Learning for Dataflows in the Power BI service. The
following articles may also be useful.
Tutorial: Build a Machine Learning model in Power BI (Preview )
Tutorial: Using Cognitive Services in Power BI
Tutorial: Invoke a Machine Learning Studio model in Power BI (Preview )
Cognitive Services in Power BI (Preview )
Azure Machine Learning integration in Power BI (Preview )
For more information about dataflows, you can read these articles:
Create and use dataflows in Power BI
Using computed entities on Power BI Premium
Using dataflows with on-premises data sources
Developer resources for Power BI dataflows
Dataflows and Azure Data Lake integration (Preview )
What are paginated reports in Power BI Premium?
(Preview)
2/28/2019 • 4 minutes to read • Edit Online
Paginated reports, long the standard report format in SQL Server Reporting Services, are now available in the
Power BI service. These reports can be printed or shared. They're called "paginated" because they're formatted to
fit well on a page. They display all the data in a table, even if the table spans multiple pages. They're sometimes
called "pixel perfect" because you can control their report page layout exactly. Paginated reports are based on the
RDL report technology in SQL Server Reporting Services. Report Builder is the standalone tool for authoring
paginated reports.
Paginated reports can have many pages. For example, this report has 563 pages. Each page is laid out exactly,
with one page per invoice and repeating headers and footers.
You can preview your report in Report Builder, then publish it to the Power BI service, http://app.powerbi.com.
You need a Power BI Pro license to publish a report to the service. You can publish and share paginated reports in
your My Workspace or in app workspaces, as long as the workspace is in a Power BI Premium capacity. Also, a
Power BI admin needs to enable paginated reports in the Power BI admin portal.
Next steps
Install Report Builder from the Microsoft Download Center
Tutorial: Create a paginated report
Enter data directly in a paginated report
Paginated reports in Power BI: FAQ (Preview)
2/15/2019 • 8 minutes to read • Edit Online
This article answers frequently asked questions about paginated reports. These reports are highly formatted, pixel-
perfect output optimized for printing or PDF generation. They're called "paginated" because they're formatted to fit
well on multiple pages. Paginated reports are based on the RDL report technology in SQL Server Reporting
Services.
This article answers many common questions people have about paginated reports in Power BI Premium, and
about Report Builder, the standalone tool for authoring paginated reports. You need a Power BI Pro license to
publish a report to the service. You can publish and share paginated reports in your My Workspace or in app
workspaces, as long as the workspace is in a Power BI Premium capacity.
Administration
What size Premium capacity do I need for paginated reports?
The paginated reports workload is available on P1 – P3 SKUs for public preview. You may also use it for test/dev
scenarios with A4 – A6 SKUs.
What is the maximum memory threshold I can put for paginated reports in my capacity?
Currently, you may only reserve 50% of the memory for this workload.
How does user access work for paginated reports?
User access for paginated reports is the same as user access for all other content in the Power BI service
How do I turn on/off my paginated reports workload?
The capacity admin can enable or disable the paginated reports workload in the capacity admin portal page.
How can I monitor usage of paginated reports in my tenant?
The Office 365 audit logs detail usage of this report type under the following events:
View Power BI Report
Delete Power BI report
Create Power BI report
Downloaded Power BI report
The field ReportType has the value “PaginatedReport” to identify paginated as opposed to Power BI reports.
Also, the audit logs provide the following events for paginated reports:
Binded Power BI dataset to gateway
Discover Power BI Datasource
TakeOverDatasource
Can I monitor this workload through the Premium Capacity Monitoring App?
Yes, monitoring is available as a new tab with the same relevant details you have for your Power BI datasets.
Do I need a Pro license to create and publish paginated reports?
Yes. You can't upload reports to the workspace without a Pro license. You may download and try Report Builder
without the Pro license, but not publish the paginated reports you create.
What if I have a paginated report in a workspace and the paginated report workload is turned off?
You receive an error message, and you can't view your report until the workload is turned back on. You can still
delete the report from the workspace.
What is the default memory for each of the Premium SKUs supported for paginated reports?
Default memory in each Premium SKU for paginated reports:
P1/A4: 20% default; 10% minimum
P2/A5: 20% default; 5% minimum
P3/A6: 20% default; 2.5% minimum
General
When should I use a paginated report vs. a Power BI report?
Paginated reports are best for scenarios that require a highly formatted, pixel-perfect output optimized for printing
or PDF generation. A profit and loss statement is a good example of the type of report you would probably want to
create as a paginated report.
Power BI reports are optimized for exploration and interactivity. A sales report where different salespeople want to
slice the data in the same report for their specific region/industry/customer and see how the numbers change
would be best served by a Power BI report.
The documentation says Report Builder is the preferred authoring tool. Can I create paginated reports in SQL
Server Data Tools for Power BI?
Yes, but the Power BI service only allows you to upload a single item at a time, so many of the scenarios authors
use with SQL Server Data Tools (SSDT) aren’t yet supported. See the full list of unsupported features available
later in this FAQ.
What version(s) of Report Builder do you support?
Use the latest version of SQL Server 2016 Report Builder to author and publish your reports to the Power BI
service. Install Report Builder from the Microsoft Download Center.
How do I move existing reports I have saved in SQL Server Reporting Services to Power BI?
You need to download the report from the server, then upload it to Power BI through the portal. There is no
migration tool available at this time, but we’re looking at creating one after we’ve finished public preview and
gotten the right level of feature parity between the products.
Can I open reports and publish directly to the service?
At this point, no. We'll add support for opening reports and publishing them directly to the service from Report
Builder at some point, like you can with Power BI Desktop.
What paginated report features in SSRS aren’t yet supported in Power BI?
Currently, paginated reports don’t support the following items:
Shared data sources
Shared datasets
Subreports
Click-through and drill-through actions
Linked reports
Bookmarks
Bing map layers
Custom fonts
You get an error message if you try to upload a file that has an unsupported feature in the Power BI service, other
than toggle/sort.
What data sources do you support currently for paginated reports?
We support Azure SQL Database, SQL Server and both SQL Server Analysis Services (SSAS ) tabular (DAX) and
multidimensional (MDX) models using the on-premises Gateway.
When accessing SSAS through the Gateway, the user whose credentials are stored needs elevated permissions in
SSAS to work through the Gateway.
What authentication methods do you support?
Currently you need to store a user name and password with the data source in the portal or gateway. Additional
authentication methods to support things like row -level security are coming later in the preview.
Can I use a Power BI dataset as a data source for my paginated report?
Not yet, but this support is planned soon.
Can I use stored procedures through the Gateway?
You can use a stored procedure through the Gateway, but you may see issues in certain scenarios if stored
procedure has parameters.
What export formats are available for my report in the Power BI service?
You can export to Microsoft Excel, Microsoft Word, Microsoft PowerPoint, PDF, .CSV, XML, and MHTML.
Can I print paginated reports?
Yes, printing is available for Paginated Reports, including a new and improved print preview experience.
Are e -mail subscriptions available yet for paginated reports?
No, e-mail subscriptions are coming soon, however.
What features from SSRS will you be supporting in the Power BI service?
Our plan is to provide feature parity for most scenarios, but certain things about SSRS and Power BI may not
make sense to try to change to fit existing SSRS patterns. For example, the different permission models in Power
BI can't be mapped back to SSRS. We will be looking for feedback from customers and partners to make those
types of decisions.
Can I run custom code in my report?
Yes, we support the ability to run code in your reports as you can in SSRS.
Does this mean SSRS is going away?
Not at all. This new offering offers customers a cloud-based option for their paginated reports.
Can I use Power BI embedded to embed my paginated reports into an app I’m hosting?
We plan to support this scenario with the existing Power BI APIs, but we don’t yet have a timeframe on when this
scenario will be available.
Can I drill through from a Power BI report to a paginated report?
Not yet, but we absolutely plan to support this scenario.
Can I share my paginated report content through a Power BI app?
Currently you can share individual paginated reports with other users through the sharing action in the portal or
via the toolbar. We don’t yet support sharing in an app, but expect to soon.
Will other report-specific features in Power BI, like pinning to report tiles to dashboards, work with paginated
reports?
We plan to have the reports support the same major scenarios in the service as much as possible. Ideally, though
the tool to author them is different, from a consumer perspective it’s just another report in their list in the portal.
They don’t care how it was created, they can accomplish what they need to. A good example of this feature parity is
the planned comment support. Though the feature itself may work slightly differently for each report type, you’ll
be able to use comments for both.
Are you planning to create a new authoring tool for paginated reports in the Power BI service? We can’t do
everything we need to with Report Builder today.
We are still looking at different options here for the best tooling story for paginated reports in Power BI.
Is a migration tool planned so SSRS customers can move their existing reports and assets to Power BI?
We're evaluating options here to allow content to be moved to Power BI in an automated way, but this won't be
available until after GA.
Will I ever be able to create both paginated reports and Power BI reports in a single authoring tool?
Potentially. We're currently looking at ways to enable this scenario, or if we simply distribute the authoring tools
together as a single BI suite vs. having individual downloads/branding.
Is there a report viewer control for paginated reports in the Power BI service?
No, a report viewer control isn’t available currently.
Can you search for paginated reports from the new Home experience in the Power BI service?
No, you can't currently search for your paginated reports from Home. You do see them, however, in the other parts
of the new Home experience.
Next steps
Install Report Builder from the Microsoft Download Center
Tutorial: Create a paginated report
Tutorial: Create a paginated report and upload it to
the Power BI service (Preview)
2/15/2019 • 9 minutes to read • Edit Online
In this tutorial, you connect to a sample Azure SQL database. Then you use a wizard in Report Builder to create a
paginated report with a table that wraps to multiple pages. Then you upload the paginated report to a workspace
in a Premium capacity in the Power BI service. Paginated reports in the Power BI service are currently in preview.
Prerequisites
Here are the prerequisites for creating the paginated report:
Install Report Builder from the Microsoft Download Center.
Follow the quickstart Create an Azure SQL database sample in the Azure portal. Copy and save the value in
the Server name box on the Overview tab. Remember the user name and password you created in Azure.
Here are the prerequisites for uploading your paginated report to the Power BI service:
You need a Power BI Pro license.
Your need an app workspace on the service in a Power BI Premium capacity. It has a diamond icon next to
the workspace name.
2. In the left pane, verify that New Report is selected, and in the right pane, select Table or Matrix Wizard.
3. In the Choose a dataset page, select Create a dataset > Next.
14. Select Test Connection. You see the Test results message that Test connection succeeded.
15. Select OK > OK.
Now in the Connection string box, Report Builder displays the connection string you just created.
18. Type the same user name and password in the box.
19. In the Design a query page, expand SalesLT, expand Tables, and select these tables:
Address
Customer
Product
ProductCategory
SalesOrderDetail
SalesOrderHeader
Because Relationships > Auto Detect is selected, Report Builder detects the relationships between these
tables.
20. Select Run Query. Report Builder displays the Query results.
23. In the Arrange fields page, drag these fields from the Available fields box to the Row groups box:
CompanyName
SalesOrderNumber
Product_Name
24. Drag these fields from the Available fields box to the Values box:
OrderQty
UnitPrice
LineTotal
Report Builder automatically made the fields in the Values box sums.
25. In the Choose the layout page, keep all the default settings, but clear Expand/collapse groups. In
general, the expand/collapse groups feature is great, but this time you want the table to wrap to multiple
pages.
26. Select Next > Finish. The table is displayed on the design surface.
1. In the Report Data pane, you see the embedded Azure data source and the embedded dataset based on it,
both of which you created.
2. The design surface is about 6 inches wide. On the design surface, you see the matrix, displaying column
headings and placeholder values. The matrix has six columns and appears to be only five rows tall.
3. Order Qty, Unit Price, and Line Total are all sums, and each row group has a subtotal.
You still don't see actual data values. You need to run the report to see them.
4. In the Properties pane, the selected matrix is called Tablix1. A tablix in Report Builder is a data region that
displays data in rows and columns. It can be either a table or a matrix.
5. In the Grouping pane, you see the three row groups you created in the wizard:
CompanyName
Sales Order
Product Name
This matrix doesn't have any column groups.
Run the report
To see the actual values, you need to run the report.
1. Select Run in the Home toolbar.
Now you see the values. The matrix has many more rows than you saw in Design view! Note that Report
Builder says it's page 1 of 2?. Report Builder loads the report as quickly as possible, so it only retrieves
enough data for a few pages at a time. The question mark indicates that Report Builder hasn't loaded all the
data yet.
2. Select Print Layout. The report will be in this format when you print it. Report Builder now knows the
report has 33 pages, and has automatically added a date and time stamp in the footer.
3. Drag the right edge of Product name until the column ends at 3 3/4 inches.
Now the matrix is almost as wide as the print area.
Format the currency
If you noticed when you ran the report, the dollar amounts aren't formatted as currency yet.
1. Select the upper-left [Sum(OrderQty)] cell, hold down the Shift key, and select lower-right [Sum(LineTotal)]
cell.
2. On the Home tab, select the dollar sign ($) currency symbol, then select the arrow next to Placeholder
styles > Sample Values.
2. Select the top Static bar in the Row Groups. You see that the Company Name cell in the matrix is selected.
3. In the Properties pane, you're looking at the properties for Tablix Member. Set KeepWithGroup to
After and RepeatOnNewPage to True.
It's time to run the report and see how it looks now.
4. Select Run on the Home tab.
5. Select Print Layout, if it's not already selected. Now the report has 29 pages. Scroll through a few pages.
You see the currency is formatted, the columns have headings on every page, and the report has a footer
with page numbers and date and time stamp on every page.
6. Save the report to your computer.
If you can't turn it on, you need to ask your Power BI admin to give you permission to add the workspace to
the dedicated Premium capacity.
4. Choose an available dedicated capacity for this workspace, if necessary > Save.
If the workspace isn't in a Premium capacity, when you try to upload your report you see the message,
"Unable to upload paginated report." Contact your Power BI administrator to move the workspace.
5. In your new workspace, select Get Data.
6. In the Files box > Get.
7. Select Local File, navigate to where you saved the file > Open.
Power BI imports your file, and you see it under Reports on the App list page.
10. Select Edit credentials and enter the credentials you used in Azure when you created the Azure database.
11. Now you can view your paginated report in the Power BI service.
Next steps
What are paginated reports in Power BI Premium? (Preview )
Getting around in Report Design View for paginated
reports (Preview)
3/18/2019 • 5 minutes to read • Edit Online
Report Design View in Report Builder is the design space for creating paginated reports that you can publish to the
Power BI service. The design surface is at the center of Report Builder, with the ribbon and panes around it. The
design surface is where you add and organize your report items. This article explains the panes you use to add,
select, and organize your report resources, and change report item properties.
TIP
If you drag a field from the Report Data pane directly to the report design surface instead of placing it in a data region such
as a table or chart, when you run the report, you will see only the first value from the data in that field.
You can also drag built-in fields from the Report Data pane to the report design surface. When rendered, these
fields provide information about the report, such as the report name, the total number of pages in the report, and
the current page number.
Some things are automatically added to the Report Data pane when you add something to the report design
surface. For example, if you embed an image in your report, it will be added to the Images folder in the Report Data
pane.
NOTE
You can use the New button to add a new item to the Report Data pane. You can add multiple datasets from the same data
source or from other data sources to the report. To add a new dataset from the same data source, right-click a data source >
Add Dataset.
3 Parameters pane
With report parameters, you can control report data, connect related reports together, and vary report
presentation. The Parameters pane provides a flexible layout for the report parameters.
Read more about Report Parameters
4 Properties pane
Every item in a report, including data regions, images, text boxes, and the report body itself, has properties
associated with it. For example, the BorderColor property for a text box shows the color value of the text box's
border, and the PageSize property for the report shows the page size of the report.
These properties are displayed in the Properties pane. The properties in the pane change depending on the report
item that you select.
To see the Properties pane, on the View tab in the Show/Hide group > Properties.
Changing Property Values
In Report Builder, you can change the properties for report items several ways:
By selecting buttons and lists on the ribbon.
By changing settings within dialog boxes.
By changing property values within the Properties pane.
The most commonly used properties are available in the dialog boxes and on the ribbon.
Depending on the property, you can set a property value from a drop-down list, type the value, or select
<Expression> to create an expression.
5 Grouping pane
Groups are used to organize your report data into a visual hierarchy and to calculate totals. You can view the row
and column groups within a data region on the design surface and also in the Grouping pane. The Grouping pane
has two panes: Row Groups and Column Groups. When you select a data region, the Grouping pane displays all
the groups within that data region as a hierarchical list: Child groups appear indented under their parent groups.
You can create groups by dragging fields from the Report Data pane and dropping them on the design surface or
in the Grouping pane. In the Grouping pane, you can add parent, adjacent, and child groups, change group
properties, and delete groups.
The Grouping pane is displayed by default but you can close it by clearing the Grouping pane check box on the
View tab. The Grouping pane is not available for the Chart or Gauge data regions.
For more information, see Grouping Pane and Understanding Groups.
Next steps
What are paginated reports in Power BI Premium? (Preview )
Enter data directly in a paginated report in Report
Builder (Preview) - Power BI
2/15/2019 • 3 minutes to read • Edit Online
In this article, you learn about a feature in the new version of SQL Server 2016 Report Builder that lets you enter
data directly into an RDL report as an embedded dataset. This feature is similar to Power BI Desktop. You can type
the data directly in a dataset in your report, or paste it from another program like Microsoft Excel. After you've
created a dataset by entering data, you can use it just like you would any other embedded dataset you've created.
Plus you can add more than one table and use one as a filter for the other. This feature is especially useful for small,
static datasets you might need to use in your report, like report parameters.
Prerequisites
To enter data directly in a paginated report, install the new version of Report Builder from the Microsoft
Download Center.
To save your paginated report to the Power BI service, you need a Power BI Pro account and write access to a
workspace in a Power BI Premium capacity.
To save your paginated report to a report server, you need permissions to edit the RsReportServer.config file.
Get started
After you’ve downloaded and installed Report Builder, you follow the same workflow you use to add an embedded
data source and dataset to your report. In the following procedure, under Data Sources you see a new option:
Enter Data. You only need to set up this data source once in a report. After that, you can create multiple tables of
entered data as separate datasets, all using that single data source.
1. In the Report Data pane, select New > Dataset.
2. In the Dataset Properties dialog box, select Use a dataset embedded in my report.
3. Next to Data source, select New.
4. In the Data Source Properties dialog box, select Use a connection embedded in my report.
5. In the Select connection type box, select ENTER DATA > OK.
9. If the first row contains column headings from the original data, right-click and delete it.
10. By default, the data type for each column is String. To change the data type, right-click the column header >
Change Type, and set it to another data type, such as Date or Float.
You can use your dataset as the basis for data visualizations in your report. You can also add another dataset and
use the same data source for it.
After you've edited it, here's what the list of data providers in the config file should look like:
That’s it – you can now publish reports that use this new functionality to your report server.
Next steps
What are paginated reports in Power BI Premium? (Preview )
What is Power BI Report Server?
Create an embedded data source for paginated
reports in the Power BI service (Preview)
2/15/2019 • 2 minutes to read • Edit Online
In this article, you learn how to create and modify an embedded data source for a paginated report in the Power BI
service. You define an embedded data source in a single report, and use it only in that report. Currently, paginated
reports published to the Power BI service need embedded datasets and embedded data sources, and can connect
to these data sources:
Azure SQL Database and Data Warehouse
SQL Server
SQL Server Analysis Services
Paginated reports connect to on-premises data sources by way of a gateway. You set up the gateway after you
publish the report to the Power BI service. Read more about Power BI gateways.
3. In the Name text box, type a name for the data source or accept the default.
4. Select Use a connection embedded in my report.
5. From the Select connection type list, select a data source type.
6. Specify a connection string by using one of these methods:
Type the connection string directly in the Connection string text box.
Select the expression (fx) button to create an expression that evaluates to a connection string. In the
Expression dialog box, type the expression in the Expression pane. Select OK.
Select Build to open the Connection Properties dialog box for the data source you chose in step 2.
Fill in the fields in the Connection Properties dialog box as appropriate for the data source type.
Connection properties include the type of data source, the name of the data source, and the
credentials to use. After you specify values in this dialog box, select Test Connection to verify that
the data source is available and that the credentials you specified are correct.
7. Select Credentials.
Specify the credentials to use for this data source. The owner of the data source chooses the type of
credentials that are supported. For more information, see Specify Credential and Connection Information
for Report Data Sources.
8. Select OK.
The data source appears in the Report Data pane.
Next steps
Create an embedded dataset for a paginated report in the Power BI service
What are paginated reports in Power BI Premium? (Preview )
Create an embedded dataset for a paginated report
in the Power BI service (Preview)
2/15/2019 • 2 minutes to read • Edit Online
In this article, you learn how to create an embedded dataset, based on an embedded data source, for a paginated
report in the Power BI service. Embedded datasets are contained in a single paginated report, for use in that
report. Currently, paginated reports published to the Power BI service need embedded datasets and embedded
data sources. You create the embedded data source and dataset in Report Builder, while you're creating your
report.
Before you can create the dataset, you need to create a data source. See Embedded data sources for paginated
reports in the Power BI service to learn how.
3. Under Query type, select the type of command or query to use for the dataset.
Text runs a query to retrieve data from the database. It's the default and is used for most queries. Type a
query or import a pre-existing query by selecting Import. To build the query graphically, select Query
Designer. If you use the query designer to build a query, the text of the query will appear in this box.
Select the Expression (fx) button to use an expression to dynamically generate the query.
Table selects all the fields within a table. Enter the name of the table that you want to use as a dataset.
Stored Procedure runs a stored procedure by name.
4. In the Query Designer, you can see and interact with the tables and fields in the dataset, import a query, or
edit as text. You can also add filters and parameters here.
5. In the Query Designer, select Run Query to test it, then select OK.
6. Back in the Dataset Properties dialog box, in the Time out (in seconds) box, type the number of seconds
until the query times out. The default is 30 seconds. The value for Time out must be empty or greater than
zero. If it is empty, the query does not time out.
7. You can set other properties for the dataset on the other tabs:
Create calculated fields on the Fields tab.
Set advanced options on the Options tab.
Add or update Filters and Parameters on their respective tabs.
8. Select OK
The report opens in Report Design View. The data source, dataset, and dataset field collection appear in the
Report Data pane, and you can continue designing your paginated report.
Next steps
What are paginated reports in Power BI Premium? (Preview )
Tutorial: Create a paginated report and upload it to the Power BI service
Publish a paginated report to the Power BI service
Create parameters for paginated reports in the Power
BI service (Preview)
2/15/2019 • 2 minutes to read • Edit Online
In this article, you learn how to create parameters for paginated reports in the Power BI service. A report
parameter provides a way to choose report data and vary the report presentation. You can provide a default value
and a list of available values, and your report readers can change the selection.
The following illustration shows Design view in Report Builder for a report with the parameters @BuyingGroup,
@Customer, @FromDate, and @ToDate.
Next steps
See View parameters for paginated reports to see how the parameters look in the Power BI service.
For in-depth information about parameters in paginated reports, see the Report Parameters (Report Builder and
Report Designer) article in the SQL Server Reporting Services documentation
Publish a paginated report to the Power BI service
(Preview)
3/18/2019 • 2 minutes to read • Edit Online
In this article, you learn about publishing a paginated report to the Power BI service by uploading it from your
local computer. You can upload paginated reports to your My Workspace or any other workspace, as long as the
workspace is in a Premium capacity. Look for the diamond icon next to the workspace name.
If your report data source is on premises, then you need to create a gateway after you upload the report.
2. In the Edit workspace dialog box, expand Advanced, then slide Dedicated capacity to On.
You may not be able to change it. If not, then contact your Power BI Premium capacity admin to give you
assignment rights to add your workspace to a Premium capacity.
5. Select Local file > browse to the paginated report > Open.
6. Select Continue > Edit credentials.
8. Select it to open it in the Power BI service. If it has parameters, you need to select them before you can view
the report.
Create a gateway
Just like any other Power BI report, if the report data source is on premises, then you need to create or connect to
a gateway to access the data.
1. Next to the report name, select Manage.
2. See the Power BI service article Install a gateway for details and next steps.
Gateway limitations
Currently gateways don't support multi-value parameters.
Next steps
View a paginated report in the Power BI service
What are paginated reports in Power BI Premium? (Preview )
View a paginated report in the Power BI service
(Preview)
2/15/2019 • 2 minutes to read • Edit Online
In this article, you learn about viewing a paginated report to the Power BI service. Paginated reports are reports
created in Report Builder and uploaded to any workspace in a Premium capacity. Look for the diamond icon
next to the workspace name.
2. If the report has parameters, as this one does, you may not see the report when you first open it. Select
parameters, then select View Report.
You can also change the parameters at any time.
3. Page through the report by selecting the arrows at the top of the page, or by typing a page number in the
box.
Next steps
What are paginated reports in Power BI Premium? (Preview )
View parameters for paginated reports in the Power
BI service (Preview)
2/15/2019 • 2 minutes to read • Edit Online
In this article, you learn how to interact with parameters for paginated reports in the Power BI service. A report
parameter provides a way to filter report data. Parameters offer a list of available values, and you can choose one
or many values. Sometimes parameters have a default value, and sometimes you have to choose a value before
you can see the report.
When you view a report that has parameters, the report viewer toolbar displays each parameter so you can
interactively specify values. The following illustration shows the parameter area for a report with parameters for
Buying Group, Location, a From Date, and a To Date.
1. Parameters pane The report viewer toolbar displays a prompt such as "Required" or a default value for
each parameter.
2. Invoices From / To Date parameters The two data parameters have default values. To change the date,
type a date in the text box or choose a date in the calendar.
3. Location parameter The Location parameter is set to allow you to select one, many, or all values.
4. View Report After you enter or change parameter values, click View Report to run the report.
5. Default values If all parameters have default values, the report runs automatically on first view. Some
parameters in this report didn't have default values, so you don't see the report until you select values.
Next steps
Create parameters for paginated reports in the Power BI service
What are Power BI template apps? (preview)
2/13/2019 • 3 minutes to read • Edit Online
The new Power BI template apps enable Power BI partners to build Power BI apps with little or no coding, and
deploy them to any Power BI customer. This article is an overview of the Power BI template app program.
Template apps are a replacement for the current service content packs. As a Power BI partner, you create a set of
out-of-the-box content your customers, and publish it yourself.
You build template apps that allow your customers to connect and instantiate with their own accounts. As domain
experts, they can unlock the data in a way that's easily consumable by their business users.
You submit your partner-built template apps to the Cloud Partner Portal. The apps then become publicly available
in the Power BI App gallery (app.powerbi.com/getdata/services) and on Microsoft AppSource
(appsource.microsoft.com). Here's an example of the public template app experience.
Overview
The general process to develop and submit a template app involves several stages, some of which can involve
more than one activity at the same time.
Requirements
To create the template app, you need permissions to create one. See the Power BI admin portal, Template app
settings for details.
To publish a template app to the Power BI service and AppSource, you must meet the requirements for becoming
a Cloud Marketplace Publisher.
High-level steps
Here are the high-level steps.
1. Review the requirements to make sure you meet them.
2. Build a report in Power BI Desktop. Use parameters so you can save it as a file other people can use.
3. Create a workspace for your template app in your tenant on the Power BI service (app.powerbi.com).
4. Import your .pbix file and add content such as a dashboard to your app.
5. Create a test package to test the template app yourself within your organization.
6. Promote the test app to preproduction to submit the app for validation in AppSource, and to test outside
your own tenant.
7. Submitthe content to Cloud Partner Platform for publishing.
8. Make your offer goes 'Live' in AppSource, and move your app to production in Power BI.
9. Now you can start developing the next version in the same workspace, in preproduction.
Requirements
To create the template app, you need permissions to create one. See the Power BI admin portal, Template app
settings for details.
To publish a template app to the Power BI service and AppSource, you must meet the requirements for becoming
a Cloud Marketplace Publisher.
Tips
Make sure your app includes sample data to get everyone started in a click.
Carefully examine your application by installing it in your tenant and in a secondary tenant. Make sure
customers only see what you want them to see.
Use AppSource as your online store to host your application. This way everyone using Power BI can find your
app.
Consider offering more than one template app for separate unique scenarios.
Enable data customization, for example support custom connection and parameters configuration by the
installer.
See Tips for authoring template apps in Power BI (preview ) for more suggestions.
Support
For support during development, use https://powerbi.microsoft.com/support. We actively monitor and manage
this site. Customer incidents quickly find their way to the appropriate team.
Next steps
Create a template app
Create a template app in Power BI (preview)
2/13/2019 • 5 minutes to read • Edit Online
The new Power BI template apps enable Power BI partners to build Power BI apps with little or no coding, and
deploy them to any Power BI customer. This article contains step-by-step instructions to create a Power BI
template app.
If you can create Power BI reports and dashboards, you can become a template app builder who builds and
packages analytical content into an app. You can then deploy your app to other Power BI tenants through any
available platform, such as AppSource, or by using it in your own web service. As a builder you can create a
protected analytics package for distribution.
Power BI tenant admins govern and control who in their organization can create template apps, and who can
install them. Those who are authorized can install your template app, then modify it and distribute it to the Power
BI consumers in their organization.
Prerequisites
Here are the requirements for building a template app:
A Power BI pro license
An installation of Power BI Desktop (optional)
Familiarity with the basic concepts of Power BI
Permissions to create a template app. See the Power BI admin portal, Template app settings for details.
If you don't see that option, contact your Power BI admin to grant you permissions for template app
development in the admin portal.
3. Select Apply.
3. Enter a name, description (optional), and logo image (optional) for your app workspace.
4. Select Develop a template app.
5. Select Save.
Here, you fill in additional parameters for your template app, in four categories.
Branding
App name
Description
App logo (optional)
App color
Content
App landing page (optional): Define a report or dashboard to be the landing page of your app.
Control
Control several limitations and restrictions that your application users will have with the content of your
application. You can use this control to protect certain intellectual property your app might contain.
Access
In the test phase, decide which others in your organization can install and test your app.
Don't worry, you can always come back and change these settings later.
2. Select Create app.
You see a message that the test app is ready, with a link to copy and share with your app testers.
You've also done the first step of the release management process, which follows.
Next steps
See how your customers interact with your template app in Install, customize, and distribute template apps in your
organization.
See the Power BI Application offer for details on distributing your app.
Tips for authoring template apps in Power BI
(preview)
2/13/2019 • 5 minutes to read • Edit Online
When you're authoring your template app in Power BI, part of it is the logistics of creating the workspace, testing
it, and production. But the other important part is obviously authoring the report and the dashboard. We can
break down the authoring process into four main components. Working on these components helps you create the
best possible template app:
With queries, you connect and transform the data, and define parameters.
In the data model, you create relationships, measures, and Q&A improvements.
Report pages include visuals and filters to provide insights into your data.
Dashboards and tiles offer an overview of the insights included.
You may be familiar with each piece as existing Power BI features. When building a template app, there are
additional things to consider for each piece. See each section below for more details.
Queries
For template apps, queries developed in Power BI Desktop are used to connect to your data source and import
data. These queries are required to return a consistent schema and are supported for Scheduled Data refresh
(DirectQuery isn't supported).
Connect to your API
To get started, you need to connect to your API from Power BI Desktop to start building your queries.
You can use the Data Connectors that are available out of the box in Power BI Desktop to connect to your API. You
can use the Web Data Connector (Get Data -> Web) to connect to your Rest API or the OData connector (Get
Data -> OData feed) to connect to your OData feed. These connectors work out of the box only if your API
supports Basic Authentication.
NOTE
If your API uses any other authentication types, like OAuth 2.0 or Web API Key, then you need to develop your own Data
Connector to allow Power BI Desktop to successfully connect and authenticate to your API. For details on how to develop
your own Data Connector for your template app, check the Data Connectors documentation.
NOTE
Template apps support all parameters except Any and Binary.
Data models
A well-defined data model ensures your customers can easily and intuitively interact with the template app. Create
the data model in Power BI Desktop.
NOTE
You should do much of the basic modeling (typing, column names) in the queries.
Q&A
The modeling also affects how well Q&A can provide results for your customers. Ensure you add synonyms to
commonly used columns and you've properly named your columns in the queries.
Additional data model tips
Make sure you've:
Applied formatting to all value columns. Apply types in the query.
Applied formatting to all measures.
Set default summarization. Especially "Do Not Summarize", when applicable (for unique values, for example).
Set data category, when applicable.
Set relationships, as necessary.
Reports
The report pages offer additional insight into the data included in your template app. Use the pages of the reports
to answer the key business questions your template app is trying to address. Create the report using Power BI
Desktop.
NOTE
You can only include one report in a template app, so take advantage of the different pages to call out particular sections of
your scenario.
Dashboards
The dashboard is the main point of interaction with your template app for your customers. It should include an
overview of the content included, especially the important metrics for your business scenario.
To create a dashboard for your template app, just upload your PBIX through Get Data > Files or publish directly
from Power BI Desktop.
NOTE
template apps currently require a single report and dataset per template app. Do not pin content from multiple
reports/datasets onto the dashboard used in the template app.
Known limitations
FEATURE KNOWN LIMITATION
Contents: Datasets Exactly one dataset should be present. Only datasets built in
Power BI Desktop (.pbix files) are allowed.
Not supported: Datasets from other template apps, cross-
workspace datasets, paginated reports (.rdl files), Excel
workbooks
Data sources Data sources supported for cloud Scheduled Data refresh are
allowed.
Not supported:
DirectQuery
Live connections (no Azure AS)
On-premises data sources (personal and enterprise gateways
aren’t supported)
Real time (no support for pushdataset)
Composite models
Content: Dashboards Real-time tiles aren’t allowed (in other words, no support for
PushDataset or pubnub)
Next steps
What are Power BI template apps? (preview )
Install and distribute template apps in your
organization - Power BI (preview)
2/13/2019 • 2 minutes to read • Edit Online
The new Power BI template apps enable Power BI partners to build Power BI apps with little or no coding, and
deploy them to any Power BI customer. This article is for Power BI analysts. It explains how you install, customize,
and distribute a template app that a Power BI partner created. If you're interested in creating template apps to
distribute yourself, see Create a template app in Power BI.
When you install a template app that a Power BI partner has created, you can modify it to meet the needs of your
organization, and then distribute it to your colleagues as an app.
Prerequisites
Here are the requirements for installing, customizing, and distributing a template app:
A Power BI pro license
Familiarity with the basic concepts of Power BI
Valid installation link from the template app creator or AppSource.
Permissions to install template apps.
4. In Access, you give access either to selected users or to your whole organization.
5. Select Update app.
6. After it's successfully published, you can copy the link and share it with whomever you've given access to. If
you've shared it with them, they also see it on the My organization tab in AppSource.
Next steps
Create workspaces with your colleagues in Power BI
Forgot your password for Power BI?
1/14/2019 • 2 minutes to read • Edit Online
If you've forgotten your password, you can use the following link to request a password reset.
https://passwordreset.microsoftonline.com
If you're told that your account is not enabled for password reset, you'll need to contact your Office 365
administrator. If you're using the free trial, the administrator is the first person in your organization who signed up.
If you are still having issues accessing your account you can try contacting the support team for password resets.
This is not the support number for the Power BI service!
1 -800 -642 -7676
NOTE
Please note, support is provided during the eastern standard time (EST) time zone. Support is provided during business hours
and currently only supported in English.
4. Switch to the Network tab. It will list traffic it has already captured.
5. You can browse within the window and reproduce any problem you may be encountering. You can hide and
show the developer tools window at any time during the session by pressing F12.
6. To stop the capture, you can select the red square on the network tab of the developer tools area.
7. Select on the diskette icon to Export as HAR
When you sign up for Power BI, you provide an email address. By default, Power BI uses this address to send you
updates about activity in the service. For example, when someone sends you a sharing invitation, it goes to this
address.
In some cases, you might want these emails delivered to an alternate email address rather than the one you signed
up with. This article explains how to specify an alternate address in Office 365 and in PowerShell. The article also
explains how an email address is resolved in Azure Active Directory (Azure AD ).
NOTE
Specifying an alternate address doesn't affect which email address Power BI uses for service updates, newsletters, and other
promotional communications. Those communications are always be sent to the email address you used when you signed up
for Power BI.
4. In the Alternate email field, enter the email address you would like Power BI updates to be sent to.
Use PowerShell
To specify an alternate address in PowerShell, use the Set-AzureADUser command.
Set-AzureADUser -ObjectId [email protected] -OtherMails "[email protected]"
If you are a user of both Power BI and Azure, you may want to use the same login for both services so that you
don't need to type in your password twice.
Power BI signs you in with your organizational account, associated with your work or school email address. Azure
signs you in with either a Microsoft Account or your organizational account.
If you want to use the same login for both Azure and Power BI, be sure to sign in to Azure with your organizational
account.
What if I already sign in to Azure with my Microsoft Account?
You can add your organizational account as a co-administrator in Azure. Here's how:
1. Sign in to the Azure Management Portal. If you are a user in multiple Azure directories, click Subscriptions and
then filter to view only the directory and subscriptions you want to edit.
2. In the navigation pane, click Settings, click Administrators, and then click Add.
3. Enter the email address associated with your organizational account.
4. Select the subscriptions you want to access with your organizational account and then click the check mark.
Next time you sign in to the Azure Management Portal, use your organizational email address.
More questions? Try the Power BI Community
Office 365 dedicated customers - known issues
1/14/2019 • 2 minutes to read • Edit Online
Power BI is now supported for Office 365 Dedicated customers. If you are an O365 Dedicated customer, you can
sign in with an account from that tenant and use Power BI. There are two known issues currently.
Groups
When selecting Members or Calendar in the Group context menu, you will be redirected to the Mail app instead.
Files and Conversations work as expected.
This article is part of a series. If you haven't already, we recommend reading the following three articles.
Article 1: Understand how Cortana and Power BI work together to search for Power BI dashboards and reports
Article 2: For searching reports: enable the Cortana - Power BI - Windows integration
Article 3: For searching reports: create special Cortana answer cards
If you're still having problems getting Cortana to integrate with Power BI, you've come to the right place. Follow
the steps below to diagnose and fix the problem.
When you select it, does Cortana open with a field in which you can type?
3. Did you use at least 2 words in your search? Cortana needs at least 2 word phrases to find answers in
Power BI. Try adding "show" to the beginning of your question.
4. If your dashboard has a title with more than one word, Cortana will only return that dashboard if your
search matches at least two of the words. For a dashboard named "Sales FY16":
"show sales" will not return a Power BI result.
"show me sales fy16", "sales fy16", "show sales fy16", and "show me sales f" will return a Power BI
result.
Adding the words "powerbi" counts as one of the 2 required words, so "powerbi sales" will return a
Power BI result.
5. Do you have access or edit permissions to any reports or dashboards? For reports, ensure the content you
are attempting to search has an answer card. For dashboards, ensure the content you are attempting to
search is in Shared with me, an app workspace, or My workspace. Use the troubleshooting tool for help
identifying the problem.
6. Are you using a mobile device? Currently we only support Power BI and Cortana integration on Windows
mobile devices.
7. Is Cortana configured for English? The current Cortana-Power BI integration only supports English. Open
Cortana and select the cog icon to display Settings. Scroll down to Cortana language and ensure it's set
to one of the English options.
8. Do you have more than 100 reports enabled for Cortana? Cortana only searches up to 100 total. To ensure
that your report is included, move or copy it to your My Workspace because Cortana searches there first.
9. You might just need to give it some time. The first time you type a query the model might be cold. Wait a
few seconds so the data can be loaded into memory, and then try again.
10. For dashboards, it can take up to 24 hours for them to become accessible to Cortana.
11. For reports, when a new dataset or custom answer card is added to Power BI and enabled for Cortana it
can take up to 30 minutes for results to begin appearing in Cortana. Logging in and out of Windows 10, or
otherwise restarting the Cortana process in Windows 10, will allow new report content to appear
immediately.
12. Your Power BI Administrator can "opt out". Check with your admin to see if this is the case.
Because we got a result, we now know that Cortana is enabled in Power BI. That narrows down the
problem to something on the Windows side or the Cortana language setting or having more than 100
datasets enabled for Cortana.
Having trouble retrieving answers from a dashboard?
Looking for a dashboard that has been shared with you? Open Power BI > Shared with me and locate the name
of the dashboard. Then type that name into the Utterances field.
There may be times when using Analyze in Excel that you get an unexpected result, or the feature doesn't work as
you expected. This page provides solutions for common issues when using Analyze in Excel.
NOTE
There's a separate page dedicated to describing and enabling Analyze in Excel.
If you encounter a scenario that is not listed below, and it is causing you issues, you can ask for further assistance on the
community site, or you can create a support ticket.
C:\Users\davidi\Desktop\powerbi-content-pr\articles\media\powerbi-desktop-troubleshooting-analyze-in-excel
Alternatively, if the new version you are installing is newer than the version on your computer, the following dialog
appears:
If you see the dialog prompting you to upgrade, you should continue with the installation to get the most recent
version of the OLE DB provider installed in your computer.
Forbidden error
Some users have more than one Power BI account, and when Excel attempts to connect to Power BI using existing
credentials, it may use credentials that do not have access to the dataset or report you want to access.
When this occurs, you may receive an error titled Forbidden, which means you may be signed into Power BI with
credentials that do not have permissions to the dataset. After encountering the forbidden error, when prompted
to enter your credentials, use the credentials that have permission to access the dataset you're trying to use.
If you still run into errors, log into Power BI with the account that has permission, and verify that you can view and
access the dataset in Power BI that you're attempting to access in Excel.
No data models
If you encounter an error that states Can't find OLAP cube model, then the dataset you're trying to access has
no data model, and therefore cannot be analyzed in Excel.
Next steps
Analyze in Excel
Tutorial: Create your own measures in Power BI Desktop
Measures in PowerPivot
Create a Measure in PowerPivot
Add worksheet data to a Data Model using a linked table
Differences between OLAP and non-OLAP PivotTables in Excel
Troubleshooting the On-premises data gateway
2/13/2019 • 25 minutes to read • Edit Online
This article discusses some common issues when using the On-premises data gateway.
NOTE
If you encounter an issue that is not listed below, you can ask for further assistance in the following locations.
For Power BI, you can use the communities site or you can create a support ticket.
For PowerApps, you can use the communities site or you can create a support ticket.
For Microsoft Flow, you can use the communities site of you can create a support ticket.
For Logic Apps, you can submit a support ticket through the Azure portal.
Common issues
Here are a few common issues and resolutions that have helped a number of customers in environments that
restrict internet access.
Authentication to proxy server
Your proxy may require authentication from a domain user account. By default, the gateway uses a Service SID for
the windows service log on user. Changing the log on user to a domain user can help with this. For more
information, see Changing the gateway service account to a domain user.
Your proxy only allows ports 80 and 443 traffic
Some proxies restrict traffic to only ports 80 and 443. By default, communication to Azure Service Bus will occur on
ports other than 443.
You can force the gateway to communicate with Azure Service Bus using HTTPS instead of direct TCP. You will
need to modify the Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config file. Change the value from
AutoDetect to Https . This file is located, by default, at C:\Program Files\On-premises data gateway.
Installation
Error: Failed to add user to group. (-2147463168 PBIEgwService Performance Log Users )
You may receive this error if you are trying to install the gateway on a domain controller. Deploying on a domain
controller is not supported. You will need to deploy the gateway on a machine that is not a domain controller.
Installation fails
You may encounter installation failures if the anti-virus software on the installation machine is out of date. You can
either update the anti-virus installation, or disable anti-virus only for the duration of the gateway installation to
complete, then re-enable anti-virus.
Configuration
How to restart the gateway
The gateway runs as a Windows service, so you can start and stop it in a few ways. For example, you can open a
command prompt with elevated permissions on the machine where the gateway is running and then run either of
these commands:
To stop the service, run this command:
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<remove name="Default" />
<add name="ApplicationFileTraceListener"
type="Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.RotatableFilesManagerTraceListener,
Microsoft.PowerBI.DataMovement.Pipeline.Common"
initializeData="%LOCALAPPDATA%\Microsoft\On-premises data
gateway\,GatewayInfo.log,GatewayErrors.log,GatewayNetwork.log,20,50" />
</listeners>
</trace>
</system.diagnostics>
This includes a stack trace, and that stack trace may include the following message.
Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.CouldNotUpdateGatewayConfigurationException: Error
updating gateway configuration. ----> System.ArgumentNullException: Value cannot be null.
Parameter name: serviceSection
If you are upgrading from an older gateway, we preserve the config file. There may be a section that is missing.
When the gateway tries to read it, we can get the above null reference exception.
To correct this, do the following steps.
1. Uninstall the gateway.
2. Delete the following folder.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001
NOTE
Adding or modifying these registry keys applies the change to all .NET applications. For information about registry changes
that affect TLS for other applications, see Transport Layer Security (TLS) registry settings.
Data sources
Error: Unable to Connect. Details: "Invalid connection credentials"
Within Show details, it displays the error message received from the data source. For SQL Server, you see
something like the following.
Verify that you have the correct username and password. Also, verify that those credentials can successfully connect
to the data source. Make sure the account being used matches the Authentication Method.
Error: Unable to Connect. Details: "Cannot connect to the database"
We were able to connect to the server, but not to the database supplied. Verify the name of the database, and that
the user credential as the proper permission to access that database.
Within Show details, it displays the error message received from the data source. For SQL Server, you see
something like the following.
Cannot open database "AdventureWorks" requested by the login. The login failed. Login failed for user
'username'.
The 'CONTOSO\account' value of the 'EffectiveUserName' XML for Analysis property is not valid.
If the underlying error message is similar to the following, it could mean that the service account for Analysis
Services may be missing the token-groups-global-and-universal (TGGAU ) directory attribute.
Domains with Pre-Windows 2000 compatibility access have the TGGAU attribute enabled. However, most newly
created domains do not enable this attribute by default. You can read more about this here.
You can confirm this by doing the following.
1. Connect to the Analysis Services machine within SQL Server Management Studio. Within the Advanced
connection properties, include EffectiveUserName for the user in question and see if this reproduces the
error.
2. You can use the dsacls Active Directory tool to validate whether the attribute is listed. This is a tool found on
a domain controller. You need to know what the distinguished domain name is for the account and pass that
to the tool.
To correct this issue, you need to enable TGGAU on the account used for the Analysis Services windows service.
Another possibility for username or password incorrect
This error could also be caused if the Analysis Services server is in a different domain than the users and there is
not a two-way trust established.
You need to work with your domain administrators to verify the trust relationship between domains.
Unable to see the data gateway data sources in the 'Get Data' experience for Analysis Services from the Power BI service
Make sure that your account is listed in the Users tab of the data source within the gateway configuration. If you
don't have access to the gateway check with the administrator of the gateway and ask them to verify. Only accounts
in the Users list can see the data source listed in the Analysis Services list.
Error: You don't have any gateway installed or configured for the data sources in this dataset
Ensure that you have added one or more data sources to the gateway, as described in Add a data source. If the
gateway doesn't appear in the admin portal under Manage gateways, try clearing your browser cache or signing
out of the service then signing back in.
Datasets
Error: There is not enough space for this row
This occurs if you have a single row greater than 4 MB in size. You need to determine what the row is from your
data source and attempt to filter it out or reduce the size for that row.
Error: The server name provided doesn't match the server name on the SQL Server SSL Certificate
This can occur when the certificate CN is for the servers fully qualified domain name (FQDN ), but you only
supplied the NetBIOS name for the server. This causes a mismatch for the certificate. To resolve this issue, you
need to make the server name within the gateway data source, and the PBIX file, to use the FQDN of the server.
I don't see the On-premises data gateway present when configuring scheduled refresh
This could be because of a few different scenarios.
1. The server and database name don't match between what was entered in Power BI Desktop and the data source
configured for the gateway. These need to be the same values. They are not case-sensitive.
2. Your account is not listed in the Users tab of the data source within the gateway configuration. You need to get
with the administrator of the gateway to be added to that list.
3. Your Power BI Desktop file has multiple data sources within it and not all of those data sources are configured
with the gateway. You need to have each data source defined with the gateway for the gateway to show up
within Scheduled Refresh.
Error: The received uncompressed data on the gateway client has exceeded the limit
The exact limitation is 10 GB of uncompressed data per table. If you are hitting this issue, there are good options to
optimize and avoid the issue. In particular, reducing the use of highly constant, long string values and instead using
a normalized key or removing the column (if not in use) helps.
Reports
Report could not access the data source because you do not have access to our data source via an On-premises
data gateway
This is usually caused by one of the following.
1. The data source information does not match what is in the underlying dataset. The server and database name
need to match between the data source defined for the On-premises data gateway and what you supply within
Power BI Desktop. If you use an IP Address in Power BI Desktop, the data source, for the On-premises data
gateway, needs to use an IP Address as well.
2. There is not a data source available on any gateway within your organization. You can configure the data source
on a new, or existing On-premises data gateway.
Error: Data source access error. Please contact the gateway administrator
If this report is making use of a live Analysis Services connection, you could be encountering an issue with a value
being passed to EffectiveUserName that is either not valid or doesn't have permissions on the Analysis Services
machine. Typically, an authentication issue is due to the fact that the value being passed for EffectiveUserName
doesn't match a local user principal name (UPN ).
To confirm this, you can do the following.
1. Find the effective username within the gateway logs.
2. Once you have the value being passed, validate that it is correct. If it is your user, you can use the following
command from a command prompt to see the UPN. The UPN looks like an email address.
whoami /upn
Optionally, you can see what Power BI gets from Azure Active Directory.
1. Browse to https://developer.microsoft.com/graph/graph-explorer.
2. Select Sign in in the upper right.
3. Run the following query. You see a rather large JSON response.
https://graph.windows.net/me?api-version=1.5
Firewall or Proxy
For information on providing proxy information for your gateway, see Configuring proxy settings for the Power BI
gateways.
You can test to see if your firewall, or proxy, may be blocking connections by running Test-NetConnection from a
PowerShell prompt. This will test connectivity to the Azure Service Bus. This only tests network connectivity and
doesn't have anything to do with the cloud server service or the gateway. It helps to determine if your machine can
actually get out to the internet.
NOTE
Test-NetConnection is only available on Windows Server 2012 R2 and later. It is also available on Windows 8.1 and later. On
earlier OS versions, you can use Telnet to test port connectivity.
The results should look similar to the following. The difference will be with TcpTestSucceeded. If
TcpTestSucceeded is not true, then you may be blocked by a firewall.
ComputerName : watchdog.servicebus.windows.net
RemoteAddress : 70.37.104.240
RemotePort : 5672
InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet - Virtual Switch)
SourceAddress : 10.120.60.105
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True
If you want to be exhaustive, substitute the ComputerName and Port values with those listed for ports
The firewall may also be blocking the connections that the Azure Service Bus makes to the Azure data centers. If
that is the case, you will want to whitelist (unblock) the IP addresses for your region for those data centers. You can
get a list of Azure IP addresses here.
You can find the data center region you are in by doing the following:
1. Select the ? in the upper right of the Power BI service.
2. Select About Power BI.
3. Your data region is listed in Your data is stored in.
If you are still not getting anywhere, you could try getting a network trace using a tool like fiddler or netsh,
although these are advanced collection methods and you may need assistance in analyzing the collected data. You
can contact support for assistance.
Performance
https://www.youtube.com/embed/IJ_DJ30VNk4?showinfo=0
Performance Counters
There are a number of performance counters that can be used to gauge the activities for the gateway. These can be
helpful to understand if we have a large load of activity and may need to make a new gateway. These counters do
not reflect how long something takes.
These counters can be accessed through the Windows Performance Monitor tool.
OLEDB Certain data sources use this. This includes SAP HANA and
Analysis Service 2016 or later.
Mashup This includes any imported data source. If you are scheduling
refresh or doing an on-demand refresh, it goes through the
mashup engine.
COUNTER DESCRIPTION
# of ADO.NET open connection executed / sec Number of ADO.NET open connection actions executed per
second (succeeded or failed).
# of ADO.NET open connection failed / sec Number of ADO.NET open connections actions failed per
second.
# of ADO.NET queries executed / sec Number of ADO.NET queries executed per second (succeeded
or failed).
# of ADO.NET queries failed / sec Number of ADO.NET failed queries executed per second.
# of ADOMD open connection executed / sec Number of ADOMD open connection actions executed per
second (succeeded or failed).
# of ADOMD open connection failed / sec Number of ADOMD open connection actions failed per
second.
# of ADOMD queries executed / sec Number of ADOMD queries executed per second (succeeded
or failed).
COUNTER DESCRIPTION
# of ADOMD queries failed / sec Number of ADOMD failed queries executed per second.
# of all open connection executed / sec Number of open connection actions executed per second
(succeeded or failed).
# of all open connection failed / sec Number of failed open connection actions executed per
second.
# of all queries executed / sec Number of queries executed per second (succeeded or failed).
# of items in the ADO.NET connection pool Number of items in the ADO.NET connection pool.
# of items in the OLEDB connection pool Number of items in the OLEDB connection pool.
# of items in the Service Bus pool Number of items in the Service Bus pool.
# of Mashup open connection executed / sec Number of Mashup open connection actions executed per
second (succeeded or failed).
# of Mashup open connection failed / sec Number of Mashup open connection actions failed per second.
# of Mashup queries executed / sec Number of Mashup queries executed per second (succeeded
or failed).
# of Mashup queries failed / sec Number of Mashup failed queries executed per second
# of OLEDB multiple result set queries failed / sec Number of multiple result sets of OLEDB failed queries
executed per second.
# of OLEDB multiple result sets of queries executed / sec Number of OLEDB multiple result sets of queries executed per
second (succeeded or failed).
# of OLEDB open connection executed / sec Number of OLEDB open connection actions executed per
second (succeeded or failed).
# of OLEDB open connection failed / sec Number of OLEDB open connection actions failed per second.
# of OLEDB queries executed / sec Number of OLEDB multiple result sets of queries executed per
second (succeeded or failed).
# of OLEDB queries failed / sec Number of OLEDB multiple result sets of failed queries
executed per second.
# of OLEDB single result set queries executed / sec Number of OLEDB single result set queries executed per
second (succeeded or failed).
# of single result set OLEDB queries failed / sec Number of single result set OLEDB failed queries executed per
second.
IMPORTANT
Enabling EmitQueryTraces could increase the log size significantly depending on gateway usage. Once you are done reviewing
the logs, you can need to set EmitQueryTraces to False. It is not recommended to leave this setting enabled long term.
Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.dll.config
Within the Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.dll.config file, change the TracingVerbosity
value from 4 to 5 . This file is located, by default, at C:\Program Files\On-premises data gateway. Changing this
setting begins to log verbose entries to the gateway log. This includes entries that show duration. You can also
enable verbose entries by enabling the "Additional Logging" button in the On-Premises Gateway application.
IMPORTANT
Enabling TracingVerbosity to 5 could increase the log size significantly depending on gateway usage. Once you are done
reviewing the logs, you need to set TraceVerbosity to 4 . It is not recommended to leave this setting enabled long term.
Activity Types
ACTIVITY TYPE DESCRIPTION
MGEO Queries executed over OLEDB. This includes SAP HANA and
Analysis Services 2016.
MGEM Queries executed from the Mashup engine. This is used with
imported datasets that use scheduled refresh or refresh on-
demand.
NOTE
FireActivityCompletedSuccessfullyEvent is a verbose entry. This entry is not logged unless TraceVerbosity is at level 5.
Firewall or Proxy
For information on providing proxy information for your gateway, see Configuring proxy settings for the Power BI
gateways.
You can test to see if your firewall, or proxy, may be blocking connections by running Test-NetConnection from a
PowerShell prompt. This tests connectivity to the Azure Service Bus. This only tests network connectivity and don't
have anything to do with the cloud server service or the gateway. It helps to determine if your machine can actually
get out to the internet.
NOTE
Test-NetConnection is only available on Windows Server 2012 R2 and later. It is also available on Windows 8.1 and later. On
earlier OS versions, you can use Telnet to test port connectivity.
The results look similar to the following. The difference is with TcpTestSucceeded. If TcpTestSucceeded is not true,
then you may be blocked by a firewall.
ComputerName : watchdog.servicebus.windows.net
RemoteAddress : 70.37.104.240
RemotePort : 5672
InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet - Virtual Switch)
SourceAddress : 10.120.60.105
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True
If you want to be exhaustive, substitute the ComputerName and Port values with those listed for ports
The firewall may also be blocking the connections that the Azure Service Bus makes to the Azure data centers. If
that is the case, you want to whitelist (unblock) the IP addresses for your region for those data centers. You can get
a list of Azure IP addresses here.
Network Ports Test
The network ports test is a tool to check if your gateway can access the correct ports for all remote servers that are
required by your gateway for transferring data. If the network ports test fails to connect to any of the ports, your
gateway may experience network issues. If you are currently experiencing network issues with your gateway, run a
network ports test to ensure that you have the optimal network environment.
Start a new test
To run a new network ports test, in theOn-premises data gatewayuser interface.
When executing the network ports test, your gateway retrieves a list of ports and servers from Azure Service Bus
and then it attempts to connect to all the servers and ports. When the Start new test link reappears, the network
ports test has finished executing.
Test results
A summary of the test can be seen below the Start new test link as Recent test results. The two results are
Completed (Succeeded) and Completed (Failed, see last test results). If the test succeeded, then your gateway
successfully connected to all the required ports. If the test failed, then your network environment may be blocking
these required ports and servers.
To view the results of the last completed test, select the Open last completed test results link, as seen below. The
test results open in Windows’ default text editor.
The test results list all the servers, ports, and IP addresses that are required by your gateway. If the test results
display Closed for any ports as shown below, ensure that your network environment is not blocking the connection.
You may need to contact your network administrator to open the required ports.
Kerberos
If the underlying database server and On-premises data gateway are not appropriately configured for Kerberos
Constrained Delegation, enable verbose logging on the gateway, and investigate based on the errors/traces in the
gateway’s log files as a starting point for troubleshooting.
ImpersonationLevel
The ImpersonationLevel is related to the SPN setup or the local policy setting.
Solution
Follow these steps to solve the issue:
1. Setup an SPN for the On-Premises Gateway
2. Setup constrained delegation in your Active Directory (AD )
FailedToImpersonateUserException: Failed to create windows identity for user userid
The FailedToImpersonateUserException happens if you are not able to impersonate on behalf of another user. This
could also happen if the account you are trying to impersonate is from another domain than the one the gateway
service domain is on (this is a limitation).
Solution
Verify that the configuration is correct as per the steps in the ImpersonationLevel section above
Ensure that the userid it's trying to impersonate is a valid AD Account
General error; 1033 error while parsing the protocol
You get the 1033 error when your external ID that is configured in SAP HANA is not matching the login if the user
is impersonated using the UPN ([email protected]). In the logs you see the “Original UPN '[email protected]'
replaced with a new UPN '[email protected]' at the top of the error logs as seen below.”
[DM.GatewayCore] SingleSignOn Required. Original UPN '[email protected]' replaced with new UPN
'[email protected].'
Solution
SAP HANA requires the impersonated user to use the sAMAccountName attribute in AD (user alias). If this
is not correct, you see the 1033 error.
In the logs you see the sAMAccountName (alias) and not the UPN, which is the alias followed by the domain
([email protected])
[SAP AG ][LIBODBCHDB DLL ][HDBODBC ] Communication link failure;-10709 Connection failed (RTE:[-1]
Kerberos error. Major: "Miscellaneous failure [851968]", minor: "No credentials are available in the security
package
You get the -10709 Connection failed error message if your delegation is not configured correctly in AD.
Solution
Ensure you have the SAP Hana server on the delegation tab in AD for the gateway service account
Tools for troubleshooting
Collecting logs from the gateway configurator
There are several logs you can collect for the gateway, and you should always start with the logs. The simplest way
to collect logs after installing the gateway is through the user interface. In the On-premises data gateway user
interface, select Diagnostics and then select the Export logs link near the bottom of the page, as shown in the
following image.
Installer logs
%localappdata%\Temp\On-premises_data_gateway_*.log
Configuration logs
Event Logs
The On-premises data gateway service event logs are present under Application and Services Logs.
Fiddler Trace
Fiddler is a free tool from Telerik that monitors HTTP traffic. You can see the back and forth with the Power BI
service from the client machine. This may show errors and other related information.
Refresh History
When using the gateway for a scheduled refresh, Refresh History can help you see what errors have occurred, as
well as provide useful data if you need to create a support request. You can view both scheduled, as well as on-
demand, refreshes. Here is how you can get to the Refresh History.
1. In the Power BI navigation pane, in Datasets, select a dataset > Open Menu > Schedule Refresh.
Next steps
Configuring proxy settings for the Power BI gateways
On-premises data gateway
On-premises data gateway - in-depth
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Import/Scheduled refresh
More questions? Try the Power BI Community
Troubleshooting Power BI Gateway - Personal
1/14/2019 • 7 minutes to read • Edit Online
The following goes through some common issues you may encounter when using the Power BI Gateway -
Personal.
NOTE
The current version of the gateway for personal use is the On-premises data gateway (personal). Please update your
installation to use that version.
Installation
Personal gateway is 64bit - If your machine is 32bit, you will not be able to install the personal gateway. Your
operating system needs to be 64bit. You will need to install a 64bit version of Windows, or install the personal
gateway on a 64bit machine.
Personal gateway fails to install as a service even though you are a local administrator for the
computer - Installation can fail if the user is in the computer’s local Administrator group, but group policy does
not allow that username to log on as a service. At the moment, ensure the group policy allows a user to log on as
a service. We’re working on a fix for this issue. Learn more
Operation timed out - This is common if the computer (physical machine or VM ) on which you’re installing the
personal gateway has a single core processor. Close any applications and turn off any non-essential processes
and try installing again.
Data Management Gateway or Analysis Services Connector cannot be installed on the same computer
as personal gateway - If you already have an Analysis ServicesConnector or Data Management Gateway
installed, you must first uninstall the Connector or the gateway and then try installing the personal gateway.
NOTE
If you encounter an issue during installation, the setup logs could provide information to help you resolve the issue. See
Setup Logs for more information.
Proxy configuration You may encounter issues with configuring the personal gateway if your environment
needs the use of a proxy. To learn more about how to configure proxy information, see Configuring proxy
settings for the Power BI Gateways
Schedule refresh
Error: The credential stored in the cloud is missing.
You could get this error in Settings for <dataset> if you have a scheduled refresh and then uninstalled and re-
installed the personal gateway. When you uninstall a personal gateway, data source credentials for a dataset that
has been configured for refresh are removed from the Power BI service.
Solution: In Power BI, go to the refresh settings for a dataset. In Manage Data Sources, for any data source with
an error, click Edit credentials and sign in to the data source again.
Error: The credentials provided for the dataset are invalid. Please update the credentials through a
refresh or in the Data Source Settings dialog to continue.
Solution: If you get a credentials message, it could mean:
Make sure usernames and passwords used to sign into data sources are up to date. In Power BI, go to
refresh settings for the dataset. In Manage Data Sources, click Edit credentials to update the credentials
for the data source.
Mashups between a cloud source and an on-premises source, in a single query, will fail to refresh in the
personal gateway if one of the sources is using OAuth for authentication. An example of this is a mashup
between CRM Online and a local SQL Server. This will fail because CRM Online requires OAuth.
This is a known issue, and being looked at. To work around the problem, have a separate query for the
cloud source and the on-premises source and use a merge or append query to combine them.
Error: Unsupported data source.
Solution: If you get an unsupported data source message in Schedule Refresh settings, it could mean:
The data source is not currently supported for refresh in Power BI.
The Excel workbook does not contain a data model, only worksheet data. Power BI currently only supports
refresh if the uploaded Excel workbook contains a data model. When you import data using Power Query in
Excel, be sure to choose the option to Load data to data model. This ensures data is imported into a data
model.
Error: [Unable to combine data] <query part>/<…>/<…> is accessing data sources that have privacy
levels which cannot be used together. Please rebuild this data combination.
Solution: This error is due to the privacy level restrictions and the types of data sources you are using.
Error: Data source error: We cannot convert the value "[Table]" to type Table.
Solution: This error is due to the privacy level restrictions and the types of data sources you are using.
Error: There is not enough space for this row.
This will occur if you have a single row greater than 4 MB in size. You will need to determine what the row is
from your data source and attempt to filter it out or reduce the size for that row.
Data sources
Missing data provider – The personal gateway is 64-bit only. It requires a 64-bit version of the data providers
to be installed on the same computer where the personal gateway is installed. For example, if the data source in
the dataset is Microsoft Access, you must install the 64-bit ACE provider on the same computer where you
installed the personal gateway.
NOTE
If you have 32 bit Excel, you cannot install a 64-bit ACE provider on the same computer.
Windows authentication is not supported for Access database - Power BI currently only supports
anonymous for Access database. We are working on enabling Windows authentication for Access database.
Sign in error when entering credentials for a datasource - If you get an error similar to this when entering
Windows credentials for a data source, you might still be on an older version of the personal gateway. Install the
latest version of Power BI Gateway - Personal.
Error: Sign in error when selecting Windows authentication for a data source using ACE OLEDB - If you
get the following error when entering data source credentials for a data source using ACE OLEDB provider:
Power BI does not currently support Windows authentication for a data source using ACE OLEDB provider.
Solution: To work around this error, you can select Anonymous authentication. For legacy ACE OLEDB provider,
Anonymous credentials are equivalent to Windows credentials.
Tile refresh
If you are receiving an error with dashboard tiles refreshing, please refer to the following article.
Troubleshooting tile errors
Event logs
There are several event logs that can provide information. The first two, Data Management Gateway and
PowerBIGateway, are present if you are an admin on the machine. If you are not an admin, and you are using
the Personal Gateway, you will see the log entries within the Application log.
The Data Management Gateway and PowerBIGateway logs are present under Application and Services
Logs.
Fiddler trace
Fiddler is a free tool from Telerik that monitors HTTP traffic. You can see the back and forth with the Power BI
service from the client machine. This may show errors and other related information.
Setup Logs
If the Personal Gateway, fails to install, you will see a link to show the setup log. This could show you details
about the failure. These are Windows Install logs, or also knows as MSI logs. They can be fairly complex and
hard to read. Typically the resulting error will be at the bottom, but determining the cause of the error is not
trivial. It could be a result of errors in a different log, or be a result of an error higher up in the log.
Alternatively, you can go to your Temp folder (%temp%) and look for files that start with Power_BI_.
NOTE
Going to %temp% may take you to a subfolder of temp. The Power_BI_ files will be in the root of the temp directory. You
may need to go up a level or two.
Next steps
Configuring proxy settings for the Power BI Gateways
Data Refresh
Power BI Gateway - Personal
Troubleshooting tile errors
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Troubleshooting unsupported data source for refresh
1/14/2019 • 2 minutes to read • Edit Online
You may see an error when trying to configured a dataset for scheduled refresh.
You cannot schedule refresh for this dataset because it gets data from sources that currently don’t
support refresh.
This happens when the data source you used, within Power BI Desktop, isn’t supported for refresh. You will need
to find the data source that you are using and compare that against the list of supported data sources at Refresh
data in Power BI.
5. Compare the provider with the list of supported data sources found within Refresh data in Power BI. You will
find that Active Directory is not a supported data source for refresh.
Next steps
Data Refresh
Power BI Gateway - Personal
On-premises data gateway
Troubleshooting the On-premises data gateway
Troubleshooting the Power BI Gateway - Personal
More questions? Try asking the Power BI Community
Troubleshooting scheduled refresh for Azure SQL
Databases in Power BI
1/14/2019 • 2 minutes to read • Edit Online
For detailed steps on setting up scheduled refresh, be sure to see Refresh data in Power BI.
While setting up scheduled refresh for Azure SQL Database, if you get an error with error code 400 during editing
the credentials, try the following to set up the appropriate firewall rule:
1. Log into your Azure management portal
2. Go to the Azure SQL server you are configuring refresh for
3. Turn on 'Windows Azure Services' in the allowed services section
NOTE
This article applies to Excel 2007 and later.
When you import an Excel workbook into Power BI, you may see the following error:
Error: We couldn't find any data in your Excel workbook. Your data might not be formatted properly. You'll need to
edit your workbook in Excel and then import it again.
Quick solution
1. Edit your workbook in Excel.
2. Select the range of cells that contain your data. The first row should contain your column headers (the column
names).
3. Press Ctrl + T to create a table.
4. Save your workbook.
5. Return to Power BI and import your workbook again, or if you're working in Excel 2016 and you've saved your
workbook to OneDrive for Business, in Excel, click File > Publish.
Details
Cause
In Excel, you can create a table out of a range of cells, which makes it easier to sort, filter, and format data.
When you import an Excel workbook, Power BI looks for these tables and imports them into a dataset; if it doesn't
find any tables, you'll see this error message.
Solution
1. Open your workbook in Excel.
NOTE
The pictures here are of Excel 2013. If you're using a different version, things may look a little different, but the steps
are the same.
2. Select the range of cells that contain your data. The first row should contain your column headers (the
column names):
3. In the ribbon on the INSERT tab, click Table. (Or, as a shortcut, press Ctrl + T.)
4. You'll see the following dialog. Make sure My table has headers is checked, and select OK:
9. Import your Excel workbook again. This time, the import should find the table and succeed.
If the import still fails, let us know by clicking **Community **in the help menu:
Troubleshooting tile errors
2/11/2019 • 3 minutes to read • Edit Online
Below are the common errors you may encounter with tiles along with an explanation.
NOTE
If you encounter an error that is not listed below, and it is causing you issues, you can ask for further assistance on the
community site, or you can create a support ticket.
Errors
Power BI encountered an unexpected error while loading the model. Please try again later. or Couldn't
retrieve the data model. Please contact the dashboard owner to make sure the data sources and model
exist and are accessible.
We weren't able to access your data because the data source wasn't reachable. This issue could happen if the data
source was removed, renamed, moved, offline, or permissions have changed. Check that the source is still in the
location we are pointing to and you still have permission to access it. If that isn't the issue, the source may be slow.
Try again later during a time when the load on the source is smaller. If it is an on-premises source, the data source
owner may be able to provide more information.
You don’t have permission to view this tile or open the workbook.
Contact the dashboard owner to make sure the data sources and model exist and are accessible for your account.
Custom visuals have been disabled by your administrator.
Your Power BI administrator has disabled the usage of custom visuals for your organization or your security
group. You will not be able to use custom visuals from the Microsoft marketplace or import private visuals from a
file. You will be able to use only the pre-packed set of visuals.
Data shapes must contain at least one group or calculation that outputs data. Please contact the
dashboard owner.
We don't have any data to display because the query is empty. Try adding some fields from the field list to your
visual and repinning it.
Can't display the data because Power BI can't determine the relationship between two or more fields.
You are trying to use two or more fields from tables that are not related. You need to remove the unrelated fields
from the visual and then create a relationship between the tables. Once you have done this change, you can add
the fields back to the visual. This can be done in Power BI Desktop or Power Pivot for Excel. Learn more
The groups in the primary axis and the secondary axis overlap. Groups in the primary axis can't have
the same keys as groups in the secondary axis.
It is usually a transient issue. This will typically happen when you are moving groups from rows to columns. In this
case, the error should disappear when you finish moving all the groups. If you still see the message, try switching
fields between the rows and columns or the axis legend or removing fields from the visual.
This visual has exceeded the available resources. Try filtering to decrease the amount of data displayed.
Your visual has attempted to query too much data for us to complete the result with the available resources. Try
filtering the visual to reduce the amount of data in the result.
We are not able to identify the following fields: {0}. Please update the visual with fields that exist in the
dataset.
The field was likely deleted or renamed. You can remove the broken field from the visual, add a different field, and
repin it.
Couldn't retrieve the data for this visual. Please try again later.
This is usually a transient issue. If you try again later and you still see this message, contact support.
Contact support
If you are still having an issue, contact support to investigate further.
Next steps
Troubleshooting the On-premises data gateway
Troubleshooting Power BI Personal Gateway
More questions? Try the Power BI Community
How to refresh your Xero content pack credentials if
refresh failed
1/14/2019 • 2 minutes to read • Edit Online
If you use the Xero Power BI content pack, you may have experienced some problems with the content pack’s daily
refresh due to a recent Power BI service incident.
You can see if your content pack refreshed successfully by checking the last refresh status for your Xero dataset as
shown in the screenshot below.
If you do see that refresh failed as shown above, please follow these steps to renew your content pack credentials.
1. Click the ellipsis (...) next to your Xero dataset, then click Schedule refresh. This opens the settings page for
the Xero content pack.
2. In the Settings for Xero page, select Data source credentials > Edit credentials.
3. Enter your organization’s name > Next.
6. You can also choose to refresh the dataset immediately. Click the ellipsis (...) next to your Xero dataset, then
click Refresh now.
If you are still having refresh issues, please don’t hesitate to reach out to us at http://support.powerbi.com
To learn more about the Xero content pack for Power BI, please visit the Xero content pack help page.
Next steps
More questions? Try the Power BI Community
Troubleshooting sign-in issues for Power BI
3/13/2019 • 2 minutes to read • Edit Online
This article describes how to get support when you are experiencing Power BI sign-in issues.
The first action you need to take is to engage your organization's internal support team for assistance.
However, if you are a tenant admin for your organization and you still can't sign into Power BI, then continue with
the information below.
NOTE
It is helpful to provide additional diagnostic information at the time you engage support.
Power BI community
If you're unable to create a forum post on the community page, it's because the Power BI community forum also
requires you to sign in.
Next steps
Here are a few sites you can visit for additional Power BI support:
Power BI Microsoft docs
Creating Power BI Support Cases
Rename almost anything in Power BI service
1/14/2019 • 2 minutes to read • Edit Online
This article teaches you how to rename a dashboard, report, report page, workbook, dataset, app, and workspace in
Power BI service.
Can I change the name?
Published apps Not from the App screen, but the app No
name can be changed from the app
workspace and re-published with a new
name if you have Admin permissions
App content (dashboard, report, Not from the App screen, but the app's No
workbook, dataset) content can be renamed from the app
workspace and re-published with a new
name if you have Admin permissions
rename, and select the gear icon . If there is no gear icon, you do not have permissions to rename.
2. On the Settings page, type the new name and select Save.
Rename a dataset
1. Start in a workspace and select the Datasets tab.
2. Hover over the item to rename, select the ellipses (...), and choose Rename.
NOTE
The options in the dropdown will vary.
3. Open the report page that you'd like to rename by selecting the tab.
4. Double-click the name on the tab to highlight it.
The Power BI service has a version available for United States Government customers as part of the Office 365
US Government Community subscriptions. The Power BI service version discussed in this article is specifically
designed for US Government customers, and is separate and different from the commercial version of the Power
BI service.
For more information about the Power BI service for US Government, including its features and limitations,
check out Power BI for United States Government customers - Overview.
NOTE
This article is intended for administrators who have authority to sign up their US Government organization for Power BI. If
you are an end-user, contact your administrator about getting a subscription to Power BI for US Government.
NOTE
These steps should be performed by the portal administrator.
1. Go to https://products.office.com/government/office-365-web-services-for-government.
NOTE
If you don't want to sign up for Office Government Cloud at this time, please reach out to your sales representative.
NOTE
These steps should be performed by the portal administrator.
1. Log in to your existing Office Government Cloud account and go to the admin portal
2. Select Billing.
3. Select Purchase Service.
4. Select the Power BI Pro Government Option and choose between Try and Buy Now
5. Complete your order
6. Assign users to the account.
Next steps
There are all sorts of things you can do with Power BI. For more information and learning, including an article that
shows you how to sign up for the service, check out the following resources:
Overview of Power BI for US Government
Guided Learning for Power BI
Get started with the Power BI service
What is Power BI Desktop?
Delete almost anything in Power BI service
2/13/2019 • 4 minutes to read • Edit Online
This article teaches you how to delete a dashboard, report, workbook, dataset, app, visualization, and workspace in
Power BI service.
Delete a dashboard
Dashboards can be removed. Removing the dashboard does not delete the underlying dataset or any reports
associated with that dashboard.
If you are the owner of the dashboard, you can remove it. If you've shared the dashboard with colleagues,
removing the dashboard from your Power BI workspace will remove the dashboard from their Power BI
workspaces.
If a dashboard is shared with you and you no longer want to see it, you can remove it. Removing a dashboard
does not remove it from anyone else's Power BI workspace.
If a dashboard is part of an organizational content pack, the only way to remove it is to remove the associated
dataset.
To delete a dashboard
1. In your workspace, select the Dashboards tab.
2. Locate the dashboard to delete and select the Delete icon .
Delete a report
Don't worry, deleting a report does not delete the dataset that the report is based on. And any visualizations that
you pinned from the report are also safe -- they remain on the dashboard until you delete them individually.
To delete a report
1. In your workspace, select the Reports tab.
2. Locate the report to delete and select the Delete icon .
3. Confirm the deletion.
NOTE
If the report is part of a content pack, you will not be able to delete it using this method. See Remove your
connection to an organizational content pack.
Delete a workbook
Workbooks can be removed. However, removing a workbook also removes all reports and dashboard tiles that
contain data from this workbook.
If the workbook is stored on OneDrive for Business, deleting it from Power BI does not delete it from OneDrive.
To delete a workbook
1. In your workspace, select the Workbooks tab.
Delete a dataset
Datasets can be deleted. However, deleting a dataset also deletes all reports and dashboard tiles that contain data
from that dataset.
If a dataset is part of one or more organizational content packs, the only way to delete it is to remove it from the
content packs where it's being used, wait for it to be processed, and then try deleting it again.
To delete a dataset
1. In your workspace, select the Datasets tab.
2. Locate the dataset to delete and select the ellipses (...).
As the app workspace author, you can delete it. When you delete it, the associated app is also deleted for all group
members and removed from your AppSource if you had published the app to your entire organization. Deleting an
app workspace is different from leaving an app workspace.
To delete an app workspace - if you are an Admin
1. From the left nav, select Workspaces
2. Select the ellipses (...) to the right of the workspace to be deleted and choose Edit workspace.
IMPORTANT
If you are the only Admin for the app workspace, Power BI will not allow you to leave.
2. Hover over the app to delete, and select the Delete icon.
If you remove an app accidentally, you have several options for getting it back. You can ask the app creator
to re-send it, you can find the original email with the link to the app, you can check your Notifications center
to see if the notification for that app is still listed, or you can check your organization's AppSource.
You can connect to a number of services you use to run your business, such as Salesforce, Microsoft Dynamics,
and Google Analytics. Power BI starts by using your credentials to connect to the service, and then creates a
Power BI app with a dashboard and a set of Power BI reports that automatically show your data and provide
visual insights about your business.
Log in to Power BI to view all of the services you can connect to.
After you install the app, you can view the dashboard and reports in the Power BI service ( https://powerbi.com),
and in the Power BI mobile apps.
Get started
1. Select Apps in the left navigation pane > select Get apps in the upper-right corner.
2. In AppSource, select the Apps tab, and search for the service you want.
2. You can ask a question by typing in the Q&A box, or click a tile to open the underlying report.
You can filter and highlight the data in the report, but you can't save your changes.
What's included
After connecting to a service, you see a newly created app with a dashboard, reports, and dataset. The data from
the service is focused on a specific scenario and may not include all the information from the service. The data is
scheduled to refresh automatically once per day. You can control the schedule by selecting the dataset.
You can also use Power BI Desktop to connect to some services, such as Google Analytics, and create your own
customized dashboards and reports.
For more details on connecting to specific services, please refer to the individual help pages.
Troubleshooting
Empty tiles
While Power BI is first connecting to the service, you may see an empty set of tiles on your dashboard. If you still
see an empty dashboard after 2 hours, it's likely the connection failed. If you didn't see an error message with
information on correcting the issue, please file a support ticket.
Select the question mark icon (?) in the upper-right corner > Get help.
Missing information
The dashboard and reports include content from the service focused on a specific scenario and do not include all
the information from the service. If there's a specific metric that you're not seeing in the content pack, please add
an idea on the Power BI Support page.
Suggesting services
Do you use a service you'd like to suggest for a Power BI app? Go to the Power BI Support page and let us know.
Do you have a service you'd like to build an app for? Submit your nomination and select "Publish a Power BI
Content Pack" to get started.
Next steps
What are apps in Power BI?
Get data in Power BI
More questions? Try asking the Power BI Community
Connect to Acumatica with Power BI
2/13/2019 • 2 minutes to read • Edit Online
The Power BI Acumatica content pack allows to you quickly gain insights into your opportunity data. Power BI
retrieves your data, including opportunities, accounts, and customers, then builds a default dashboard and related
reports based on that data.
Connect to the Acumatica content pack or read more about the Acumatica integration with Power BI.
NOTE
This content pack requires Acumatica v5.2 or higher.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Enter your Acumatica OData endpoint. An OData endpoint allows an external system to request data from
Acumatica. Acumatica OData endpoint is formatted as follows and should us HTTPS:
https://[sitedomain]/odata/[companyname]
The Company Name is only required if you have a multi-company deployment. More information about
finding this parameter in your Acumatica account is included below.
5. For Authentication Method, select Basic. Enter your username and password from your Acumatica account,
then click Sign In.
6. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk * which disappears once selected, choosing the
dashboard will show a similar layout to the one below:
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
This content pack requires Acumatica v5.2 or higher, please confirm the version with your Acumatica admin.
Finding parameters
Acumatica OData Endpoint
The Acumatica OData endpoint is formatted as follows and should us HTTPS:
https://[sitedomain]/odata/[companyname]
The Application Site Domain can be found in your browser’s address bar when you’re signed into Acumatica. In
the example below, the site domain is https://pbi.acumatica.com so the OData endpoint to provide would be
https://pbi.acumatica.com/odata .
The Company Name is only required if you have a multi-company deployment. You can find this information from
your Acumatica sign in page.
Troubleshooting
If you’re not able to login, verify the Acumatica OData endpoint you provided is formatted correctly.
If you're having trouble connecting, please confirm with your admin your version of Acumatica. This content pack
requires version 5.2 or later.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Adobe Analytics with Power BI
2/13/2019 • 4 minutes to read • Edit Online
Connecting to Adobe Analytics through Power BI starts by connecting to your Adobe Analytics Marketing Cloud
account. You get an app with a Power BI dashboard and a set of Power BI reports that provide insights about your
site traffic and user dimensions. The data is refreshed automatically once per day. You can interact with the
dashboard and reports, but you can't save changes.
Connect to Adobe Analytics or read more about the Adobe Analytics integration with Power BI.
How to connect
1. Select Apps in the left navigation pane > select Get apps in the upper-right corner.
2. In AppSource, select the Apps tab, and search for the service you want.
5. For Authentication Method, select oAuth2 > Sign In. When prompted, enter your Adobe Analytics
credentials.
6. Click Accept to allow Power BI to access your Adobe Analytics data.
7. After you approve, the import process begins automatically.
2. You can ask a question by typing in the Q&A box, or click a tile to open the underlying report.
What now?
Try asking a question in the Q&A box at the top of the dashboard.
Select a tile to open the underlying report.
You can filter and highlight the data in the report, but you can't save your changes.
Your dataset is scheduled to refresh daily. You can change the refresh schedule or try refreshing it on demand
using Refresh Now.
What's included
Power BI uses the Adobe Analytics Report API to define and run reports for the following tables:
System requirements
Access to Adobe Analytics is required, including access to the correct parameters as described below.
Finding parameters
Company
The Company value can be found in the top right of your account once you're signed in. The value is case and
spacing sensitive. Enter it exactly as you see in your account.
Report Suite ID
The Suite ID is created when the Report Suite is created. You can contact your administrator to identify the ID
value. This is not the Report Suite name.
From Adobe documentation:
Troubleshooting
If you're seeing an error after providing your credentials indicating you do not have permissions, confirm with your
admin that you have access to the Adobe Analytics API. Also confirm the Adobe ID provided is linked to your
Marketing Cloud Organization (associated to an Adobe Analytics company).
If you've successfully passed the credentials screen before encountering an error, it's possible the reports are taking
too long to complete. A common error is in the form "Failed to get data from the Adobe Analytics report. Contents
included "referrer, page", approximate duration was xx seconds". Review the "What's included" section and
compare to the size of your Adobe instance. Unfortunately there isn't a way to work around this timeout today.
However, we're considering updates to better support larger instances, provide feedback to the Power BI team at
https://ideas.powerbi.com
Next steps
What are apps in Power BI?
Get data in Power BI
More questions? Try asking the Power BI Community
Connect to Alpine Metrics Sales Predictions with
Power BI
1/4/2019 • 2 minutes to read • Edit Online
Alpine Metrics provides state of the art Predictive Sales Process Optimization in the cloud and on demand for sales
organizations large and small. The Alpine Metrics Sales Predictions content pack for Power BI includes metrics
such as potential and predicted sales and risks, allowing you deeper insight into the future of your business.
Connect to the Alpine Metrics Sales Predictions content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Select OAuth 2 and then Sign In. When prompted, provide your AlpineMetrics credentials.
5. Once connected, a dashboard, report and dataset will automatically be loaded. When completed, the tiles
will update with data from your account.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack includes data from the following tables:
- Account
- Business
- Country
- Industry
- Opportunity
- Person
- Prediction
- Prediction History
- Product
- Region
System requirements
An Alpine Metrics account with permissions to the above tables is required in order to instantiate this content pack.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to appFigures with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Tracking important statistics about your apps is easy with Power BI and the appFigures content pack. Power BI
retrieves your data, including app sales, downloads, and ad statistics, then builds a default dashboard and related
reports based on that data.
Connect to the appFigures content pack or read more about the appFigures integration with Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. For Authentication Method, select oAuth2 > Sign In. When prompted, enter your appFigures
credentials and follow the appFigures authentication process.
The first time you connect, Power BI prompts you to allow read-only access to your account. Select Allow
to begin the import process. This can take a few minutes depending on the volume of data in your account.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk *:
6. Select the appFigures dashboard. This is the default dashboard that Power BI creates to display your data.
You can modify this dashboard to display your data in any way you want.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The following data is available from appFigures in Power BI.
Dates This table contains dates from today back to the earliest
PublishDate of apps that are Active and Visible in your
appFigures account.
Inapps This table contains data about the different types of In-App
Purchases that are associated with Active, Visible apps on your
appFigures account.
Products This table contains data about the different apps that are
Active and Visible on your appFigures account.
Troubleshooting
If data from some of your apps is not showing up in Power BI, check to make sure that those apps are Visible and
Active on the apps tab of the appFigures site.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Application Insights with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Use Power BI to create powerful custom dashboards from Application Insights telemetry. Envision your app
telemetry in new ways. Combine metrics from multiple apps or component services onto one dashboard. This first
release of the Power BI content pack for Application Insights includes widgets for common usage-related metrics
such as active users, page view, sessions, browser and OS version, and geographic distribution of users in a map.
Connect to the Application Insights content pack for Power BI.
NOTE
This integration method is now deprecated. To learn more about the preferred method of connecting Application Insights to
Power BI use the export analytic query functionality.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Application Insights content pack includes the following tables and metrics:
´´´
- ApplicationDetails
- UniqueUsersLast7Days
- UniqueUsersLast30Days
- UniqueUsersDailyLast30Days
- UniqueUsersByCountryLast7Days
- UniqueUsersByCountryLast30Days
- PageViewsDailyLast30Days
- SessionsLast7Days
- SessionsLast30Days
- PageViewsByBrowserVersionDailyLast30Days
- UniqueUsersByOperatingSystemLast7Days
- UniqueUsersByOperatingSystemLast30Days
- SessionsDailyLast30Days
- SessionsByCountryLast7Days
- SessionsByCountryLast30Days
- PageViewsByCountryDailyLast30Days
´´´
Finding parameters
Your Resource Name, Resource Group and Subscription ID can all be found in the Azure Portal. Selecting the
Name will open a detailed view and you can use the Essentials drop-down to find all the values you need.
Copy and paste these into the fields into Power BI:
Next steps
Get started in Power BI
Get data in Power BI
Connect to AT Internet Bridge with Power BI
1/4/2019 • 2 minutes to read • Edit Online
AT Internet helps you to extract immediate value from your data using its unified digital analytics platform, the
Analytics Suite. The AT Internet Bridge content pack for Power BI includes data around visits, sources, localization
and devices for your site.
Connect to the AT Internet Bridge content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
6. Click Connect to begin the import process. When complete, a new dashboard, report and model will appear
in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
This content pack contains data from the last 45 days in the following tables:
- Conversion
- Devices
- Localization
- Sources
- Global Visits
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Azure Audit Logs with Power BI
1/4/2019 • 2 minutes to read • Edit Online
With the Azure Audit Logs content pack you can analyze and visualize the information stored in the audit logs.
Power BI retrieves your data, builds an out-of-the box dashboard, and creates reports based on that data.
Connect to the Azure Audit Logs content pack or read more about the Azure Audit Logs integration with Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. When prompted, enter your Azure Subscription Id. See details on finding your subscription ID below.
5. For Authentication Method, select oAuth2 > Sign In.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
The Azure Audit logs content pack requires access to Audit Logs in the Azure portal. More details here.
Finding parameters
There are two easy ways to find your Subscription Id.
1. From https://portal.azure.com -> Browse -> Subscriptions -> Subscription Id
2. From https://manage.windowsazure.com -> Settings -> Subscription Id
Your subscription Id will be long set of numbers and characters, similar to the example in Step #4 above.
Troubleshooting
If you're seeing a credentials error or an error trying to refresh due to invalid credentials, try deleting all instances
of the Azure Audit logs content pack and reconnecting.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Azure Mobile Engagement with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI Azure Mobile Engagement content pack allows to you quickly gain insights into your app data.
Connect to the Azure Mobile Engagement content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Specify your App Collection and App Name. This information can be found in your Azure Mobile
Engagement account.
5. For Authentication Method, provide your Key then click Sign In.
6. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk * which disappears once selected:
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
Get started in Power BI
Get data in Power BI
Connect to Microsoft Azure Consumption Insights
with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Explore and monitor your Microsoft Azure consumption data in Power BI with the Power BI content pack. The data
will be refreshed automatically once per day.
Connect to the Microsoft Azure Consumption Insights content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the number months of data you want to import and your Azure Enterprise enrollment number. See
details on finding these parameters below.
5. Provide your Access key to connect. The key for your enrollment can be found in your Azure EA Portal.
6. The import process will begin automatically. When complete, a new dashboard, report and model will
appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Microsoft Azure Consumption Insights content pack includes monthly reporting data for the range of months
that you provide during the connection flow. The range is a moving window, so the dates included will update as
the dataset refreshes.
System Requirements
The content pack requires access to the Enterprise features within the Azure Portal.
Finding parameters
Power BI reporting is available for EA Direct, Partner and Indirect Customers who are able to view billing
information. Please read below for details about finding each of the values the connection flow expects.
Number of Months
This should be a number between 1-36 representing the number of months of data (from today) you'd like to
import.
Enrollment Number
This is your Azure Enterprise enrollment number which can be found on the home screen of the Azure
Enterprise Portal under “Enrollment Detail”.
Access Key
Your key can be found in the Azure Enterprise portal, under "Download Usage" > "API Access Key"
Additional Help
For additional help setting up the Azure Enterprise Power BI Pack, log in to the Azure Enterprise Portal to view
the API Help File under “Help” and additional instructions under Reports -> Download Usage -> API Access
Key.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Azure Search with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Azure Search Traffic Analytics allows you to monitor and understand the traffic to your Azure Search service. The
Azure Search content pack for Power BI provides detailed insights on your Search data, including Search, Indexing,
Service Stats and Latency from the last 30 days. More details can be found in the Azure blog post.
Connect to the Azure Search content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the name of the table storage account your Azure Search analysis is stored.
5. Select Key as the Authentication Mechanism and provide your storage account key. Click Sign In and to
begin the loading process.
6. Once the loading is complete, a new dashboard, report and model will appear in the Navigation Pane. Select
the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
The Azure Search content pack requires Azure Search Traffic Analytics to be enabled on the account.
Troubleshooting
Ensure the storage account name is correctly provided along with the full access key. The storage account name
should correspond to the account configured with Azure Search Traffic Analytics.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Circuit ID with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Analyzing your communication data from Circuit ID is easy with Power BI. Power BI retrieves your data, then
builds a default dashboard and related reports based on that data. After you have created the connection, you can
explore your data and customize the dashboard to meet your needs. Data is automatically refreshed every day.
Connect to the Circuit ID content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
What is Power BI?
Get Data for Power BI
Connect to ClickDimensions with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The ClickDimensions content pack for Power BI allows users to utilize ClickDimensions marketing data in Power
BI, giving management teams further insight into the success of their sales and marketing efforts. Visualize and
analyze email interactions, web visits and form submissions in Power BI dashboards and reports.
Connect to the ClickDimensions content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the location of your data center (US, EU or AU ) and select Next.
5. For Authentication Method, select Basic > Sign In. When prompted, enter your ClickDimensions
credentials. See details in finding those parameters below
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
To connect to the Power BI content pack, you must provide the data center corresponding to your account and log
in with your ClickDimensions account. If you're unsure which data center to provide, please check with your admin.
Finding parameters
The Account Key is found within CRM Settings > ClickDimensions Settings. Copy the Account Key from within
ClickDimensions Settings and paste it into the User name field.
Copy the Power BI Token from within ClickDimensions Settings and paste it into the Password field. The Power BI
Token is found within CRM Settings > ClickDimensions Settings.
Next steps
Get started in Power BI
Get data in Power BI
Connect to comScore Digital Analytix with Power BI
1/31/2019 • 2 minutes to read • Edit Online
Visual and explore your comScore Digital Analytix data in Power BI with the Power BI content pack. The data will
be refreshed automatically once per day.
Connect to the comScore content pack for Power BI.
NOTE
To connect to the content pack you need a comScore DAx user account and have comScore API access. More details below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Provide your comScore username and password to connect. See details on finding this value below.
6. The import process will begin automatically. When complete, a new dashboard, report and model will
appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
A comScore DAx user account and access to the comScore DAx API is required to connect. Please contact your
comScore DAx admin to confirm your account.
Finding parameters
Details on how to find each of your comScore parameters is below.
Data Center
The data center you connect to is determined by the URL you navigate to in comScore.
Client
The Client is the same one you provide when signing into comScore DAx.
Site
The comScore site determines which site you’d like to see the data from. You can find the list of sites from your
comScore account.
Next steps
Get started in Power BI
Get data in Power BI
Connect to GitHub with Power BI
1/4/2019 • 3 minutes to read • Edit Online
The GitHub content pack for Power BI allows you to gain insights into a GitHub repository (also known as repo)
with data around contributions, issues, pull requests and active users.
Connect to the GitHub content pack or read more about the GitHub integration with Power BI.
NOTE
The content pack requires the GitHub account to have access to the repo. More details on requirements below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Enter the repository name and repository owner of the repo. See details on finding these parameters below.
5. Enter your GitHub credentials (this step might be skipped if you are already signed in with your browser).
6. For Authentication Method, select oAuth2 > Sign In.
7. Follow the Github authentication screens. Grant the GitHub for Power BI content pack permission to the
GitHub data.
This connects Power BI with GitHub and allows Power BI to connect to the data. The data is refreshed once a
day.
8. After you connect to your repo, Power BI imports the data. You see a new GitHub dashboard, report, and
dataset in the left navigation pane. New items are marked with a yellow asterisk *.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The following data is available from GitHub in Power BI:
Contributions The contributions table gives the total additions, deletions and
commits authored by the contributor aggregated per week.
The top 100 contributors are included.
Issues List all issues for the selected repo and it contains calculations
like total and average time to close an issue, Total open issues,
Total closed issues. This table will be empty when there are no
issues in the repo.
Pull requests This table contains all the Pull Requests for the repo and who
pulled the request. It also contains calculations around how
many open, closed and total pull requests, how long it took to
pull the requests and how long the average pull request took.
This table will be empty when there are no issues in the repo.
DateTable This tables contains dates from today and for years in the past
that allow you to analyze your GitHub data by date.
TABLE NAME DESCRIPTION
ContributionPunchCard This table can be used as a contribution punch card for the
selected repo. It shows commits by day of week and hour of
day. This table is not connected to other tables in the model.
System requirements
The GitHub account that has access to the repo.
Permission granted to the Power BI for GitHub app during first login. See details below on revoking access.
Sufficient API calls available to pull and refresh the data.
De -authorize Power BI
To de-authorize Power BI from being connected to your GitHub repo you can Revoke access in GitHub. For more
details see this GitHub help topic.
Finding parameters
You can determine the owner and repository by looking at the repository in GitHub itself:
The first part "Azure" is the owner and the second part "azure-sdk-for-php" is the repository itself. You see these
same two items in the URL of the repository:
<https://github.com/Azure/azure-sdk-for-php> .
Troubleshooting
If necessary, you can verify your GitHub credentials.
1. In another browser window, go to the GitHub web site and log in to GitHub. You can see you’re logged in, in the
upper-right corner of the GitHub site.
2. In GitHub, navigate to the URL of the repo you plan to access in Power BI. For example:
https://github.com/dotnet/corefx.
3. Back in Power BI, try connecting to GitHub. In the Configure GitHub dialog box, use the names of the repo and
repo owner for that same repo.
Next steps
What is Power BI?
Get data
Connect to Google Analytics with Power BI
2/13/2019 • 2 minutes to read • Edit Online
Connecting to Google Analytics through Power BI starts by connecting to your Google Analytics account. You will
get a Power BI dashboard and a set of Power BI reports that provide insights about your site traffic and user
dimensions. You can interact with the dashboard and reports, but you can't save changes. The data will be
refreshed automatically once per day.
Connect to Google Analytics for Power BI. Read more about the Google Analytics integration with Power BI.
You can create customized dashboards and reports by starting from the Google Analytics connector in Power BI
Desktop. Just connect with your Google Analytics account and create your custom reports, which you can publish
to the Power BI service.
How to connect
1. Select Apps in the left navigation pane > select Get apps in the upper-right corner.
2. In AppSource, select the Apps tab, and search for the service you want.
What now?
Try asking a question in the Q&A box at the top of the dashboard.
Select a tile to open the underlying report.
You can filter and highlight the data in the report, but you can't save your changes.
Your dataset is scheduled to refresh daily. You can change the refresh schedule or try refreshing it on demand
using Refresh Now.
System requirements
To connect from Power BI, you need to have a Google Analytics account. Other Google accounts that do not have a
Google Analytics account connected to it will see an authentication error.
Troubleshooting
Credentials If you have multiple Google accounts, please use an incognito or an in-private browser window
during connection to ensure the correct account is used.
If you're getting an error indicating your credentials are invalid however you were able to sign into Google, please
confirm you have a Google Analytics account.
Parameters Unique names are currently required for the parameters. If you see an error indicating the value you
selected is duplicated, please select another value or change the names in Google Analytics to make them unique.
We're actively working to improve this.
NOTE
Parameters are case-sensitive. Enter them exactly as they appear in your Google Analytics account.
Still having issues? Open a support ticket to reach the Power BI team:
While in the Power BI app, select the question mark > Contact Support.
From the Power BI Support site (where you're reading this article), select Contact Support on the right side of
the page.
Next steps
What are apps in Power BI?
Get data in Power BI
More questions? Try asking the Power BI Community
Connect to Insightly with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Visualize and share your Insightly CRM data in Power BI with the Insightly content pack. Connect to Power BI
using your Insightly API key to view and build reports and dashboards from your CRM data. With Power BI, you
can analyze your data in new ways, create powerful graphs and charts, and display contacts, leads, and
organizations on a map.
Connect to the Insightly content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Select Key as the Authentication type and provide your Insight API Key then select Sign In. See details on
finding this below.
5. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack includes the following tables with fields from the corresponding records:
TABLES
Many tables and reports also include unique calculated fields, such as:
Tables with “grouped” opportunity forecast close dates, opportunity actual close dates, project completion dates,
and task completion dates for analysis by month, quarter, or year.
A weighted value field for opportunities (opportunity value * probability of winning).
Average and total duration fields for tasks, based on start and completed dates.
Reports with calculated fields for opportunity win rate (count of won/count of total opportunities) and win rate
value (value of won/value of total opportunities).
System requirements
An Insightly account with access to the Insightly API is required. Visibility permissions will be based on the API key
used to establish the connection to Power BI. Any Insightly records visible to you will also be visible in the Power BI
reports and dashboards that you share with others.
Finding parameters
API Key
To copy your API key from Insightly, select User Settings from the Insightly profile menu and scroll down. This
string of characters will be used to connect your data to Power BI.
Troubleshooting
Your data is imported via the Insightly API, which includes a daily limit based on your Insightly subscription plan
level. The limits are listed in the Rate Limiting/Throttling Requests section of our API documentation:
https://api.insight.ly/v2.2/Help#!/Overview/Introduction#ratelimit
The provided reports use default fields from Insightly and may not include your customizations. Edit the report to
view all the available fields.
Next steps
Get started in Power BI
Get data in Power BI
Connect to IntelliBoard with Power BI
1/4/2019 • 2 minutes to read • Edit Online
IntelliBoard offers simplified access to your Moodle learning management system data through reporting services.
The IntelliBoard content pack for Power BI offers additional analytics, including metrics on your courses, registered
users, overall performance, and your LMS activity.
Connect to the IntelliBoard content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Select OAuth 2 and then Sign In. When prompted, provide your IntelliBoard credentials.
5. Once connected, a dashboard, report and dataset will automatically be loaded. When completed, the tiles
will update with data from your IntelliBoard account.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack includes data from the following tables:
- Activity
- Agents
- Auth
- Countries
- CoursesProgress
- Enrollments
- Lang
- Platform
- Totals
- UsersProgress
System requirements
An IntelliBoard account with permissions to the above tables is required in order to instantiate this content pack.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Lithium with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Lithium builds trusted relationships between the world's best brands and their customers, helping people get
answers and share their experiences. By connecting the Lithium content pack to Power BI, you can measure key
metrics about your online community to help drive sales, reduce service costs and increase loyalty.
Connect to the Lithium content pack for Power BI.
NOTE
The Power BI content pack uses the Lithium API. Excessive calls to the API may result in additional charges from Lithium,
please confirm with your Lithium administrator.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. When prompted, enter your Lithium credentials. Select oAuth 2 as the Authentication Mechanism and click
Sign In and follow the Lithium authentication flow.
6. Once the login flow is completed the import process will begin. When complete, a new dashboard, report
and model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
The Lithium content pack requires a Lithium community v15.9 or greater. Please check with your Lithium admin to
confirm.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to MailChimp with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI content pack pulls data from your MailChimp account and generates a dashboard, a set of reports
and a dataset to allow you to explore your data. Pull in analytics to create MailChimp dashboards and quickly
identify trends within your campaigns, reports, and individual subscribers. The data is set to refresh daily ensuring
the data you're monitoring is up to date.
Connect to the MailChimp content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. This is the default dashboard that Power BI created to display your data. You can modify this
dashboard to display your data in any way you want.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Mandrill with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI content pack pulls data from your Mandrill account and generates a dashboard, a set of reports and
a dataset to allow you to explore your data. Use Mandrill's analytics to quickly gain insights into your newsletter or
marketing campaign. The data is set to refresh daily ensuring the data you're monitoring is up to date.
Connect to the Mandrill content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. For Authentication Method, select Key and provide your API key. You can find the key on the Settings
tab of the Mandrill dashboard. Select Sign In to begin the import process, which can take a few minutes
depending on the volume of data in your account.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. This is the default dashboard that Power BI created to display your data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Marketo with Power BI
2/13/2019 • 3 minutes to read • Edit Online
The Power BI content pack for Marketo allows you to gain insights into your Marketo account with data around
Leads and their activities.Creating this connection retrieves your data and automatically provides a dashboard and
related reports based on that data.
Connect to the Marketo content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Enter the Marketo REST endpoint supplied to you by Marketo or your Marketo admin, and select Next.
Read more about the Marketo REST endpoint:
http://developers.marketo.com/documentation/rest/endpoint-url/ .
5. Using the Basic Authentication Method, enter the Client ID as the Username and the Client Secret as the
Password. Client ID and Client Secret are available in Marketo or from your marketo admin
(http://developers.marketo.com/documentation/rest/custom-service/ ).
This gives the Marketo for Power BI content pack access to your Marketo analytics data and allows you to
analyze the data in Power BI. The data is refreshed once a day.
6. Once connected to your Marketo account, a dashboard with all your data is loaded:
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The following data is available from Marketo in Power BI where the activity occurred between today and one year
ago:
WebPageActivities Data from user web page visits, including search agent, User
agent, web page and hour of day.
Datetable Dates from today and the past year. Allows you to analyze
your Marketo data by date.
TABLE NAME DESCRIPTION
All dates are in UTC. Depending on which time zone your account is in, dates my vary (similar as is seen in the
Marketo client)
System requirements
The Marketo account you use for connecting has permission to access leads and activities.
Sufficient API calls available to connect to the data. Marketo has an API for each account. When the limit is
reached, you won't be able to load data into Power BI.
API Limit Details
Importing data from Marketo uses Marketo APIs. Every customer of Marketo has a total limit of 10,000 API calls
per day that are shared between all applications that use the Marketo APIs. You may use the APIs for other
integrations as well as the Power BI integration. For more information on the APIs see:
http://developers.marketo.com/documentation/rest/.
The amount of API calls Power BI makes to Marketo depends on the amount of data in your Marketo account.
Power BI imports all Leads and Activities for the last year. Here is an example of data from Marketo and the
amount of API calls that are used by Power BI when importing:
Next steps
What is Power BI?
Get Data for Power BI
Power BI blog: Monitor and analyze your Marketo data with Power BI
Connect to Microsoft Dynamics AX content pack with
Power BI
1/4/2019 • 2 minutes to read • Edit Online
Microsoft Dynamics AX has three Power BI content packs targeted at different business users. The Financial
Performance content pack, designed specifically for CFOs, provides access to insights about your organization’s
financial performance. The Retail Channel Performance content pack is targeted for channel managers focuses on
sales performance to predict trends and uncover insights by drawing directly from Retail & Commerce data. The
Cost Management is designed for COOs and CFOs and provides details on operation performance.
Connect to the Microsoft Dynamics AX Retail Channel Performance, the Financial Performance or the Cost
Management content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. For Authentication Method, select oAuth2 > Sign In. When prompted, enter your Dynamics AX
credentials.
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack uses the Dynamics AX 7 OData feed to import data related to Retail Channel, Financial, and Cost
Management performance respectively.
System requirements
This content pack requires a Dynamics AX 7 environment URL and the user should have access to the OData feed.
Finding parameters
The Dynamics AX 7 environment URL can be found in the browser when the user signs in. Just copy the URL of
the root Dynamics AX environment into the Power BI dialog.
Troubleshooting
The data may take some time to load depending on the size of your instance. If you're seeing empty reports within
Power BI, please confirm you have access to the OData tables required for the reports.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Microsoft Dynamics CRM with Power BI
1/4/2019 • 6 minutes to read • Edit Online
Microsoft Dynamics CRM Online for Power BI allows you to easily access and analyze your data. Power BI uses the
OData feed to create a descriptive model, with all the entities and measures needed such as Accounts, Activities,
Opportunities, Product, Leads, Users, and more. After you install the app, you can view the dashboard and reports
in the Power BI service (https://powerbi.com), and in the Power BI mobile apps.
Connect to Dynamics CRM Online Sales Manager or Service Manager. Read more about Dynamics CRM Online
integration with Power BI.
This connection requires Microsoft Dynamics CRM Online 2016 or later. More details on requirements below.
How to connect
1. Select Apps in the left navigation pane > select Get apps in the upper-right corner.
2. In AppSource, select the Apps tab, and search for the service you want.
3. Select Microsoft Dynamics CRM Sales Manager or Microsoft Dynamics CRM Service Manager and
click Connect.
4. Provide the Service URL associated with your account. This will be in the form
https://company.crm.dynamics.com , see more details below.
5. When prompted, provide your credentials (this step might be skipped if you're already signed in with your
browser). For Authentication Method, enter oAuth2 and click Sign In:
6. After connecting, you'll see a dashboard customized for a Sales Manager or Service Manager, populated
with your own data:
What's included
The sections below detail what's included for the Sales Manager and Service Manager personas.
Data is limited based on the security role assigned to the Dynamics CRM Online user.
The dashboard and reports are meant to provide operational reporting on near term data with focus on a team or
group. Each query is limited to retrieve a maximum of 100K records from Dynamics CRM Online. If this limit is
exceeded because of high volume of data in your organization, provisioning will fail as data refresh Dynamics CRM
online will be terminated. If your account is too large, consider connecting through the Power BI Desktop to build a
custom solution.
Sales Manager
The dashboard and reports contain key metrics such as:
Won Revenue
Win Rate
Open Revenue
Lost revenue
Expected Revenue
Average Deal Size and more.
They also contain key charts such as:
Won and Lost Revenue Trend, Won Revenue Vs Estimated Revenue Trend
Won Revenue by various dimensions such as Industry, Region, Territory
Sales Leaders By Revenue, Activities,
Top Accounts, Top Won/Lost Deals,
New Leads Trend, Sales Pipeline and more.
These metrics and charts help to understand your sales organization performance and analyze sales pipeline across
your sales team.
Following table lists the CRM entities available for this service and also gives details on the filters applied to each
of the entity records.
Account All accounts, which have related opportunities that have been
modified in the last 365 days.
Service Manager
These dashboard and reports contain key metrics such as:
CSAT Percentage
SLA Met percentage
Escalated Cases Percentage
Average Handling Time
Total Resolved Cases
Total Active Cases
Number of Times KB Article Used in cases and more.
They also contain key charts such as:
Case Volume Trends for Incoming Cases, Resolved Cases, Escalated Cases
Case Volume by various dimensions such as Origin, Location, Priority, Type
Leaders by CSAT percentage, SLA met percentage, Activities, Resolved cases
Most Used and Most viewed KB Articles and more.
These metrics and charts help to understand your support organization performance and analyze active cases
workload across your service team and service queues.
Following table lists the CRM entities available for this service, as well as details on the filters applied to each of the
entity records.
Account All accounts which have related cases that have been modified
in the last 90 days.
Case Resolution Activity All case resolution activities modified in the last 90 days
[modifiedon] > today - 90 days
Contact All contacts, which have related cases that have been modified
in the last 90 days.
Knowledge Article Incident All knowledge article incidents, which are modified in the last
90 days
[modifiedon] > today - 90 days
Queue Item All case-related queue items created on the past 365 days
[createdon] > today - 365 days and
[objecttypecode] = 112
System requirements
A valid Dynamics CRM Online 2016 or later instance (Power BI won't work with an on-premises CRM version).
If you do not have 2016 or later:
An administrator must enable the OData endpoint in the site settings.
An account with less than 100k records in any of the tables. Note if the account has access to more than 100k
records the import will fail.
Finding parameters
The address of the instance can be found in the URL bar of your browser. It typically has the format:
https://[instance_name].crm.dynamics.com .
Power BI only supports Dynamics CRM 2016 endpoints. The connection will not work with earlier versions of
CRM Online. Use Power BI Desktop to connect directly to your account.
Troubleshooting
If you're having trouble connecting, confirm:
you're providing the correct instance URL (check with your admin)
the instance is CRM Online 2016
the OData endpoint is enabled
Also, try connecting directly in Power BI Desktop, with the OData URL
https://[instance_name].crm.dynamics.com/api/data/v8.0/ .
If you confirm you have Dynamics CRM Online 2016 but you're still hitting issues connecting, contact your CRM
Admin to confirm you have all available updates.
If you do not have CRM Online 2016 or later, use the Power BI Desktop to connect directly to your account.
If you see an error "Data refresh failed as query exceeded the maximum limit of 100000 records," consider
connecting directly from the Power BI Desktop or leveraging the CRM solution template.
Next steps
What are apps in Power BI?
Get data in Power BI
More questions? Try asking the Power BI Community
Connect to Microsoft Dynamics NAV with Power BI
1/4/2019 • 3 minutes to read • Edit Online
Getting insights into your Microsoft Dynamics NAV data is easy with Power BI. Power BI retrieves your data, both
Sales and Financial, then builds an app with a dashboard and reports based on that data. Power BI needs your
permissions to the tables where data is retrieved from, in this case sales and finance data. More details on
requirements below. After you install the app, you can view the dashboard and reports in the Power BI service
(https://powerbi.com), and in the Power BI mobile apps.
Connect to the Microsoft Dynamics NAV for Power BI or read more about the Dynamics NAV integration with
Power BI.
How to connect
1. Select Apps in the left navigation pane > select Get apps in the upper-right corner.
2. In AppSource, select the Apps tab, and search for the service you want.
6. Power BI will retrieve your Microsoft Dynamics NAV data and create a ready-to-use dashboard and report
for you.
What's included
The dashboard and reports contain data from the following tables (case sensitive):
ItemSalesAndProfit
ItemSalesByCustomer
powerbifinance
SalesDashboard
SalesOpportunities
SalesOrdersBySalesPerson
TopCustomerOverview
System requirements
To import your Microsoft Dynamics NAV data into Power BI, you need to have permissions to the sales and finance
data tables where data is retrieved from (listed above). The tables are also required to have some data, empty
tables will currently fail to import.
Troubleshooting
Power BI uses Microsoft Dynamics NAV's web services to retrieve your data. If you have a lot of data in your
Microsoft Dynamics NAV instance, a suggestion to minimize the impact on your web service usage is to change
the refresh frequency depending on your needs. Another suggestion is to have one admin create the app and share
it instead of having every admin create their own.
"Parameter validation failed, please make sure all parameters are valid"
If you see this error after typing your Microsoft Dynamics NAV URL. Make sure the following requirements are
satisfied:
The URL follows exactly this pattern:
https://instance.navserver.com:7048/DynamicsNAV90_Instance1/OData/Company('CRONUS%20International%20Ltd.')
However, you need to include the 'Company('CRONUS%20International%20Ltd.')' section with your NAV
Company name:
https://instance.navserver.com:7048/DynamicsNAV90\_Instance1/OData/Company('CRONUS%20International%20Ltd.')
Next steps
What are apps in Power BI?
Get data in Power BI
More questions? Try asking the Power BI Community
Connect to Office365Mon with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Analyzing your Office 365 outages and health performance data is easy with Power BI and the Office365Mon
content pack. Power BI retrieves your data, including outages and health probes, then builds an out-of-box
dashboard and reports based on that data.
Connect to the Office365Mon content pack for Power BI.
NOTE
An Office365Mon admin account is required to connect and load the Power BI content pack.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk *, select the Office365Mon entry.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Troubleshooting
If you get a "login failed" error after using your Office365Mon subscription credentials to login, then the account
you are using doesn't have permissions to retrieve the Office365Mon data from your account. Verify it is an admin
account and try again.
Next steps
What is Power BI?
Get Data for Power BI
Connect to Planview Enterprise with Power BI
1/4/2019 • 2 minutes to read • Edit Online
With the Planview Enterprise content pack, you can visualize your resource and work management data in entirely
new ways directly in Power BI. Use your Planview Enterprise sign-in credentials to interactively see your portfolio
investment spend, understand where you are over and under budget, and know how well your projects align with
your corporate strategic priorities. You can also extend the out-of-the box dashboard and reports to get the insights
that are most important to you.
Connect to the Planview Enterprise content pack in Power BI
NOTE
To import your Planview Enterprise data into Power BI, you must be a Planview Enterprise user with the Reporting Portal
Viewer feature enabled on your role. See additional requirements below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. On the Authentication Method list, select Basic if it is not already selected. Enter the Username and
Password for your account and select Sign In.
6. On the left pane, select Planview Enterprise from the list of dashboards.
Power BI imports Planview Enterprise data into the dashboard. Note that the data may take some time to
load.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
To import your Planview Enterprise data into Power BI, you must be a Planview Enterprise user with the Reporting
Portal Viewer feature enabled on your role. See additional requirements below.
This procedure assumes you have already signed in to the Microsoft Power BI home page with a Power BI account.
If you do not have a Power BI account, go to powerbi.com, and under Power BI - Cloud collaboration and
sharing, select Try free. Then click Get Data.
Next steps:
What is Power BI?
Get Data for Power BI
Connect to Prevedere with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Gain access to exclusive and critical financial information to confidently and proactively drive your business
forward.
Connect to the Prevedere content pack for Power BI.
NOTE
If you are not an existing Prevedere user, please use the sample key to try it out.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Select Sign in to begin the import process. When complete, a new dashboard, report and model will appear
in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack gains insights on your retail forecasts, forecast models, leading indicators, and more.
System requirements
This content pack requires access to a Prevedere API key or the sample key (see below ).
Finding parameters
Existing customers can access their data using their API key. If you are not yet a customer, you can see a sample of
the data and analyses using the sample key.
Troubleshooting
The data may take some time to load depending on the size of your instance.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Project Online with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Microsoft Project Online is a flexible online solution for project portfolio management (PPM ) and everyday work.
Project Online enables organizations to get started, prioritize project portfolio investments and deliver the
intended business value. The Project Online content pack for Power BI allows you to unlock insight from Project
Online to help manage projects, portfolios and resources.
Connect to the Project Online content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. In the Project Web App URL text box, enter the URL for the Project Web Add (PWA) you want to connect
to and hit Next. Note this may differ from the example if you have a custom domain. In the PWA Site
Language text box, type the number that corresponds to your PWA site language. Type the single digit '1'
for English, '2' for French, '3' for German, '4' for Portuguese (Brazil), '5' for Portuguese (Portugal) and '6' for
Spanish.
5. For Authentication Method, select oAuth2 > Sign In. When prompted, enter your Project Online
credentials and follow the authentication process.
Note that you need to have Portfolio Viewer, Portfolio Manager or Administrator permissions for the Project Web
App you are connecting to.
6. You’ll see a notification indicating your data is loading. Depending on the size of your account this may take
some time. After Power BI imports the data you will see a new dashboard, 13 reports, and dataset in the left
navigation pane. This is the default dashboard that Power BI created to display your data. You can modify
this dashboard to display your data in any way you want.
7. Once your dashboard and reports are ready, go ahead and start exploring your Project Online data! The
Content Pack comes with 13 rich and detailed reports for the Portfolio Overview (6 report pages), Resource
Overview (5 report pages) and Project Status (2 report pages).
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Expand the Content Pack
Download the GitHub PBIT file to further customize and update the Content Pack
Next steps
Get started in Power BI
Get data in Power BI
Connect to Projectplace by Planview with Power BI
1/4/2019 • 2 minutes to read • Edit Online
With the Projectplace by Planview content pack, you can visualize your collaborative project data in entirely new
ways directly in Power BI. Use your Projectplace sign-in credentials to interactively view key project statistics, find
out who your most active and productive team members are, and identify at-risk cards and activities across
projects in your Projectplace account. You can also extend the out-of-the box dashboard and reports to get the
insights that are most important to you.
Connect to the Projectplace content pack in Power BI
NOTE
To import your Projectplace data into Power BI, you must be a Projectplace user. See additional requirements below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. On the Authentication Method list, select OAuth if it is not already selected. Hit Sign In and follow the login
flow.
6. On the left pane, select Projectplace from the list of dashboards. Power BI imports Projectplace data into
the dashboard. Note that the data may take some time to load.
The dashboard contains tiles that display data from your Projectplace database. The following image shows
an example of the default Projectplace dashboard in Power BI.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
To import your Projectplace data into Power BI, you must be a Projectplace user. This procedure assumes you have
already signed in to the Microsoft Power BI home page with a Power BI account. If you do not have a Power BI
account, go to powerbi.com, and under Power BI - Cloud collaboration and sharing, select Try free. Then click
Get Data.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to QuickBooks Online with Power BI
1/4/2019 • 2 minutes to read • Edit Online
When you connect to your QuickBooks Online data from Power BI you immediately get a Power BI dashboard
and Power BI reports that provide insights about your business cash flow, profitability, customers, and more. Use
the dashboard and reports as they are, or customize them to highlight the information you care most about. The
data is refreshed automatically once a day.
Connect to the QuickBooks Online content pack for Power BI.
NOTE
To import your QuickBooks Online data into Power BI, you need to be an admin on your QuickBooks Online account and
sign in with your admin account credentials. You can't use this connector with QuickBooks Desktop software.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
NOTE
You need admin credentials for your QuickBooks Online account.
6. Select the company you would like to connect to Power BI in the next screen.
7. Select Authorize in the next screen to begin the import process. This can take a few minutes depending on
the size of your company data.
After Power BI imports the data, you see a new dashboard, report, and dataset in the left navigation pane.
New items are marked with a yellow asterisk *.
8. Select the QuickBooks Online dashboard. This is the dashboard Power BI created automatically to display
your imported data. You can modify this dashboard to display your data any way you want.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it
on demand using Refresh Now
Troubleshooting
“Oops! An error has occurred"
If you get this message after selecting Authorize:
“Oops! An error has occurred." Please close this window and try again.
The application has already been subscribed to by another user for this company. Please contact [admin email] to
make changes to this subscription.”
... this means another admin in your company has already connected to your company data with Power BI. Ask
that admin to share the dashboard with you. Currently, only one admin user can connect a particular QuickBooks
Online company dataset to Power BI. After Power BI creates the dashboard, the admin can shared it with multiple
colleagues on the same Power BI tenants.
"This app is not set up to allow connections from your country"
Currently Power BI only supports US editions of QuickBooks Online.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Salesforce with Power BI
1/30/2019 • 2 minutes to read • Edit Online
With Power BI, you can easily connect to your Salesforce.com account. Creating this connection retrieves your data
and automatically provides a dashboard and related reports based on your data.
Connect to the Salesforce content pack for Power BI or read more about the Salesforce integration with Power BI.
How to Connect
1. Select Get Data at the bottom of the left navigation pane.
6. Configure what you'd like to import into Power BI using the dropdown option:
Dashboard
Select a predefined dashboard based on a persona (such as Sales Manager). These dashboards
bring in a specific set of standard data from Salesforce and will not include custom fields.
Reports
Select one or more custom reports from your Salesforce account. These reports will match your
views in Salesforce and can include data from custom fields or objects.
If you don't see any reports, add or create them in your Salesforce account and try connecting again.
7. Click Connect to begin the import process. During the import you see a notification showing the import is
in progress. When the import is complete, you see a dashboard, report, and dataset for your Salesforce data
listed in the navigation pane on the left.
You can change this dashboard to display your data any way you want. You can ask questions with Q&A - Or click
a tile to open the underlying report and change the tiles in the dashboard.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard
Select a tile to open the underlying report
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Troubleshooting
If you encounter any errors, please review the requirements above. Also note the ability to log in to a custom or
sandbox domain is not currently supported.
"Unable to connect to the remote server" message
If you get a message "Unable to connect to the remote server" when trying to connect to your Salesforce account,
see this solution on the Outsystems forum: Salesforce Connector Log In Error Message: Unable to connect to the
remote server
Next steps
What is Power BI?
Get Data
Connect to SendGrid with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI content pack for SendGrid allows you to extract insights and statistics from your SendGrid account.
Using the SendGrid content pack you can visualize your SendGrid statistics in a dashboard.
Connect to the SendGrid content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. When prompted, provide your SendGrid user name and password. Select Sign In.
5. After Power BI imports the data, you see a new dashboard, report, and dataset in the left navigation pane,
populated with your email statistics for the past 90 days. New items are marked with a yellow asterisk *.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The following metrics are available in the SendGrid dashboard:
Overall email statistics - Requests, Delivered, Bounced, Spam Blocked, Spam Report, etc.
Email statistics by category
Email statistics by geography
Email statistics by ISP
Email statistics by device, client, browser
Next steps
What is Power BI?
Get Data
Connect to ServiceNow with Power BI for incident
reporting
1/4/2019 • 2 minutes to read • Edit Online
ServiceNow offers multiple products and solutions including business, operations and IT management to improve
your business. This content pack includes multiple reports and insights on your open, recently resolved and
recently closed incidents.
Connect to the Power BI content pack for ServiceNow Incidents.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the URL of your ServiceNow instance and the range of days/records to bring in. Note as soon as
one limit is hit the import will stop.
5. When prompted, enter your ServiceNow Basic credentials. Note single sign on is not supported today,
more details on the system requirements below.
6. Once the login flow is completed the import process will begin. When complete, a new dashboard, report
and model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
To connect you will need:
An account that can access yourorganization.service-now.com with Basic authentication (Single Sign-On is not
supported in this version)
The account must have rest_service role and read access to incident table
Troubleshooting
If you're hitting a credential error during load, please review the access requirements above. If you have the correct
permissions and are still hitting issues, please work with your ServiceNow admin to ensure you have any
additional permissions that may be required for your custom instance.
If you're seeing long load times, please review the number of incidents and number of days you specified during
connection and consider reducing it.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Smartsheet with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Smartsheet offers an easy platform for collaboration and file sharing. The Smartsheet content pack for Power BI
provides a dashboard, reports and dataset that shows an overview of your Smartsheet account. You can also use
the Power BI Desktop to connect directly to individual sheets in your account.
Connect to the Smartsheet content pack for Power BI.
NOTE
Smartsheet admin account is preferred to connect and load the Power BI content pack as it has additional access.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk *, select the Smartsheet entry.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Smartsheet content pack for Power BI includes an overview of your Smartsheet account, such as the number
of workspaces, reports and sheets you have, when they're modified etc. Admin users will also see some
information around the users in their system, such as top sheet creators.
To connect directly to individual sheets in your account, you can use the Smartsheet connector in the Power BI
Desktop.
Next steps:
What is Power BI?
Get Data for Power BI
Connect to SparkPost with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI content pack for SparkPost allows you to extract valuable datasets from your SparkPost account all
into one insightful dashboard. Using the SparkPost content pack you can visualize your overall email statistics,
including domains, campaigns, and engagement by ISP.
Connect to the SparkPost content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Your data will start to load, depending on the size of you account this may take some time. After Power BI
imports the data, you’ll see the default dashboard, report, and dataset in the left navigation pane, populated
with your email statistics for the past 90 days. New items are marked with a yellow asterisk *.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The SparkPost content pack for Power BI includes information including unique clicks, accepted rates, bounce rates,
delayed rates, rejection rates and more.
Finding parameters
The content pack uses an API key to connect your SparkPost account to Power BI. You can find your API key in
your account under Account > API & SMTP (more details here). We suggest using an API key with permissions for
Message Events: Read-only and Metrics: Read-only
SQL Database Auditing content pack for Power BI
1/4/2019 • 2 minutes to read • Edit Online
IMPORTANT
The SQL Database Auditing content pack has been deprecated, and is no longer available.
The Power BI content pack for Azure SQL Database Auditing allows you to understand your database activity and
gain insight into discrepancies and anomalies that could indicate business concerns or suspected security
violations.
Connect to the SQL Database Auditing content pack for Power BI.
NOTE
The content pack imports data from all tables that contain “AuditLogs” in their name and append it to a single data model
table named “AuditLogs”. The last 250k events will be included and the data will be refreshed daily.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
IMPORTANT
For performance reasons it is advisable to always specify an explicit table name even if all audit logs are stored in a
single table.
Enter the start date of audit logs you are interested in. Enter “*” to load audit logs without a lower
time limit, or “1d” to load audit logs from the last day.
Enter the end date of audit logs you are interested in. Enter “*” to load audit logs without an upper
time limit.
5. For Authentication Method, select Key, enter your Account Key > Sign In.
6. After Power BI imports the data, you see a new dashboard, report, and dataset in the left navigation pane.
New items are marked with a yellow asterisk *.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
Get data for Power BI What is Power BI?
Connect to SQL Sentry with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Analyzing your performance data collected by SQL Sentry is easy with Power BI. Power BI retrieves your data,
then builds a default dashboard and related reports based on that data.
Connect to the SQL Sentry content pack for Power BI.
NOTE
Access to a SQL Sentry account you use for connecting to http://cloud.sqlsentry.com and a Database ID you will monitor is
required to connect. Instructions for where to find the Database ID are below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the Database ID of the database you’d like to monitor in Power BI. See more details on finding this
below.
The first time you connect, Power BI prompts you to allow read-only access to your account. Select Grant to
begin the import process. The import process can take a few minutes depending on the volume of data in
your account.
6. After Power BI imports the data you will see a new dashboard, report, and dataset in the left navigation
pane. New items are marked with a yellow asterisk *:
7. Select the SQL Sentry dashboard.
This is the default dashboard that Power BI creates to display your data. You can modify this dashboard to
display your data in any way you want.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The following data is available from SQL Sentry in Power BI :
Connection This table provides information about your SQL Sentry defined
connections.
Date This table contains dates from today back to the earliest date
from which performance data was collected and retained.
Memory Usage This table contains data about how much memory is available
or free in each of your servers.
Server Health This table contains data for all the events generated by
custom conditions in your environment, including severity and
count.
Finding Parameters
The Database ID can be found by logging into https://cloud.sqlsentry.com in a new web browser window. The
Database ID is listed on the main overview page:


Troubleshooting
If data from some of your apps is not showing up in Power BI, check to make sure that you are using the correct
Database ID and that you have the authority to view the data.
If you are not the owner if the SQL Sentry database that is being synchronized to https://cloud.sqlsentry.com,
please contact your administrator to make sure you have rights to view the collected data.
Next steps
What is Power BI?
Get Data for Power BI
Connect to Stripe with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Visual and explore your Stripe data in Power BI with the Power BI content pack. The Power BI Stripe content pack
pulls in data about your Customers, Charges, Events and Invoices. The data includes the most recent ten thousand
events and five thousand charges over the last 30 days. The content will be refreshed automatically once per day at
a schedule you control.
Connect to the Stripe content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. The import process will begin automatically. When complete, a new dashboard, report and model will
appear in the Navigation Pane, marked with an asterisk. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
What is Power BI?
Get Data for Power BI
Connect to SweetIQ with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Power BI content pack pulls data from your SweetIQ account and generates set of out of box content allowing
you to easily explore your data. Use the SweetIQ content pack to analyze data about your locations, listings, ratings
and reviews. The data is set to refresh daily ensuring the data you're monitoring is up to date.
Connect to the SweetIQ content pack for Power BI.
How to connect
1. In the navigation pane on the left, click Get Data.
3. Provide your SweetIQ Client ID. This is typically an alpha-numeric value. For more details on finding this
value, see below.
4. Select Key authentication type and provide your Sweet IQ API Key. This is typically an alpha-numeric value.
For more details on finding this value, see below.
5. Power BI will start loading your data, which may take some time depending on the size of data in your
account. Once the load has completed, you'll see a new dashboard, report and dataset in the left navigation
pane.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Finding parameters
The Client ID and API key for this content pack is not the same as your SweetIQ username and password.
Select a Client ID for one of the clients your account has access to. You can find the list of clients under "Client
Management" in your SweetIQ account.
Talk to your administrator for your API key, to access the data for specific client.
Next steps
What is Power BI?
Get Data for Power BI
Connect to Troux for Power BI
1/4/2019 • 2 minutes to read • Edit Online
With the Troux content pack, you can visualize your Enterprise Architecture repository in entirely new ways directly
in Power BI. The content pack offers a set of insights on your business capabilities, the applications that deliver
those capabilities, and the technologies that support those applications that can be fully customized using Power
BI.
Connect to the Troux content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. For Authentication Method, select Basic and provide your username and password (case sensitive), then
select Sign In.
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
System requirements
Access to the Troux OData feed and Troux 9.5.1 or higher is required.
Finding parameters
Your Customer Care team can provide your unique Troux OData feed URL to you
Troubleshooting
If you are seeing a timeout error after providing credentials, try connecting again.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Twilio with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Microsoft Twilio content pack for Power BI allows you to pull your data into Power BI and creates an out of box
Twilio dashboard and report that shows insights on your data. You can also create your custom reports and
dashboard on the dataset Power BI creates. The data will be refreshed once a day so you are always looking at the
latest data.
Connect to the Twilio content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. For Authentication Method, select oAuth2 > Sign In. When prompted provide your Twilio credentials
and authorize the Power BI application to access your data.
5. This will begin importing data from your Twilio account, and you will have your dashboard populated with
your calls and messages usage for the past 30 days.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The details for all calls and messages transactions for the last 30 days. You can do all sorts of analysis and
aggregation on this data.
A set of already aggregated stats that you may want to keep an eye on. This set includes:
Troubleshooting
If you have a very large amount of data in the past 30 days (hundreds of thousands of transactions), the data
retrieval step might fail. We are aware of the problem and working on solving it. Meanwhile, if you hit this issue
please use the support link at the top of your Power BI page to let us know and we'll contact you for further
investigations.
Next steps
Get started in Power BI
Get data in Power BI
Connect to tyGraph with Power BI
1/4/2019 • 3 minutes to read • Edit Online
Visualize and explore your tyGraph data in Power BI with the Power BI content pack. Start by connecting to your
tyGraph account and loading the dashboard, reports and dataset. The out of box content includes insights such as
the Measure of Active Engagement (MAE score) and Top Contributors. Customize it further to highlight the
information you care most about. The data will be refreshed automatically according to a schedule that you set.
Connect to tyGraph for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Provide your tyGraph key to connect. See details on finding this value below.
If you are a Yammer Verified Admin
Your API key is sent to you in an email when your tyGraph account is successfully created. If you can no
longer find your key, you can request a new one by sending an email to [email protected]. If you
do not yet have a tyGraph account, you can start a trial at http://www.tygraph.com/.
If you are not a Yammer Verified Admin
The tyGraph content pack requires a tyGraph account created by a Yammer verified administrator. Once
created, supplemental keys can be issued to users within the same organization. If your verified admin has
not yet created a tyGraph account, contact them to have them do so. If they have, you can request a key by
sending an email to [email protected].
6. After successful authentication, the import process will begin automatically. When complete, a new
dashboard, report and model will appear in the Navigation Pane. Select the dashboard to view your
imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Finding parameters
You can bring in data on all the groups you have access to, or you can choose to specify a subset. You can also
create a subset of data by date. You can create multiple tyGraph dashboards to monitor specific sets of groups
and/or dates. Details on these parameters are below.
Groups
The tyGraph API can filter data by specific group ID. These are provided to the content pack in a comma separated
list.
Example: 2427647,946595,1154464
You can Identify the group ID for a particular group in Yammer by navigating to the feed for the group, and
examining the URL.
Example: 2013/10/29
In the above example, all data from on or after October 29, 2013 will be loaded into the content pack.
To Date The To Date allows you to restrict the latest value for the data returned. It can be used in conjunction with
the From Date to load data from a range of dates. Only data created on or before this date will be loaded into the
content pack. The format of the To Date is YYYY/MM/DD.
Example: 2014/10/20
In the above example, all data from on or prior to October 20, 2014 will be loaded into the content pack.
Next steps
Get started in Power BI
Get data in Power BI
Connect to UserVoice with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Tracking and exploring your UserVoice data is easy with Power BI and the UserVoice content pack. Power BI
retrieves your data, including tickets, suggestions and satisfaction ratings, then builds an out-of-box dashboard and
reports based on that data.
Connect to the UserVoice content pack for Power BI.
NOTE
An admin account is required to connect to the Power BI content pack. The content pack also leverages the UserVoice API
and will contribute usage towards the UserVoice limits. More details below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
NOTE
There is no trailing slash at the end and the connection is in https.
5. When prompted, enter your UserVoice credentials and follow the UserVoice authentication process. If you
are already signed in to UserVoice in your browser, you may not be prompted for credentials. Grant the
Power BI application access to your data by clicking "Allow Access".
NOTE
You need admin credentials for your UserVoice account.
6. Power BI will retrieve your UserVoice data and create a ready-to-use dashboard and report for you. Power
BI will retrieve the following data: all your suggestions, all your open tickets, all tickets created in the last 30
days including closed ones and all the user satisfaction ratings.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Troubleshooting
"Parameter validation failed, please make sure all parameters are valid"
If you see this error after typing your UserVoice URL. Make sure the following requirements are satisfied:
The URL follows exactly this pattern https://fabrikam.uservoice.com replacing "fabrikam" with your correct
UserVoice URL prefix.
Make sure all the letters are lower case.
Make sure the URL is in 'https'.
Make sure there are no trailing forward slash at the end of the URL.
"Login failed"
If you get a "login failed" error after using your UserVoice credentials to login, then the account you are using
doesn't have permissions to retrieve the UserVoice data from your account. Verify it is an admin account and try
again.
"Oops something went wrong"
If you get this error message while the data is being loaded, make sure your UserVoice account hasn't exceeded its
monthly APIs usage quota. If all looks good, try connecting again. If the problem persists, please contact Power BI
support at https://community.powerbi.com.
Other
The Power BI UserVoice content pack uses UserVoice's APIs to retrieve your data. Make sure you monitor your
API usage so that you don't exceed your limit. If you have a lot of data in your UserVoice account, a suggestion to
minimize the impact on your API usage is to change the refresh frequency from the current default which is once a
day to only refresh on weekdays or every other day depending on your needs. Another suggestion is to have one
admin create the content pack and share it with the rest of the team instead of having every admin in your
organization create their own putting extra unnecessary load on the APIs
Next steps
Get started in Power BI
Get data in Power BI
Connect to VMob with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Tracking and exploring your VMob data is easy with Power BI and the VMob content pack. Power BI will retrieve
the following data: User Statistics for all time and in the last 30 days, Retail KPI for the last 30 days and Campaign
Performance for the last 30 days.
Connect to the VMob content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Choose Basic option in the Authentication method dropdown, enter your VMob username and password
and click on Sign In button.
6. The import process will begin automatically and Power BI will retrieve your VMob data to create a ready-to-
use dashboard and report for you.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
Next steps
Get started in Power BI
Get data in Power BI
Connect to Webtrends with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Webtrends content pack for Power BI includes a variety of out of box metrics such total page views and visits
by traffic source. Visualizing your Webtrends data in Power BI starts by connecting to your Webtrends account.
You can use the dashboard and reports provided, or customize them to highlight the information you care most
about. The data will be refreshed automatically once per day.
Connect to the Webtrends content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. Provide your Webtrends credentials to connect. Note that the username field expects your account and
username. See details below.
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Webtrends content pack pulls data from the following reports:
Key Metrics
Cities aUuHskcP0P6
Countries JHWXJNcP0P6
Visitors xPcmTDDP0P6
REPORT NAME REPORT ID
NOTE
For SharePoint profiles, the metric names may be a little different than what's show in the Webtrends UI. The following
mapping is done to maintain consistency between SharePoint and Web profiles:
- Sessions = Visits
- New Users = New Visitors
- Views per Session = Page Views per Visit
- Avg Daily User Duration = Avg Time on Site per Visitor
System requirements
The content pack requires access to a Webtrends profile with the correct set of reports enabled.
Finding parameters
Your Webtrends Profile ID can be found in the URL after you've selected a profile:
Your credentials are the same as what you enter when you sign into Webtrends, however we expect your account
and username in the same line, separated by a backslash:
Troubleshooting
You may hit an issue while the content pack is loading, after you've provided your credentials. If you see the "Oops"
message during the loading, please review the troubleshooting suggestions below. If you're still having issues
please file a support ticket at https://support.powerbi.com
1. The correct Profile ID is being used, see the Finding Parameters for more details.
2. The user has access to the reports listed in the "What's included" section
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Windows Dev Center with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Explore and monitor your Windows Dev Center app analytics data in Power BI with the Power BI content pack. The
data will be refreshed automatically once per day.
Connect to the Windows Dev Center content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Enter the application ID of an app you own and click Next. See details on finding those parameters below.
5. For Authentication Method, select oAuth2 > Sign In. When prompted, enter your Azure Active
Directory credentials associated with your Windows Dev Center account (more details in System
Requirements).
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data and choose a
tile to navigate to the underlying reports.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Dev Center Power BI content pack includes analytics data for your app and IAP acquisitions, ratings, reviews
and app health. Data is limited to the last 3 months. and is a moving window, so the dates included will update as
the dataset refreshes.
System requirements
This content pack requires at least one at least one app published to the Windows Store and a Windows Dev
Center account (more details here).
Finding parameters
You can find the application ID for an app by going to the App identity page under App management.
The application ID is on the end of your URL for Windows 10 Store, https://www.microsoft.com/store/apps/
{applicationId}
Next steps
Get started in Power BI
Get data in Power BI
Connect to Xero with Power BI
2/13/2019 • 3 minutes to read • Edit Online
Xero is easy to use online accounting software that’s designed specifically for small businesses. Create compelling
visualizations based on your Xero financials with this Power BI content pack. Your default dashboard includes
many small business metrics like cash position, revenue vs. expenses, profit loss trend, debtor days and return on
investment.
Connect to the Xero content pack for Power BI or learn more about the Xero and Power BI integration.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
5. For Authentication Method and select OAuth, when prompted sign into your Xero account and select the
organisation to connect to. Once the login completes, select Sign In to start the loading process.
6. After approving, the import process will begin automatically. When complete, a new dashboard, report and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack dashboard includes tiles and metrics that cover a variety of areas, with corresponding reports to
learn more:
Profit and loss Monthly profit and loss Profit and Loss
Net profit this fiscal year
Net profit this month
Top expense accounts
The dataset also includes the following tables to customize your reports and dashboards:
Addresses
Alerts
Bank Statement Daily Balance
Bank Statements
Contacts
Expense Claims
Invoice Line Items
Invoices
Items
Month End
Organisation
Trial Balance
Xero Accounts
System requirements
The following roles are required to access the Xero content pack: "Standard + Reports" or "Advisor".
Finding parameters
Provide a name for your organisation to track in Power BI. This allows you to connect to multiple different
organizations. Note that you cannot connect to the same organisation multiple times, as it will affect the scheduled
refresh.
Troubleshooting
Xero users must have the following roles to access the Xero content pack for Power BI: "Standard + Reports" or
"Advisor". The content pack relies on the user-based permissions to access reporting data through Power BI.
If you receieve a failure after loading for some time, verify how long it took to see that error message. Note that
the access token provided by Xero is only valid for 30min so accounts with more data than can be loaded in that
timeframe will fail. We're actively working to improve this.
During the load the tiles on the dashboard will be in a generic loading state. This is not expected to change until
the full load completes. If you receive a notification that your load completed but the tiles are still loading, try
refreshing the dashboard tiles using the ... in the top right of your dashboard.
If your content pack fails to refresh, please check if you have connected to the same organisation more than
once in Power BI. Xero only allows a single active connection to an organisation and you may see an error
indicating your credentials are invalid if you connect to the same one more than once.
For issues connecting the Xero content pack for Power BI like error messages or very slow load times, first clear
the cache / cookies and restart the browser, then reconnect to Power BI.
For other issues, please file a ticket at http://support.powerbi.com if the issue persists.
Next steps
Get started in Power BI
Get data in Power BI
Connect to Zendesk with Power BI
1/4/2019 • 2 minutes to read • Edit Online
The Zendesk content pack offers a Power BI dashboard and a set of Power BI reports that provide insights about
your ticket volumes and agent performance. You can use the dashboard and reports provided, or customize them
to highlight the information you care most about. The data will be refreshed automatically once a day.
Connect to the Zendesk content pack or read more about the Zendesk integration with Power BI.
NOTE
A Zendesk Admin account is required to connect. More details on requirements below.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Provide the URL associated with your account. This will be in the form https://company.zendesk.com,
see details on finding these parameters below.
5. When prompted, enter your Zendesk credentials. Select oAuth 2 as the Authentication Mechanism and click
Sign In. Follow the Zendesk authentication flow. (If you are already signed in to Zendesk in your browser,
you may not be prompted for credentials.)
NOTE
This content pack requires you connect with a Zendesk Admin account.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The Power BI content pack includes data on the following:
Users (end users and agents)
Organizations
Groups
Tickets
There's also a set of measures that have been calculated, such as Average Wait Time and Tickets Solved in the Last
7 days. A full list is included in the content pack.
System requirements
A Zendesk Administrator account is required to access the Zendesk content pack. If you're an agent or an end user
and are interested in viewing your Zendesk data, please add a suggestion and review the Zendesk connector in the
Power BI Desktop.
Finding parameters
Your Zendesk URL will be the same as the URL you use to sign into your Zendesk account. If you're not sure of
your Zendesk URL, you can use the Zendesk login help.
Troubleshooting
If you are having issues connecting, please check your Zendesk URL and confirm you're using an Zendesk
administrator account.
Next steps
What is Power BI?
Get data
Connect to Ziosk Survey Analytics with Power BI
1/4/2019 • 2 minutes to read • Edit Online
Ziosk Survey Analytics content pack for Power BI offers restaurants with Ziosk tablets unparalleled access to
insights provided by Ziosk survey data, including segmentation by day, location, employee, and more.
Connect to the Ziosk Survey Analytics content pack for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Select OAuth 2 and then Sign In. When prompted, provide your Ziosk credentials.
5. Once connected, a dashboard, report and dataset will automatically be loaded. When completed, the tiles
will update with data from your Ziosk account.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack includes data from the following tables:
- Alcohol Category
- Appetizer Category
- CommentKeywords
- Date
- Daypart
- Dessert Category
- FreeForm
- Kids Category
- Messages
- Premium Content Category
- Question
- Store
- Surveys
- Weekday
System requirements
A Ziosk account with permissions to the above tables is required in order to instantiate this content pack.
Next steps
What is Power BI?
Power BI - Basic Concepts
Connect to Zuora with Power BI
1/4/2019 • 3 minutes to read • Edit Online
Zuora for Power BI allows you to visualize important revenue, billing, and subscription data. Use the default
dashboard and reports to analyze usage trends, track billings and payments, and monitor recurring revenue, or
customize them to meet your own unique dashboard and reporting needs.
Connect to the Zuora for Power BI.
How to connect
1. Select Get Data at the bottom of the left navigation pane.
4. Specify your Zuora URL. The URL is typically "https://www.zuora.com", see details on finding those
parameters below.
5. For Authentication Method, select Basic and provide your username and password (case sensitive), then
select Sign In.
6. After approving, the import process will begin automatically. When complete, a new dashboard, report, and
model will appear in the Navigation Pane. Select the dashboard to view your imported data.
What now?
Try asking a question in the Q&A box at the top of the dashboard
Change the tiles in the dashboard.
Select a tile to open the underlying report.
While your dataset will be scheduled to refresh daily, you can change the refresh schedule or try refreshing it on
demand using Refresh Now
What's included
The content pack uses the Zuora AQUA API to pull in the following tables:
TABLES
InvoiceAdjustment RatePlan
InvoiceItem RatePlanCharge
Account: Active Accounts The count of accounts that were active COUNT (Account.AccountNumber)
in a time period. Subscriptions must WHERE
have started before (or on) time period Subscription.Status != "Expired"
start date. AND Subscription.Status != "Draft"
AND Subscription.SubscriptionStartDate
<= TimePeriod.StartDate
AND (Subscription.SubscriptionEndDate
> TimePeriod.StartDate
OR
Subscription.SubscriptionEndDate =
null) –evergreen subscription
Account: Average Recurring Revenue Gross MRR per active account in a time Gross MRR / Account.ActiveAccounts
period.
Account: Cancelled Subscriptions The count of accounts that cancelled a COUNT (Account.AccountNumber)
subscription in a time period. WHERE
Subscription.Status = "Cancelled"
AND Subscription.SubscriptionStartDate
<= TimePeriod.StartDate
AND Subscription.CancelledDate >=
TimePeriod.StartDate
Invoice: Invoice Items Total invoice item charge amounts in a SUM (InvoiceItem.ChargeAmount)
time period. WHERE
Invoice.Status = "Posted"
AND Invoice.InvoiceDate <=
TimePeriod.EndDate
AND Invoice.InvoiceDate >=
TimePeriod.StartDate
Invoice: Taxation Items Total taxation item tax amounts in a SUM (TaxationItem.TaxAmount)
time period. WHERE
Invoice.Status = "Posted"
AND Invoice.InvoiceDate <=
TimePeriod.EndDate
AND Invoice.InvoiceDate >=
TimePeriod.StartDate
Invoice: Invoice Item Adjustments Total invoice item adjustment amounts SUM (InvoiceItemAdjustment.Amount)
in a time period. WHERE
Invoice.Status = "Posted"
AND
InvoiceItemAdjustment.AdjustmentDate
<= TimePeriod.EndDate
AND
InvoiceItemAdjustment.AdjustmentDate
>= TimePeriod.StartDate
Invoice: Invoice Aging Balance Sum of posted invoice balances. SUM (Invoice.Balance)
WHERE
Invoice.Status = "Posted"
Invoice: Gross Billings Sum of invoice item charge amounts for SUM (InvoiceItem.ChargeAmount)
posted invoices in a time period. WHERE
Invoice.Status = "Posted"
AND Invoice.InvoiceDate <=
TimePeriod.EndDate
AND Invoice.InvoiceDate >=
TimePeriod.StartDate
MEASURE DESCRIPTION PSEUDO-CALCULATION
Rate Plan Charge: Gross MRR Sum of monthly recurring revenue from SUM (RatePlanCharge.MRR)
subscriptions in a time period. WHERE
Subscription.Status != "Expired"
AND Subscription.Status != "Draft"
AND RatePlanCharge.EffectiveStartDate
<= TimePeriod.StartDate
AND RatePlanCharge.EffectiveEndDate
> TimePeriod.StartDate
OR RatePlanCharge.EffectiveEndDate =
null --evergreen subscription
System requirements
Access to the Zuora API is required.
Finding parameters
Provide the URL you typically sign into to access your Zuora data. The valid options are:
https://www.zuora.com
The URL corresponding to your service instance
Troubleshooting
The Zuora content pack pulls in many different aspects of your Zuora account. If you don't use certain features, you
may see corresponding tiles/reports empty. Contact Power BI Support if you have any issues loading.
Next steps
Get started in Power BI
Get data in Power BI
Intro to organizational content packs in Power BI
1/23/2019 • 4 minutes to read • Edit Online
NOTE
You can't create organizational content packs or install them in the new workspace experiences preview. Now is a good
time to upgrade your content packs to apps, if you haven't started yet. Learn more about the new workspace experience.
Do you regularly distribute reports by email to your team? Try this instead: Package up your dashboards,
reports, Excel workbooks, and datasets and publish them to your team as an organizational content pack.
Content packs you create are easy for your team to find they are all in AppSource. Because they're part of
Power BI, they leverage all the features of Power BI, including interactive data exploration, new visuals, Q&A,
integration with other data sources, data refresh, and more.
Creating content packs is different from sharing dashboards or collaborating on them in an app workspace.
Read How should I collaborate on and share dashboards and reports? to decide on the best option for your
situation.
In AppSource, you can browse or search for content packs published to the entire organization, to distribution or
security groups, and to Office 365 groups you belong to. If you aren't a member of a specific group, you won't
see content packs shared with that group. All members of the group have the same read-only access to the
content pack data, reports, workbooks, and dashboards (unless it's a SQL Server Analysis Services (SSAS ) data
source, in which case your privileges are inherited with the data source).
The dashboards, reports, and Excel workbooks are read-only, but you can copy and use the dashboards and
reports as a starting point for creating your own personalized version of the content pack.
NOTE
Organizational content packs are only available when you and your colleagues have Power BI Pro licenses.
What is AppSource?
Publishing an organizational content pack adds it to AppSource. This centralized repository makes it easy for
members to browse and discover dashboards, reports, and datasets published for them.
To view AppSource, select Get Data > My Organization > Get.
The life cycle of an organizational content pack
Any Power BI Pro user can create, publish, and access organizational content packs. Only the content pack
creator can modify the workbook and dataset, schedule refresh, and delete it.
The lifecycle looks something like this:
1. In Power BI Pro, Nate creates a content pack and publishes it to the Marketing distribution group. The
refresh settings are inherited with the dataset and can only be changed by Nate.
NOTE
If Nate creates the content pack from within a Power BI app workspace he belongs to, then even if he leaves the
workspace, others in the Power BI workspace can take over ownership.
2. Nate sends mail to the distribution group, telling them about the new content pack.
3. In Power BI Pro, Jane, a member of the Marketing distribution group, searches for and connects to this
content pack in AppSource. She now has a read-only copy. She knows it's read-only because in the left
Navigation Pane, there is a sharing icon to the left of the dashboard name and report name. And when
she selects the dashboard, a lock icon lets Jane know she is looking at a content pack dashboard.
4. Say she decides to customize it. She now has her own copy of the dashboard and reports. Her work does
not affect the source, the original content pack, or other distribution group members. She is now working
on her own copy of the dashboard and report.
5. Nate makes updates to the dashboard and when it's ready, he publishes a new version of the content
pack.
Julio, another distribution group member, didn't customize the original content pack. The new changes
are automatically applied to his version of the content pack.
Jane did customize the content pack. She receives a notification that there's a new version. She can go
to AppSource and get the updated content pack without losing her personalized version. She'll now
have two versions: her personalized version and the updated content pack.
6. Say Nate changes the security settings. Julio and Jane no longer have access to the content. Or say
they're removed from the Marketing distribution group.
Julio didn't customize the original content pack, so the content is automatically removed.
Jane did customize the content pack. The next time she opens the dashboard all tiles from the original
content pack are gone, but tiles she pinned from other reports (that she still has permission to use) still
appear. The associated reports and dataset are no longer available (and don't appear in her left
navigation pane).
7. Or Nate deletes the content pack.
Julio didn't customize the original content pack, so the content is automatically removed.
Jane did customize the content pack. The next time she opens the dashboard all tiles from the original
content pack are gone, but tiles she pinned from other reports still appear. The associated reports and
dataset are no longer available (and don't appear in her left navigation pane).
Data security
All distribution group members have the same permissions to the data as the content pack creator. The one
exception to this is SQL Server Analysis Services (SSAS ) on-premises tabular datasets. Because the reports and
dashboards are connecting live to the on-premises SSAS model, the credentials of each individual distribution
group member are used to determine the data he or she can access.
Next steps
Create and publish an organizational content pack
Create and distribute an app in Power BI
Power BI - Basic Concepts
More questions? Try the Power BI Community
Create and publish a Power BI organizational content
pack (tutorial)
1/14/2019 • 3 minutes to read • Edit Online
In this tutorial you create an organizational content pack, give access to a specific group, and publish it to your
organization's content pack library on Power BI.
Creating content packs is different from sharing dashboards or collaborating on them in a group. Read How
should I collaborate on and share dashboards and reports? to decide on the best option for your situation.
Creating an organizational content pack requires a Power BI Pro account for you and your colleagues.
NOTE
You can't create or install organizational content packs in the new workspace experiences preview. Now is a good time to
upgrade your content packs to apps, if you haven't started yet. Learn more about the new workspace experience.
Imagine you're the Release Manager at Contoso and you're getting ready for a new product launch. You've created
a dashboard with reports that you'd like to share with the other employees managing the launch. You want a way
to package up the dashboard and reports as a solution for your colleagues to use.
Want to follow along? In the Power BI service, go to Get Data > Samples > Opportunity Analysis Sample >
Connect to get your own copy.
1. In the left navigation pane, select the Opportunity Analysis Sample dashboard.
2. From the top navigation bar, select the cog icon > Create content pack.
TIP
Consider including the name of the dashboard in the name of the content pack. That way, your colleagues
will find the dashboard more easily after they connect to your content pack.
c. Recommended: Add a description. This helps coworkers more easily find the content packs that
they need. Besides a description, add keywords your coworkers might use to search for this content
pack. Include contact information in case your coworkers have a question or need help.
d. Upload an image or logo to make it easier for group members to find the content pack it's faster
to scan for an image than it is to find text. We used an image of the Opportunity Count 100% column
chart tile in the screen shot below.
e. Select the Opportunity Analysis Sample dashboard to add it to the content pack. Power BI
automatically adds the associated report and dataset. You can add others, if you want.
NOTE
Only the dashboards, reports, datasets, and workbooks that you can edit are listed. Thus, any that were
shared with you aren't in the list.
f. If you have Excel workbooks, you see them under Reports, with an Excel icon. You can add them to
the content pack, too.
NOTE
If members of the group can't view the Excel workbook, you may need to share the workbook with them in
OneDrive for Business.
4. Select Publish to add the content pack to the group's organizational content pack library.
You see a success message when it publishes successfully.
5. When members of your group go to Get Data > My Organization, they tap in the search box and type
"Sales Opportunities".
TIP
The URL displayed in your browser is an unique address for this content pack. Want to tell your coworkers about this
new content pack? Paste the URL into an email.
7. They select Connect, and now they can view and work with your content pack.
Next steps
Intro to organizational content packs
Manage, update, and delete organizational content packs
Create a group in Power BI
What is OneDrive for Business?
More questions? Try the Power BI Community
Organizational content packs: Copy, refresh, and get
access
3/7/2019 • 2 minutes to read • Edit Online
When an organizational content pack is published, all recipients see the same dashboard, reports, Excel
workbooks, datasets, and data (unless it's a SQL Server Analysis Services (SSAS ) data source). Only the content
pack creator can edit and republish the content pack. However, all recipients can save a copy of the content pack
that can live alongside the original.
Creating content packs is different from sharing dashboards or collaborating on them in a group. Read How
should I collaborate on and share dashboards and reports? to decide on the best option for your situation.
NOTE
You can't create or install organizational content packs in the new workspace experiences preview. Now is a good time to
upgrade your content packs to apps, if you haven't started yet. Learn more about the new workspace experience.
2. Select Save.
Now you have a copy that you can change. Nobody else will see changes you make.
NOTE
Previously, each time you installed a content pack or created a copy one, a new dataset would appear in the workspace
content list. A recent update simplified the experience to show just one item using the new referenced dataset icon:
Next steps
Introduction to organizational content packs
Create a group in Power BI
More questions? Try the Power BI Community
Manage, update, and delete organizational content
packs
1/14/2019 • 4 minutes to read • Edit Online
NOTE
You can't create organizational content packs or install them in the new workspace experiences preview. Now is a good time
to upgrade your content packs to apps, if you haven't started yet. Learn more about the new workspace experience.
You can package up and share your dashboards, reports, Excel workbooks, and datasets with your colleagues as
organizational content packs. Your colleagues can use them as-is, or they can create their own copies.
Creating content packs is different from sharing dashboards or collaborating on them in a group. Read How
should I collaborate on and share dashboards and reports? to decide on the best option for your situation.
You can only do some organizational content pack tasks if you're the content pack creator:
Republish.
Restrict or expand access to the content pack.
Set and change scheduled refresh.
Delete the content pack.
2. Or select the cog icon in the upper-right corner and select View Content Pack.
Notice the warning icon . This lets you know that you've modified the content pack in some way and it
no longer matches what you published.
3. Select Edit.
4. Make any necessary changes in the Update Content Pack window and select Update. A Success
message appears.
For group members who haven't customized the content pack, the update is automatically applied.
Group members who have customized the content pack receive a notification that there is a new
version. They can go to AppSource and get the updated content pack without losing their personalized
version. They'll now have 2 versions: the personalized version and the updated content pack. In the
personalized version, all tiles from the original content pack will be gone. But tiles pinned from other
reports will still render. However, if the content pack owner deletes the dataset the content pack is based
on, then the whole report will be gone.
TIP
You can delete your connection to a content pack you didn't create. That doesn't delete the content pack from AppSource.
1. To delete a content pack from AppSource, go to the app workspace where you created the content pack,
select the cog icon and choose View Content Packs.
2. Select Delete > Delete.
For group members who haven't customized the content pack, the dashboard and reports associated
with that content pack are automatically removed. They're no longer available, and the content pack
doesn't appear in the Navigation Pane.
For group members who have customized the content pack, the next time they open the customized
dashboard, all tiles from the original content pack will be gone. But tiles pinned from other reports will
still render. The original content pack reports and dataset are no longer available, and the content pack
doesn't appear in the Navigation pane.
Next steps
Introduction to organizational content packs
Create and distribute an app in Power BI
More questions? Try the Power BI Community
Remove your connection to a Power BI
organizational content pack
1/14/2019 • 2 minutes to read • Edit Online
NOTE
You can't create organizational content packs or install them in the new workspace experiences preview. Now is a good time
to upgrade your content packs to apps, if you haven't started yet. Learn more about the new workspace experience.
A coworker created a content pack. You discovered it in AppSource and added it to your Power BI workspace.
Now you don't need it any longer. How do you remove it?
To remove a content pack, you remove its dataset.
In the left navigation pane, select the ellipsis to the right of the dataset and select Remove > Yes.
Removing the dataset also removes all associated reports and dashboards. However, removing your connection
to the content pack doesn't delete the content pack from your organization's AppSource. You can always return to
AppSource and add the content pack back to your workspace. You can only delete a content pack from AppSource
if you're the one who created it.
Next steps
Introduction to organizational content packs
Create and distribute an app in Power BI
Power BI basic concepts
More questions? Try the Power BI Community
Power BI videos
1/14/2019 • 2 minutes to read • Edit Online
We have a YouTube channel for Power BI! You can visit our channel and, if you're new to Power BI a good place to
start is the Analyze and Visualize data with Power BI playlist.
Here are a few videos from that playlist to get you started.
Overview of Power BI service and Power BI Desktop.
https://www.youtube.com/embed/l2wy4XgQIu0
Collaborating and sharing.
https://www.youtube.com/embed/5DABLeJzQYM
Overview of Power BI mobile
https://www.youtube.com/embed/07uBWhaCo78
Power BI for developers
https://www.youtube.com/embed/47uXJW1GIUY
More videos
Check out the following collection of sources and content for more videos.
Guided Learning for Power BI - a sequential learning tour of Power BI, in bite-size pieces
Guy in a Cube channel - fresh videos on Power BI features and capabilities
Next steps
What is Power BI?
More questions? Try asking the Power BI Community
Power BI webinars
3/29/2019 • 4 minutes to read • Edit Online
Register for our upcoming live webinars or watch our recorded sessions on-demand.
Upcoming webinars
No webinars scheduled yet. Check back soon for more upcoming events.
Featured webinars
Get started with these popular on-demand webinars
Power BI and the Future of Modern and Enterprise BI
by Arun Ulag and Amir Netz
Register and watch now
Getting Started with Power BI
by Miguel Martinez
Register and watch now
Get Started with the Power BI Mobile App
by Maya Shenhav
Register and watch now
Learn to Navigate Your Way Through a Power BI Dashboard in 20 Minutes
by Miguel Martinez
Register and watch now
Strengthen Your Data Modeling Skills with Power BI
by Kasper de Jonge
Register and watch now
Microsoft Runs on Power BI – Financial Planning & Analysis Made Easy
by Cory Hrncirik and Miguel Martinez
Register and watch now
Supercharge Your Applications Using the Power BI JavaScript API
by Nimrod Shalit
Register and watch now
Power BI, Excel and Office 365: Optimize Your Enterprise Data
by Olaf Hubel and Miguel Martinez
Register and watch now
Simply Compelling — Tips for Better Visualization Design
by Miranda Li
Register and watch now
Browse the library of Power BI on-demand webinars from our community experts
On-Demand webinars
Watch recorded sessions at any time
Getting Started
Automate Day-to-Day Business Processes with Power BI, PowerApps, and Microsoft Flow
by Wim Coorevits and Enrique Plaza Garcia
Register and watch now
Power BI: Analytics Done Right
by Gohul Shanmugalingam
Register and watch now
Make Your Power BI Data Visual: Core Chart Types and How to Use Them
by Miranda Li
Register and watch now
How to Design Visually Stunning Power BI Reports
by Charles Sterling
Watch now
The Total Economic Impact of Microsoft Flow and PowerApps
by Jonathan Lipsitz and Enrique Plaza Garcia
Register and watch now
Better Together: 5 Benefits Excel Users Will Get From Using Power BI
by Carlos Otero and Miguel Martinez
Register and watch now
Learn about Power BI Embedded in 20 minutes
by Megan Asarrane and Colin Murphy
Register and watch now
Beyond the Spreadsheet
by Gohul Shanmugalingam
Register and watch now
Draw the right insights with Power BI and Visio
by Shakun Grover
Register and watch now
Transforming A Report From Good to GREAT!
by Reid Havens
Watch now
Partners
Achieving a Win-Win for Consumer Product Goods Manufacturers and Retailers
by Liz McCreesh from Thorogood
Register and watch now
Transform Customer Data into Retail Success with Power Bi
by Angad Soni from Hitachi Solutions
Register and watch now
Proven Healthcare Solutions to Improve Both Patient Outcomes and Profitability
by Stephen Cracknell and Stuart Macanliss from US Medical IT
Register and watch now
Boost Your BI with Location Intelligence
by Scott Ball from Esri and Enrique Plaza from Microsoft
Register and watch now
Applied Intelligence for Sales & Services
by Ed Bobrin from Avanade
Register and watch now
5 Habits of a Successful Trend Curator - Rohit Bhargava
by Rohit Bhargava from Non-Obvious
Register and watch now
Manufacturers: Your industry is going through a digital transformation - Maintain leadership by
leveraging analytics to maximize profitability
by Jon Thompson from Blue Margin and Jim Pastor from Elgin Fastener Group
Register and watch now
Visualize public or private datasets with the new Power BI and data.world connector
by Patrick McGarry and Miguel Martinez
Register and watch now
Community
Power BI Tricks, Tips and Tools from the owners of PowerBI.Tips
by Mike Carlo and Seth Bauer
Watch now
Storytelling with your data and Power BI
by Tristan Malherbe
Watch now
Practical DAX for Power BI
by Phil Seamark
Watch now
Developing with Power BI Embedding – The April 2018 Update
by Ted Pattison
Watch now
Power BI security deep dive
by Kasper de Jonge
Watch now
Ask a Partner: Developing Custom Visuals for Power BI
by Ted Pattison
Watch now
Advanced Topics
Advanced Analytics with Excel and Power BI
by Nagasaikiran Kambhampati and Miguel Martinez
Register to watch
Download the Advanced Analytics Starter Kit to follow along
Power BI adoption framework webinar series
by Manu Kanwarpal and Paul Henwood
Register and watch now - Part 1 - Adoption: Adopt a data-driven culture
Register and watch now - Part 2 - Governance: Govern your Power BI usage
Register and watch now - Part 3 - Service Management: Power BI Service Management Insights
Register and watch now - Part 4 - Security: Keeping your data secure with Power BI
Register and watch now - Part 5 - Rollout: Successfully rolling out Power BI
Office 365 Finance Pros Webinar Series
by Mark Traverso, Carlos Otero, Johnnie Thomas, Amanda Cofsky and Miguel Martinez
Learn tips, tricks & best practices to achieve more in your day-to-day work using Office 365.
Register and watch now
Be a Full Stack Power BI Jedi – A walkthrough of Power BI most advanced features through Star Wars
data
by Gil Raviv
Watch now
How to Implement a Successful Data Governance Strategy That Makes Your Organization More Secure
by Ajay Anandan
Register and watch now
Accelerating modern BI adoption with Power BI Premium
by Sirui Sun and Miguel Martinez
Register and watch now
What's new and exciting in Power BI Report Server
by Riccardo Muti, Chris Finlan and Chinmay Joshi
Register and watch now
How Microsoft does Power BI
by Kirkland Barrett
Register and watch now
See also
Power BI whitepapers
Microsoft Data Insights Summit 2017 on-demand sessions
What is Power BI?
Follow @MSPowerBI on Twitter
Subscribe to our YouTube channel
More questions? Try asking the Power BI Community
Supported languages and countries/regions for
Power BI
3/18/2019 • 5 minutes to read • Edit Online
This article provides lists of supported languages and countries/regions for the Power BI service, Power BI
Desktop, and Power BI documentation.
You may need to close and reopen your browser to see the change.
The next time you start Power BI Desktop it will use the language you set as the default.
Choose a language when you download Power BI Desktop
The language you choose for Power BI Desktop affects the display format of numbers and dates in reports.
Select a language when you download Power BI Desktop.
To change the language in Power BI Desktop, go back to the download page and download it in a different
language.
Choose the locale for importing data into Power BI Desktop
Whether you download Power BI Desktop or install it from the Windows Store, you can choose a locale for a
specific report to be something other than the locale in your version of Power BI Desktop. This changes the way
data is interpreted when it’s imported from your data source, for example whether "3/4/2017" is interpreted as 3rd
April or March 4th.
1. In Power BI Desktop, go to File > Options and settings > Options.
2. Under Current file, select Regional Settings.
3. In the Locale for import box, select a different locale.
4. Select OK.
Choose the language for the model in Power BI Desktop
Besides setting the language for the Power BI Desktop application, you can also set the model language. The
model language affects chiefly two things:
How we compare and sort strings. For example, because Turkish has two of the letter i, depending on the
collation of your database, the two can end up in different orders when sorting.
The language Power BI Desktop uses when creating hidden date tables from date fields. For example, fields are
called Month/Monat/Mois, etc.
NOTE
Power BI’s model currently uses a locale that is not case-sensitive (or kana-sensitive) so “ABC” and “abc” will be treated as
equivalent. If “ABC” is loaded into the database first, other strings that differ only by case such as “Abc” won’t be loaded as a
separate value.
Next steps
Are you using one of the Power BI mobile apps? See Supported languages in the Power BI mobile apps for
details.
Questions? Try asking the Power BI Community.
Still have an issue? Please visit the Power BI support page.
Whitepapers for Power BI
3/28/2019 • 2 minutes to read • Edit Online
Whitepapers allow you to explore Power BI topics at a deeper level. Here you can find a list of available
whitepapers for Power BI.
Power BI Premium Planning and This paper provides guidance and best March 2018
Deployment practices for planning and deploying
Premium capacity for well-defined
workloads.
Plan capacity for embedded analytics This paper provides guidance for the October 2017
with Power BI Premium app developer/ISV to determine the
most appropriate capacity for its
business.
Capacity planning guidance for Power This paper aims to offer guidance on March 2018
BI Report Server capacity planning for Power BI Report
Server by sharing results of numerous
load test executions of various
workloads against a report server.
Distribute Power BI content to external This paper outlines how to distribute March 2018
guest users using Azure Active content to users outside the
Directory B2B organization using the integration of
Azure Active Directory Business-to-
business (AAD B2B).
Advanced Analytics with Power BI Describes the advanced analytics February 2017
capabilities of Power BI, including
predictive analytics, custom
visualizations, R integration, and data
analysis expressions.
WHITEPAPER DESCRIPTION DATE
Best design practices for reports and Provides best practices for designing June 2018
visuals reports in Power BI.
DirectQuery in SQL Server 2016 For SQL Server 2016, DirectQuery was January 2017
Analysis Services redesigned for dramatically improved
speed and performance, however, it is
also now more complex to understand
and implement.
Power BI and SAP BW This document describes how SAP February 2018
customers can benefit from connecting
Power BI to their existing SAP Business
Warehouse (BW) systems.
Power BI Governance and Deployment Provides concepts, options and March 2016
Approaches suggestions for governance within the
Power BI ecosystem.
Securing the Tabular BI Semantic Model This paper introduces the security April 2016
model for tabular BI semantic and
Power BI. You will learn how to create
roles, implement dynamic security,
configure impersonation settings,
manage roles, and choose a method for
connecting to models that works in
your network security context.
Power BI and GDPR This link takes you to the list of April 2018
whitepapers on the Service Trust Portal,
including the Microsoft Power BI GDPR
whitepaper.
NOTE
If you’re interested in viewing or deleting personal data, please review Microsoft's guidance in the Windows Data Subject
Requests for the GDPR site. If you’re looking for general information about GDPR, see the GDPR section of the Service Trust
portal.
Summary: Power BI is an online software service ( SaaS, or Software as a Service) offering from Microsoft that
lets you easily and quickly create self-service Business Intelligence dashboards, reports, datasets, and
visualizations. With Power BI, you can connect to many different data sources, combine and shape data from those
connections, then create reports and dashboards that can be shared with others.
Writer: David Iseminger
Technical Reviewers: Pedram Rezaei, Cristian Petculescu, Siva Harinath, Tod Manning, Haydn Richardson, Adam
Wilson, Ben Childs, Robert Bruckner, Sergei Gundorov, Kasper de Jonge
Applies to: Power BI SaaS, Power BI Desktop, Power BI Embedded, Power BI Premium
NOTE
You can save or print this whitepaper by selecting Print from your browser, then selecting Save as PDF.
Introduction
Power BI is an online software service ( SaaS, or Software as a Service) offering from Microsoft that lets you easily
and quickly create self-service Business Intelligence dashboards, reports, datasets, and visualizations. With Power
BI, you can connect to many different data sources, combine and shape data from those connections, then create
reports and dashboards that can be shared with others.
The Power BI service is governed by the Microsoft Online Services Terms, and the Microsoft Enterprise Privacy
Statement. For the location of data processing, refer to the Location of Data Processing terms in the Microsoft
Online Services Terms. For compliance information, the Microsoft Trust Center is the primary resource for Power
BI. The Power BI team is working hard to bring its customers the latest innovations and productivity. Power BI is
currently in Tier D of theOffice 365 Compliance Framework.
This article describes Power BI security by providing an explanation of the Power BI architecture, then explaining
how users authenticate to Power BI and data connections are established, and then describing how Power BI stores
and moves data through the service. The last section is dedicated to security-related questions, with answers
provided for each.
Power BI Architecture
The Power BI service is built on Azure, which is Microsoft's cloud computing platform. Power BI is currently
deployed in many datacenters around the world – there are many active deployments made available to customers
in the regions served by those datacenters, and an equal number of passive deployments that serve as backups for
each active deployment.
Each Power BI deployment consists of two clusters – a Web Front End (WFE ) cluster, and a Back-End cluster.
These two clusters are shown in the following image, and provide the backdrop for the rest of this article.
Power BI uses Azure Active Directory (AAD ) for account authentication and management. Power BI also uses the
Azure Traffic Manager (ATM ) to direct user traffic to the nearest datacenter, determined by the DNS record of
the client attempting to connect, for the authentication process and to download static content and files. Power BI
uses the Azure Content Delivery Network (CDN ) to efficiently distribute the necessary static content and files
to users based on geographical locale.
The WFE Cluster
The WFE cluster manages the initial connection and authentication process for Power BI, using AAD to
authenticate clients and provide tokens for subsequent client connections to the Power BI service.
When users attempt to connect to the Power BI service, the client's DNS service may communicate with the Azure
Traffic Manager to find the nearest datacenter with a Power BI deployment. For more information about this
process, see Performance traffic routing method for Azure Traffic Manager.
The WFE cluster nearest to the user manages the login and authentication sequence (described later in this article),
and provides an AAD token to the user once authentication is successful. The ASP.NET component within the WFE
cluster parses the request to determine which organization the user belongs to, and then consults the Power BI
Global Service. The Global Service is a single Azure Table shared among all worldwide WFE and Back-End
clusters that maps users and customer organizations to the datacenter that houses their Power BI tenant. The WFE
specifies to the browser which Back-End cluster houses the organization's tenant. Once a user is authenticated,
subsequent client interactions occur with the Back-End cluster directly, without the WFE being an intermediator for
those requests.
The Power BI Back-End Cluster
The Back-End cluster is how authenticated clients interact with the Power BI service. The Back-End cluster
manages visualizations, user dashboards, datasets, reports, data storage, data connections, data refresh, and other
aspects of interacting with the Power BI service.
The Gateway Role acts as a gateway between user requests and the Power BI service. Users do not interact
directly with any roles other than the Gateway Role.
Important: It is imperative to note that only Azure API Management (APIM ) and Gateway (GW ) roles are
accessible through the public Internet. They provide authentication, authorization, DDoS protection, Throttling,
Load Balancing, Routing, and other capabilities.
The dotted line in the Back-End cluster image, above, clarifies the boundary between the only two roles that are
accessible by users (left of the dotted line), and roles that are only accessible by the system. When an authenticated
user connects to the Power BI Service, the connection and any request by the client is accepted and managed by
the Gateway Role and Azure API Management, which then interacts on the user's behalf with the rest of the
Power BI Service. For example, when a client attempts to view a dashboard, the Gateway Role accepts that
request then separately sends a request to the Presentation Role to retrieve the data needed by the browser to
render the dashboard.
Power BI Premium
Power BI Premium offers a dedicated, provisioned, and partitioned service workspace for subscribers that need
dedicated resources for their Power BI activities. When a customer signs up for a Power BI Premium subscription,
the Premium capacity is created through the Azure Resource Manager. The rollout of that subscription assigns a
set of virtual machines commensurate with the subscription level, in the datacenter where their Power BI tenant is
hosted (with the exception of multi-geo environments, as described later in this document), initiated as an Azure
Service Fabric deployment.
Once created, all communication with the Premium cluster is routed through the Power BI Back-End cluster, where
a connection to the client's dedicated Power BI Premium subscription virtual machines is established.
Data Storage Architecture
Power BI uses two primary repositories for storing and managing data: data that is uploaded from users is typically
sent to Azure Blob storage, and all metadata as well as artifacts for the system itself are stored behind a firewall in
Azure SQL Database.
For example, when a user imports an Excel workbook into the Power BI service, an in-memory Analysis Services
tabular database is created, and the data is stored in-memory for up to one hour (or until memory pressure occurs
on the system). The data is also sent to Azure Blob storage.
Metadata about a user's Power BI subscription, such as dashboards, reports, recent data sources, workspaces,
organizational information, tenant information, and other metadata about the system is stored and updated in
Azure SQL Database. All information stored in Azure SQL Database is fully encrypted using Azure SQL's
Transparent Data Encryption (TDE ) technology. All data that is stored in Azure Blob storage is also encrypted. More
information about the process of loading, storing, and moving data is described in the Data Storage and
Movement section.
Tenant Creation
A tenant is a dedicated instance of the Azure AD service that an organization receives and owns when it signs up
for a Microsoft cloud service such as Azure, Microsoft Intune, Power BI, or Office 365. Each Azure AD tenant is
distinct and separate from other Azure AD tenants.
A tenant houses the users in a company and the information about them - their passwords, user profile data,
permissions, and so on. It also contains groups, applications, and other information pertaining to an organization
and its security. For more information, see What is an Azure AD tenant.
A Power BI tenant is created in the datacenter deemed closest to the country (or region) and state information
provided for the tenant in Azure Active Directory, which was provided when the Office 365 or Power BI service
was initially provisioned. The Power BI tenant does not move from that datacenter location today.
Multiple Geographies (Multi-geo )
Some organizations require a Power BI presence in multiple geographies, or regions, based on business needs. For
example, a business may have its Power BI tenant in the United States but may also do business in other
geographical areas, such as Australia, and need Power BI services and data to remain in that remote region.
Beginning in the second half of 2018, organizations with their tenant in one geography can also access Power BI
resources in another geography when properly provisioned. This feature is referred to as multi-geo for
convenience and reference throughout this document.
There are technical implications to keep in mind when operating in different geographies, which are clarified
throughout this document. Important considerations include the following:
A cached query stored in a remote region will stay in that region at rest, however other data in transit may go
back and forth between multiple geographies.
Reports in PBIX or XLSX files in a remote region that are published to Power BI sometimes result in a copy or
shadow copy being stored in Power BI's Azure Blob storage, and when that occurs the data is encrypted using
Azure Storage Service Encryption (SSE ).
When moving data from one region to another in a multi-geo environment, garbage collection in the region
from which the data was moved occurs within 7 to 10 days, at which point the copy of data moved from the
original region will be destroyed.
The following image illustrates how the Power BI services provided in the remote region with a multi-geo
environment is routed through the Power BI Back-End cluster, where a connection to the client's remote Power BI
subscription virtual machine is established.
User Authentication
User authentication to the Power BI service consists of a series of requests, responses, and redirects between the
user's browser and the Power BI service or the Azure services used by Power BI. That sequence describes the
process of user authentication in Power BI. For more information about options for an organization's user
authentication models (sign-in models), see Choosing a sign-in model for Office 365.
Authentication Sequence
The user authentication sequence for the Power BI service occurs as described in the following steps, which are
illustrated in the following images.
1. A user initiates a connection to the Power BI service from a browser, either by typing in the Power BI
address in the address bar (such as https://app.powerbi.com) or by selecting Sign In from the Power BI
landing page (https://powerbi.microsoft.com). The connection is established using TLS 1.2 and HTTPS, and
all subsequent communication between the browser and the Power BI service uses HTTPS. The request is
sent to the Azure Traffic Manager.
2. The Azure Traffic Manager checks the user's DNS record to determine the nearest datacenter where
Power BI is deployed, and responds to the DNS with the IP address of the WFE cluster to which the user
should be sent.
3. WFE then redirects the user to Microsoft Online Services login page.
4. Once the user is authenticated, the login page redirects the user to the previously determined nearest Power
BI service WFE cluster.
5. The browser submits a cookie that was obtained from the successful login to Microsoft Online Services,
which is inspected by the ASP.NET service inside the WFE cluster.
6. The WFE cluster checks with the Azure Active Directory (AAD ) service to authenticate the user's Power
BI service subscription, and to obtain an AAD security token. When AAD returns successful authentication
of the user and returns an AAD security token, the WFE cluster consults the Power BI** Global Service,**
which maintains a list of tenants and their Power BI Back-End cluster locations, and determines which Power
BI service cluster contains the user's tenant. The WFE cluster then directs the user to the Power BI cluster
where its tenant resides, and returns a collection of items to the user's browser:
The AAD security token
Session information
The web address of the Back-End cluster the user can communicate and interact with
7. The user's browser then contacts the specified Azure CDN, or for some of the files the WFE, to download
the collection of specified common files necessary to enable the browser's interaction with the Power BI
service. The browser page then includes the AAD token, session information, the location of the associated
Back-End cluster, and the collection of files downloaded from the Azure CDN and WFE cluster, for the
duration of the Power BI service browser session.
Once those items are complete, the browser initiates contact with the specified Back-End cluster and the user's
interaction with the Power BI service commences. From that point forward, all calls to the Power BI service are
with the specified Back-End cluster, and all calls include the user's AAD token. The AAD token has a timeout of one
hour; the WFE refreshes the token periodically if a user's session remains open, in order to preserve access.
Schema X X
Row data X
The distinction between a DirectQuery and other queries determines how the Power BI service handles the data at
rest, and whether the query itself is encrypted. The following sections describe data at rest and in movement, and
explain the encryption, location, and process for handling data.
Data at rest
When data is at rest, the Power BI service stores datasets, reports, and dashboard tiles in the manner described in
the following subsections. As mentioned earlier, data at rest in Power BI is encrypted. ETL stands for Extract,
Transform and Load in the following sections.
Encryption Keys
The encryption keys to Azure Blob keys are stored, encrypted, in Azure Key Vault.
The encryption keys for Azure SQL Database TDE technology is managed by Azure SQL itself.
The encryption key for Data Movement service and on-premises data gateway are stored:
In the on-premises data gateway on customer's infrastructure – for on-premises data sources
In the Data Movement Role – for cloud-based data sources
The Content Encryption Key (CEK) used to encrypt the Windows Azure Blob Storage is a randomly generated 256-
bit key. The algorithm that the CEK uses to encrypt the content is AES_CBC_256.
The Key Encryption Key (KEK) that is used to then encrypt the CEK is a pre-defined 256-bit key. The algorithm by
KEK to encrypt the CEK is A256KW.
Gateway encryption keys based on the recovery key never leave an on-premises infrastructure. Power BI cannot
access the encrypted on-premises credentials values, and cannot intercept those credentials; web clients encrypt
the credential with a public key that's associated with the specific gateway with which it is communicating.
For cloud-based data sources, the Data Movement Role encrypts encryption keys using Always Encrypted
methods. You can learn more about the Always Encrypted database feature.
Datasets
1. Metadata (tables, columns, measures, calculations, connection strings, etc.)
a. For Analysis Services on-premises nothing is stored in the service except for a reference to that database
stored encrypted in Azure SQL.
b. All other metadata for ETL, DirectQuery, and Push Data is encrypted and stored in Azure Blob storage.
2. Credentials to the original data sources
a. Analysis Services on-premises – No credentials are needed and, therefore, no credentials are stored.
b. DirectQuery – This depends whether the model is created in the service directly in which case it is stored
in the connection string and encrypted in Azure Blob, or if the model is imported from Power BI Desktop in
which case the credentials are stored encrypted in Data Movement's Azure SQL Database. The encryption
key is stored on the machine running the Gateway on customer's infrastructure.
c. Pushed data – not applicable
d. ETL
For Salesforce or OneDrive – the refresh tokens are stored encrypted in the Azure SQL Database of
the Power BI service.
Otherwise:
If the dataset is set for refresh, the credentials are stored encrypted in Data Movement's Azure
SQL Database. The encryption key is stored on the machine running the Gateway on customer's
infrastructure.
If the dataset is not set for refresh, there are no credentials stored for the data sources
3. Data
a. Analysis Services on-premises, and DirectQuery – nothing is stored in the Power BI Service.
b. ETL – encrypted in Azure Blob storage, but all data currently in Azure Blob storage of the Power BI
service uses Azure Storage Service Encryption (SSE ), also known as server-side encryption. Multi-geo uses
SSE as well.
c. Push data v1 – stored encrypted in Azure Blob storage, but all data currently in Azure Blob storage in the
Power BI service uses Azure Storage Service Encryption (SSE ), also known as server-side encryption. Multi-
geo uses SSE as well.
d. Push data v2 – stored encrypted in Azure SQL.
Power BI uses the client-side encryption approach, using cipher block chaining (CBC ) mode with advanced
encryption standard (AES ), to encrypt its Azure Blob storage. You can learn more about client-side encryption.
Power BI provides data integrity monitoring in the following ways:
For data at rest in Azure SQL, Power BI uses dbcc, TDE, and constant page checksum as part of the native
offerings of SQL.
For data at rest in Azure Blob storage, Power BI uses client-side encryption and HTTPS to transfer data into
storage which includes integrity checks during the retrieval of the data. You can learn more about Azure
Blob storage security.
Reports
1. Metadata (report definition)
a. Reports can either be Excel for Office 365 reports, or Power BI reports. The following applies for metadata
based on the type of report:
a. Excel Report metadata is stored encrypted in SQL Azure. Metadata is also stored in Office 365.
2. Static data
Static data includes artifacts such as background images and custom visuals.
a. For reports created with Excel for Office 365, nothing is stored.
b. For Power BI reports, the static data is stored and is encrypted in Azure Blob storage.
3. Caches a. For reports created with Excel for Office 365, nothing is cached.
b. For Power BI reports, data for the visuals shown are cached encrypted in Azure SQL Database.
4. Original Power BI Desktop (.pbix) or Excel (.xlsx) files published to Power BI
Sometimes a copy or a shadow copy of the .xlsx or .pbix files are stored in Power BI's Azure Blob storage,
and when that occurs, the data is encrypted. All such reports stored in the Power BI service, in Azure Blob
storage, use Azure Storage Service Encryption (SSE ), also known as server-side encryption. Multi-geo uses
SSE as well.
Dashboards and Dashboard Tiles
1. Caches – The data needed by the visuals on the dashboard is usually cached and stored encrypted in Azure
SQL Database. Other tiles such as pinned visuals from Excel or SQL Server Reporting Services (SSRS ) are
stored in Azure Blob as images, and are also encrypted.
2. Static data – that includes artifacts such as background images and custom visuals that are stored,
encrypted, in Azure Blob storage.
Regardless of the encryption method used, Microsoft manages the key encryption on customers' behalf, in either a
secret store or in Azure Key Vault.
Data Transiently Stored on Non-Volatile Devices
The following describes data that is transiently stored on non-volatile devices.
Datasets
1. Metadata (tables, columns, measures, calculations, connection strings, etc.)
2. Some schema-related artifacts can be stored on the disk of the compute nodes for a limited period of time.
Some artifacts can also be stored in Azure REDIS Cache unencrypted for a limited period of time.
3. Credentials to the original data sources
a. Analysis Services on-premises – nothing is stored
b. DirectQuery – This depends whether the model is created in the service directly in which case it is stored
in the connection string, in encrypted format with the encryption key stored in clear text in the same place
(alongside the encrypted information); or if the model is imported from Power BI Desktop in which case the
credentials are not stored on non-volatile devices.
c. Pushed data – none (not applicable)
d. ETL – none (nothing stored on the compute node nor different than explained in the Data at Rest section,
above)
4. Data
Some data artifacts can be stored on the disk of the compute nodes for a limited period of time.
Data in process
Data is in process when it is actively being used or accessed by a user. For example, data is in process when a user
accesses a dataset, revises or modifies a dashboard or report, when refresh occurs, or other data access activities
that may occur. When any of those events occur and put data in process, the Data Role in the Power BI service
creates an in-memory Analysis Services (AS ) database and the dataset is loaded into that in-memory Analysis
Services database. Whether the dataset is based on a DirectQuery or not, data loaded in the AS database is
unencrypted to allow for access by the Data Role, and held in memory for further access until the Power BI
service no longer needs the dataset. For customers with a Power BI Premium subscription, Power BI creates an in-
memory Analysis Services (AS ) database in the customer's separately provisioned collection of Power BI virtual
machines.
Once data is acted upon, which includes initially loading data into Power BI, the Power BI service may cache the
visualization data in an encrypted Azure SQL Database, regardless of whether the dataset is based on a
DirectQuery.
To monitor data integrity for data in process, Power BI uses HTTPS, TCP/IP and TLS to ensure data is encrypted
and maintains integrity during the transport.
For a quick example to contrast RLS and non-RLS data sources, imagine Sam creates a report and a dashboard,
then shares them with Abby and Ralph. If the data sources used in the report and dashboard are from data sources
that do not support RLS, both Abby and Ralph will be able to see the data that Sam included in the dashboard
(which was uploaded into the Power BI service) and both Abby and Ralph can then interact with the data. In
contrast, if Sam creates a report and dashboard from data sources that do support RLS, then shares it with Abby
and Ralph, when Abby attempts to view the dashboard the following occurs:
1. Since the dashboard is from an RLS data source, the dashboard visualizations will briefly show a "loading"
message while the Power BI service queries the data source to retrieve the current dataset specified in the
connection string associated with the dashboard's underlying query.
2. The data is accessed and retrieved based on Abby's credentials and role, and only data for which Abby has
sufficient authorization is loaded into the dashboard and report.
3. The visualizations in the dashboard and report are displayed based on Abby's role level.
If Ralph were to access the shared dashboard or report, the same sequence occurs based on his role level.
Power BI Mobile
Power BI Mobile is a collection of apps designed for the three primary mobile platforms: Android, iOS, and
Windows Mobile. Security considerations for Power BI Mobile apps falls into two categories:
Device communication
The application and data on the device
For device communication, all Power BI Mobile applications communicate with the Power BI service, and use
the same connection and authentication sequences used by browsers, which are described in detail earlier in this
whitepaper. The iOS and Android Power BI mobile applications bring up a browser session within the application
itself, and the Windows mobile app brings up a broker to establish the communication channel with Power BI.
The following table lists support of certificate-based authentication (CBA) for Power BI Mobile based on mobile
device platform:
Power BI Mobile apps actively communicate with the Power BI service. Telemetry is used to gather mobile app
usage statistics and similar data, which is transmitted to services that are used to monitor usage and activity; no
personal data is sent with telemetry data.
The Power BI application on the device stores data on the device that facilitates use of the app:
Azure Active Directory and refresh tokens are stored in a secure mechanism on the device, using industry-
standard security measures.
Data is cached in storage on the device, which is not directly encrypted by the application itself
Settings are also stored on the device unencrypted, but no actual user data is stored.
The data cache from Power BI Mobile remains on the device for two weeks, or until: the app is removed; the user
signs out of Power BI Mobile; or the user fails to sign in (such as a token expiration event, or password change).
The data cache includes dashboards and reports previously accessed from the Power BI Mobile app.
Power BI Mobile applications do not look at folders on the device.
All three platforms for which Power BI Mobile is available support Microsoft Intune, a software service that
provides mobile device and application management. With Intune enabled and configured, data on the mobile
device is encrypted, and the Power BI application itself cannot be installed on an SD card. You can learn more
about Microsoft Intune.
Conclusion
The Power BI service architecture is based on two clusters – the Web Front End (WFE ) cluster and the Back-End
cluster. The WFE cluster is responsible for initial connection and authentication to the Power BI service, and once
authenticated, the Back End handles all subsequent user interactions. Power BI uses Azure Active Directory (AAD )
to store and manage user identities, and manages the storage of data and metadata using Azure Blob and Azure
SQL Database, respectively.
Data storage and data processing in Power BI differs based on whether data is accessed using a DirectQuery, and
is also dependent on whether data sources are in the cloud or on-premises. Power BI is also capable of enforcing
Role Level Security (RLS ) and interacts with Gateways that provide access to on-premises data.
Additional Resources
For more information on Power BI, see the following resources.
Groups in Power BI
Getting Started with Power BI Desktop
Power BI Gateway
Power BI REST API - Overview
Power BI API reference
On-premises data gateway
Power BI and ExpressRoute
Power BI National Clouds
Power BI Premium
Use Kerberos for SSO from Power BI to on-premises data sources
Deploying and Managing Power BI Premium
Capacities
3/22/2019 • 73 minutes to read • Edit Online
Summary: Power BI Premium provides more consistent performance, support for large data volumes, and the
flexibility of a unified self-service and enterprise BI platform for everyone in your organization. This level 300
technical whitepaper has been written specifically for Power BI administrators, and content authors and publishers.
It aims to help them understand the potential of Power BI Premium, and to explain how to design, deploy, monitor
and troubleshoot scalable solutions.
Author: Peter Myers (Data Platform MVP, and independent BI expert with Bitwise Solutions)
Technical Reviewers: Adam Saxton, Akshai Mirchandani, Bhavik Merchant, David Magar, Josh Caplan, Michael
Blythe, Nimrod Shalit, Olivier Matrat, Swati Gupta
Applies to: Power BI service, Power BI Premium and Azure Power BI Embedded capacities
NOTE
You can save or print this whitepaper by selecting Print from your browser, then selecting Save as PDF.
Introducing Power BI
Power BI is a business analytics service designed to deliver insights that enable fast, informed decisions. Since its
release in 2015 it has quickly become a popular service used to deliver solutions for the smallest of organizations
to the largest of enterprises.
It is made available in two ways: As a cloud service and as an on-premises reporting solution named Power BI
Report Server. [1]
Power BI as a cloud service is Software-as-a-Service (SaaS ) [ 2]. It represents a set of services and applications that
enable organizations to develop, deploy, manage, share solutions to monitor their business.
It is not the intention of this whitepaper to provide a comprehensive description of the Power BI service. Instead, it
focuses on topics relevant to the subject of Power BI Premium. For general information about Power BI, refer to
the comprehensive Power BI Documentation. For a more detailed explanation of the Power BI service with a focus
on achieving well-performing enterprise deployments, refer to the comprehensive Planning a Power BI Enterprise
Deployment whitepaper.
Within the context of this whitepaper's subject, this section introduces and describes capacities, Power BI content
types, model storage modes and licensing. An understanding of these topics is essential to successfully deploying
and managing Power BI Premium.
Capacities
Capacities are a core Power BI concept representing a set of resources (storage, processor and memory) used to
host and deliver Power BI content. Capacities are either shared or dedicated. A Shared Capacity is shared with
other Microsoft customers, while a Dedicated Capacity is fully committed to a single customer. Dedicated
capacities are introduced in the Premium Capacities topic.
In shared capacity, workloads run on computational resources shared with other customers. As the capacity must
share resources, limitations are imposed to ensure "fair play", such as the maximum model size (1 GB ) and
maximum daily refresh frequency (eight times per day).
Workspaces
Power BI workspaces reside within capacities and they represent security, collaboration and deployment
containers. Each Power BI user has a personal workspace known as My Workspace. Additional workspaces can
be created to enable collaboration and deployment, and these are known as App Workspaces. By default,
workspaces - including personal workspaces - are created in the shared capacity.
Power BI Content Types
To introduce Power BI Premium topics, it is important to start with a thorough discussion of Power BI architecture
including fundamental content types.
All Power BI content is stored and managed within workspaces which are containers for Power BI content. Each
Power BI user has their own personal workspace, but the general best practice is to create app workspaces. App
workspaces enable co-ownership of content and the ability to collaborate on content. They also provide the ability
to stage and distribute content to wide audiences as apps.
The following Power BI content is stored in workspaces:
Dataflows
Datasets
Workbooks
Reports
Dashboards
Dataflows
Power BI dataflows help organizations to unify data from disparate sources. They can be considered as data
prepared and staged for use in models, however they cannot be used directly as a source for reporting. They
leverage the extensive collection of Microsoft data connectors, enabling the ingestion of data from on-premises
and cloud-based data sources.
Dataflows can only be created and managed in app workspaces, and they are stored as entities in the Common
Data Model (CDM ) in Azure Data Lake Storage Gen2. Typically, they are scheduled to refresh on a recurring basis
to store up-to-date data.
For further information, refer to the Self-service data prep in Power BI (Preview ) document.
Datasets
Power BI datasets represent a source of data ready for reporting and visualization. There are many types of
datasets, created by:
Connecting to an existing data model which is not hosted in a Power BI capacity
Uploading a Power BI Desktop file that contains a model
Uploading an Excel workbook (containing one or more Excel tables and/or a workbook data model) or
uploading a Comma-Separated Value (CSV ) file
Using the Power BI service to create a push, streaming or hybrid streaming dataset
Except for streaming datasets [3], the dataset represents a data model which leverages the mature modeling
technologies of Analysis Services.
Note that in documentation, sometimes the terminologies datasets and models are interchangeable. Generally,
from a Power BI service perspective it is referred to as a dataset , and from a development perspective it is
referred to as a model. In the context of this whitepaper they mean much the same thing.
Ex t e r n a l l y - H o st e d M o d e l s
Connecting to an externally-hosted model involves installing the On-Premises Data Gateway to connect to SQL
Server Analysis Services, whether it is on-premises or VM -hosted Infrastructure-as-a-Service (IaaS ). Azure
Analysis Services does not require a gateway. This scenario often makes sense when existing model investments
exist, typically forming part of the Enterprise Data Warehouse (EDW ). It allows Power BI to perform a Live
Connection (LC ) to Analysis Services and does so by enforcing data permissions by using the identity of the
Power BI report user. For SQL Server Analysis Services, both multidimensional models (cubes) and tabular
models are supported. As shown in the following image, a Live Connection dataset passes queries to externally
hosted models.
P o w e r B I D e sk t o p - D e v e l o p e d M o d e l s
Power BI Desktop - a client application intended for Power BI development - can be used to develop a model
which is effectively an Analysis Services tabular model. Models can be developed by importing data from
dataflows, which can then be integrated with other data sources. While the specifics on how modeling can be
achieved is outside the scope of this whitepaper, it is important to understand that there are three different types -
or modes - of models that can be developed by using Power BI Desktop. These modes determine whether data is
imported into the model, or whether it remains in the data source. The three modes are: Import, DirectQuery, and
Composite. A complete discussion of each mode will be covered in the Model Storage Modes topic.
Externally-hosted models and models developed in Power BI desktop can enforce Row -Level Security (RLS ) to
limit the data that can be retrieved for a certain user. For example, users assigned to the Salespeople security
group can only view report data for the sales region(s) to which they are assigned. RLS roles can be dynamic or
static. Dynamic roles filter by the report user, while static roles apply the same filters for all users assigned to the
role.
Ex c e l W o r k b o o k M o d e l s
Creating datasets based on Excel workbooks or CSV files will result in the automatic creation of a model. Excel
tables and CSV data will be imported to create model tables, while an Excel workbook data model will be
transposed to create a Power BI model. In all cases, file data is imported into a model.
Distinctions, then, can be made about Power BI datasets that represent models:
They are either hosted in the Power BI service, or are externally hosted by Analysis Services
They can store imported data, or they can issue passthrough query requests to underlying data sources, or a
mix of both
Here is a summary of important facts about Power BI datasets that represent models:
SQL Server Analysis Services hosted models require a gateway to perform LC queries
Power BI-hosted models that import data
Must be fully loaded into memory so that they can be queried
Require refresh to keep data current, and must involve gateways when source data is not accessible
directly over the Internet
Power BI-hosted models that use DirectQuery (DQ ) storage mode require connectivity to the source data.
When the model is queried, Power BI issues queries to the source data to retrieve current data. This mode must
involve gateways when source data is not accessible directly over the Internet.
Models may enforce RLS rules, enforcing filters to limit data access to certain users
To successfully deploy and manage Power BI Premium, it is important to understand where models are hosted,
their storage mode, any dependencies on gateways, size of imported data, and refresh type and frequency. These
can all have a significant impact on the Power BI Premium resources. In addition, the model design itself including
its data preparation queries and calculations can add to the mix of considerations.
It is also important to understand that Power BI-hosted import models can refresh according to schedule or be
triggered on-demand by a user in the Power BI service.
Designing optimized models is discussed later in this technical paper in the Optimizing Models topic.
Workbooks
Power BI workbooks are a Power BI content type [4]. They are Excel workbooks that have been uploaded to the
Power BI service, and should not be confused with uploaded Excel workbooks that create datasets (models). The
workbook content type represents a connection to a workbook, which could either be uploaded to the Power BI
service or remain in cloud storage on OneDrive or SharePoint Online.
It is important to understand that this content type is not available as a data source for Power BI data
visualizations. Instead, it can be opened as a workbook in the Power BI service by using Excel Online. The main
intention of this content type is to allow legacy Excel workbook reports to be accessible from within the Power BI
service, and to allow its data visualizations to be pinned to Power BI dashboards.
For further information, refer to the Get data from Excel workbook files document.
Reports
There are two types of reports: Power BI reports and paginated reports.
Power BI reports provide an interactive data visualization experiences which connects to only a single dataset.
Reports are often designed to encourage user participation allowing them to interact with an extraordinary array
of capabilities, including filtering, slicing, cross filtering and highlighting, drilling up, drilling down, drilling through,
Q&A natural language questioning, focusing, page navigation, spotlighting, viewing bookmarks, and more.
In the context of this whitepaper, it is important to understand how the Power BI architecture, Power BI report
design and user interactions can all impact on the Power BI service resources:
To load and interact with reports based on import models, the model must be fully loaded into memory
(whether hosted in the Power BI service or hosted externally)
Each report visual issues a query to retrieve data by querying the model
Generally, filter and slicer interactions involve querying the model. For example, changing a slicer selection will
- by default - require reloading each visual on the page [5]
Power BI reports do not guarantee displaying current data, and may require the user to refresh the report to
reload the report page and its visuals
Users can engage with the Q&A natural language feature to ask questions, providing the Power BI report
design permits it and the dataset represents a Power BI-hosted data import model or a LC dataset configured
to enable Q&A
Paginated reports allowing the publication and rendering of SQL Server Reporting Services (SSRS ) reports
(*.rdl format). As their name suggests, paginated reports are commonly used when requirements dictate a need
for printing to a fixed page size, or when there are variable lists of data that must be fully expanded. For example,
an invoice designed for multi-page rendering (rather than scrolling within a visual) and printing.
The two supported report types provide choice for report authors, allowing them to select the type based on
requirements and intended use. Generally, Power BI reports are ideal for interactive experiences allowing the user
to explore and discover insights from data, while paginated reports are better suited to parameter-driven page
layouts.
Regardless of report type, achieving responsive report load and data updates (when filters or parameters are
changed) is imperative to delivering a reliable and well-performing user experience.
Dashboards
Power BI dashboards are intended to deliver monitoring experiences and are conceptually very different from
Power BI reports. Dashboards are designed for display on a single pane of glass to express values and data
visualizations in tiles. Generally, dashboards offer fewer interaction experiences than Power BI reports, with some
dashboard designs expecting no interaction. For example, an unattended dashboard presented on a non-touch
screen in a server room. Another significant difference is that dashboards may present tiles that source data from
multiple datasets, while a Power BI report can only ever be based on a single dataset.
It is important to understand that a dashboard is designed to load quickly and to express the most current data
(known to the Power BI service) at all times. It achieves this by caching tile query results, and it does this for each
dashboard. In fact, it must do this for each user that has access to a dashboard that is based on models that
enforce dynamic RLS.
The Power BI service automatically updates dashboard query caches immediately after Power BI-hosted import
models are refreshed. In the case of LC and DQ models, the dataset owner has a degree of control over how often
the Power BI service updates the cache, which can be configured as frequently as every 15 minutes, or as
infrequently as once a week. Note that LC query cache updates will first query model metadata to determine
whether a model refresh has taken place since the last cache update, and it will not proceed to update the cache
when a refresh has not since occurred. This check is not possible for DQ models, and so cache updates will happen
whether the source data has changed or not.
Dashboard query cache updates based on DQ and LC models can significantly impact on both Power BI service
resources and external data sources. Consider a dashboard with 20 tiles, all based on an Azure Analysis Services
model that enforces dynamic RLS and that is refreshed every hour, and that this dashboard is shared with 100
users. If the dataset is configured to refresh every hour, this would result in at least 2000 (20 x 100) LC queries.
This could place an enormous load on the Power BI service and external data sources, and it could also exceed
limits imposed on available resources. Capacity resources and limits are described in the Capacity Nodes topic.
Users can interact with a dashboard in various ways, which require Power BI service resources. Specifically, they
can:
Trigger a refresh of dashboards tiles, which can result in an on-demand refresh of all related Power BI-hosted
data import models
Engage with the Q&A natural language feature to ask questions (providing the dashboard design permits it
and the dataset is a Power BI-hosted data import model or a LC dataset configured to enable Q&A)
Use the Quick Insights feature to have Power BI discover insights from an underlying dataset, and respond
with visuals that display and describe them (providing that the tile is based on a dataset that is Power BI-hosted
data import model)
Configure alerts on dashboard tiles, requiring the Power BI service to compare thresholds to tile values -
possibly as frequently as hourly - and to notify users when thresholds are exceeded (providing that the tile
displays a single numeric value and is based on a dataset that is Power BI-hosted data import model)
Model Storage Modes
Recall that Power BI Desktop allows developing a model in one of three modes. It is important to understand the
rationale for each data model storage mode and possible impacts on Power BI service resources. This section
introduces all three modes. These will be discussed in further detail later in this whitepaper in the Optimizing
Models topic.
Import Mode
Import mode is the most common mode used to develop models because of the extremely fast performance
associated with in-memory querying, the design flexibility available to modelers, and support for specific Power BI
service capabilities (Q&A, Quick Insights, etc.). It is the default mode when creating a new Power BI Desktop
solution.
It is important to understand that imported data is always stored to disk and must be fully loaded into memory to
be queried or refreshed. Once in memory, import models achieve blazingly fast query results. It is also important
to understand that there is no concept of an import model being partially loaded into memory.
When refreshed, data is compressed and optimized and then stored to disk by the VertiPaq storage engine. When
loaded from disk into memory, it is possible to see 10x compression, and so it is reasonable to expect that 10 GB
of source data can compress to about 1 GB in size. Storage size on disk can achieve a 20% reduction on top this.
[6 ]
Design flexibility can be achieved in three ways. Data modelers can:
Integrate data by caching data from multiple data sources - regardless of data source type and format
Leverage the entire set of Power Query Formula Language (informally referred to as M ) functions when
creating data preparation queries
Leverage the entire set of Data Analysis Expressions (DAX) functions when enhancing the model with business
logic, achieved with calculated columns, calculated tables and measures
As shown in the following image, an Import model can integrate data from any number of supported data source
types.
However, while there are compelling advantages associated with import models, there are disadvantages too:
The entire model must be loaded to memory before Power BI can query the model, which can place pressure
on available resources as the number and size of models grow
Model data is only as current as the latest refresh, and so import models need to be refreshed, preferably on a
scheduled basis
A full refresh will remove all data from all tables and reload it from the data source. This can be very expensive
in terms of time and resources for the Power BI service and the data source(s). Power BI does have support for
incremental refresh which can avoid truncating and reloading entire tables, and this is covered in the
Optimizing Power BI-Hosted Models topic.
From a Power BI service resource perspective, import models require:
Sufficient memory to load the model when it is queried or refreshed
Processing resources and additional memory resources to refresh data
DirectQuery Mode
Models developed in DirectQuery (DQ ) mode do not import data. Instead, they consist only of metadata that
when queried issues native queries to the underlying data source.
There are two main reasons to consider developing a DQ model. The first reason is when data volumes are too
large - even when data reduction methods are applied - to load into a model or practically refresh. The second
reason is when reports and dashboards need to deliver "near real-time" data, beyond what can be achieved within
scheduled refresh limits (48 times a day for a dedicated capacity).
There are several advantages associated with DQ models:
Import model size limits do not apply
Models do not require refresh
Report users will see the latest data when interacting with report filters and slicers, and can refresh the entire
report to retrieve current data
Dashboard tiles, when based on DQ models, can update automatically as frequently as every 15 minutes
However, there are numerous disadvantages and limitations associated with DQ models:
The model must be based on a single supported data source, and therefore any data integration must already
be achieved in the data source. Supported data sources are relational and analytic systems, with support for
many popular data stores [7].
Performance can be slow, potentially negatively impacting on the Power BI service (queries can be very CPU -
intensive) and on the data source (which may not be optimized for analytic queries)
Power Query queries cannot be overly complex, and are limited to M expressions and functions that can be
transposed to native queries understood by the data source
DAX functions are limited to those that can be transposed to native queries understood by the data source, and
there is no support for calculated tables or built-in Time Intelligence capabilities
By default, model queries that require retrieval of more than one million rows will fail
Reports and dashboards with multiple visuals can display inconsistent results, especially when the data source
is volatile
Q&A and Quick Insights are not supported
From a Power BI service resource perspective, DQ models require:
Minimal memory to load the model (metadata only) when it is queried
Sometimes significant processor resources to generate and process queries sent to the data source
For further information, refer to the Use Direct Query in Power BI Desktop document.
Composite Mode
Models developed in Composite mode allow configuring the storing mode for individual model tables. It therefore
supports a mix of import and DQ tables. It also supports calculated tables (defined with DAX) and multiple DQ
data sources.
Table storage mode can be configured as Import, DirectQuery or Dual. A table configured as Dual storage mode is
both Import and DirectQuery, and this allows the Power BI service to determine the most efficient mode to use on
a query by query basis.
Composite models strive to deliver the best of Import and DirectQuery modes. When configured appropriately
they can combine high query performance of in-memory models with the ability to retrieve near real-time data
from data sources.
Data modelers who develop Composite models are likely to configure dimension-type tables in Import or Dual
storage mode and fact-type tables in DirectQuery mode. For example, consider a model with a Product
dimension-type table in Dual mode and a Sales fact-type table in DirectQuery mode. The Product table could be
efficiently and quickly queried from in-memory to render a report slicer. The Sales table could then be queried in
DirectQuery mode joined to the related Product table. The latter query could enable the generation of a single
efficient native query to join Product and Sales tables and filtering by the slicer values.
In general, the advantages and disadvantages, associated with each model mode can be considered to apply to
table storage mode in Composite models.
For further information, refer to the Use composite models in Power BI Desktop document.
Licensing
Power BI has three licenses:
Power BI Free
Power BI Pro
Power BI Premium
The Power BI Free license allows an individual to sign in to the Power BI service and work within their personal
workspace by publishing models and reports. It is important to understand that it is not possible to share Power BI
content by using this license. This license, as its name suggests, is free.
The Power BI Pro license allows an individual to create and collaborate within app workspaces and share and
distribute Power BI content. They can also configure refresh for their datasets to automatically keep data current,
including from on-premises data sources. In addition, they can audit and govern how data is accessed and used.
This license is required to receive shared content from others unless the user is associated with a Power BI
Premium dedicated capacity.
The Power BI Premium license is a tenant-level license, and it is discussed in the Introducing Power BI Premium
section.
For further information about Power BI licensing, refer to the Power BI Pricing page.
MODEL
CAPACITY TOTAL V- BACKEND V- FRONTEND V- DQ/LC (PER REFRESH
NODES CORES CORES RAM (GB) CORES SEC) PARALLELISM
EM2/A2 2 1 5 1 7.5 2
EM3/A3 4 2 10 2 15 3
P1/A4 8 4 25 4 30 6
P2/A5 16 8 50 8 60 12
Capacity Workloads
Capacity workloads are services made available to users. By default, Premium and Azure capacities support only a
dataset workload associated with running Power BI queries which cannot be disabled.
Additional workloads can be enabled for paginated reports and dataflows. Each additional workload requires
configuring the maximum memory (as a percentage of total available memory) that can be used by the workload.
How Capacities Function
At all times, the Power BI service strives to make the best use of capacity resources while not exceeding limits
imposed on the capacity.
Capacity operations are classified as either interactive or background. Interactive operations include rendering
requests and responding to user interactions (filtering, Q&A querying, etc.). Generally, import model querying is
memory resource-intensive, while querying LC/DQ models is CPU -intensive. Background operations include
dataflow and import model refreshes, and dashboard query caching.
It is important to understand that interactive operations are always prioritized over background operations to
ensure the best possible user experience. If there are insufficient resources, background operations are added to a
queue for processing when resources free up. Background operations, like dataset refreshes, can be stopped mid-
process by the Power BI service and added to a queue.
Import models must be fully loaded into memory so that they can be queried or refreshed. The Power BI service
manages memory usage by using sophisticated algorithms to ensure maximum use of available memory, and can
achieve overcommitting the capacity: While it is possible for a capacity to store many import models (up to 100 TB
per Premium capacity), when their combined disk storage exceeds the supported memory (and additional
memory is required for querying and refresh), then they cannot all be loaded into memory at the same time.
Import models are therefore loaded into - and removed from - memory according to usage. An import model is
loaded when it is queried (interactive operation) and not yet in memory, or when it is to be refreshed (background
operation).
The removal of a model from memory is known as eviction , and it is an operation that Power BI can perform
quickly depending on the size of the models. If the capacity is not experiencing any memory pressure, models are
simply loaded into memory and remain there. [10] However, when insufficient memory is available to load a
model, the Power BI service will first need to free up memory. It frees up memory by detecting models that have
become inactive by seeking models which have not been used in the last three minutes [11], and then evicting
them. If there are no inactive models to evict, the Power BI service seeks to evict models loaded for background
operations. A last resort, after 30 seconds of failed attempts [11], is to fail the interactive operation. In this case, the
report user is gracefully notified of failure with a suggestion to try again shortly.
It is important to stress that dataset eviction is a normal and expected behavior. It strives to maximize memory
usage by loading and unloading models whose combined sizes can exceed available memory. This is by design,
and completely transparent to report users. High eviction rates do not necessarily mean the capacity is
insufficiently resourced. They can, however, become a concern if query or refresh responsiveness is suffering
because of high eviction rates.
Refreshes of import models are always memory intensive as models must be loaded into memory and additional
memory is required for the processing. A full refresh can use approximately double the amount of memory
required by the model. This ensures that the model can be queried even when being processed (queries are sent to
the existing model, until the refresh has completed, and the new model data is available). Note, incremental refresh
will require less memory and could complete faster, and so can substantially reduce pressure on capacity
resources. Refreshes can also be CPU -intensive for models, especially those with complex Power Query
transformations, or calculated tables/columns that are complex or are based on large tables.
Refreshes - like queries - require that the model be loaded into memory. If there is insufficient memory, the Power
BI service will attempt to evict inactive models, and if this is not possible (as all models are active), the refresh job
is queued. Refreshes are typically very CPU -intensive, even more so than queries. For this reason, there are
capacity limits on the number of concurrent refreshes, set to 1.5 x the number of backend v-cores, rounded up. If
there are too many concurrent refreshes, a scheduled refresh will be queued. When these situations occur, it takes
longer for the refresh to complete. Note that on-demand refreshes (triggered by a user request or API call) will
retry three times [11], and then fail if there are still not enough resources.
A Premium capacity can be assigned to a region other than the home region of the Power BI tenant, providing
administrative control over which datacenters (within defined geographic regions) Power BI content resides. [12]
Power BI service administrators and Office 365 Global Administrators can modify Premium capacities.
Specifically, they can:
Change the capacity size to scale up or scale down resources. However, it is not possible to downgrade a P SKU
to an EM SKU, or upgrade vice versa.
Add or remove Capacity Admins
Add or remove users that have assignment permissions
Add or remove additional workloads
Change regions
Assignment permissions are required to assign a workspace to a specific Premium capacity. The permissions can
be granted to the entire organization, specific users or groups.
By default, Premium capacities support workloads associated with running Power BI queries. It also supports two
additional workloads: Paginated Reports and Dataflows. Each workload requires configuring the maximum
memory (as a percentage of total available memory) that can be used by the workload. It is important to
understand that increasing maximum memory allocations can impact on the number of active models that can be
hosted, and the throughput of refreshes.
Memory is dynamically allocated to dataflows, but it is statically allocated to paginated reports. The reason for
statically allocating the maximum memory is that paginated reports run within a secured contained space of the
capacity. Care should be taken when setting paginated reports memory as it reduces available memory for loading
models.
EM3 P1 P2 P3
Paginated reports N/A 20% default; 10% 20% default; 5% 20% default; 2.5%
minimum minimum minimum
Deleting a Premium capacity is possible and will not result in the deletion of its workspaces and content. Instead, it
will move any assigned workspaces to shared capacity. When the Premium capacity was created in a different
region, the workspace will be moved to shared capacity of the home region.
Assigning Workspaces to Capacities
Workspaces can be assigned to a Premium capacity in the Power BI Admin Portal or - for an app workspace - in
the Workspace pane.
Capacity Admins, as well as Office 365 Global Administrators or Power BI service administrators, can bulk assign
workspaces in the Power BI Admin Portal. Bulk assigned can apply to:
Workspaces by users : All workspaces owned by those users, including personal workspaces, are assigned
to the Premium capacity. This will include the re-assignment of workspaces when they are already assigned
to a different Premium capacity. In addition, the users are also assigned workspace assignment permissions.
Specific workspaces
The entire organization's workspaces : All workspaces, including personal workspaces, are assigned to
the Premium capacity. In addition, all current and future users are assigned workspace assignment
permissions. [14]
A workspace can be added to a Premium capacity by using the Workspace pane providing the user is both a
workspace admin and has assignment permissions.
Workspace admins can remove a workspace from a capacity (to shared capacity) without requiring assignment
permission. Removing workspaces from dedicated capacities effectively relocates the workspace to shared
capacity. Note that removing a workspace from a Premium capacity may have negative consequences resulting,
for example, in shared content becoming unavailable to Power BI Free licensed users, or the suspension of
scheduled refresh when they exceed the allowances supported by shared capacities.
In the Power BI service, a workspace assigned to a Premium capacity is easily identified by the diamond icon that
adorns the workspace name.
Monitoring Capacities
Monitoring Premium capacities provides administrators with an understanding of how the capacities are
performing. Capacities can be monitored by using the Power BI Admin Portal or the Power BI Premium
Capacity Metrics (Power BI) app.
Power BI Admin Portal
The Power BI Admin Portal allows monitoring of four summary tiles which report on loads placed on the
capacity resources. The four summary tiles are:
CPU : Number of times CPU exceeded 80% utilization
Memory Thrashing : Number of times exceeded 80%, representing memory pressure on the backend v-cores.
Specifically, it is a measure of how many times a dataset was evicted from memory due to memory pressure
and the demand for more active datasets.
Memory Usage : Average memory usage (in GB )
Direct Query : Number of times DQ and LC queries - measured per second - exceeded 80% of the limit
Tile values are calculated over an hourly time window to indicate how many hours in the past seven days
corresponded to the metric threshold. It is important to understand that exceeding a threshold is not necessarily a
dire situation, but possibly an indication of performance degradation.
By clicking on a summary tile, it is possible to clickthrough to a report to view the metric as a line chart over the
past seven days. The data presented in the chart is a summary of hourly results that can help you to determine a
general understanding of what was taking place at a specific hour.
The monitoring capabilities in the Power BI Admin Portal are basic and are designed to provide a quick
understanding of key system metrics. For more detailed monitoring, it is recommended that you use the Power BI
Premium Capacity Metrics app.
Power BI Premium Capacity Metrics App
The Power BI Premium Capacity Metrics app is a Power BI app available to Capacity Admins and is installed
like any other Power BI app [15]. It contains a dashboard and report.
When the app opens, the dashboard is loaded to present numerous tiles expressing an aggregated view over all
capacities of which the user is a Capacity Admin. The dashboard layout includes five main sections:
1. Overview : App version, number of capacities and workspaces
2. System Summary : Memory and CPU metrics
3. Dataset Summary : Number of datasets, DQ/LC, refresh and query metrics
4. Dataflow Summary : Number of dataflows, and dataset metrics
5. Paginated Report Summary : Refresh and view metrics
The underlying report (from which the dashboard tiles were pinned) can be accessed by clicking on any dashboard
tile. It provides a more detailed perspective of each of the dashboard sections and supports interactive filtering.
Filtering can be achieved by setting slicers by date range, capacity, workspace and workload (report, dataset,
dataflow ), and by selecting elements within report visuals to cross filter the report page. Cross filtering is a
powerful technique to narrow down to specific time periods, capacities, workspaces, datasets, etc. and can be very
helpful when performing root cause analysis.
The report consists of the following five pages:
1. Datasets : Displays detailed metrics on dataset health. Button selection reveals different perspectives:
Summary, Refreshes, Query Durations, Query Waits and Datasets
2. Paginated Reports : Displays detailed metrics on paginated report health
3. Dataflows : Displays detailed metrics on dataflow health
4. System : Displays overall capacity metrics, including memory and CPU utilization
5. Display Names and IDs : Displays names, IDs, and owners for capacities, workspaces and workloads
The reports pages include different perspectives accessible by clicking buttons. Report visuals allow monitoring
metrics over time to compare them against system resource usage.
This whitepaper will not describe each page and perspective. Instead, it lists the metrics available in the report
together with their purpose. The report presents many pages and visuals based on the following metrics, first by
resource, as shown in the following tables.
En t i t i e s (o f w h i c h t h e u se r i s a C a p a c i t y A d m i n )
METRIC DESCRIPTION
Mem o r y
METRIC DESCRIPTION
Average memory Average memory usage over the past seven days (in GB)
Average memory by workloads: datasets, dataflows, Average memory usage over the past seven days (in GB) by
paginated reports workloads: datasets, dataflow, paginated reports
Highest utilization Maximum memory consumption (in GB) over the past seven
days, split into three-minute interval in 1-hour buckets
CPU
METRIC DESCRIPTION
High utilization count Number of times CPU exceeded 80% of the thresholds in the
past seven days, split into 3-minute intervals in 1-hour
buckets
DQ /LC c o n n ec t i o n s
METRIC DESCRIPTION
High utilization count Number of times DQ/LC connections exceeded 80% of the
thresholds in the past seven days, split into 3-minute intervals
in 1-hour buckets
The following tables show workload-related metrics.
D a t a se t r e fr e sh
METRIC DESCRIPTION
Average refresh duration Average refresh duration in minutes in the past seven days
Maximum refresh duration The duration of the longest running refresh in minutes
Average wait time Average refresh wait time (lag between the scheduled time
and start time) in minutes [16]
Maximum wait time Maximum refresh wait time (lag between the scheduled time
and start time) in minutes
D a t a se t q u e r i e s
METRIC DESCRIPTION
Successful queries Number of successful queries run in the past seven days
Failed queries Number of failed queries run in the past seven days
Average query duration Average query duration (in ms) in the past seven daysCan be
used to determine hourly query distribution together with
memory consumption, split into 1-hour buckets
Maximum query duration Maximum query duration (in ms) in the past seven days
Query wait count Number of queries which experienced some wait time or last 7
days
Average query wait time Average query wait time (in ms) over the past seven daysCan
be used to determine hourly query wait time distribution
together with memory consumption, split into 1-hour buckets
Maximum query wait time Maximum query wait time (in ms) over the past seven days
D a t a se t l o a d s
METRIC DESCRIPTION
Average dataset size Average size (in MB) of datasets in memory [ 17]
Active datasets loaded in memory Number of datasets loaded into memory per hour
Dataset eviction and memory consumption Number of datasets evicted from memory per hour
Active memory Active memory shows the total amount of memory that
cannot be evicted because it is in use. The difference between
the active memory and the total memory is the sum of the
memory consumed by datasets which are in memory but
have not been used in the last 3 minutes.
D a t a fl o w s
METRIC DESCRIPTION
Average refresh duration Average dataflow refresh duration (in minutes) in the past
seven days
Maximum refresh duration Maximum dataflow refresh duration (in minutes) in the past
seven days
Average refresh wait time Average dataflow refresh wait time (lag between the
scheduled time and start time, in minutes)
Maximum refresh wait time Maximum dataflow refresh wait time (lag between the
scheduled time and start time, in minutes)
Pagi n at ed r epo r t s
METRIC DESCRIPTION
Average retrieval Average data retrieval duration (in ms) in the past seven days
Average processing Average processing duration (in ms) in the past seven days
Average rendering Average rendering duration (in ms) in the past seven days
Average duration Average total time to process all phases of a report view (in
ms) in the past seven days
METRIC DESCRIPTION
The app is likely to undergo frequent version updates. For up to date information, refer to the Monitor Power BI
Premium and Power BI Embedded capacities document.
Interpreting Metrics
Metrics should be monitored to establish a baseline understanding of resource usage and workload activity. If the
capacity becomes slow, it is important to understand which metrics to monitor, and the conclusions you can make.
Ideally, queries should complete within a second to deliver responsive experiences to report users and enable
higher query throughput. It is usually of lesser concern when background processes - including refreshes - take
longer times to complete.
In general, slow reports can be an indication of an over-heating capacity. When reports fail to load, this is an
indication of an over-heated capacity. In either situation, the root cause could be attributable to many factors,
including:
Failed queries certainly indicate memory pressure, and that a model could not be loaded into memory.
The Power BI service will attempt to load a model for 30 seconds before failing.
Excessive query wait times can be due to several reasons:
The need for the Power BI service to first evict model(s) and then load the to-be-queried model (recall
that higher dataset eviction rates alone are not an indication of capacity stress, unless accompanied by
long query wait times that indicate memory thrashing)
Model load times (especially the wait to load a large model into memory)
Long running queries
Too many LC\DQ connections (exceeding capacity limits)
CPU saturation
Complex report designs with an excessive number of visuals on a page (recall that each visual is a query)
Long query durations can indicate that model designs are not optimized, especially when multiple
datasets are active in a capacity, and just one dataset is producing long query durations. This suggests that
the capacity is sufficiently resourced, and that the in-question dataset is sub-optimal or just slow. Long
running queries can be problematic as they can block access to resources required by other processes.
Long refresh wait times indicate insufficient memory due to many active models consuming memory, or
that a problematic refresh is blocking other refreshes (exceeding parallel refresh limits).
A more detailed explanation of how to use the metrics is covered next in the Optimizing Premium Capacities
section.
If sharing content only with Power BI Pro users, there may be no need to store the content in a dedicated
capacity
Use dedicated capacities when looking to achieve a specific refresh time, or when specific features are
required, for example large datasets or paginated reporting
Addressing Common Questions
Optimizing Power BI Premium deployments is a complex topic involving an understanding of workload
requirements, available resources and their effective use.
This topic addresses seven common support questions, describing possible issues and explanations, and
information on how to identify and resolve them.
Why is the capacity slow, and what can I do?
There are many reasons that can contribute to a slow Premium capacity. This question requires further
information to understand what is meant by slow. Are reports slow to load? Or are they failing to load? Are report
visuals slow to load or update when users interact with the report? Are refreshes taking longer to complete than
expected, or previously experienced?
Having gained an understanding of the reason, you can then begin to investigate. Responses to the following six
questions will help you to address more specific issues.
What content is using up my capacity?
You can use the Power BI Premium Capacity Metrics app to filter by capacity, and review performance metrics
for workspace content. It is possible to review the performance metrics and resource usage by hour for the past
seven days for all content stored within a Premium capacity. This is often the first step to take when
troubleshooting a general concern about Premium capacity performance.
Key metrics to monitor include:
Average CPU and high utilization count
Average Memory and high utilization count, and memory usage for specific datasets, dataflows and paginated
reports
Active datasets loaded in memory
Average and maximum query durations
Average query wait times
Average dataset and dataflow refresh times
Additionally, in the Power BI Premium Capacity Metrics App, active memory shows the total amount of memory
allocated to a report that cannot be evicted because it is in use in the last three minutes. A high spike in refresh
wait time could be correlated with a large and/or active dataset.
The "Top 5 by Average Duration" chart highlights the top five datasets, paginated reports and dataflows
consuming capacity resources. Content in the top five lists are candidates for investigation and possible
optimization.
Why are reports slow?
The following tables show possible issues and ways to identify and handle them.
I n su ffi c i e n t c a p a c i t y r e so u r c e s
High total active memory (model Monitor memory metrics [ 18], and Decrease model size, or convert to
cannot be evicted because it is in use in eviction counts [19] DirectQuery mode - see the Optimizing
the last three minutes) Models topic in this section
I n e ffi c i e n t r e p o r t d e si g n s
Report pages contain numerous visuals Review report designs Redesign reports with fewer visuals per
(interactive filtering can trigger at least page
one query per visual) Interview report users to understand
how they interact with the reports
Visuals retrieve more data than
necessary Monitor dataset query metrics [20]
D a t a se t sl o w (e sp e c i a l l y w h e n r e p o r t s h a v e p r e v i o u sl y p e r fo r m e d w e l l )
Increasingly large volumes of import Review model designs See the Optimizing Models topic in this
data section
Monitor gateway performance counters
Complex or inefficient calculation logic,
including RLS roles
H i g h c o n c u r r e n t r e p o r t u sa g e
POSSIBLE EXPLANATIONS HOW TO IDENTIFY HOW TO RESOLVE
High query wait times Monitor CPU utilization [21], query wait Scale up the capacity, or assign the
times, and DQ/LC utilization [22] content to a different capacity
CPU saturation metrics + Query durations – if
fluctuating can indicate concurrency Redesign reports with fewer visuals per
DQ/LC connection limits exceeded issues page
Generally, the optimization topics for Import and DirectQuery models apply to Composite model tables that
use these storage modes.
Typically, strive to achieve a balanced design by configuring dimension-type tables (representing business
entities) as Dual storage mode and fact-type tables (often large tables, representing operational facts) as
DirectQuery storage mode. Dual storage mode means both Import and DirectQuery storage modes, and this
allows the Power BI service to determine the most efficient storage mode to use when generating a native
query for passthrough.
Ensure that gateways have enough resources, preferably on dedicated machines, with sufficient network
bandwidth and in close proximity to the data sources
Aggregations tables configured as Import storage mode can deliver dramatic query performance
enhancements when used to summarize DirectQuery storage mode fact-type tables. In this case, aggregation
tables will increase the size of the model and increase refresh time, and often this is an acceptable tradeoff for
faster queries.
Optimizing Externally-Hosted Models
Many optimization possibilities discussed in the Optimizing Power BI-Hosted Models topic apply also to models
developed with Azure Analysis Services and SQL Server Analysis Services. Clear exceptions are certain features
which are not currently supported, including Composite models and aggregation tables.
An additional consideration for externally-hosted datasets is the database hosting in relation to the Power BI
service. For Azure Analysis Services, this means creating the Azure resource in the same region as the Power BI
tenant (home region). For SQL Server Analysis Services, for IaaS, this means hosting the VM in the same region,
and for on-premises, it means ensuring an efficient gateway setup.
As an aside, it may be of interest to note that Azure Analysis Services databases and SQL Server Analysis Services
tabular databases require that their models be loaded fully into memory and that they remain there at all times to
support querying. Like the Power BI service, there needs to be sufficient memory for refreshing if the model must
remain online during the refresh. Unlike the Power BI service, there is no concept that models are automatically
aged in and out of memory according to usage. Power BI Premium, therefore, offers a more efficient approach to
maximize model querying with lower memory usage.
Capacity Planning
The size of a Premium capacity determines its available memory and processor resources and limits imposed on
the capacity. The number of Premium capacities is also a consideration, as creating multiple Premium capacities
can help isolate workloads from each other. Note that storage is 100 TB per capacity node, and this is likely to be
more than sufficient for any workload.
Determining the size and number of Premium capacities can be challenging, especially for the initial capacities you
create. The first step when capacity sizing is to understand the average workload representing expected day-to-day
usage. It is important to understand that not all workloads are equal. For example - at one end of a spectrum - 100
concurrent users accessing a single report page that contains a single visual is easily achievable. Yet - at the other
end of the spectrum - 100 concurrent users accessing 100 different reports, each with 100 visuals on the report
page, is going to make very different demands of capacity resources.
Capacity Admins will therefore need to consider many factors specific to your environment, content and expected
usage. The overriding objective is to maximize capacity utilization while delivering consistent query times,
acceptable wait times, and eviction rates. Factors for consideration can include:
Model size and data characteristics : Import models must be fully loaded into memory to allow querying or
refreshing. LC/DQ datasets can require significant processor time and possibly significant memory to evaluate
complex measures or RLS rules. Memory and processor size, and LC/DQ query throughput are constrained by
the capacity size.
Concurrent active models : The concurrent querying of different import models will deliver best
responsiveness and performance when they remain in memory. There should be sufficient memory to host all
heavily-queried models, with additional memory to allow for their refresh.
Import model refresh : The refresh type (full or incremental), duration and complexity of Power Query
queries and calculated table/column logic can impact on memory and especially processor usage. Concurrent
refreshes are constrained by the capacity size (1.5 x backend v-cores, rounded up).
Concurrent queries : Many concurrent queries can result in unresponsive reports when processor or LC/DQ
connections exceeds the capacity limit. This is especially the case for report pages that include many visuals.
Dataflows and paginated reports: The capacity can be configured to support dataflows and paginated
reports, with each requiring a configurable maximum percentage of capacity memory. Memory is dynamically
allocated to dataflows, but it is statically allocated to paginated reports.
In addition to these factors, Capacity Admins can consider creating multiple capacities. Multiple capacities allow
for the isolation of workloads and can be configured to ensure priority workloads have guaranteed resources. For
example, two capacities can be created to separate business-critical workloads from self-service BI (SSBI)
workloads. The business-critical capacity can be used to isolate large corporate models providing them with
guaranteed resources, with authoring access granted only to the IT department. The SSBI capacity can be used to
host a growing number of smaller models, with access granted to business analysts. The SSBI capacity may at
times experience query or refresh waits that are tolerable.
Over time, Capacity Admins can balance workspaces across capacities by moving content between workspaces, or
workspaces between capacities, and by scaling capacities up or down. Generally, to host larger models you scale
up and for higher concurrency you scale out.
Recall that purchasing a license provides the tenant with v-cores. The purchase of a P3 subscription can be used to
create one, or up to four Premium capacities, i.e. 1 x P3, or 2 x P2, or 4 x P1. Also, before upsizing a P2 capacity to
a P3 capacity, consideration can be given to splitting the v-cores to create two P1 capacities.
Testing Approaches
Once a capacity size is decided, testing can be performed by creating a controlled environment. A practical and
economic option is to create an Azure (A SKUs) capacity, noting that a P1 capacity is the same size as an A4
capacity, with the P2 and P3 capacities the same size as the A5 and A6 capacities, respectively. Azure capacities can
be created quickly and are billed on an hourly basis. So, once testing is complete, they can be easily deleted to stop
accruing costs.
The test content can be added to the workspaces created on the Azure capacity, and then as a single user can run
reports to generate a realistic and representative workload of queries. If there are import models, a refresh for
each model should be performed also. Monitoring tools can then be used to review all metrics to understand
resource utilization.
It is important that the tests are repeatable: Tests should be run several times and they should deliver
approximately the same result each time. An average of these results can be used to extrapolate and estimate a
workload under true production conditions.
To generate a stress test, consider developing a load testing application to simulate a realistic workload. The
specifics of how to achieve this are outside the scope of this whitepaper. For further information including a code
sample, refer to the Load Testing Power BI Applications with Visual Studio Load Test webinar.
The Power BI administrator can attempt to resolve the issue by taking steps to ensure that sufficient memory is
available for data refreshes to start by:
Contacting dataset owners and asking them to stagger and space out data refresh schedules
Reducing dataset query load by removing unnecessary dashboards or dashboard tiles, especially those that
enforce row -level security
Speeding up data refreshes by optimizing Power Query logic, model calculated columns or tables, reducing
dataset sizes, or configuring larger datasets to perform incremental data refresh
Identifying Slow-Responding Datasets
In this scenario, an investigation was triggered when users complained that certain reports took a long time to
open, and at times would hang.
In the app, the Power BI administrator can use the Query Durations visual to determine the worst performing
datasets by sorting datasets by descending Average Duration. This visual also shows dataset query counts, so
you can see how often the datasets are queried.
The Power BI administrator can refer to the Query Duration Distribution visual, which shows an overall
distribution of bucketed query performance (<= 30ms, 0-100ms, etc.) for the filtered time period. Generally,
queries that take one second or less are considered responsive by most users; queries that take longer tend to
create a perception of bad performance.
The Hourly Query Duration Distribution visual allows the Power BI administrator to identify one-hour periods
when the capacity performance could have been perceived as poor. The larger the bar segments that represent
query durations over one second, the larger the risk that users will perceive poor performance.
The visual is interactive, and when a segment of the bar is selected, the corresponding Query Durations table
visual on the report page is cross-filtered to show the datasets it represents. This cross-filtering allows the Power
BI administrator to easily identify which datasets are responding slowly.
The following image shows a visual filtered by Hourly Query Duration Distributions, focusing on the worst
performing datasets in one-hour buckets.
Once the poor performing dataset in a specific 1-hour timespan is identified, the Power BI administrator can
investigate whether poor performance is caused by an overloaded capacity, or due to a poorly designed dataset or
report. To achieve this, they can refer to the Query Wait Times visual, and sort datasets by descending average
query wait time. If a large percentage of queries are waiting, a high demand for the dataset is likely the cause of
the many query waits. If the average query wait time is substantial (> 100ms), it may be worth reviewing the
dataset and report to see if optimizations can be made. For example, perhaps fewer visuals on given report pages
or a DAX expression optimization.
There are several possible reasons for query wait time build up in datasets:
A sub-optimal model design, measure expressions, or even report design - all circumstances that can
contribute to long running queries that consume high levels of CPU. This forces new queries to wait until CPU
threads become available and can create a convoy effect (think traffic jam), commonly seen during peak
business hours. The Query Waits page will be the main resource to determine whether datasets have high
average query wait times.
A high number of concurrent capacity users (hundreds to thousands) consuming the same report or dataset.
Even well-designed datasets can perform badly beyond a concurrency threshold. This is usually indicated by a
single dataset showing a dramatically higher value for query counts than other datasets show (i.e. 300K queries
for one dataset compared to <30K queries for all other datasets). At some point the query waits for this dataset
will start to stagger, and this will be seen in the Query Durations visual.
Many disparate datasets queried concurrently, causing thrashing as datasets frequently cycle in and out of
memory. This results in users experiencing slow performance when the dataset is loaded into memory. To
confirm this, the Power BI administrator can refer to the Hourly Dataset Evictions and Memory
Consumption visual, which may indicate that a high number of datasets loaded into memory are being
repeatedly evicted.
Identifying Causes for Sporadically Slow-Responding Datasets
In this scenario, an investigation was triggered when users described that report visuals sometimes felt slow to
respond or could become unresponsive, but at other times they were acceptably responsive.
Within the app, the Query Durations section was used to find the culprit dataset in the following way:
In the Query Durations visual the admin filtered dataset by dataset (starting at the top datasets queried) and
examined the cross filtered bars in the Hourly Query Distributions visual.
When a single one-hour bar showed significant changes in the ratio between all query duration groups vs.
other one-hour bars for that dataset (i.e. the ratios between the colors changes drastically), it means this dataset
demonstrated a sporadic change in performance.
The one-hour bars showing an irregular portion of poor performing queries, indicated a timespan where that
dataset was impacted by a noisy neighbor effect, caused by other datasets' activities.
The image below shows one hour on January 30, where a significant setback in a dataset's performance occurred,
indicated by the size of the "(3,10s]" execution duration bucket. Clicking that one-hour bar reveals all the datasets
loaded into memory during that time, thus surfacing the candidate culprit datasets causing the noisy neighbor
effect.
Once a problematic timespan is identified (i.e. during Jan 30 in the image above) the Power BI administrator can
remove all dataset filters then filter only by that timespan to determine which datasets were actively queried
during this time. The culprit dataset for the noisy neighbor effect is usually either the top queried dataset or the
one with the longest average query duration.
A solution to this problem could be to distribute the culprit datasets over different workspaces on different
Premium capacities, or on shared capacity if the dataset size, consumption requirements, and data refresh patterns
are supported.
The reverse could be true as well. The Power BI administrator could identify times when a dataset query
performance drastically improves and then look for what disappeared. If certain information is missing at that
point, then that may help to point to the causing problem.
Determining Whether There is Enough Memory
To determine whether there is enough memory for the capacity to complete its workloads, the Power BI
administrator can refer to the Consumed Memory Percentages visual in the Datasets tab of the app. All (total)
memory represents the memory consumed by datasets loaded into memory, regardless of whether they are
actively queried or processed. Active memory represents the memory consumed by datasets that are being
actively processed.
In a healthy capacity the visual will look like this, showing a gap between All (total) and Active memory:
In a capacity experiencing memory pressure, the same visual will clearly show active memory and total memory
converging, meaning that it is impossible to load additional datasets into memory at that point in time. In this case,
the Power BI administrator can click Capacity Restart (in Advanced Options of the capacity settings area of the
admin portal). Restarting the capacity results in all datasets being flushed from memory and allowing them to
reload into memory as required (by queries or data refresh).
Determining Whether There is Enough CPU
In general, a capacity's average CPU utilization should remain below 80%. Exceeding this value means the capacity
is approaching CPU saturation.
Effects of CPU saturation are expressed by operations taking longer than they should due to the capacity
performing many CPU context switches as it attempts to process all operations. In a Premium capacity with a high
number of concurrent queries this is indicated by high query wait times. A consequence of high query wait times
is slower responsiveness than usual. The Power BI administrator can easily identify when the CPU is saturated by
viewing the Hourly Query Wait Time Distributions visual. Periodic peaks of query wait time counts indicate
potential CPU saturation.
A similar pattern can sometimes be detected in background operations if they contribute to CPU saturation. A
Power BI administrator can look for a periodic spike in refresh times for a specific dataset, which can indicate CPU
saturation at the time (probably due to other ongoing dataset refreshes and/or interactive queries). In this instance,
referring to the System view in the app may not necessarily reveal that the CPU is at 100%. The System view
displays hourly averages, but the CPU can become saturated for several minutes of heavy operations, which
shows up as spikes in wait times.
There are more nuances to seeing the effect of CPU saturation. While the number of queries that wait is
important, query wait time will always happen to some extent without causing discernable performance
degradation. Some datasets (with lengthier average query time, indicating complexity or size) are more prone to
the effects of CPU saturation than others. To easily identify these datasets, the Power BI administrator can look for
changes in the color composition of the bars in the Hourly Wait Time Distribution visual. After spotting an
outlier bar, they can look for the datasets that had query waits during that time and also look at the average query
wait time compared to average query duration. When these two metrics are of the same magnitude and the query
workload for the dataset is non-trivial, it is likely that the dataset is impacted by insufficient CPU.
This effect can be especially apparent when a dataset is consumed in short bursts of high frequency queries by
multiple users (i.e. in a training session), resulting in CPU saturation during each burst. In this case, significant
query wait times on this dataset can be experienced as well as impacting on other datasets in the capacity (noisy
neighbor effect).
In some cases, Power BI administrators can request that dataset owners create a less volatile query workload by
creating a dashboard (which queries periodically with any dataset refresh for cached tiles) instead of a report. This
can help prevent spikes when the dashboard is loaded. This solution may not always be possible for given
business requirements, however it can be an effective way to avoid CPU saturation, without making changing to
the dataset.
Conclusion
Power BI Premium provides more consistent performance, support for large data volumes, and the flexibility of a
unified self-service and enterprise BI platform for everyone in your organization. This level 300 technical
whitepaper has been written specifically for Power BI administrators, and content authors and publishers. It aims
to help them understand the potential of Power BI Premium, and to explain how to design, deploy, monitor and
troubleshoot scalable solutions.
To deploy and manage Power BI Premium capacities, administrators and model developers will require a very
good understanding of how capacities function, how they can be managed and monitored, and how models can be
optimized, in order to appropriately respond to performance issues and bottlenecks should they arise.
End notes
[1] This technical paper is concerned with Power BI Premium which is only supported by the Power BI cloud
service, and so Power BI Report Server is not in scope, except to state that the license required to install Power BI
Report Server is included with some Power BI Premium SKUs.
[2] Power BI as a cloud service when used to embed content on behalf of application users is Platform-as-a-
Service (PaaS ). This type of embedding can be achieved with different two products, one of which is Power BI
Premium.
[3] Push, streaming and hybrid datasets are not stored in Premium capacities, and are therefore not a
consideration when deploying, managing and monitoring Premium capacities.
[4] Excel workbooks as a Power BI content type are not stored in Premium capacities, and are therefore not a
consideration when deploying, managing or monitoring Premium capacities.
[5] Visuals can be configured to ignore slicer interactions. For further information, refer to the Visualization
interactions in a Power BI report document.
[6] The difference in size can be determined by comparing the Power BI Desktop file size with the Task Manager
memory using for the file.
[7] Support for Microsoft data sources include SQL Server, Azure Data Bricks, Azure HDInsight Spark (Beta),
Azure SQL Database and Azure SQL Data Warehouse. For information about additional sources, refer to the Data
sources supported by Direct Query in Power BI document.
[8] Power BI Premium supports uploading a Power BI Desktop (.pbix) file up to a maximum of 10 GB in size. Once
uploaded, a dataset can grow up to 12 GB in size as a result of refresh. Maximum upload size varies by SKU. For
further information, refer to the Power BI Premium support for large datasets document.
[9] SKUs with less than four v-cores do not run on dedicated infrastructure. This includes the EM1, EM2, A1 and
A2 SKUs.
[10] While rare, models may be unloaded from memory due to service operations.
[11] These timings are subject to change at any time.
[12] This is referred to as multi-geo, currently in preview. The rationale for a multi-geo deployment is typically for
corporate or government compliance, rather than performance and scale. Report and dashboard loading still
involves requests to the home region for metadata. For further information, refer to the Multi-Geo support for
Power BI Premium (Preview ) document.
[13] It is possible that users can cause performance issues by overloading the Power BI service with jobs, writing
overly complex queries, creating circular references, etc.
[14] The option to assign the entire organization's workspaces is not recommended, and a more targeted approach
is preferred. Generally, it is not best practice to use personal workspaces for production content.
[15] It is possible to monitor A SKUs in the app or in the Azure portal, but not in the Power BI Admin Portal. To
monitor A SKUs, refresh of the report will fail if app has not been added to the reader role of the resource. For
further information, refer to the Monitor Power BI Premium and Power BI Embedded capacities document.
[16] Refreshes can wait when there is not enough CPU or memory to start.
[17] The dataset size in memory can be larger than the size on disk by up to 20%.
[18] Average Memory Usage (GB ), and Highest Memory Consumption (GB )
[19] Dataset evictions
[20] Dataset Queries , Dataset Average Query Duration (ms), Dataset Wait Count, and Dataset Average Wait Time
(ms)
[21] CPU High Utilization Count and CPU Time of Highest Utilization (past seven days)
[22] DQ/LC High Utilization Count and DQ/LC Time of Highest Utilization (past seven days)
Distribute Power BI content to external guest users
using Azure Active Directory B2B
3/22/2019 • 42 minutes to read • Edit Online
Summary: This is a technical whitepaper outlining how to distribute content to users outside the organization
using the integration of Azure Active Directory Business-to-business (Azure AD B2B ).
Writers: Lukasz Pawlowski, Kasper de Jonge
Technical Reviewers: Adam Wilson, Sheng Liu, Qian Liang, Sergei Gundorov, Jacob Grimm, Adam Saxton, Maya
Shenhav, Nimrod Shalit, Elisabeth Olson
NOTE
You can save or print this whitepaper by selecting Print from your browser, then selecting Save as PDF.
Introduction
Power BI gives organizations a 360-degree view of their business and empowers everyone in these organizations
to make intelligent decisions using data. Many of these organizations have strong and trusted relationships with
external partners, clients, and contractors. These organizations need to provide secure access to Power BI
dashboards and reports to users in these external partners.
Power BI integrates with Azure Active Directory Business-to-business (Azure AD B2B ) to allow secure distribution
of Power BI content to guest users outside the organization – while still maintaining control and governing access
to internal data.
This white paper covers the all the details you need to understand Power BI's integration with Azure Active
Directory B2B. We cover its most common use case, setup, licensing, and row level security.
NOTE
Throughout this white paper, we refer to Azure Active Directory as Azure AD and Azure Active Directory Business to Business
as Azure AD B2B.
Scenarios
Contoso is an automotive manufacturer and works with many diverse suppliers who provide it with all the
components, materials, and services necessary to run its manufacturing operations. Contoso wants to streamline
its supply chain logistics and plans to use Power BI to monitor key performance metrics of its supply chain.
Contoso wants to share with external supply chain partners analytics in a secure and manageable way.
Contoso can enable the following experiences for external users using Power BI and Azure AD B2B.
Ad hoc per item sharing
Contoso works with a supplier who builds radiators for Contoso's cars. Often, they need to optimize the reliability
of the radiators using data from all of Contoso's cars. An analyst at Contoso uses Power BI to share a radiator
reliability report with an Engineer at the supplier. The Engineer receives an email with a link to view the report.
As described above, this ad-hoc sharing is performed by business users on an as needed basis. The link sent by
Power BI to the external user is an Azure AD B2B invite link. When the external user opens the link, they are asked
to join Contoso's Azure AD organization as a Guest user. After the invite is accepted, the link opens the specific
report or dashboard. The Azure Active Directory admin delegates permission to invite external users to the
organization and chooses what those users can do once they accept the invite as described in the Governance
section of this document. The Contoso analyst can invite the Guest user only because the Azure AD administrator
allowed that action and the Power BI administrator allowed users to invite guests to view content in Power BI's
tenant settings.
1. The process starts with a Contoso internal user sharing a dashboard or a report with an external user. If the
external user is not already a guest in Contoso's Azure AD, they are invited. An email is sent to their email
address that includes an invite to Contoso's Azure AD
2. The recipient accepts the invite to Contoso's Azure AD and is added as a Guest user in Contoso's Azure AD.
3. The recipient is then redirected to the Power BI dashboard, report, or app, which are read-only for the user.
The process is considered ad-hoc since business users in Contoso perform the invite action as needed for their
business purposes. Each item shared is a single link the external user can access to view the content.
Once the external user has been invited to access Contoso resources, a shadow account may be created for them in
Contoso Azure AD and they do not need to be invited again. The first time they try to access a Contoso resource
like a Power BI dashboard, they go through a consent process, which redeems the invitation. If they do not
complete the consent, they cannot access any of Contoso's content. If they have trouble redeeming their invitation
via the original link provided, an Azure AD administrator can resent a specific invitation link for them to redeem.
Planned per item sharing
Contoso works with a subcontractor to perform reliability analysis of radiators. The subcontractor has a team of 10
people who need access to data in Contoso's Power BI environment. The Contoso Azure AD administrator is
involved to invite all the users and to handle any additions/changes as personnel at the subcontractor change. The
Azure AD administrator creates a security group for all the employees at the subcontractor. Using the security
group, Contoso's employees can easily manage access to reports and ensure all required subcontractor personnel
have access to all the required reports, dashboards, and Power BI apps. The Azure AD administrator can also avoid
being involved in the invitation process altogether by choosing to delegate invitation rights to a trusted employee
at Contoso or at the subcontractor to ensure timely personnel management.
Some organizations require more control over when external users are added, are inviting many users in an
external organization, or many external organizations. In these cases, planned sharing can be used to manage the
scale of sharing, to enforce organizational policies, and even to delegate rights to trusted individuals to invite and
manage external users. Azure AD B2B supports planned invites to be sent directly from the Azure portal by an IT
administrator, or through PowerShell using the invitation manager API where a set of users can be invited in one
action. Using the planned invites approach, the organization can control who can invite users and implement
approval processes. Advanced Azure AD capabilities like dynamic groups can make it easy to maintain security
group membership automatically.
1. The process stars with an IT administrator inviting the guest user either manually or through the API provided
by Azure Active Directory
2. The user accepts the invite to the organization.
3. Once the user has accepted the invitation, a user in Power BI can share a report or dashboard with the external
user, or a security group they are in. Just like with regular sharing in Power BI the external user receives an
email with the link to the item.
4. When the external user accesses the link, their authentication in their directory is passed to Contoso's Azure AD
and used to gain access to the Power BI content.
Ad hoc or planned sharing of Power BI Apps
Contoso has a set of reports and dashboards they need to share with one or more Suppliers. To ensure all required
external users have access to this content, it is packaged as a Power BI app. The external users are either added
directly to the app access list or through security groups. Someone at Contoso then sends the app URL to all the
external users, for example in an email. When the external users open the link, they see all the content in a single
easy to navigate experience.
Using a Power BI app makes it easy for Contoso to build a BI Portal for its suppliers. A single access list controls
access to all the required content reducing wasted time checking and setting item level permissions. Azure AD B2B
maintains security access using the Supplier's native identity so users don't need additional login credentials. If
using planned invites with security groups, access management to the app as personnel rotate into or out of the
project is simplified. Membership in security groups manually or by using dynamic groups, so that all external
users from a supplier are automatically added to the appropriate security group.
1. The process starts by the user being invited to Contoso's Azure AD organization through the Azure portal or
PowerShell
2. The user can be added to a user group in Azure AD. A static or dynamic user group can be used, but dynamic
groups help reduce manual work.
3. The external users are given access to the Power BI App through the user group. The app URL should be sent
directly to the external user or placed on a site they have access to. Power BI makes a best effort to send an
email with the app link to external users but when using user groups whose membership can change, Power BI
is not able to send to all external users managed through user groups.
4. When the external user accesses the Power BI app URL, they are authenticated by Contoso's Azure AD, the app
is installed for the user, and the user can see all the contained reports and dashboards within the app.
Apps also have a unique feature that allows app authors to install the application automatically for the user, so it is
available when the user logs in. This feature only installs automatically for external users who are already part of
Contoso's organization at the time the application is published or updated. Thus, it is best used with the planned
invites approach, and depends on the app being published or updated after the users are added to Contoso's
Azure AD. External users can always install the app using the app link.
Commenting and subscribing to content across organizations
As Contoso continues to work with its subcontractors or suppliers, the external Engineers need to work closely
with Contoso's analysts. Power BI provides several collaboration features that help users communicate about
content they can consume. Dashboard commenting (and soon Report commenting) allows users to discuss data
points they see and communicate with report authors to ask questions.
Currently, external guest users can participate in comments by leaving comments and reading the replies.
However, unlike internal users, guest users cannot be @mentioned and do not receive notifications that they've
received a comment. Guest users cannot use the subscriptions feature within Power BI at the time of writing. In an
upcoming release, those restrictions will be lifted and the Guest user will receive an email when a comment
@mentions them, or when a subscription is delivered to their email that contains a link to the content in Power BI.
Access content in the Power BI mobile apps
In an upcoming release, when Contoso's users share reports or dashboards with their external Guest counterparts,
Power BI will send an email notifying the Guest. When the guest user opens the link to the report or dashboard on
their mobile device, the content will open in the native Power BI mobile apps on their device, if they're installed.
The guest user will then be able to navigate between content shared with them in the external tenant, and back to
their own content from their home tenant.
NOTE
The guest user cannot open the Power BI mobile app and immediately navigate to the external tenant, they must start with
a link to an item in the external tenant. Common workarounds are described in the Distributing links to content in the Parent
organization's Power BI section later in this document.
Typically, this sharing occurs initially using Ad hoc per item sharing. However, as teams grow or relationships
deepen, the Planned per item sharing approach becomes the preferred method to reduce management overhead.
Additionally, the Ad hoc or planned sharing of Power BI Apps, Commenting and subscribing to content across
organizations, access to content in mobile apps can come into play as well, and cross-organization editing and
management of Power BI content. Importantly, if both organizations' users have Power BI Pro licenses in their
respective organizations, they can use those Pro licenses in each other's Power BI environments. This provides
advantageous licensing since the inviting organization may not need to pay for a Power BI Pro license for the
external users. This is discussed in more detail in the Licensing section later in this document.
Case 2: Parent and its subsidiaries or affiliates
Some organization structures are more complex, including partially or wholly owned subsidiaries, affiliated
companies, or managed service provider relationships. These organizations have a parent organization such as a
holding company, but the underlying organizations operate semi-autonomously, sometimes under different
regional requirements. This leads to each organization having its own Azure AD environment and separate Power
BI tenants.
In this structure, the parent organization typically needs to distribute standardized insights to its subsidiaries.
Typically, this sharing occurs using the Ad hoc or planned sharing of Power BI Apps approach as illustrated in the
following image, since it allows distribution of standardized authoritative content to broad audiences. In practice a
combination of all the Scenarios mentioned earlier in this document is used.
This follows the following process:
1. Users from each Subsidiary are invited to Contoso's Azure AD
2. Then the Power BI app is published to give these users access to the required data
3. Finally, the users open the app through a link they've been given to see the reports
Several important challenges are faced by organizations in this structure:
How to distribute links to content in the Parent organization's Power BI
How to allow subsidiary users to access data source hosted by the parent organization
Distributing links to content in the Parent organization's Power BI
Three approaches are commonly used to distribute links to the content. The first and most basic is to send the link
to the app to the required users or to place it in a SharePoint Online site from which it can be opened. Users can
then bookmark the link in their browsers for faster access to the data they need.
The second approach relies on the cross-organization editing and management of Power BI content capability. The
Parent organization allows users from the subsidiaries to access its Power BI and controls what they can access
through permission. This gives access to Power BI Home where the user from the subsidiary sees a
comprehensive list of content shared to them in the Parent organization's tenant. Then the URL to the Parent
organizations' Power BI environment is given to the users at the subsidiaries.
The final approach uses a Power BI app created within the Power BI tenant for each subsidiary. The Power BI app
includes a dashboard with tiles configured with the external link option. When the user presses the tile, they are
taken to the appropriate report, dashboard, or app in the parent organization's Power BI. This approach has the
added advantage that the app can be installed automatically for all users in the subsidiary and is available to them
whenever they sign in to their own Power BI environment. An added advantage of this approach is that it works
well with the Power BI mobile apps that can open the link natively. You can also combine this with the second
approach to enable easier switching between Power BI environments.
Allowing subsidiary users to access data sources hosted by the parent organization
Often analysts at a subsidiary need to create their own analytics using data supplied by the parent organization. In
this case, commonly cloud data sources are used to address the challenge.
The first approach leverages Azure Analysis Services to build an enterprise grade data warehouse that serves the
needs of Analysts across the parent and its subsidiaries as shown the following image. Contoso can host the data
and use capabilities like row level security to ensure users in each subsidiary can access only their data. Analysts at
each organization can access the data warehouse through Power BI Desktop and publish resulting analytics to
their respective Power BI tenants.
The second approach leverages Azure SQL Database to build a relational data warehouse to provide access to
data. This works similarly to the Azure Analysis Services approach, though some capabilities like row level security
may be harder to deploy and maintain across subsidiaries.
More sophisticated approaches are also possible, however the above are by far the most common.
Case 3: Shared environment across partners
Contoso may enter into a partnership with a competitor to jointly build a car on a shared assembly line, but to
distribute the vehicle under different brands or in different regions. This requires extensive collaboration and co-
ownership of data, intelligence, and analytics across organizations. This structure is also common in the consulting
services industry where a team of consultants may do project-based analytics for a client.
In practice, these structures are complex as shown in the following image, and require staff to maintain. To be
effective this structure relies on the cross-organization editing and management of Power BI content capability
since it allows organizations to reuse Power BI Pro licenses purchased for their respective Power BI tenants.
To establish a shared Power BI tenant, an Azure Active Directory needs to be created and at least one Power BI Pro
user account needs to be purchased for a user in that active directory. This user invites the required users to the
shared organization. Importantly, in this scenario, Contoso's users are treated as external users when they operate
within the Shared Organization's Power BI.
The process is as follows:
1. The Shared Organization is established as a new Azure Active Directory and at least one user account is created
in the new organization. That user should have a Power BI Pro license assigned to them.
2. This user then establishes a Power BI tenant and invites the required users from Contoso and the Partner
organization. The user also establishes any shared data assets like Azure Analysis Services. Contoso and the
Partner's users can access the shared organization's Power BI as guest users. If allowed to edit and manage
content in Power BI the external users can use Power BI home, use workspaces, upload, or edit content and
share reports. Typically, all shared assets are stored and accessed from the shared organization.
3. Depending on how the parties agree to collaborate, it is possible for each organization to develop their own
proprietary data and analytics using shared data warehouse assets. They can distribute those to their respective
internal users using their internal Power BI tenants.
Case 4: Distribution to hundreds or thousands of external partners
While Contoso created a radiator reliability report for one Supplier, now Contoso desires to create a set of
standardized reports for hundreds of Suppliers. This allows Contoso to ensure all suppliers have the analytics they
need to make improvements or to fix manufacturing defects.
When an organization needs to distribute standardized data and insights to many external users/organizations,
they can use the Ad hoc or planned sharing of Power BI Apps scenario to build a BI Portal quickly and without
extensive development costs. The process to build such a portal using a Power BI app is covered in the Case Study:
Building a BI Portal using Power BI + Azure AD B2B – Step-by-Step instructions later in this document.
A common variant of this case is when an organization is attempting to share insights with consumers, especially
when looking to use Azure B2C with Power BI. Power BI does not natively support Azure B2C. If you're evaluating
options for this case, consider using Alternative Option 2 in the Common alternative approaches the section later
in this document.
NOTE
To invite guest users from the Azure portal, you need to an administrator for the Azure Active Directory of your
tenant.
If Contoso wants to invite many guest users, they can do so using PowerShell. Contoso's Azure AD
administrator stores the email addresses of all the guest users in a CSV file. Here are Azure Active Directory
B2B collaboration code and PowerShell samples and instructions.
After the invitation, guest users receive an email with the invitation link.
Once the guest user clicks the link, he/she can access content in the Contoso Azure AD tenant.
NOTE
It is possible to change the layout of the invitation email using the Azure AD branding feature as described here.
Ad hoc Invites
What if Contoso does not know all the guest users it wants to invite ahead of time? Or, what if the analyst in
Contoso who created the BI portal wants to distribute content to guest users herself? We also support this
scenario in Power BI with ad-hoc invites.
The analyst can just add the external users to the access list of the app when she is publishing it. The guest
user gets an invite and once they accept it, they are automatically redirected to the Power BI content.
NOTE
Invites are needed only the first time an external user is invited to your organization.
3. Distribute Content
Now that Contoso's BI team has created the BI portal and invited guest users, they can distribute their
portal to their end users by giving guest users access to the app and publishing it. Power BI auto-completes
names of guest users who have been previously added to the Contoso tenant. Adhoc invitations to other
guest users can also be added at this point.
NOTE
If using Security groups to manage access to the app for external users, use the Planned Invites approach and share
the app link directly with each external user who must access it. Otherwise, the external user may not be able to
install or view content from within the app._
On clicking this link, guest users are asked to authenticate with their own organization's identity.
Once they are successfully authenticated, they are redirected to Contoso's BI app.
Guest users can subsequently get to Contoso's app by clicking the link in the email or bookmarking the link.
Contoso can also make it easier for guest users by adding this link to any existing extranet portal that the
guest users already use.
4. Next steps
Using a Power BI app and Azure AD B2B, Contoso was able to quickly create a BI Portal for its suppliers in a
no-code way. This greatly simplified distributing standardized analytics to all the suppliers who needed it.
While the example showed how a single common report could be distributed among suppliers, Power BI
can go much further. To ensure each partner sees only data relevant to themselves, Row Level Security can
be added easily to the report and data model. The Data security for external partners section later in this
document describes this process in details.
Often individual reports and dashboards need to be embedded into an existing portal. This can also be
accomplished reusing many of the techniques shown in the example. However, in those situations it may be
easier to embed reports or dashboards directly from a workspace. The process for inviting and assigning
security permission to the require users remain the same.
Under the hood: How is Lucy from Supplier1 able to access Power BI
content from Contoso's tenant?
Now that we have seen how Contoso is able to seamlessly distribute Power BI content to guest users in partner
organizations, let's look at how this works under the hood.
When Contoso invited [email protected] to its directory, Azure AD creates a link between [email protected]
and the Contoso Azure AD tenant. This link lets Azure AD know that [email protected] can access content in
the Contoso tenant.
When Lucy tries to access Contoso's Power BI app, Azure AD verifies that Lucy can access the Contoso tenant and
then provides Power BI a token that indicates that Lucy is authenticated to access content in the Contoso tenant.
Power BI uses this token to authorize and ensure that Lucy has access to Contoso's Power BI app.
Power BI's integration with Azure AD B2B works with all business email addresses. If the user does not have an
Azure AD identity, they may be prompted to create one. The following image shows the detailed flow:
It is important to recognize that the Azure AD account will be used or created in the external party's Azure AD, this
will make it possible that Lucy can use her own username and password and her credentials will automatically stop
working in other tenants whenever she leaves the company when her organization also uses Azure AD.
Licensing
Contoso can choose one of three approaches to license guest users from its suppliers and partner organizations to
have access to Power BI content.
NOTE
The Azure AD B2B's free tier is enough to use Power BI with Azure AD B2B. Some advanced Azure AD B2B features like
dynamic groups require additional licensing. Please refer to the Azure AD B2B documentation for additional information:
https://docs.microsoft.com/azure/active-directory/b2b/licensing-guidance
NOTE
The pro license given to Lucy by Supplier 1 applies to any Power BI tenant where Lucy is a guest user. Pro licenses enable
access to content that is not in a Power BI Premium capacity. However, external users with a Pro license are restricted by
default to a consumption only experience. This can be change by using the approach described in the Enabling external
users to edit and manage content within Power BI section later in this document.
Data security for external partners
Commonly when working with multiple external suppliers, Contoso needs to ensure that each supplier sees data
only about its own products. User-based security and dynamic row level security make this easy to accomplish
with Power BI.
User-based security
One of the most powerful features of Power BI is Row Level Security. This feature allows Contoso to create a
single report and dataset but still apply different security rules for each user. For an in-depth explanation, see Row -
level security (RLS ).
Power BI's integration with Azure AD B2B allows Contoso to assign Row Level Security rules to guest users as
soon as they are invited to the Contoso tenant. As we have seen before, Contoso can add guest users through
either planned or ad-hoc invites. If Contoso wants to enforce row level security, it is strongly recommended to use
planned invites to add the guest users ahead of time and assigning them to the security roles before sharing the
content. If Contoso instead uses ad-hoc invites, there might be a short period of time where the guest users will
not be able to see any data.
NOTE
This delay in accessing data protected by RLS when using ad-hoc invites can lead to support requests to your IT team
because users will see either blank or broken looking reports/dashboards when opening a sharing link in the email they
receive. Therefore, it is strongly recommended to use planned invites in this scenario.**
Whenever roles are defined in the report, a user must be assigned to a specific role for them to get access to any
data. The assignment of roles happens inside the Power BI service ( Datasets > Security )
This opens a page where Contoso's BI team can see the two roles they created. Now Contoso's BI team can assign
users to the roles.
In the example Contoso is adding a user in a partner organization with email address
"[email protected]" to the Europe role:
When this gets resolved by Azure AD, Contoso can see the name show up in the window ready to be added:
Now when this user opens the app that was shared with him, he only sees a report with data from Europe:
Then, Contoso creates the right data model that filters the data appropriately with the right relationships:
To filter the data automatically based on who is logged in, Contoso needs to create a role that passes in the user
who is connecting. In this case, Contoso creates two roles – the first is the "securityrole" that filters the Users table
with the current username of the user logged in to Power BI (this works even for Azure AD B2B guest users).
Contoso also creates another "AllRole" for its internal users who can see everything – this role does not have any
security predicate.
After uploading the Power BI desktop file to the service, Contoso can assign guest users to the "SecurityRole" and
internal users to the "AllRole"
Now, when the guest user now opens the report, he only sees sales from group A:
In the matrix to the right you can see the result of the USERNAME () and USERPRINCIPALNAME () function both
return the guest users email address.
Now the internal user gets to see all the data:
As you can see, Dynamic RLS works with both internal or guest users.
NOTE
This scenario also works when using a model in Azure Analysis Services. Usually your Azure Analysis Service is connected to
the same Azure AD as your Power BI - in that case, Azure Analysis Services also knows the guest users invited through Azure
AD B2B.
NOTE
When installing a gateway to connect to your Power BI tenant, you must use a user created within your tenant. External
users cannot install a gateway and connect it to your tenant._
For external users, this might be more complicated as the external users are usually not known to the on-premises
AD. Power BI offers a workaround for this by allowing Contoso administrators to map the external usernames to
internal usernames as described in Manage your data source - Analysis Services. For example,
[email protected] can be mapped to lucy_supplier1_com#[email protected].
This method is fine if Contoso only has a handful of users or if Contoso can map all the external users to a single
internal account. For more complex scenarios where each user needs their own credentials, there is a more
advanced approach that uses custom AD attributes to do the mapping as described in Manage your data source -
Analysis Services. This would allow the Contoso administrator to define a mapping for every user in your Azure
AD (also external B2B users). These attributes can be set through the AD object model using scripts or code so
Contoso can fully automate the mapping on invite or on a scheduled cadence.
The Power BI Admin Portal provides the allow external guest users to edit and manage content in the
organization setting in Tenant settings. By default, the setting is set to disabled, meaning external users get a
constrained read-only experience by default. The setting applies to users with UserType set to Guest in Azure AD.
The table below describes the behaviors users experience depending on their UserType and how the settings are
configured.
Guest Disabled for the user (Default) Per item consumption only view. Allows
read-only access to reports,
dashboards, and apps when viewed
through a URL sent to the Guest user.
Power BI Mobile apps provide a read-
only view to the guest user.
Guest Enabled for the user The external user gets access to the full
Power BI experience, though some
features are not available to them. The
external user must log in to Power BI
using the Power BI Service URL with the
tenant information included. The user
gets the Home experience, a My
Workspace, and based on permissions
can browse, view, and create content.
Power BI Mobile apps provide a read-
only view to the guest user.
NOTE
External users in Azure AD can also be set to UserType Member. This is not currently supported in Power BI.
In the Power BI Admin portal, the setting is shown in the following image.
Guest users get the read-only default experience and which can edit and manage content. The default is Disabled,
meaning all Guest users have the read-only experience. The Power BI Admin can either enable the setting for all
Guest users in the organization or for specific security groups defined in Azure AD. In the following image, the
Contoso Power BI Admin created a security group in Azure AD to manage which external users can edit and
manage content in the Contoso tenant.
To help these users to log in to Power BI, provide them with the Tenant URL. To find the tenant URL, follow these
steps.
1. In the Power BI service, in the top menu, select help ( ? ) then About Power BI.
2. Look for the value next to Tenant URL. This is the tenant URL you can share with your guest users.
When using the Allow external guest users to edit and manage content in the organization, the specified guest
users get access to your organization's Power BI and see any content to which they have permission. They can
access Home, browse and contribute content to workspaces, install apps where they are on the access list, and have
a My workspace. They can create or be an Admin of workspaces that use the new workspace experience.
NOTE
When using this option make sure to review the governance section of this document since default Azure AD settings
prevent Guest users to use certain features like people pickers which can lead to a reduced experience.**
For guest users enabled through the Allow external guest users to edit and manage content in the organization
tenant setting, some experiences are not available to them. To update or publish reports, guest users need to use
the Power BI service web UI, including Get Data to upload Power BI Desktop files. The following experiences are
not supported:
Direct publishing from Power BI desktop to the Power BI service
Guest users cannot use Power BI desktop to connect to service datasets in the Power BI service
Classic workspaces tied to Office 365 Groups: Guest user cannot create or be Admins of these workspaces.
They can be members.
Sending ad-hoc invites is not supported for workspace access lists
Power BI Publisher for Excel is not supported for guest users
Guest users cannot install a Power BI Gateway and connect it to your organization
Guest users cannot install apps publish to the entire organization
Guest users cannot use, create, update, or install organizational content packs
Guest users cannot use Analyze in Excel
Guest users cannot be @mentioned in commenting ( this functionality will be added in an upcoming release )
Guest users cannot use subscriptions ( this functionality will be added in an upcoming release )
Guest users who use this capability should have a work or school account. Guest users using Personal accounts
experience more limitations due to sign-in restrictions.
Governance
Additional Azure AD Settings that affect experiences in Power BI related to Azure AD B2B
When using Azure AD B2B sharing, the Azure Active Directory administrator controls aspects of the external user's
experience. These are controlled on the External collaboration settings page within the Azure Active Directory
settings for your Tenant.
Details on the settings are available here:
https://docs.microsoft.com/azure/active-directory/b2b/delegate-invitations
NOTE
By default, the Guest users permissions are limited option is set to Yes, so Guest users within Power BI have limited
experiences especially surround sharing where people picker UIs do not work for those users. It is important to work with
your Azure AD administrator to set it to No, as shown below to ensure a good experience.**
Control guest invites
Power BI administrators can control external sharing just for Power BI by visiting the Power BI admin portal. But
tenant administrators can also control external sharing with various Azure AD policies. These policies allow tenant
administrators to
Turn off invitations by end users
Only admins and users in the Guest Inviter role can invite
Admins, the Guest Inviter role, and members can invite
All users, including guests, can invite
You can read more about these policies in Delegate invitations for Azure Active Directory B2B collaboration.
All Power BI actions by external users are also audited in our auditing portal.
Conditional Access policies for guest users
Contoso can enforce conditional access policies for guest users who access content from the Contoso tenant. You
can find detailed instructions in Conditional access for B2B collaboration users.
In the example above, users from each supplier login to Contoso's Partner Portal that uses AAD as an identity
provider. It could use AAD B2B, Azure B2C, native identities, or federate with any number of other identity
providers. The user would log in and access a partner portal build using Azure Web App or a similar infrastructure.
Within the web app, Power BI reports are embedded from a Power BI Embedded deployment. The web app would
streamline access to the reports and any related services in a cohesive experience aimed to make it easy for
suppliers to interact with Contoso. This portal environment would be isolated from the Contoso internal AAD and
Contoso's internal Power BI environment to ensure suppliers could not access those resources. Typically, data
would be stored in a separate Partner data warehouse to ensure isolation of data as well. This isolation has benefits
since it limits the number of external users with direct access to your organization's data, limiting what data could
potentially be available to the external user, and limiting accidental sharing with external users.
Using Power BI Embedded, the portal can leverage advantageous licensing, using app token or the master user
plus premium capacity purchased in Azure model, which simplifies concerns about assigning licenses to end users,
and can scale up/down based on expected usage. The portal can offer an overall higher quality and consistent
experience since partners access a single portal designed with all of a Partner's needs in mind. Lastly, since Power
BI Embedded based solutions are typically designed to be multi-tenant, it makes it easier to ensure isolation
between partner organizations.
Reasons to choose this alternative:
Easier to manage as the number of partner organizations grows. Since partners are added to a separate
directory isolated from Contoso's internal AAD directory, it simplifies IT's governance duties and helps prevent
accidental sharing of internal data to external users.
Typical Partner Portals are highly branded experiences with consistent experiences across partners and
streamlined to meet the needs of typical partners. Contoso can therefore offer a better overall experience to
partners by integrating all required services into a single portal.
Licensing costs for advanced scenarios like Editing content within the Power BI Embedded is covered by the
Azure purchased Power BI Premium, and does not require assignment of Power BI Pro licenses to those users.
Provides better isolation across partners if architected as a multi-tenant solution.
The Partner Portal often includes other tools for partner beyond Power BI reports, dashboards, and apps.
Reasons not to choose this alternative:
Significant effort is required to build, operate, and maintain such a portal making it a significant investment in
resources and time.
Time to solution is much longer than using B2B sharing since careful planning and execution across multiple
workstreams is required.
Where there are a smaller number of partners the effort required for this alternative is likely too high to justify.
Collaboration with ad-hoc sharing is the primary scenario faced by your organization.
The reports and dashboards are different for each partner. This alternative introduces management overhead
beyond just sharing directly with Partners.
FAQ
Can Contoso send an invitation that is automatically redeemed, so that the user is just "ready to go"? Or
does the user always have to click through to the redemption URL?
The end user must always click through the consent experience before they can access content.
If you will be inviting many guest users, we recommend that you delegate this from your core Azure AD admins by
adding a user to the guest inviter role in the resource organization. This user can invite other users in the partner
organization by using the sign-in UI, PowerShell scripts, or APIs. This reduces the administrative burden on your
Azure AD admins to invite or resent invites to users at the partner organization.
Can Contoso force multi-factor authentication for guest users if its partners don't have multi-factor
authentication?
Yes. For more information, see Conditional access for B2B collaboration users.
How does B2B collaboration work when the invited partner is using federation to add their own on-
premises authentication?
If the partner has an Azure AD tenant that is federated to the on-premises authentication infrastructure, on-
premises single sign-on (SSO ) is automatically achieved. If the partner doesn't have an Azure AD tenant, an Azure
AD account may be created for new users.
Can I invite guest users with consumer email accounts?
Inviting guest users with consumer email accounts is supported in Power BI. This includes domains such as
hotmail.com, outlook.com and gmail.com. However, those users may experience limitations beyond what users
with work or school accounts encounter.
What can developers do with Power BI?
4/2/2019 • 2 minutes to read • Edit Online
Developers have different options trying to include Power BI content into applications. As a developer, you can use
these options include embedding with Power BI, custom visuals, and pushing data into Power BI.
To learn more about embedding with Power BI, see Embedding with Power BI.
To see some of the things you can do with the Power BI APIs, see What can developer do with the Power BI APIs?
Next steps
Embedding with Power BI
Developing a Power BI custom visual
What can developers do with the Power BI API?
Power BI Developer Center
Embedded analytics with Power BI
4/2/2019 • 4 minutes to read • Edit Online
The Power BI service (SaaS ) and the Power BI Embedded service in Azure (PaaS ) have APIs for embedding your
dashboards and reports. This feature means you have a set of capabilities and access to the latest Power BI
features – such as dashboards, gateways, and app workspaces – when embedding your content.
You can go through the Embedding setup tool to quickly get started and download a sample application.
Choose the solution that is right for you:
Embedding for your organization allows you to extend the Power BI service. Run the Embed for your
organization solution.
Embedding for your customers provides the ability to embed dashboards and reports to users who don't have
an account for Power BI. Run the Embed for your customers solution.
Using APIs
There are two main scenarios when embedding Power BI content. Embedding for users in your organization (who
have licenses for Power BI) and embedding for your users and customers without them requiring to have Power
BI licenses. The Power BI REST API allows for both scenarios.
For customers and users without Power BI licenses, you can embed dashboards and reports into your custom
application, using the same API to either service your organization or your customers. Your customers see the
data that is managed by the application. Also, for Power BI users in your organization, they have the additional
options to view their data directly in Power BI or the context of the embedded application. You can take full
advantage of the JavaScript and REST APIs for your embedding needs.
To view a sample of how embedding works, see the JavaScript embed sample.
Power BI Embedded has benefits for an ISV, their developers, and customers. For example, an ISV can start
creating visuals for free with Power BI Desktop. ISVs can achieve faster time to market by minimizing visual
analytic development efforts and stand out among the competition with differentiated data experiences. ISVs also
can opt to charge a premium for the additional value created with embedded analytics.
With Power BI Embedded, your customers don't need to know anything about Power BI. You can use two
different methods to create an embedded application. One option is to use a Power BI Pro account. Another
option is to use service principal.
The Power BI Pro account acts as a master account for your application (think of this master account as a proxy
account). The Power BI Pro account allows you to generate embed tokens that provide access to dashboards and
reports within the Power BI service that are owned and managed by your application.
Service principal can embed Power BI content into an application using an app-only token. Service principal
allows you to generate embed tokens that provide access to dashboards and reports within the Power BI service
that are owned and managed by your application.
Developers using Power BI Embedded can spend time focused on building the core competency of their
application rather than spending time developing visuals and analytics. Developers can rapidly meet customer
report and dashboard demands and can embed easily with fully documented APIs and SDKs. By enabling easy-
to-navigate data exploration in apps, ISVs allow customers to make quick, data-driven decisions in context from
any device.
IMPORTANT
While embedding has a dependency on the Power BI service, there is not a dependency on Power BI for your customers.
They do not need to sign up for Power BI to view the embedded content in your application.
When you're ready to move to production, your app workspace must be assigned to a dedicated capacity. Power
BI Embedded in Microsoft Azure, offers dedicated capacities to use with your applications.
For details on how to embed, see How to embed Power BI content.
Next steps
You can now try to embed Power BI content into an application, or try to embed Power BI content for your
customers.
Embed for your organization
What is Power BI Embedded?
Embed for your customers
More questions? Try asking the Power BI Community
What is Power BI Embedded in Azure?
2/6/2019 • 2 minutes to read • Edit Online
Power BI Embedded is intended to simplify how ISVs and developers use Power BI capabilities with embedded
analytics. Power BI Embedded simplifies Power BI capabilities by helping you quickly add stunning visuals,
reports, and dashboards to your apps. Similar to apps built on Microsoft Azure use services like Machine
Learning and IoT. By enabling easy-to-navigate data exploration in their apps, ISVs allow their customers to make
quick, informed decisions in context.
In May 2017, we announced the convergence of the Power BI and Power BI Embedded services. The
convergence delivered one API surface, a consistent set of capabilities and access to the latest features across
both services. Additionally, we introduced a capacity-based pricing model, simplifying how Power BI is
consumed.
With Power BI Embedded, ISVs and developers have added flexibility in how they embed intelligence in their
apps using the Power BI APIs. ISVs and developers can take advantage of minimized development efforts to
achieve faster time to market and differentiate themselves by infusing Microsoft’s world-class analytics engine in
their app. Equally, developers can spend time focusing on their solution to meet customer demands, instead of
developing visual analytics features. Additionally, Power BI Embedded enables you to work within the familiar
development environments – Visual Studio and Azure – you already use.
Do you have an existing app with embedded Power BI content using Power BI Premium? If you're an ISV or
developer delivering apps or an organization using them, no action is needed. You and your customers can
continue using these apps without interruption. If you have an existing app built on Power BI Workspace
Collections and are interested in taking advantage of the converged API surface and the new capacity-based
Azure SKUs, visit documentation for migration guidance.
Easy-to-use tools
Power BI Embedded allows you to focus on what you do best: building great apps. You can manage and develop
with Power BI Embedded using tools and skills you already have.
The Azure portal: A web-based application for managing all Azure services
Visual Studio Code: a free, downloadable, open source, code editor for Windows, macOS, and Linux that
supports extensions
Power BI Desktop: a free, downloadable tool to create rich, interactive reports with visual analytics
Using the REST API, Power BI Embedded allows developing with any language.
Engage with the Power BI engineering team
Communities: Ask Power BI questions
Power BI Ideas: Request and vote for features
Reddit: Discuss Power BI
Next steps
See the pricing page for capacity node details.
To create a Power BI Embedded capacity, see Create Power BI Embedded capacity in the Azure portal
To begin embedding your Power BI content, see How to embed your Power BI dashboards, reports, and tiles.
Create Power BI Embedded capacity in the Azure
portal
2/6/2019 • 2 minutes to read • Edit Online
This article walks through how to create a Power BI Embedded capacity in Microsoft Azure. Power BI Embedded
simplifies Power BI capabilities by helping you quickly add stunning visuals, reports, and dashboards to your apps.
If you don't have an Azure subscription, create a free account before you begin.
Create a capacity
1. Sign into the Azure portal.
2. In the search box, search for Power BI Embedded.
3. Within Power BI Embedded, select Create.
4. Fill in the required information and then select Create.
SETTING DESCRIPTION
Resource group The resource group that contains this new capacity. Pick
from an existing resource group, or create another. For
more information, see Azure Resource Manager overview.
Power BI capacity administrator Power BI capacity administrators can view the capacity in
the Power BI admin portal and give assignment
permissions to other users. By default, the capacity
administrator is your account. The capacity administrator
must be within your Power BI tenant.
SETTING DESCRIPTION
Pricing tier Select the SKU (v-core count and memory size) that meets
your needs. For details, see Power BI Embedded pricing
You can navigate to All services > Power BI Embedded to see if your capacity is ready. Alternatively, you can
select Pin to dashboard from the notifications section or from within the blade, to navigate to your dashboard to
see your new capacity.
Next steps
To use your new Power BI Embedded capacity, browse to the Power BI admin portal to assign workspaces. For
more information, see Manage capacities within Power BI Premium and Power BI Embedded.
If you don't need to use this capacity, you can pause it to stop billing. For more information, see Pause and start
your Power BI Embedded capacity in the Azure portal.
To begin embedding Power BI content within your application, see How to embed your Power BI dashboards,
reports, and tiles.
More questions? Try asking the Power BI Community
Multi-Geo support for Power BI Embedded
3/7/2019 • 2 minutes to read • Edit Online
Multi-Geo support for Power BI Embedded means that ISVs and organizations that build applications using
Power BI Embedded to embed analytics into their apps can now deploy their data in different regions around the
world.
Now customers using Power BI Embedded can set up an A capacity using Multi-Geo options, based on the
same features and limitations that Power BI Premium supports using Multi-Geo.
It’s also available in the Admin Portal in Powerbi.com. In the Admin portal, choose ‘Capacity settings,’ and then
switch to ‘Power BI Embedded’ tab.
Next steps
Learn more about Power BI Embedded capacities and Multi-Geo options for all capacities by referencing the links
below.
What is Power BI Embedded?
Create a Power BI Embedded capacity
Multi-Geo in Power BI Premium capacities
More questions? Try asking the Power BI Community
Scale your Power BI Embedded capacity in the Azure
portal
2/6/2019 • 2 minutes to read • Edit Online
This article walks through how to scale a Power BI Embedded capacity in Microsoft Azure. Scaling allows you to
increase or decrease the size of your capacity.
This assumes you have created a Power BI Embedded capacity. If you have not, see Create Power BI Embedded
capacity in the Azure portal to get started.
NOTE
A scaling operation can take about a minute. During this time, the capacity will not be available. Embedded content may fail
to load.
Scale a capacity
1. Sign into the Azure portal.
2. Select All services > Power BI Embedded to see your capacities.
This article walks through how to pause and start a Power BI Embedded capacity in Microsoft Azure. This assumes
you have created a Power BI Embedded capacity. If you have not, see Create Power BI Embedded capacity in the
Azure portal to get started.
If you don't have an Azure subscription, create a free account before you begin.
NOTE
Pausing a capacity may prevent content from being available within Power BI. Make sure to unassign workspaces from your
capacity before pausing to prevent interruption.
Next steps
If you want to scale your capacity up or down, see Scale your Power BI Embedded capacity.
To begin embedding Power BI content within your application, see How to embed your Power BI dashboards,
reports and tiles.
More questions? Try asking the Power BI Community
Tutorial: Embed Power BI content into an application
for your customers
3/18/2019 • 12 minutes to read • Edit Online
With Power BI Embedded in Azure, you can embed reports, dashboards, or tiles into an application using app
owns data. App owns data is about having an application that uses Power BI as its embedded analytics platform.
As an ISV developer, you can create Power BI content that displays reports, dashboards, or tiles in an application
that is fully integrated and interactive, without requiring users to have a Power BI license. This tutorial
demonstrates how to integrate a report into an application using the Power BI .NET SDK with the Power BI
JavaScript API using Power BI Embedded in Azure for your customers.
Prerequisites
To get started, you're required to have:
A Power BI Pro account (a master account that is a username and password to sign in to your Power BI Pro
account), or a service principal (app-only token) .
A Microsoft Azure subscription.
You need to have your own Azure Active Directory tenant setup.
If you're not signed up for Power BI Pro, sign up for a free trial before you begin.
If you don’t have an Azure subscription, create a free account before you begin.
3. Publish to app workspaces. This process differs depending on whether you're using a master account
(Power Pro license), or service principal. If you're using a master account, then you can publish your report
through Power BI Desktop. Now if you're using service principal, you must use the Power BI REST APIs.
3. Open the Web.config file in the sample application. There are fields you need to fill in to run the
application. You can choose MasterUser or ServicePrincipal for the AuthenticationType. Depending
on which type of authentication method you choose there are different fields to complete.
NOTE
The default AuthenticationType in this sample is MasterUser.
MASTERUSER SERVICEPRINCIPAL
(POWER BI PRO LICENSE) (APP-ONLY TOKEN)
applicationId applicationId
workspaceId workspaceId
reportId reportId
pbiUsername
pbiPassword
applicationsecret
tenant
Application ID
This attribute is needed for both AuthenticationTypes (master account and service principal).
Fill in the applicationId information with the Application ID from Azure. The applicationId is used by the
application to identify itself to the users from which you're requesting permissions.
To get the applicationId, follow these steps:
1. Sign into the Azure portal.
2. In the left-hand navigation pane, select All Services, and select App Registrations.
3. Select the application that needs the applicationId.
4. There's an Application ID that is listed as a GUID. Use this Application ID as the applicationId for the
application.
Workspace ID
This attribute is needed for both AuthenticationTypes (master account and service principal).
Fill in the workspaceId information with the app workspace (group) GUID from Power BI. You can get this
information either from the URL when signed into the Power BI service or using Powershell.
URL
Powershell
Powershell
4. Select Settings.
5. Select Keys.
6. Enter a name in the Description box and select a duration. Then select Save to get the Value for your
application. When you close the Keys pane after saving the key value, the value field shows only as hidden.
At that point, you aren't able to retrieve the key value. If you lose the key value, create a new one in the
Azure portal.
Tenant
This attribute is needed only for the service principal AuthenticationType.
Fill in the tenant information with your azure tenant ID. You can get this information from the Azure AD admin
center when signed into the Power BI service or by using Powershell.
Run the application
1. Select Run in Visual Studio.
2. Then select Embed Report. Depending on which content you choose to test with - reports, dashboards or
tiles - then select that option in the application.
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
A class is created for EmbedConfig and TileEmbedConfig. A sample is available within the
Models\EmbedConfig.cs file and the Models\TileEmbedConfig.cs file.
Load an item using JavaScript
You can use JavaScript to load a report into a div element on your web page.
For a full sample of using the JavaScript API, you can use the Playground tool. The Playground tool is a quick way
to play with different types of Power BI Embedded samples. You can also get more Information about the
JavaScript API by visiting the PowerBI-JavaScript wiki page.
Here is a sample that uses an EmbedConfig model and a TileEmbedConfig model along with views for a
report.
A sample of adding a view for a report, dashboard, or tile is available within the
Views\Home\EmbedReport.cshtml, Views\Home\EmbedDashboard.cshtml, or Views\Home\Embedtile.cshtml files
in the sample application.
<script src="~/scripts/powerbi.js"></script>
<div id="reportContainer"></div>
<script>
// Read embed application token from Model
var accessToken = "@Model.EmbedToken.Token";
Move to production
Now that you've completed developing your application, it's time to back your app workspace with a dedicated
capacity.
IMPORTANT
Dedicated capacity is required to move to production.
Create a dedicated capacity
By creating a dedicated capacity, you can take advantage of having a dedicated resource for your customer. You
can purchase a dedicated capacity within the Microsoft Azure portal. For details on how to create a Power BI
Embedded capacity, see Create Power BI Embedded capacity in the Azure portal.
Use the table below to determine which Power BI Embedded capacity best fits your needs.
TOTAL CORES
(BACKEND + DIRECTQUERY/LIVE
CAPACITY NODE FRONTEND) BACKEND CORES FRONTEND CORES CONNECTION LIMITS
With A SKUs, you can't access Power BI content with a FREE Power BI license.
Using embed tokens with PRO licenses are intended for development testing, so the number of embed tokens a
Power BI master account or service principal can generate is limited. A dedicated capacity requires embedding in
a production environment. There's no limit on how many embed tokens you can generate with a dedicated
capacity. Go to Available Features to check the usage value that indicates the current embedded usage in
percentage. The usage amount is based per master account.
For more information, see Embedded analytics capacity planning whitepaper.
Assign an app workspace to a dedicated capacity
Once you create a dedicated capacity, you can assign your app workspace to that dedicated capacity.
To assign a dedicated capacity to a workspace using service principal, use the Power BI REST API. When you are
using the Power BI REST APIs, make sure to use the service principal object ID.
Follow the steps below to assign a dedicated capacity to a workspace using a master account.
1. Within the Power BI service, expand workspaces and select the ellipsis for the workspace you're using for
embedding your content. Then select Edit workspaces.
2. Expand Advanced, then enable Dedicated capacity, then select the dedicated capacity you created. Then
select Save.
3. After you select Save, you should see a diamond next to the app workspace name.
Next steps
In this tutorial, you've learned how to embed Power BI content into an application for your customers. You can
also try to embed Power BI content for your organization.
Embed for your organization
More questions? Try asking the Power BI Community
Tutorial: Embed Power BI content into an
application for your organization
3/11/2019 • 11 minutes to read • Edit Online
In Power BI, you can embed reports, dashboards, or tiles into an application by using user owns data. User
owns data lets your application extend the Power BI service so it can use embedded analytics. This tutorial
demonstrates how to integrate a report into an application. You use the Power BI .NET SDK with the Power BI
JavaScript API to embed Power BI into an application for your organization.
Prerequisites
To get started, you're required to have:
A Power BI Pro account.
A Microsoft Azure subscription.
You need to have your own Azure Active Directory tenant setup.
If you're not signed up for Power BI Pro, sign up for a free trial before you begin.
If you don’t have an Azure subscription, create a free account before you begin.
FIELD
Application ID
Application Secret
Workspace ID
Report ID
AADAuthorityUrl
Application ID
Fill in the applicationId information with the Application ID from Azure. The applicationId is used by the
application to identify itself to the users from which you're requesting permissions.
To get the applicationId, follow these steps:
1. Sign into the Azure portal.
2. In the left-hand navigation pane, select All Services, and select App Registrations.
4. There's an Application ID that is listed as a GUID. Use this Application ID as the applicationId for
the application.
Application secret
Fill in the ApplicationSecret information from the Keys section of your App registrations section in Azure.
This attribute works when using service principal.
To get the ApplicationSecret, follow these steps:
1. Sign in to the Azure portal.
2. In the left-hand navigation pane, select All services and then select App registrations.
3. Select the application that needs to use the ApplicationSecret.
4. Select Settings.
5. Select Keys.
6. Enter a name in the Description box and select a duration. Then select Save to get the Value for your
application. When you close the Keys pane after saving the key value, the value field shows only as
hidden. At that point, you aren't able to retrieve the key value. If you lose the key value, create a new one
in the Azure portal.
Workspace ID
Fill in the workspaceId information with the app workspace (group) GUID from Power BI. You can get this
information either from the URL when signed into the Power BI service or using Powershell.
URL
Powershell
Powershell
AADAuthorityUrl
Fill in the AADAuthorityUrl information with the URL that either allows you to embed within your
organizational tenant or embed with a guest user.
For embedding with your organizational tenant, use the URL -
https://login.microsoftonline.com/common/oauth2/authorize.
For embedding with a guest, use the URL - https://login.microsoftonline.com/report-owner-tenant-id - where
you add the tenant ID of the report owner in replacement of report-owner-tenant-id.
Run the application
1. Select Run in Visual Studio.
2. Then select Embed Report. Depending on which content you choose to test with - reports, dashboards
or tiles - then select that option in the application.
3. Now you can view the report in the sample application.
using Newtonsoft.Json;
request.Method = "GET";
request.ContentLength = 0;
request.Headers.Add("Authorization", String.Format("Bearer {0}", accessToken.Value));
txtEmbedUrl.Text = report.embedUrl;
txtReportId.Text = report.id;
txtReportName.Text = report.name;
}
}
}
}
NOTE
A sample of loading a content item that you want to embed is available in the Default.aspx file in the sample application.
<div>Enter an embed url for a report from Step 2 (starts with https://):</div>
<input type="text" id="tb_EmbedURL" style="width: 1024px;" />
<br />
<input type="button" id="bEmbedReportAction" value="Embed Report" />
</div>
<div id="reportContainer"></div>
</asp:Panel>
</div>
Site.master
window.onload = function () {
// client side click to embed a selected report.
var el = document.getElementById("bEmbedReportAction");
if (el.addEventListener) {
el.addEventListener("click", updateEmbedReport, false);
} else {
el.attachEvent('onclick', updateEmbedReport);
}
// Grab the reference to the div HTML element that will host the report.
var reportContainer = document.getElementById('reportContainer');
TOTAL VCORES
(BACK END + FRONT DIRECTQUERY/LIVE
CAPACITY NODE END) BACK-END VCORES FRONT-END VCORES CONNECTION LIMITS
NOTE
When you’re trying to embed with Microsoft Office apps, you can use EM SKUs to access content with a free Power BI
license. But you can't access content with a free Power BI license when you're using Powerbi.com or Power BI mobile.
When you're trying to embed with Microsoft Office apps by using Powerbi.com or Power BI mobile, you can access
content with a free Power BI license.
3. After you select Save, you should see a diamond next to the app workspace name.
Admin settings
Global admins or Power BI service administrators can turn the ability to use the REST APIs on or off for a
tenant. Power BI admins can set this setting for the entire organization or for individual security groups. It's
enabled for the entire organization by default. You can make these changes in the Power BI admin portal.
Next steps
In this tutorial, you learned how to embed Power BI content into an application by using your Power BI
organization account. You can now try to embed Power BI content into an application by using apps. You can
also try to embed Power BI content for your customers:
Embed from apps
Embed for your customers
If you have more questions, try asking the Power BI Community.
Tutorial: Embed a Power BI content into your
application for national clouds
3/25/2019 • 9 minutes to read • Edit Online
Learn how to embed analytical content within your business process applications for the national cloud. You can
use the Power BI .NET SDK with the Power BI JavaScript API to embed a report, dashboard, or tile, into your web
applications.
Power BI also supports national clouds.
The different national clouds are:
U.S. Government Community Cloud (GCC )
U. S. Military Contractors (DoDCON )
U. S. Military (DoD )
Power BI for Germany cloud
Power BI for China cloud
To get started with this walkthrough, you need a Power BI account. If you don't have an account set up, then
depending on the type of government or country you can choose the right national cloud for you. You can sign up
for a U. S. government Power BI account, a Power BI for Germany cloud account or a Power BI for China cloud
account.
NOTE
Looking to embed a dashboard for your organization instead? See, Integrate a dashboard into an app for your organization.
To integrate a dashboard into a web app, you use the Power BI API, and an Azure Active Directory (AD )
authorization access token to get a dashboard. Then, you load the dashboard using an embed token. The Power
BI API provides programmatic access to specific Power BI resources. For more information, see Power BI REST
API, [Power BI .NET SDK, and the Power BI JavaScript API.
Download the sample
This article shows the code used in the App Owns Data sample on GitHub. To follow along with this walkthrough,
you can download the sample.
NOTE
GCC accounts only support P and EM capacities.
Military (DoD ):
1. Overwrite Cloud.config file with PFCloud.config content.
2. Update applicationId (Native app applicationId), workspaceId, the user (your master user), and password in
Web.config file.
3. Add the DoDCON parameters in the web.config file as follows.
<add key="authorityUrl" value="https://login.microsoftonline.net/common/" />
<add key="resourceUrl" value="https://mil.analysis.usgovcloudapi.net/powerbi/api" />
<add key="apiUrl" value="https://api.mil.powerbigov.us/" />
<add key="embedUrlBase" value="https://app.mil.powerbigov.us" />
If you downloaded the Embedding for your customer sample, you would use the applicationId you get, so that
the sample can authenticate to Azure AD. To configure the sample, change the applicationId in the web.config file.
You can see examples of these access tokens within each content item task in the Controllers\HomeController.cs
file.
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.Rest;
using Microsoft.PowerBI.Api.V2;
// Create a Power BI Client object. This is used to call the Power BI APIs.
using (var client = new PowerBIClient(new Uri(ApiUrl), tokenCredentials))
{
// Your code to embed items.
}
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
Dashboards
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
Tiles
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
IMPORTANT
Because embed tokens are intended for developer testing only, the number of embed tokens a Power BI master account can
generate is limited. A capacity must be purchased for production embedding scenarios. There is no limit to embed token
generation when a capacity is purchased.
A sample is available within Controllers\HomeController.cs of the Embedding for your organization sample.
A class is created for EmbedConfig and TileEmbedConfig. A sample is available within
Models\EmbedConfig.cs and Models\TileEmbedConfig.cs.
Reports
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
Dashboards
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
Tiles
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
Views\Home\EmbedTile.cshtml
<script src="~/scripts/powerbi.js"></script>
<div id="tileContainer"></div>
<script>
// Read embed application token from Model
var accessToken = "@Model.EmbedToken.Token";
Views\Home\EmbedReport.cshtml
<script src="~/scripts/powerbi.js"></script>
<div id="reportContainer"></div>
<script>
// Read embed application token from Model
var accessToken = "@Model.EmbedToken.Token";
Next steps
A sample application is available on GitHub for you to review. The above examples are based on that
sample. For more information, see Embedding for your organization sample.
For more information about JavaScript API, reference Power BI JavaScript API.
For more information about for Power BI for Germany cloud, reference Power BI for Germany cloud FAQ
How to migrate Power BI Workspace Collection Workspace Collection content to Power BI
Considerations and limitations
More questions? Try asking the Power BI Community
Power BI Embedded performance best practices
1/30/2019 • 2 minutes to read • Edit Online
This article provides recommendations for faster rendering of reports, dashboards, and tiles in your application
Embed parameters
Powerbi.embed() method receives few parameters to embed a report, a dashboard, or a tile. These parameters
have performance implications.
Embed URL
Avoid generating the embed URL yourself. Instead, make sure you get the Embed URL by calling the Get reports,
the Get dashboards, or the Get tiles API. We added a new parameter to the URL called config, used for
performance improvements.
Permissions
Provide View permissions if you're not intending to embed a report in Edit mode. This way embed code doesn't
initialize components, which are used for Edit mode.
Filters, bookmarks, and slicers
Usually, report visuals are saved with cached data. The cached data is used to give perceived performance. Reports
render cached data while queries are executed. If filters, bookmarks or slicers are provided, cached data isn't
relevant. Then, the visuals are rendered only after running the visual query.
If you embed reports with the same filters, to avoid passing a list of filters in the load configuration, save the report
with filters already applied.
Preload
Use the preload JavaScript API to improve the end-user performance. Powerbi.preload() downloads javascript, css
files, and other artifacts, which is used later to embed in a report.
Call preload if you're not embedding the report immediately. For example, if you embed a report on a button click,
it’s better to call preload when the previous page loads. Then when the application user clicks the button, the
rendering is faster.
Measure performance
To measure performance, use:
1. Loaded: time until report is initialized (user sees no spinny).
2. Rendered: time until fully report is rendered using actual data. The rendered event is fired each time the report
is re-rendered (that is, after applying filters). To measure a report first, make sure you do the calculations in the
first raised event.
Cached data is rendered when available, but we don’t have an event for this data yet.
NOTE
Remember that loading time mainly depends on elements relevant to the report and data itself. Such as number of visuals,
size of data and complexity of the queries and calculated measures. Please follow best practices to improve the report’s
loading time.
Next steps
Power BI report performance best practices
How to troubleshoot Power BI Embedded issues
Power BI Embedded FAQ
Service principal with Power BI (Preview)
4/2/2019 • 7 minutes to read • Edit Online
With service principal, you can embed Power BI content into an application and use automation with Power
BI using an app-only token. Service principal is beneficial when using Power BI Embedded or when
automating Power BI tasks and processes.
When working with Power BI Embedded, there are advantages when using service principal. A primary
advantage is you don't need a master account (Power BI Pro license that is merely a username and password
to sign in) to authenticate into your application. Service principal uses an application ID and an application
secret to authenticate the application.
When working to automate Power BI tasks, you can also script how to process and manage service principals
to scale.
2. Create a security group in Azure Active Directory (AAD ), and add the application you created to that
security group. You can create an AAD security group with PowerShell.
Below is a sample script to create a new security group and add an application to that security group.
3. As a Power BI admin, you need to enable service principal in the Developer settings in the Power BI
admin portal. Add the security group that you created in Azure AD to the Specific security group
section in the Developer settings.
IMPORTANT
Service principals have access to any tenant settings that are enabled for the entire organization or enabled for
security groups that have service principals as a part of the group. To restrict service principal access to specific
tenant settings, allow access only to specific security groups, or create a dedicated security group for service
principals and exclude it.
6. Now choose to embed your content within a sample application, or within your own application.
Embed content using the sample application
Embed content within your application
7. Now you're ready to move to production.
Below is a sample script to retrieve the service principal object ID with PowerShell.
Next steps
Register an app
Power BI Embedded for your customers
Application and service principal objects in Azure Active Directory
Row-level security with Power BI Embedded
3/28/2019 • 13 minutes to read • Edit Online
Row-level security (RLS ) can be used to restrict user access to data within dashboards, tiles, reports, and
datasets. Different users can work with those same artifacts all while seeing different data. Embedding supports
RLS.
If you're embedding for non-Power BI users (app owns data), which is typically an ISV scenario, then this article is
for you! Configure the embed token to account for the user and role.
If you're embedding to Power BI users (user owns data), within your organization, RLS works the same as it does
within the Power BI service directly. There's nothing more you need to do in your application. For more
information, see Row -Level security (RLS ) with Power BI.
To take advantage of RLS, it’s important you understand three main concepts; Users, Roles, and Rules. Let’s take a
closer look at each:
Users – End users viewing the artifact (dashboard, tile, report, or dataset). In Power BI Embedded, users are
identified by the username property in an embed token.
Roles – Users belong to roles. A role is a container for rules and can be named something like Sales Manager or
Sales Rep. You create roles within Power BI Desktop. For more information, see Row -level security (RLS ) with
Power BI Desktop.
Rules – Roles have rules, and those rules are the actual filters that are going to be applied to the data. The rules
could be as simple as “Country = USA” or something much more dynamic. For the rest of this article, there's an
example of authoring RLS, and then consuming that within an embedded application. Our example uses the Retail
Analysis Sample PBIX file.
Based on this schema, if we apply a filter to the District Manager column in the District table, and if that filter
matches the user viewing the report, that filter down the Store and Sales tables to show data for that district
manager.
Here's how:
1. On the Modeling tab, select Manage Roles.
2. Create a new role called Manager.
3. In the District table, enter this DAX expression: [District Manager] = USERNAME ().
4. To make sure the rules are working, on the Modeling tab, select View as Roles, and then select both the
Manager role you created, along with Other users. Enter AndrewMa for the user.
to
If you're calling the REST API, the updated API now accepts an additional JSON array, named identities,
containing a username, list of string roles and list of string datasets.
Use the following code below as an example:
{
"accessLevel": "View",
"identities": [
{
"username": "EffectiveIdentity",
"roles": [ "Role1", "Role2" ],
"datasets": [ "fe0a1aeb-f6a4-4b27-a2d3-b5df3bb28bdc" ]
}
]
}
Now, with all the pieces together, when someone logs into your application to view this artifact, they’ll only see the
data that they're allowed to see, as defined by our row -level security.
[JsonProperty(PropertyName = "customData")]
public string CustomData { get; set; }
The identity can be created with custom data using the following call:
{
"accessLevel": "View",
"identities": [
{
"username": "EffectiveIdentity",
"roles": [ "Role1", "Role2" ],
"customData": "MyCustomData",
"datasets": [ "fe0a1aeb-f6a4-4b27-a2d3-b5df3bb28bdc" ]
}
]
}
Here are the steps to begin setting up the CustomData() feature with your Power BI Embedded application.
1. Create your Azure Analysis Services database. Then sign in to your Azure Analysis Services server via SQL
Server Management Studio.
2. Create a Role in the Analysis Services server.
3. Set your General settings. Here you give the Role Name and set the database permissions to Read only.
4. Set the Membership settings. Here you add te users that are affected by this role.
5. Set your Row filters DAX query using the CUSTOMDATA () function.
6. Build a PBI report and publish it to a workspace with dedicated capacity.
7. Use the Power BI APIs to use the CustomData feature in your application. When generating a token with
the Custom data feature, you need to have a username. The username must be equal to the UPN of the
master user. The master user must be a member of the role(s) you created. If no role(s) are specified, then
all the roles the master user is a member of are used for RLS evaluation.
When working with a service principal, you also need to do the above steps in place of using a master
account. When generating embed token, use the service principal object ID as the username.
NOTE
When you're ready to deploy your application to production, the master user account field or option should not be
visible to the end user.
Then apply the Custom data value(s) to see how the report displays a different set of data.
Using RLS vs. JavaScript filters
When deciding on filtering your data in a report, you can use row-level security (RLS ) or JavaScript filters.
Row -level security is a feature that filters data at the data model level. Your backend data source controls your RLS
settings. Based on your data model, the embed token generation sets the username and the roles for the session.
It cannot be overridden, removed, or controlled by the client-side code and that’s why it’s considered secure. We
recommend using RLS for filtering data securely. You can filter data with RLS by using one of the options below.
Configuring roles in a Power BI report.
Configuring roles at the data source level (Analysis Services live connection only).
Programmatically with an Embed Token using EffectiveIdentity . When using an embed token, the actual
filter passes through the embed token for a specific session.
JavaScript filters are used to allow the user to consume reduced, scoped, or a filtered view of the data. However,
the user still has access to the model schema tables, columns, and measures and potentially can access any data
there. Restricted access to the data can only be applied with RLS and not through client-side filtering APIs.
[JsonProperty(PropertyName = "identityBlob")]
public IdentityBlob IdentityBlob { get; set; }
The IdentityBlob type is a simple JSON structure holding a value string property
[JsonProperty(PropertyName = "value")]
public string value { get; set; }
The EffectiveIdentity can be created with identity blob using the following call:
{
"accessLevel": "View",
"identities": [
{
"datasets": ["fe0a1aeb-f6a4-4b27-a2d3-b5df3bb28bdc"],
“identityBlob”: {
“value”: “eyJ0eXAiOiJKV1QiLCJh….”
}
}
]
}
The value provided in the identity blob should be a valid access token to Azure SQL Server (with a resource URL
of (https://database.windows.net/).
NOTE
To be able to create an access token for Azure SQL, the application must have Access Azure SQL DB and Data Warehouse
delegated permission to Azure SQL Database API on AAD app registration configuration in the Azure portal.
When designing a multi-tenant SaaS application, you must carefully choose the tenancy model that best fits the
needs of your SaaS application. This process is also valid for Power BI as an embedded analytics part of your SaaS
application. A tenancy model determines how each tenant’s data is mapped and managed within Power BI and the
storage account. Your tenancy model impacts application design and management. Switching to a different model
later may become costly and disruptive.
With Power BI Embedded, there are two main fundamental approaches to maintaining separation between tenants.
1. Workspace-based isolation - creating a separate Power BI Workspace per tenant.
2. Row-level security-based isolation - where the underlying data is used to control and manage access to data
per user or group.
This article describes the different approaches and analyzes them according to several evaluation criteria.
Evaluation criteria
The optimal choice for the right tenancy model for your SaaS application varies according to specific business and
technical requirements, data architecture and more. Deep understanding of these requirements along with
available tenancy model options and trade-offs can help define robust, performant, cost-effective, and scalable
architecture for your SaaS application.
The following are a set of areas to consider when choosing between the different tenancy models.
Data architecture
Usually, developers building applications with Power BI Embedded already have a single or multi-tenant database.
It's easier to use a tenancy model for Power BI Embedded which is similar to the tenancy model of the database. If
the database tenancy model hasn’t been defined yet, you may want to consider other aspects before deciding on
your data architecture.
Data Isolation
How sensitive is the data being stored? What level of isolation do you need separating different customer tenants?
The answer might vary across different industries or specific customers that have certain requirements.
Scalability
To find the best solution, define the scale you reach in the foreseeable future. Remember that a solution that might
be suitable now might not suffice when usage and data scale up. When analyzing scalability, consider the following
list:
Number of tenants (customers).
Number of reports, dashboards, and datasets for each tenant.
Size of data on each dataset and frequency of refreshes.
Number of users.
Number of concurrent users in peak times.
Some SaaS applications might have a low number of customers and low usage, but large amounts of data. Others
might have many customers and high usage, but a small amount of data and reports for each customer. High
numbers in any of these situations can impact future costs and operational complexity.
Automation & operational complexity
Identify frequently occurring processes that need automation.
What is the frequency of onboarding new tenants? What actions are needed to fully onboard each one?
What is the release cadence for new or updated Power BI content, that needs to be deployed?
How many row -level security roles are defined for each tenant?
Identifying these processes and how you address them can help you understand the operational complexity
involved in maintaining each model.
Data Residency Requirements and the need to support multiple geographies
Power BI Embedded supports multi-geo deployment (preview feature). Multi-Geo enables Power BI Embedded
resources to be deployed in different regions with specific content assigned to reside in specific regions. This
feature can be used across all models, but can have an impact on the amount of content to manage and cost.
Currently multi-geo is designed for meeting data residency requirements and doesn't improve performance by
moving data closer to consumers.
Cost
Power BI Embedded has a resource-based purchase model, like Power BI Premium. You purchase one or more
capacities with fixed computing power and memory. This capacity is the main cost item when working with Power
BI Embedded. There's no limit on the number of users using the capacity. The only limit is the performance of the
capacity. A Power BI Pro license is required for each master user, or specific users that need to access the Power BI
portal.
We recommend testing and measuring the expected load on your capacity by simulating live environment and
usage and run load testing on the capacity. You can measure the load and performance with the various Metrics
available in the Azure capacity or Premium capacity metrics app.
Content customization and authoring
There are two approaches to SaaS applications that give users the ability to edit and create reports or upload data
into the service as part of the flow:
Edit/Create mode in an embedded iFrame - The user gets a view of the report or a new blank canvas inside
the SaaS application. This way they can use the Power BI toolbar to create content based on a dataset in the
workspace. We recommend this option since it’s in the user’s context in a familiar environment. It’s easier to
get started working and editing, and the user creates a report attached to an existing dataset.
Use Power BI Desktop to create content and upload it through the SaaS application UI to the workspace. In
this approach, users have more tools to work with using the Power BI Desktop. However, we do not
recommend this approach since users need to be familiar with an additional tool outside of the SaaS
application context. Uploading a PBIX file means the user is adding an additional dataset, that might be a
duplicate of datasets already in the workspace.
Data architecture
Implementing row -level security-based isolation is most comfortable when all tenants’ data is stored in a single
data warehouse. In this case, the application developer can pass only the relevant data from the data warehouse
into the Power BI dataset, either via Direct Query or data import. If data in the database is separated per tenant, it
needs to be combined into a single dataset, which results in a lower degree of separation between tenants that
existed in the database.
Data isolation
With row -level security-based isolation, data separation is accomplished using row -level security definitions on the
dataset, which means all the data coexist. This form of data separation is more susceptible to data leakage through
developer error. Even though row -level security is done on the backend and secured from an end user, if the data is
highly sensitive or customers are asking for data separation, it might be better to use workspace-based isolation.
Scalability
With row -level security-based isolation, the data needs to fit within the dataset size limit, which is currently 10 GB.
With the introduction of incremental refresh and the upcoming release of an XMLA endpoint for Power BI
datasets, the dataset size limit is expected to increase significantly. However, the data still needs to fit into the
capacity’s memory, with enough remaining memory for data refreshes to run. Large-scale deployments need a
large capacity to avoid users experiencing issues due to memory exceeding the limits of the current capacity.
Alternative ways to handle scale include using aggregations or connecting to the data source directly using
DirectQuery or Live connection, rather than caching all the data in the Power BI capacity.
Automation & operational complexity
Managing artifacts is far more comfortable using row -level security-based isolation than with workspace-based
isolation as there is only one version of an artifact for each environment (dev/test/production), instead of a version
per tenant. At a large scale, managing artifacts means managing and updating tens of artifacts, rather than
thousands to ten-thousands.
Power BI doesn’t yet have an API to modify or create RLS roles and rules. Adding or changing roles can only be
done manually in the Power BI Desktop. If an RLS hierarchy needs to be applied, it can be complicated and error-
prone to manage if you don't plan it carefully.
If the application developer needs to manage many roles and role definitions that need to be created or updated
frequently, row -level security-based isolation isn't scalable, from a manageability perspective.
Another operational complexity is the need to closely monitor memory utilization and build a robust mechanism of
alerts and scaling to ensure users get a smooth experience.
Multi-Geo needs
Since all the data is stored in a single dataset, it is challenging to meet data residency requirements that require
certain data to be bound to specific locations. It can also significantly increase the cost of using multiple regions as
all the data is replicated and stored in each region. If only a limited number of tenants need different geographies,
you can keep only those tenants’ data in a different region, using the workspace-based isolation model described
above.
Cost
The primary cost driver with row -level security-based isolation is the memory footprint of the dataset. You need
enough capacity to store the dataset and keep some additional memory buffer for any peaks in memory demand.
One way to mitigate this situation is to store the data in a SQL Server database or SQL Server Analysis Services
cube and using Direct Query or a Live connection to retrieve the data from the data source in real time. This
approach increases the cost of the data sources, but reduces the need for large capacity because of memory needs,
hence reducing the cost of Power BI capacity.
Content customization and authoring
As end users edit or create reports, they can use the production multi-tenant dataset. For that reason, we advise
only using the embedded iFrame option to edit or create reports, as it relies on the same dataset, with row -level
security applied. Having users uploading PBIX files with additional datasets can be costly and difficult to manage
with row -level security-based isolation. Also, when users generate new content that is in the same workspace, you
need to make sure the production workspace doesn't hit its limits and build a robust mechanism to distinguish
which content is connected to which tenant.
ROW-LEVEL SECURITY-
EVALUATION CRITERIA WORKSPACE-BASED BASED
Next steps
Embedded analytics with Power BI
Power BI Embedded
Power BI Premium
Row -level security
Diagnostic logging for Power BI Embedded in Azure
2/13/2019 • 6 minutes to read • Edit Online
With Azure resource diagnostic logs, you can log many events from your capacity, pour them into an analytics tool
and get insights into the behavior of your resource.
Using Diagnostics can answer a few scenarios, such as:
Detection of long-running or problematic queries.
Detecting errors when reaching the limit of your capacity.
Derivation of capacity metrics.
Tracking usage of specific datasets.
Set-AzureRmDiagnosticSetting -ResourceId [your resource id] -StorageAccountId [your storage account id]
-Enabled $true
The storage account ID is the resource ID for the storage account where you want to send the logs.
To enable streaming of diagnostics logs to an event hub, use this command:
Set-AzureRmDiagnosticSetting -ResourceId [your resource id] -ServiceBusRuleId [your service bus rule id]
-Enabled $true
To enable sending diagnostics logs to a Log Analytics workspace, use this command:
You can obtain the resource ID of your Log Analytics workspace by using the following command:
(Get-AzureRmOperationalInsightsWorkspace).ResourceId
What's logged?
You can select Engine and/or the AllMetrics categories.
Engine
The engine category instructs the resource to log the following events, and on each of the events there are
properties:
Audit Login Records all new connection to the engine events since the
trace started.
Session Initialize Records all session initialization events since the trace started.
Vertipaq Query Begin Records all VertiPaq SE query begin events since the trace
started.
Query Begin Records all query begin events since the trace started.
EVENT NAME EVENT DESCRIPTION
Query End Records all query end events since the trace started.
Vertipaq Query End Records all VertiPaq SE query end events since the trace
started.
Audit Logout Records all disconnect from engine events since the trace
started.
Error Records all engine error events since the trace started.
TextData SET DC_KIND="AUTO"; SELECT [SalesLT Text data associated with the event.
Customer (464)].[rowguid (606)] AS
[SalesLT Customer (464)$rowguid (606)]
FROM [SalesLT Customer (464)];
[Estimated size (volume marshalling
bytes): 850 6800]
RequestParameters
RequestProperties
AllMetrics
Checking the AllMetrics option logs the data of all the metrics that you can use with a Power BI Embedded
resource.
Manage your logs
Logs are typically available within a couple of hours after setting up logging. It's up to you to manage your logs in
your storage account:
Use standard Azure access control methods to secure your logs by restricting who can access them.
Delete logs that you no longer want to keep in your storage account.
Be sure to set a retention period, so old logs are deleted from your storage account.
Now that you've enabled data collection, in Logs, select All collected data.
In Type, select AzureDiagnostics, and then select Apply. AzureDiagnostics includes Engine events. Notice a Log
Analytics query is created on-the-fly.
Select EventClass_s or one of the event names and Log Analytics continues constructing a query. Be sure to save
your queries to reuse later.
Be sure to see Log Analytics, which provides a website with an enhanced query, dashboarding, and alerting
capabilities on collected data.
Queries
There are hundreds of queries you can use. Here are a few to get you started. To learn more about using the new
Log Search query language, see Understanding log searches in Log Analytics.
Query return that took less than five minutes (300,000 milliseconds) to complete.
search *
| where Type == "AzureDiagnostics"
| where ( OperationName == "QueryEnd" )
| where toint(Duration_s) < 300000
search *
| where ( Type == "AzureDiagnostics" )
| summarize count() by CapacityName_s
Next steps
You can learn more about Azure resource diagnostic logging.
Azure resource diagnostic logging
Set-AzureRmDiagnosticSetting
Frequently asked questions about Power BI
Embedded
3/28/2019 • 17 minutes to read • Edit Online
General
What is Power BI Embedded?
Microsoft Power BI Embedded (PBIE ) allows application developers to embed stunning, fully interactive reports,
into applications without the time and expense of building their own data visualizations and controls from the
ground-up.
Who is the target audience for Power BI Embedded?
Developers and software companies making their applications referred to as independent software vendors (ISVs).
How is Power BI Embedded different from Power BI the service?
Power BI Embedded is intended for ISVs or developers who are building applications and want to embed visuals
into those applications to help their customers make decisions without building an analytics’ solution from the
ground up. Embedded analytics enables business users to access the business data and perform queries to
generate insights using this data within the application.
Power BI is a software-as-a-service analytics solution that gives organizations a single view of their most critical
business data.
What is the difference between Power BI Premium and Power BI Embedded?
Power BI Premium is capacity geared toward enterprises, who want a complete BI solution that provides a single
view of its organization, partners, customers, and suppliers. Power BI Premium helps your organization make
decisions. Power BI Premium is a SaaS product and comes with the ability for users to consume content through
the Power BI portal, mobile app, and through internally developed apps.
Power BI Embedded is for ISVs or developers who are building applications and want to embed visuals into those
applications. Power BI Embedded helps your customers make decisions because Power BI Embedded is for
application developers, customers of that application can consume content stored on Power BI Embedded
capacity, including anyone inside or outside the organization. Power BI Embedded capacity content can't be shared
through one-click publish to Web or one-click publish to SharePoint, and it doesn't support SSRS reports.
What is the Microsoft recommendation for when a customer should buy Power BI Premium vs. Power BI
Embedded?
Microsoft recommends that enterprises buy Power BI Premium, an enterprise-grade, self-service cloud BI
solution, and ISVs buy Power BI Embedded, cloud-powered embedded analytics components. However, there are
no restrictions on which product a customer can buy.
There may be some cases where an ISV (typically large) wants to use a P SKU to get the additional benefits of the
pre-packaged Power BI service within their organization as well as embed in their applications. Some enterprises
may decide to use A SKUs in Azure if they're only interested in building line-of-business applications and
embedding analytics into them and aren't interested in using the pre-packaged Power BI service.
How many embed tokens can I create?
Embed tokens with PRO license are intended for development testing, so the number of embed tokens a Power BI
master account or service principal can generate is limited. Purchase a capacity for embedding in a production
environment. There's no limit to how many embed tokens you can generate when a capacity is purchased. Go to
Available Features to check the usage value that indicates the current embedded usage in percentage.
Technical
What is the difference between the A SKUs in Azure and the EM SKUs in Office 365?
PowerBI.com is an enterprise solution that includes many capabilities like social collaboration, email subscription,
and other features. in a Software as a Service offering
Power BI Embedded is a set of APIs available for developers to create an embedded analytics solution in a
Platform as a Service offering. For the Embedded analytics scenario, PowerBI.com helps ISVs and developers
manage their embedded analytics solution content and tenant level settings.
Here is a partial list of differences you may use with each.
Embed artifacts from a Azure capacity Office 365 capacity Office 365 capacity
Power BI App workspace
Power BI now offers three SKUs for embedding: A SKUs, EM SKUs, and P SKUs. Which one should I purchase
for my scenario?
A SKU (POWER BI EMBEDDED) EM SKU (POWER BI PREMIUM) P SKU (POWER BI PREMIUM)
Use cases Embed content in your own Embed content in your Embed content in your
application own application own application
Differentiation Full elasticity- can scale up/ Can be used to embed Combine embedding in
down, pause/ resume content in SharePoint Online applications and use the
resources in Azure portal or and Microsoft Teams Power BI Service in the same
through API (excludes mobile app) capacity
Licensing
How do I purchase Power BI Embedded?
Power BI Embedded is available through Azure.
What happens if I already purchased Power BI Premium and now I want some of the benefits of Power BI
Embedded in Azure?
Customers continue to pay for any existing Power BI Premium purchases until the end of their current agreement
term and then may switch their Power BI Premium purchases as necessary at that point.
Do I still have to buy Power BI Premium to get access to Power BI Embedded?
No, Power BI Embedded includes the Azure-based capacity that you need to deploy and distribute your solution to
customers.
What’s the purchase commitment for Power BI Embedded?
Customers may change their usage on an hourly basis. There is no monthly or annual commitment for the Power
BI Embedded service.
How does the usage of Power BI Embedded show up on my bill?
Power BI Embedded bills on a predictable hourly rate based on the type of node(s) deployed. As long as your
resource is active, you are billed even if there is no usage. To stop being billed, you need to pause your resource
actively.
Who needs a Power BI Pro license for Power BI Embedded and why?
Any developer that requires the use of the REST APIs needs a Power BI Pro license or service principal. Any
analyst that needs to add reports to a Power BI workspace can either have a Power BI Pro license or use service
principal. Any tenant admin that needs to manage the Power BI tenant and capacity is required to have a Power BI
Pro license.
Because Power BI Embedded allows the use of the Power BI portal for managing and validating embedded
content, the Power BI Pro license is required to authenticate the App inside PowerBI.com to get access to the
reports in the right repositories.
However, for creating/editing embedded reports inside your application, the end user does not need a Pro license
as the user isn't required to be a Power BI user at all.
Can I get started for free?
Yes, you can use your Azure credits for Power BI Embedded.
Can I get a trial experience for Power BI Embedded in Azure?
Since Power BI Embedded is a part of Azure, it is possible to use the service with the $200 credit received when
signing up for Azure.
Is Power BI Embedded available for national clouds (US Government, Germany, China)?
Power BI Embedded is also available for the national clouds.
Is Power BI Embedded available for non-profits and educational?
Non-profit and educational entities can purchase Azure. There is no special pricing for these types of customers in
Azure.
NOTE
You can continue to use Power BI Workspace Collection while building in parallel with a Power BI Embedded
solution. Once you are ready, you can move your customer to the new Power BI Embedded solution and retire the
Power BI Workspace Collection solution.
For more information, please reference How to migrate Power BI Workspace Collection content to Power BI
Embedded
Is Power BI Workspace Collection on a path to be deprecated?
Yes, but customers that are already using the Power BI Workspace Collection solution can continue to use it
until it is deprecated. Customers can also create new workspace collections and any Power BI Embedded
applications that still use the Power BI Workspace Collection solution.
However, this also means that new features aren't added to any Power BI Workspace Collection solutions and
that customers are encouraged to plan their migration to the new Power BI Embedded solution.
When is Power BI Workspace Collection support discontinued?
Customers that are already using the Power BI Workspace Collections solution can continue to use it until the
end of June 2018 or until the end of their support agreement.
In what regions can PBI Workspace Collection be created?
The available regions are Australia Southeast, Brazil South, Canada Central, East US 2, Japan East, North Central
US, North Europe, South Central US, Southeast Asia, UK South, West Europe, West India, and West US.
Why should I migrate from PBI Workspace Collection to Power BI Embedded?
Some new features and capabilities are introduced in the Power BI Embedded solution that you can't do with
Power BI Workspace Collection.
Some of the features are:
All the PBI data sources are supported as opposed to the two data sources that are with Power BI Workspace
Collection).
New features such as Q&A, refresh, bookmarks, embedding dashboards & tiles, and custom menus are only
supported in the Power BI Embedded solution.
Capacity billing model.
Permission scopes
Power BI permissions give an application the ability to take certain actions on a user's behalf. All permissions must
be approved by a user in order to be valid.
View all Datasets The app can view all datasets for the Dataset.Read.All
signed in user and datasets that the
user has access to.
Read and Write all Datasets The app can view and write to all Dataset.ReadWrite.All
datasets for the signed in user and
datasets that the user has access to.
Add data to a user's dataset Gives an app access to add or delete a Data.Alter_Any
user's dataset rows. This permission
does not grant the app access to the
user's data.
View users Groups The app can view all groups that the Group.Read
signed in user belongs to.
View all Groups The app can view all groups that the Group.Read.All
signed in user belongs to.
Read and write all Groups The app can view and write to all the Group.ReadWrite.All
groups for the signed in user and any
groups that the user has access to.
View all Dashboards The app can view all dashboards for the Dashboard.Read.All
signed in user and dashboards that the
user has access to.
View all Reports The app can view all reports for the Report.Read.All
signed in user and reports that the user
has access to. The app can also see the
data within the reports as well as its
structure.
Read and write all Reports The app can view and write to all the Report.ReadWrite.All
reports for the signed in user and any
reports that the user has access to. This
does not provide rights to create a new
report.
DISPLAY NAME DESCRIPTION SCOPE VALUE
Read and write all Capacities The app can view and write to all the Capacities.ReadWrite.All
capacities for the signed in user and any
capacity that the user has access to.
This does not provide rights to create a
new capacity.
Read all Capacities The app can view and write to all the Capacities.Read.All
capacities for the signed in user and any
capacities that the user has access to.
This does not provide rights to create a
new capacity.
Read and write all content in tenant The app can view and write to all Tenant.ReadWrite.All
artifacts, such as groups, reports,
dashboards, and datasets in Power BI.
Provided the signed in user is a Power
BI service administrator.
View all content in tenant The app can view all artifacts, such as Tenant.Read.All
groups, reports, dashboards, and
datasets in Power BI. Provided the
signed in user is a Power BI service
administrator.
An application can request permissions when it first attempts to sign in to a user's page by passing in the
requested permissions in the scope parameter of the call. If the permissions are granted, an access token will be
returned to the app, which can be used on future API calls. The access can only be used by a specific application.
NOTE
The Power BI APIs still refer to app workspaces as groups. Any references to groups mean that you are working with app
workspaces.
Requesting Permissions
While you can call the API to authenticate with a username and password, in order to take actions on behalf of
another user, they will need to request permissions that the user then approves and then send the resulting access
token on all future calls. For this process, we will follow the standard OAuth 2.0 protocol. While the actual
implementation may vary, the OAuth flow for Power BI has the following elements:
Login UI - This is a UI that the developer can evoke to request permissions. It would require the user to sign in
if not already. The user would also need to approve the permissions that the application is requesting. The login
window will post back either an access code or an error message to a redirect URL that is supplied.
A standard redirect URL should be supplied by Power BI for use by native applications.
Authorization Code - Authorization Codes are returned to web applications after login via URL parameters in
the redirect URL. Since they are in parameters, there is some security risk. Web applications will have to
exchange the authorization code for an Authorization Token
Authorization Token - Are used to authenticate API calls on another user's behalf. They will be scoped to a
specific application. Tokens have a set lifespan and when they expire they will need to be refreshed.
Refresh Token - When tokens expire there will be a process of refreshing them.
More questions? Try asking the Power BI Community
Embed reports or dashboards from apps
1/14/2019 • 2 minutes to read • Edit Online
In Power BI, you can create apps to bring related dashboards and reports together, all in one place. Then you
publish them to large groups of people in your organization. The usage of those apps is relevant when all your
users are Power BI users. So you can share content with them by using Power BI apps. This article gives you a few
quick steps to embed content out of a published Power BI app and into a third-party application.
Next steps
Review how to embed from app workspaces for your third-party customers and your organization:
Embed for third-party customers
Embed for your organization
Create an Azure Active Directory tenant to use with
Power BI
3/26/2019 • 3 minutes to read • Edit Online
Learn how to create a new Azure Active Directory (Azure AD ) tenant for use with your custom application using
the Power BI REST APIs.
A tenant is representative of an organization within Azure Active Directory. It is a dedicated instance of the Azure
AD service that an organization receives and owns when it signs up for a Microsoft cloud service such as Azure,
Microsoft Intune, or Office 365. Each Azure AD tenant is distinct and separate from other Azure AD tenants.
Once you have an Azure AD tenant, you can define an application and assign permissions so your application can
make use of the Power BI REST APIs.
Your organization may already have an Azure AD tenant that you can use for your application. You can make use
of that tenant for your application needs or you can create a new tenant specifically for your application. This
article looks at how to create a new tenant.
NOTE
Your initial domain will be part of onmicrosoft.com. You can add other domain names later. The directory, of a
tenant, can have multiple domains assigned to it.
6. After your directory creation is complete, select the information box to manage your new directory.
Your directory is now created. Next we will want to add a user to the tenant.
5. You will want to do the same thing again for a regular user in your tenant. This could also be used for your
master embedding account. This time, for Directory role, we will leave it as User. Be sure to make note of
the password. Then select Create.
6. Sign up for Power BI with your user account that you created in step 5. You can do that by going to
powerbi.com and selecting Try free under Power BI - Cloud collaboration and sharing.
When you sign up, you will be prompted to try Power BI Pro free for 60 days. You can opt into that to
become a pro user. Now you can also start developing an embedded solution if that is what you are
looking for.
NOTE
Make sure you sign up with the email address you gave the user account.
Next steps
Now that you have an Azure AD tenant, you can use this tenant to test items within Power BI, and/or you can
move forward to embed Power BI dashboards and reports in your application. For more information on how to
embed items, see How to embed your Power BI dashboards, reports and tiles.
What is an Azure AD directory?
How to get an Azure Active Directory tenant
More questions? Try asking the Power BI Community
Register an Azure AD application to use with Power
BI
2/6/2019 • 7 minutes to read • Edit Online
Learn how to register an application within Azure Active Directory (Azure AD ) for use with embedding Power BI
content.
You register your application with Azure AD to allow your application access to the Power BI REST APIs. Once
you register your application, you can establish an identity for your application and specify permissions to Power
BI REST resources.
IMPORTANT
Before you register a Power BI app you need an Azure Active Directory tenant and an organizational user. If you haven't
signed up for Power BI with a user in your tenant, the app registration doesn't complete successfully.
There are two ways to register your application. The first is with the Power BI App Registration Tool, or you can
do it directly within the Azure portal. The Power BI App Registration Tool is more convenient to use since there
are just a few fields to complete. Use the Azure portal if you want to make changes to your app.
IMPORTANT
If you enable service principals to be used with Power BI, the Azure Active Directory permissions don't take effect
anymore. The permissions are managed through the Power BI admin portal.
7. If you choose Native for the application type, then you are then provided an Application ID. If you select
Server-side Web app for the application type, then you receive an Application ID and an Application
secret.
NOTE
The Application ID can be retrieved from the Azure portal, at a later time, if needed. If you lose the Application
secret, you need to create a new one within the Azure portal.
NATIVE SERVER-SIDE WEB APPLICATION
You can now use the registered application as part of your custom application to interact with the Power BI
service and with your Power BI Embedded application.
For more information about how to register applications in Azure Active Directory, see Integrating applications
with Azure Active Directory
How to get the Application ID
When you register an application, you receive an Application ID. The Application ID requests permissions to the
users by the application to identify themselves.
4. Select all permissions under Delegated Permissions. Select them one by one to save the selections.
Select Save when done.
Post https://graph.microsoft.com/beta/servicePrincipals
Authorization: Bearer ey..qw
Content-Type: application/json
{
"accountEnabled" : true,
"appId" : "{App_Client_ID}",
"displayName" : "{App_DisplayName}"
}
Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"c78a3685-1ce7-52cd-95f7-dc5aea8ec98e",
"scope":"Dataset.ReadWrite.All Dashboard.Read.All Report.Read.All Group.Read Group.Read.All
Content.Create Metadata.View_Any Dataset.Read.All Data.Alter_Any",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
The resourceId c78a3685 -1ce7 -52cd -95f7 -dc5aea8ec98e isn't universal but it's tenant dependant. This
value is the objectId of the “Power BI Service” application in the Azure Active Directory (AAD ) tenant.
The user can quickly get this value in the Azure portal:
a. https://portal.azure.com/#blade/Microsoft_AAD_IAM/StartboardApplicationsMenuBlade/AllApps
b. Search for “Power BI Service” in the SearchBox
5. Grant App Permissions to Azure Active Directory (AAD )
The value for consentType can supply either AllPrincipals or Principal.
AllPrincipals can only be used by a tenant admin to grant permissions on behalf of all users in the
tenant.
Principal is used to grant permissions on behalf of a specific user. In this case, an additional property
should be added to the request's body - principalId={User_ObjectId }.
You need to Grant permissions for the master account to avoid being prompted for consent by Azure AD,
which isn't possible when doing non-interactive sign-in.
Post https://graph.microsoft.com/beta/OAuth2PermissionGrants
Authorization: Bearer ey..qw
Content-Type: application/json
{
"clientId":"{Service_Plan_ID}",
"consentType":"AllPrincipals",
"resourceId":"61e57743-d5cf-41ba-bd1a-2b381390a3f1",
"scope":"User.Read Directory.AccessAsUser.All",
"expiryTime":"2018-03-29T14:35:32.4943409+03:00",
"startTime":"2017-03-29T14:35:32.4933413+03:00"
}
Next steps
Now that you've registered your application within Azure AD, you need to authenticate users within your
application. Have a look at Authenticate users and get an Azure AD access token for your Power BI app to learn
more.
More questions? Try asking the Power BI Community
Get an Azure AD access token for your Power BI
application
2/6/2019 • 4 minutes to read • Edit Online
Learn how you can authenticate users in your Power BI application and retrieve an access token to use with the
REST API.
Before you can call the Power BI REST API, you need to get an Azure Active Directory (Azure AD )
authentication access token (access token). An access token is used to allow your app access to Power BI
dashboards, tiles, and reports. To learn more about Azure Active Directory access token flow, see Azure AD
Authorization Code Grant Flow.
Depending on how you're embedding content, the access token is retrieved differently. Two different approaches
are used in this article.
//Client ID is used by the application to identify themselves to the users that they are requesting
permissions from.
//You get the client id when you register your Azure app.
{"client_id", Properties.Settings.Default.ClientID},
//After user authenticates, Azure AD will redirect back to the web app
{"redirect_uri", "http://localhost:13526/Redirect"}
};
After you construct a query string, you redirect to Azure AD to get an authorization code. Below is a complete
C# method to construct an authorization code query string, and redirect to Azure AD. After you have the
authorization code, you get an access token using the authorization code.
Within redirect.aspx.cs, AuthenticationContext.AcquireTokenByAuthorizationCode calls to generate the token.
Get authorization code
protected void signInButton_Click(object sender, EventArgs e)
{
//Create a query string
//Create a sign-in NameValueCollection for query string
var @params = new NameValueCollection
{
//Azure AD will return an authorization code.
//See the Redirect class to see how "code" is used to AcquireTokenByAuthorizationCode
{"response_type", "code"},
//Client ID is used by the application to identify themselves to the users that they are requesting
permissions from.
//You get the client id when you register your Azure app.
{"client_id", Properties.Settings.Default.ClientID},
//After user authenticates, Azure AD will redirect back to the web app
{"redirect_uri", "http://localhost:13526/Redirect"}
};
//Redirect authority
//Authority Uri is an Azure resource that takes a client id to get an Access token
// AADAuthorityUri = https://login.microsoftonline.net/common/
string authorityUri = Properties.Settings.Default.AADAuthorityUri;
var authUri = String.Format("{0}?{1}", authorityUri, queryString);
Response.Redirect(authUri);
}
Install-Package Microsoft.IdentityModel.Clients.ActiveDirectory
Redirect.aspx.cs
using Microsoft.IdentityModel.Clients.ActiveDirectory;
Default.aspx
using Microsoft.IdentityModel.Clients.ActiveDirectory;
Next steps
Now that you have the access token, you can call the Power BI REST API to embed content. For information on
how to embed your content, see How to embed your Power BI content.
More questions? Try asking the Power BI Community
Q&A in Power BI Embedded
3/11/2019 • 2 minutes to read • Edit Online
Power BI Embedded offers you a way to incorporate Q&A into an application and allow your users to ask
questions using natural language and receive immediate answers in the form of visuals like charts or graphs.
There are two modes for embedding Q&A within your application: interactive and result only. Interactive
mode allows you to type in questions and have them displayed within the visual. If you have a saved question, or a
set question you want to display, you can use the result only mode by populating the question in your embed
config.
Here is a look at what the JavaScript code will look like.
Set question
If you used result mode with a set question, you can inject additional questions into the frame and have them
immediately answered replacing the previous result. A new visual is rendered matching the new question.
One example of this usage would be a frequently asked question list. The user could go through the questions and
have them answered within the same embedded part.
Code snippet for JS SDK usage:
Embed token
Create an embed token off of a dataset to start a Q&A part. For more information, see Generate token.
Next steps
To give Q&A embedding a try, check out the JavaScript embed sample.
More questions? Try asking the Power BI Community
Create Power BI Embedded capacity in the Azure
portal
2/6/2019 • 2 minutes to read • Edit Online
This article walks through how to create a Power BI Embedded capacity in Microsoft Azure. Power BI
Embedded simplifies Power BI capabilities by helping you quickly add stunning visuals, reports, and
dashboards to your apps.
If you don't have an Azure subscription, create a free account before you begin.
Create a capacity
1. Sign into the Azure portal.
2. In the search box, search for Power BI Embedded.
3. Within Power BI Embedded, select Create.
4. Fill in the required information and then select Create.
SETTING DESCRIPTION
Resource group The resource group that contains this new capacity. Pick
from an existing resource group, or create another. For
more information, see Azure Resource Manager
overview.
Power BI capacity administrator Power BI capacity administrators can view the capacity in
the Power BI admin portal and give assignment
permissions to other users. By default, the capacity
administrator is your account. The capacity administrator
must be within your Power BI tenant.
SETTING DESCRIPTION
Pricing tier Select the SKU (v-core count and memory size) that
meets your needs. For details, see Power BI Embedded
pricing
You can navigate to All services > Power BI Embedded to see if your capacity is ready. Alternatively, you can
select Pin to dashboard from the notifications section or from within the blade, to navigate to your dashboard
to see your new capacity.
Next steps
To use your new Power BI Embedded capacity, browse to the Power BI admin portal to assign workspaces. For
more information, see Manage capacities within Power BI Premium and Power BI Embedded.
If you don't need to use this capacity, you can pause it to stop billing. For more information, see Pause and start
your Power BI Embedded capacity in the Azure portal.
To begin embedding Power BI content within your application, see How to embed your Power BI dashboards,
reports, and tiles.
More questions? Try asking the Power BI Community
Multi-Geo support for Power BI Embedded
3/7/2019 • 2 minutes to read • Edit Online
Multi-Geo support for Power BI Embedded means that ISVs and organizations that build applications using
Power BI Embedded to embed analytics into their apps can now deploy their data in different regions around the
world.
Now customers using Power BI Embedded can set up an A capacity using Multi-Geo options, based on the
same features and limitations that Power BI Premium supports using Multi-Geo.
It’s also available in the Admin Portal in Powerbi.com. In the Admin portal, choose ‘Capacity settings,’ and then
switch to ‘Power BI Embedded’ tab.
Next steps
Learn more about Power BI Embedded capacities and Multi-Geo options for all capacities by referencing the links
below.
What is Power BI Embedded?
Create a Power BI Embedded capacity
Multi-Geo in Power BI Premium capacities
More questions? Try asking the Power BI Community
Scale your Power BI Embedded capacity in the Azure
portal
2/6/2019 • 2 minutes to read • Edit Online
This article walks through how to scale a Power BI Embedded capacity in Microsoft Azure. Scaling allows you to
increase or decrease the size of your capacity.
This assumes you have created a Power BI Embedded capacity. If you have not, see Create Power BI Embedded
capacity in the Azure portal to get started.
NOTE
A scaling operation can take about a minute. During this time, the capacity will not be available. Embedded content may fail
to load.
Scale a capacity
1. Sign into the Azure portal.
2. Select All services > Power BI Embedded to see your capacities.
This article walks through how to pause and start a Power BI Embedded capacity in Microsoft Azure. This
assumes you have created a Power BI Embedded capacity. If you have not, see Create Power BI Embedded
capacity in the Azure portal to get started.
If you don't have an Azure subscription, create a free account before you begin.
NOTE
Pausing a capacity may prevent content from being available within Power BI. Make sure to unassign workspaces from your
capacity before pausing to prevent interruption.
Next steps
If you want to scale your capacity up or down, see Scale your Power BI Embedded capacity.
To begin embedding Power BI content within your application, see How to embed your Power BI dashboards,
reports and tiles.
More questions? Try asking the Power BI Community
Troubleshoot your embedded application
3/18/2019 • 10 minutes to read • Edit Online
This article discusses some common issues you may get when embedding content from Power BI.
Tools to troubleshoot
Fiddler Trace
Fiddler is a free tool from Telerik that monitors HTTP traffic. You can see the traffic with the Power BI APIs from
the client machine. This tool may show errors and other related information.
return errorText;
}
We recommend logging the Request ID (and error details for troubleshooting). Provide the Request ID when
approaching Microsoft support.
App registration
App registration failure
Error messages within the Azure portal or the Power BI app registration page mention insufficient privileges. To
register an application, you must be an admin in the Azure AD tenant or application registrations must be enabled
for non-admin users.
Power BI Service doesn't appear in the Azure portal when registering a new App
At least one user must be signed up for Power BI. If you don't see Power BI Service listed within the API list, no
user is signed up for Power BI.
REST API
API call returning 401
A fiddler capture may be required to investigate further. The required permission scope may be missing for the
registered application within Azure AD. Verify the required scope is present within the app registration for Azure
AD within the Azure portal.
API call returning 403
A fiddler capture may be required to investigate further. There could be several reasons for a 403 error.
The user has exceeded the amount of embed token that can be generated on a shared capacity. Purchase Azure
capacities to generate embed tokens and assign the workspace to that capacity. See Create Power BI Embedded
capacity in the Azure portal.
The Azure AD auth token expired.
The authenticated user isn't a member of the group (app workspace).
The authenticated user isn't an admin of the group (app workspace).
The authorization header may not be listed correctly. Make sure there are no typos.
The backend of the application may need to refresh the auth token before calling GenerateToken.
```
GET https://wabi-us-north-central-redirect.analysis.windows.net/metadata/cluster HTTP/1.1
Host: wabi-us-north-central-redirect.analysis.windows.net
...
Authorization: Bearer eyJ0eXAiOi...
...
Authentication
Authentication failed with AADSTS90002: Tenant 'authorize' not found
If you're receiving messages logging in such as error: invalid_request, error_description: AADSTS90002:
Tenant 'authorize' not found, that is because ADAL 4.x doesn't support
"https://login.microsoftonline.com/{Tenant}/oauth2/authorize/" as an authority url.
To resolve this issue you should trim "oauth2/authorize/" from the end of your authority url, see Power BI
Developer Samples for reference.
Check Better Authority validation from ADAL 4.x release notes.
Authentication failed with AADSTS70002 or AADSTS50053
(AADSTS70002: Error validating credentials. AADSTS50053: You've tried to sign in too many times with
an incorrect User ID or password)
If you're using Power BI Embedded and using Azure AD Direct authentication, and you're receiving messages
logging in such as error:unauthorized_client, error_description:AADSTS70002: Error validating credentials.
AADSTS50053: You've tried to sign in too many times with an incorrect User ID or password, that is because
direct authentication is no longer in use since June 14, 2018 by default.
There's a way to turn this back on using an Azure AD Policy that is scoped to the organization or a service
principal.
We recommend you enable this policy only as a per-app basis.
To create this policy, you need to be a Global Administrator for the directory where you’re creating the policy
and assigning. Here is a sample script for creating the policy and assigning it to the SP for this application:
1. Install the Azure AD Preview PowerShell Module.
2. Run the following PowerShell commands line-by-line (making sure the variable $sp doesn’t have more
than one application as a result).
Connect-AzureAD
After assigning the policy, wait approximately 15-20 seconds for propagation before testing.
Generate token fails when providing effective identity
GenerateToken can fail, with effective identity supplied, for a few different reasons.
Dataset doesn't support effective identity
Username wasn't provided
Role wasn't provided
DatasetId wasn't provided
User doesn't have the correct permissions
To verify which it is, try the steps below.
Execute get dataset. Is the property IsEffectiveIdentityRequired true?
Username is mandatory for any EffectiveIdentity.
If IsEffectiveIdentityRolesRequired is true, Role is required.
DatasetId is mandatory for any EffectiveIdentity.
For Analysis Services, the master user has to be a gateway admin.
AADSTS90094: The grant requires admin permission
Symptoms:
When a non-admin user tries to sign in to an application for the first time while granting consent, then gets one of
the following errors:
ConsentTest needs permission to access resources in your organization that only an admin can grant. Ask
an admin to grant permission to this app before you can use it.
AADSTS90094: The grant requires admin permission.
Grant permissions to the application by an admin - either for the entire tenant or a specific user.
Data sources
ISV wants to have different credentials for the same data source
A data source can have a single set of credentials for one master user. If you need to use different credentials,
create additional master users. Then, assign the different credentials in each of the master users contexts, and
embed using the Azure AD token of that user.
TokenExpired Access token has expired, N/A Query data Expired token
resubmit with a new access
token. Couldn't render a
report visual titled:
Typical errors when embedding for non-Power BI users (using an Embed Token)
MESSAGE DETAILED MESSAGE ERROR CODE REASON(S)
TokenExpired Access token has expired, N/A Query data Expired token
resubmit with a new access
token. Couldn't render a
report visual titled:
Content rendering
Performance
Power BI Embedded performance
Rendering, or consumption, of embedded content, fails or times out
Make sure the embed token did not expire. Make sure you're checking the embed token expiration and refreshing
it. For more information, see Refresh token using JavaScript SDK.
Report or dashboard doesn't load
If the user is unable to see the report or dashboard, make sure the report or dashboard loads correctly within
powerbi.com. The report or dashboard doesn't work within your application if it doesn't load within powerbi.com.
Report or dashboard is performing slowly
Open the file from Power BI Desktop, or within powerbi.com, and verify that performance is acceptable to rule out
issues with your application or the embedding APIs.
AADSTS70001: Application with identifier <client ID> wasn't found in the directory <directory ID>
The solution is to close the popup, wait a few seconds and try again. You might need to repeat this action a few
times. A time interval causes the issue from completing the application registration process to when it's available
to external APIs.
The following error message appears when running the sample app:
This error occurs because the only value that isn't being injected into the sample application is your user password.
Open the Web.config file in the solution and fill the pbiPassword field with your user's password.
If you get the error - AADSTS50079: The user is required to use multi-factor authentication.
AADSTS50011: The reply URL specified in the request doesn't match the reply URLs configured for the
application: <client ID>
This error is because the redirect URL specified for the web-server application is different from the sample's URL.
If you want to register the sample application, then use http://localhost:13526/ as the redirect URL.
If you'd like to edit the registered application, then learn how to update the Azure AD -registered application, so the
application can provide access to the web APIs.
If you would like to edit your Power BI user profile or data, then learn how to edit your Power BI data.
If you get the error - AADSTS50079: The user is required to use multi-factor authentication.
Next steps
For more information, see FAQs.
More questions? Try the Power BI Community
How to migrate Power BI Workspace Collection content to
Power BI Embedded
2/13/2019 • 8 minutes to read • Edit Online
Learn how to migrate from Power BI Workspace Collection to Power BI Embedded and leverage advances for embedding in
apps.
Microsoft recently announced Power BI Embedded, a new capacity-based licensing model that increases flexibility for how users
access, share and distribute content. The offering also delivers additional scalability and performance.
With Power BI Embedded, you will have one API surface, a consistent set of capabilities and access to the latest Power BI
features – such as dashboards, gateways and app workspaces – when embedding your content. Moving forward you’ll be able to
start with Power BI Desktop and move to deployment with Power BI Embedded.
The current Power BI Workspace Collection will continue to be available for a limited time. Customers under an Enterprise
Agreement will have access through the expiration of their existing agreements; customers that acquired Power BI Workspace
Collection through Direct or CSP channels will maintain access for one year from the General Availability release of Power BI
Embedded. This article will provide some guidance for migrating from Power BI Workspace Collection to the new Power BI
Embedded experience and what to expect for changes in your application.
IMPORTANT
While the migration will take a dependency on Power BI Embedded, there is not a dependency on Power BI for the users of your application
when using an embed token. They do not need to sign up for Power BI to view the embedded content in your application. You can use this
embedding approach to Embedded non-Power BI users.
Before you get started migrating to the new Power BI Embedded, you can quickly go through a walkthrough that helps you set
up your new Power BI Embedded environment using the Embedding setup tool.
Choose the solution that is right for you:
Embed for your customers - when you are interested in an app owns data solution. Embedding for your customers
provides the ability to embed dashboards and reports to users who don't have an account for Power BI.
Embed for your organization - when you are interested in a user owns data solution. Embedding for your organization
allows you to extend the Power BI service.
NOTE
These accounts will need to have Power BI Pro licenses in order to use App workspaces.
NOTE
This is just a regular user account in your organization that will be used for the purposes of embedding.
IMPORTANT
You cannot use a personal workspace to take advantage of embedding to non-Power BI users.
You will need a user that has a Pro license in order to create an app workspace within Power BI. The Power BI user that creates
the App workspace will be an admin of that workspace by default.
NOTE
The application master account needs to be an admin of the workspace.
Content migration
Migrating your content from your workspace collections to Power BI Embedded can be done in parallel to your current solution
and doesn’t require any downtime.
A migration tool is available for you to use in order to assist with copying content from Power BI Workspace Collection to
Power BI Embedded. Especially if you have a lot of content. For more information, see Power BI Embedded migration tool.
Content migration relies mainly on two APIs.
1. Download PBIX - this API can download PBIX files which were uploaded to Power BI after October 2016.
2. Import PBIX - this API uploads any PBIX to Power BI.
For some related code snippets, see Code snippets for migrating content from Power BI Workspace Collection.
Report types
There are several types of reports, each requiring a somewhat different migration flow.
Cached dataset & report
Cached datasets refer to PBIX files that had imported data as opposed to a live connection or DirectQuery connection.
Flow
1. Call Download PBIX API from PaaS workspace.
2. Save PBIX.
3. Call Import PBIX to SaaS workspace.
DirectQuery dataset & report
Flow
1. Call GET
https://api.powerbi.com/v1.0/collections/{collection_id}/workspaces/{wid}/datasets/{dataset_id}/Default.GetBoundGatewayDataSources
and save connection string received.
2. Call Download PBIX API from PaaS workspace.
3. Save PBIX.
4. Call Import PBIX to SaaS workspace.
5. Update connection string by calling - POST
https://api.powerbi.com/v1.0/myorg/datasets/{dataset_id}/Default.SetAllConnections
6. Get GW id and datasource id by calling - GET
https://api.powerbi.com/v1.0/myorg/datasets/{dataset_id}/Default.GetBoundGatewayDataSources
7. Update user's credentials by calling - PATCH
https://api.powerbi.com/v1.0/myorg/gateways/{gateway_id}/datasources/{datasource_id}
Old dataset & reports
These are datasets/reports created before October 2016. Download PBIX doesn't support PBIXs which were uploaded before
October 2016
Flow
1. Get PBIX from your development environment (your internal source control).
2. Call Import PBIX to SaaS workspace.
Push Dataset & report
Download PBIX doesn't support Push API datasets. Push API dataset data can't be ported from PaaS to SaaS.
Flow
1. Call "Create dataset" API with dataset Json to create dataset in SaaS workspace.
2. Rebuild report for the created dataset*.
It is possible, using some workarounds, to migrate the push api report from PaaS to SaaS by trying the following.
1. Uploading some dummy PBIX to PaaS workspace.
2. Clone the push api report and bind it to the dummy PBIX from step 1.
3. Download push API report with the dummy PBIX.
4. Upload dummy PBIX to your SaaS workspace.
5. Create push dataset in your SaaS workspace.
6. Rebind report to push api dataset.
After migration
You should do some cleanup within Azure.
Remove all workspaces off of the deployed solution within the Azure Embedded of Power BI Workspace Collection.
Delete any Workspace Collections that exist within Azure.
Next steps
Embedding with Power BI
Power BI Workspace Collection migration tool
Code snippets for migrating content from Power BI Workspace Collection
How to embed your Power BI dashboards, reports and tiles
Power BI Premium - what is it?
JavaScript API Git repo
Power BI C# Git repo
JavaScript embed sample
Workspace Collection analytics capacity planning whitepaper
Power BI Premium whitepaper
More questions? Try asking the Power BI Community
Power BI Embedded migration tool
2/13/2019 • 8 minutes to read • Edit Online
This migration tool can be used to copy your reports from the Power BI Embedded Azure service (PaaS ) to the
Power BI service (SaaS ).
Migrating your content from your workspace collections to the Power BI service can be done in parallel to your
current solution and doesn’t require any downtime.
Limitations
Pushed datasets cannot be downloaded and will need to be recreated using the Power BI REST APIs for the
Power BI service.
PBIX files imported before November 26, 2016 will not be downloadable.
Download
You can download the migration tool sample from GitHub. You can either download a zip of the repository, or you
can clone it locally. Once downloaded, you can open powerbi-migration-sample.sln within Visual Studio to build
and run the migration tool.
Migration Plans
Your migration plan is just metadata that catalogs the content within Power BI Embedded and how you want to
publish them to the Power BI service.
Start with a new migration plan
A migration plan is the metadata of the items available in Power BI Embedded that you then want to move over to
the Power BI service. The migration plan is stored as an XML file.
You will want to start by creating a new migration plan. To create a new migration plan, do the following.
1. Select File > New Migration Plan.
2. In the Select Power BI Embedded Resource Group dialog, you will want to select the Environment
dropdown and select prod.
3. You will be prompted to sign in. You will use your Azure subscription login.
IMPORTANT
This is not your Office 365 organization account that you sign into Power BI with.
4. Select the Azure subscription which stores your Power BI Embedded workspace collections.
5. Below the subscription list, select the Resource Group that contains your workspace collections and select
Select.
6. Select Analyze. This will get an inventory of the items within your Azure subscription for you to begin your
plan.
NOTE
The analyze process could take several minutes depending on the number of Workspace collections and how much
content exists in the workspace collection.
7. When Analyze is complete, it will prompt you to save your migration plan.
At this point, you have connected your migration plan to your Azure subscription. Read below to understand the
flow of how to work with your migration plan. This includes Analyze & Plan Migration, Download, Create Groups
and Upload.
Save your migration plan
You can save your migration plan for use later. This will create an XML file that contained all the information in
your migration plan.
To save your migration plan, do the following.
1. Select File > Save Migration Plan.
2. Give your file a name or use the generated file name and select Save.
Open an existing migration plan
You can open a saved migration plan to continue working on your migration.
To open your existing migration plan, do the following.
1. Select File > Open Existing Migration Plan.
NOTE
This does not actually perform the download. This is only specifying the structure of where the reports will be downloaded
to.
Upload Plan
Here you can specify a prefix to be used for the App Workspaces that will be created within the Power BI service.
After the prefix will be the GUID for the workspace that existed in Azure.
NOTE
This does not actually create the groups within the Power BI service. This only defines the naming structure for the groups.
If you change the prefix, you will need to select Generate Upload Plan.
You can right click on a group and choose to rename the group within the Upload plan directly, if desired.
NOTE
The name of the group must not contain spaces or invalid characters.
Step 2: Download
On the Download tab, you will see the list of reports and associated metadata. You can see what the export status
is along with the previous export status.
For a successful download, you will see a status of Done and it will reflect that the PBIX file exists.
After the download is completed, select the Create Groups tab.
Step 3: Create Groups
After you have downloaded the reports that are available, you can go to the Create Groups tab. This tab will
create the app workspaces within the Power BI service based on the migration plan that you created. It will create
the app workspace with the name you provided on the Upload tab within Analyze & Plan Migration.
To create the app workspaces, you can select either Create Selected Groups or Create All Missing Groups.
When you select either of these options, you will be prompted to sign in. You will want to use your credentials for
the Power BI service that you want to create the app workspaces on.
This will create the app workspace within the Power BI service. This does not upload the reports to the app
workspace.
You can verify that the app workspace was created by signing into Power BI and validating that the workspace
exists. You will notice that nothing is in the workspace.
After the workspace is created, you can move onto the Upload tab.
Step 4: Upload
On the Upload tab, this will upload the reports to the Power BI service. You will see a list of the reports that we
downloaded on the Download tab along with the target group name based on your migration plan.
You can upload selected reports, or you could upload all the reports. You can also reset the upload status to re-
upload items.
You also have the option of selecting what to do if a report with the same name exists. You can choose between
Abort, Ignore and Overwrite.
For the failed item, we can change the name of the SaaSTargetReportName.
<SaaSTargetReportName>cloned2</SaaSTargetReportName>
We can then re-open the plan, in the migration tool, and upload the failed report.
Going back to Power BI, we can see that the reports and datasets have been uploaded in the app workspace.
After you have edited the xml, re-open the plan within the migration tool and upload the report.
DirectQuery reports
You will need to update to update the connection string for DirectQuery reports. This can be done within
powerbi.com, or you can programmatically query the connection string from Power BI Embedded (PaaS ). For an
example, see Extract DirectQuery connection string from PaaS report.
You can then update the connection string for the dataset within the Power BI service (SaaS ) and set the
credentials for the data source. You can look at the following examples to see how to do this.
Update DirectQuery connection string is SaaS workspace
Set DirectQuery credentials in SaaS workspace
Embedding
Now that your reports have been migrated from the Power BI Embedded Azure service to the Power BI service,
you can now update your application and begin embedding the reports in this app workspace.
For more information, see How to migrate Power BI Embedded workspace collection content to Power BI.
Next steps
Embedding with Power BI
How to migrate Power BI Embedded workspace collection content to Power BI
Power BI Premium - what is it?
JavaScript API Git repo
Power BI C# Git repo
JavaScript embed sample
Power BI Premium whitepaper
More questions? Try asking the Power BI Community
Code snippets for migrating content from Power BI
Workspace Collection
2/13/2019 • 4 minutes to read • Edit Online
Here are some code snippets of basic operations needed for content migration. For related flows for certain report
types, see How to migrate Power BI workspace collection content to Power BI Embedded.
A migration tool is available for you to use in order to assist with copying content from Power BI Embedded
(PaaS ) to the Power BI service (SaaS ). Especially if you have a lot of content. For more information, see Power BI
Embedded migration tool.
The code below are examples using C# and the Power BI .NET SDK.
Make sure you are using the following namespaces to execute the code snippets below.
using Microsoft.IdentityModel.Clients.ActiveDirectory;
using Microsoft.PowerBI.Api.V1;
using Microsoft.PowerBI.Api.V1.Models;
using Microsoft.PowerBI.Api.V2;
using Microsoft.PowerBI.Api.V2.Models;
using Microsoft.Rest;
using Microsoft.Rest.Serialization;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
if (response.Result.Response.StatusCode == HttpStatusCode.OK)
{
var stream = response.Result.Response.Content.ReadAsStreamAsync();
[JsonProperty(PropertyName = "password")]
public string pwd { get; set; }
}
// step 2 -> clone the pushable dataset and rebind to dummy dataset
var cloneInfo = new Microsoft.PowerBI.Api.V1.Models.CloneReportRequest("pushableReportClone",null,
dummyDatasetID);
var clone = client.Reports.CloneReportAsync(<Your WSC NAME>, <Your workspace ID>, <Your pushable report
ID>, cloneInfo);
var pushableReportCloneID = clone.Result.Id;
// step 3 -> Download the push API clone report with the dummy dataset
var response = client.Reports.ExportReportWithHttpMessagesAsync(<Your WSC NAME>, <Your workspace ID>,
pushableReportCloneID);
if (response.Result.Response.StatusCode == HttpStatusCode.OK)
{
var stream = response.Result.Response.Content.ReadAsStreamAsync();
using (fileStream = File.Create(@"C:\Migration\PushAPIReport.pbix"))
{
stream.Result.CopyTo(fileStream);
fileStream.Close();
}
}
}
Next steps
Power BI Embedded migration tool
Embedding with Power BI
How to migrate Power BI Embedded workspace collection content to Power BI
How to embed your Power BI dashboards, reports and tiles
Power BI Premium - what is it?
JavaScript API Git repo
Power BI C# Git repo
JavaScript embed sample
Power BI Premium whitepaper
More questions? Try asking the Power BI Community
Power BI REST API Reference
1/14/2019 • 2 minutes to read • Edit Online
Power BI is a cloud-based service that you can use to build custom dashboard applications. The Power BI REST API
is a REST-based API that provides programmatic access to Dashboard resources such as Datasets, Tables, and
Rows in Power BI.
NOTE
If you’re interested in viewing or deleting personal data, please review Microsoft's guidance in the Windows Data Subject
Requests for the GDPR site. If you’re looking for general information about GDPR, see the GDPR section of the Service Trust
portal.
Use custom layout to embed a report with different layout than in an original report. Defining a new layout varies
between defining only a page size, controlling visual sizes, or position and visibility.
To define a custom layout, define a custom layout object and pass it into the settings object in embed configuration.
In addition, set LayoutType to Custom. To learn more, see Embed Configuration Details.
var embedConfig = {
...
settings: {
layoutType: models.LayoutType.Custom
customLayout: {...}
}
};
Object Definition
interface ICustomLayout {
pageSize?: IPageSize;
displayOption?: DisplayOption;
pagesLayout?: PagesLayout;
}
enum PageSizeType {
Widescreen,
Standard,
Cortana,
Letter,
Custom
}
interface IPageSize {
type: PageSizeType;
}
interface ICustomPageSize extends IPageSize {
width?: number;
height?: number;
}
enum DisplayOption {
FitToPage,
FitToWidth,
ActualSize
}
pageSize : Use page size to control the canvas area size (i.e. report white area).
displayOptions : Possible values are: FitToWidth, FitToPage or ActualSize. It controls how to scale the canvas to
fit into the iframe.
pagesLayout : Controls the layout for each visual. see PagesLayout for more details.
Pages layout
Defining a pages layout object is basically defining a layout for each page, and for each page, you define a layout
for each visual. PageLayout is optional. If you don't define a layout for a page, the default layout (which is saved in
the report) will be applied.
pagesLayout is a map from page name to PageLayout object. Definition:
PageLayout contains a visual layout map, which maps each visual name to a visual layout object:
interface IPageLayout {
visualsLayout: { [key: string]: IVisualLayout; };
}
Visual layout
To define a visual layout, pass a new position and size and a new visibility state.
interface IVisualLayout {
x?: number;
y?: number;
z?: number;
width?: number;
height?: number;
displayState?: IVisualContainerDisplayState;
}
interface IVisualContainerDisplayState {
mode: VisualContainerDisplayMode;
}
enum VisualContainerDisplayMode {
Visible,
Hidden
}
Update layout
You can use updateSettings method to update the report layout any time while the report is loaded. See Update
Settings.
Code example
// Get models. models contains enums that can be used.
var models = window['powerbi-client'].models;
var embedConfiguration = {
type: 'report',
id: '5dac7a4a-4452-46b3-99f6-a25915e0fe55',
embedUrl: 'https://app.powerbi.com/reportEmbed',
tokenType: models.TokenType.Embed,
accessToken: 'H4...rf',
settings: {
layoutType: models.LayoutType.Custom
customLayout: {
pageSize: {
type: models.PageSizeType.Custom,
width: 1600,
height: 1200
},
displayOption: models.DisplayOption.ActualSize,
pagesLayout: {
"ReportSection1" : {
visualsLayout: {
"VisualContainer1": {
x: 1,
y: 1,
z: 1,
width: 400,
height: 300,
displayState: {
mode: models.VisualContainerDisplayMode.Visible
}
},
"VisualContainer2": {
displayState: {
mode: models.VisualContainerDisplayMode.Hidden
}
},
}
}
}
}
}
};
See also
Embed your Power BI dashboards, reports and tiles
Ask the Power BI Community
Custom visuals in Power BI
3/14/2019 • 5 minutes to read • Edit Online
When creating or editing a Power BI report, there are many different types of visuals available for you to use.
These visuals display in the Visualizations pane. When you download Power BI Desktop or open Power BI
service, this set of visuals comes "pre-packaged."
But you aren't limited to this set of visuals, selecting the ellipses opens up another source of report visuals:
custom visuals.
Custom visuals are created by developers, using the custom visuals SDK, to enable business users to see their
data in a way that fits the business best. Report authors can then import the custom visuals files into their reports
and use them as any other Power BI visuals. Custom visuals are first class citizens in Power BI and can be filtered,
highlighted, edited, shared, etc.
Custom visuals can be in the form of three deployment channels:
Custom visual files
Organizational visuals
Marketplace visuals
WARNING
A custom visual could contain code with security or privacy risks; Make sure you trust the author and the source of the
custom visual before importing it to your report.
Organizational visuals
Power BI admins can deploy custom visuals into their organization, so that report authors can easily discover and
use the custom visuals that the admin has approved to use inside of the organization. The admin then has control
to choose specific custom visuals to deploy in the organization, as well as an easy way to manage (for example,
update version, disable/enable) those visuals. For the report author, it is an easy way to discover visuals that are
unique to the organization, as well as a seamless support for updating those visuals.
To get more information about organization custom visuals, read more about organizational visuals.
Marketplace visuals
Members of the community, as well as Microsoft, have contributed their custom visuals to the benefit of the
public and published them to AppSource marketplace. These visuals can be downloaded and added to Power BI
reports. All of these custom visuals have been tested and approved by Microsoft for functionality and quality.
What is AppSource? Put, it is the place to find apps, add-ins, and extensions for your Microsoft software.
AppSource connects millions of users of products like Office 365, Azure, Dynamics 365, Cortana, and Power BI to
solutions that help them get work done more efficiently, more insightfully, or more beautifully than before.
Certified visuals
Power BI certified visuals are marketplace visuals that have passed additional rigorous testing for quality, and are
supported in additional scenarios, such as email subscriptions, and export to PowerPoint. To see the list of
certified custom visuals or to submit your own, see Certified custom visuals.
Are you a Web developer and interested in creating your own visualizations and adding them to AppSource? See
Developing a Power BI custom visual and learn how to publish custom visuals to AppSource.
Import a custom visual from a file
1. Select the ellipses from the bottom of the Visualizations pane.
3. From the Open file menu, select the .pbiviz file that you want to import and then select Open. The icon
for the custom visual is added to the bottom of your Visualizations pane and is now available for use in
your report.
Import organizational visuals
1. Select the ellipses from the bottom of the Visualizations pane.
5. Import the custom visual by selecting Add. The icon for the custom visual is added to the bottom of your
Visualizations pane and is now available for use in your report.
5. On the detail page you can view screenshots, videos, detailed description and more.
2. Go to the Apps results page where you can view top apps in each category, including Power BI Apps. But
we're looking for custom visuals, so let's narrow down the results by selecting Power BI visuals from the
left navigation list.
3. AppSource displays a tile for each custom visual. Each tile has a snapshot of the custom visual and gives a
brief description and a download link. To see more details, select the tile.
4. On the detail page you can view screenshots, videos, detailed description and more. Download the custom
visual by selecting Get it now and then agreeing to the Terms of use.
The download page also includes instructions on how to import the custom visual into Power BI Desktop
and Power BI service.
You can also download a sample report that includes the custom visual and showcases its capabilities.
6. Save the '.pbiviz' file and then open Power BI.
7. Import the '.pbiviz' file into your report. (See the Import a custom visual from a file section above.)
Troubleshoot
For information about troubleshooting, visit Troubleshooting your Power BI custom visuals.
FAQ
For more information and answers to questions, visit Frequently asked questions about Power BI custom visuals.
Next steps
Visualizations in Power BI
More questions? Try the Power BI Community.
Tutorial: Developing a Power BI custom visual
3/18/2019 • 10 minutes to read • Edit Online
We’re enabling developers to easily add custom visuals into Power BI for use in dashboard and reports. To help
you get started, we’ve published the code for all of our visualizations to GitHub.
Along with the visualization framework, we’ve provided our test suite and tools to help the community build
high-quality custom visuals for Power BI.
This tutorial shows you how to develop a Power BI custom visual named Circle Card to display a formatted
measure value inside a circle. The Circle Card visual supports customization of fill color and thickness of its
outline.
In the Power BI Desktop report, the cards are modified to become Circle Cards.
Prerequisites
If you're not signed up for Power BI Pro, sign up for a free trial before you begin.
You need Visual Studio Code installed.
You need Windows PowerShell version 4 or later for windows users OR the Terminal for OSX users.
npm i -g powerbi-visuals-tools
pbiviz --create-cert
It returns a result that produces a passphrase. In this case, the passphrase is 15105661266553327.
2. Now we need to install the certificate. to install the certificate, enter the following command.
pbiviz --install-cert
3. In the Certificate Import Wizard, verify that the store location is set to Current User. Then select Next.
4. At the File to Import step, select Next.
5. At the Private Key Protection step, in the Password box, paste the passphrase you received from
creating the cert. Again, in this case it is 15105661266553327.
6. At the Certificate Store step, select the Place all certificates in the Following store option. Then
select Browse.
7. In the Select Certificate Store window, select Trusted Root Certification Authorities and then select
OK. Then select Next on the Certificate Store screen.
IMPORTANT
Do not close the Windows PowerShell session.
OSX
1. If the lock in the upper left is locked, select it to unlock. Search for localhost and double-click on the
certificate.
NOTE
If the certificate is not recognized, you may need to restart your computer.
pbiviz
Commands:
Options:
NOTE
You create the new project at the current location of the prompt.
cd CircleCard
5. Start the custom visual. Your CircleCard visual is now running while being hosted on your computer.
pbiviz start
IMPORTANT
Do not close the Windows PowerShell session.
2. Select Developer then check the Enable Developer Visual for testing checkbox.
4. Now you need to edit the report while in the Power BI service.
Go to Edit report.
NOTE
This is a very simple visual that displays the number of times its Update method has been called. At this stage, the
visual does not yet retrieve any data.
7. While selecting the new visual in the report, Go to the Fields Pane > expand Sales > select Quantity.
8. Then to test the new visual, resize the visual and notice the update value increments.
To stop the custom visual running in PowerShell, enter Ctrl+C. When prompted to terminate the batch job, enter
Y, then press Enter.
NOTE
Many text entries in this tutorial can be copied from here.
2. To install type definitions for the D3 library, enter the command below.
npm i @types/[email protected]
This command installs TypeScript definitions based on JavaScript files, enabling you to develop the
custom visual in TypeScript (which is a superset of JavaScript). Visual Studio Code is an ideal IDE for
developing TypeScript applications.
3. Launch Visual Studio Code.
You can launch Visual Studio Code from PowerShell by using the following command.
code .
4. In the Explorer pane, expand the node_modules folder to verify that the d3 library was installed.
5. Notice the TypeScript file, index.d.ts, by expanding node_modules > @types > d3 in the Explorer pane.
"node_modules/d3/d3.min.js"
NOTE
Notice the comments at the top of the visual.ts file. Permission to use the Power BI custom visual packages is
granted free of charge under the terms of the MIT License. As part of the agreement, you must leave the
comments at the top of the file.
2. Remove the following default custom visual logic from the Visual class.
The four class-level private variable declarations.
All lines of code from the constructor.
All lines of code from the update method.
All remaining lines within the module, including the parseSettings and enumerateObjectInstances
methods.
Verify that the module code looks like the following.
module powerbi.extensibility.visual {
"use strict";
export class Visual implements IVisual {
constructor(options: VisualConstructorOptions) {
}
}
}
3. Beneath the Visual class declaration, insert the following class-level properties.
private host: IVisualHost;
private svg: d3.Selection<SVGElement>;
private container: d3.Selection<SVGElement>;
private circle: d3.Selection<SVGElement>;
private textValue: d3.Selection<SVGElement>;
private textLabel: d3.Selection<SVGElement>;
this.svg = d3.select(options.element)
.append('svg')
.classed('circleCard', true);
this.container = this.svg.append("g")
.classed('container', true);
this.circle = this.container.append("circle")
.classed('circle', true);
this.textValue = this.container.append("text")
.classed("textValue", true);
this.textLabel = this.container.append("text")
.classed("textLabel", true);
This code adds an SVG group inside the visual and then adds three shapes: a circle and two text elements.
To format the code in the document, right-select anywhere in the Visual Studio Code document, and
then select Format Document.
To improve readability, it is recommended that you format the document every time that paste in code
snippets.
5. Add the following code to the update method.
This code sets the width and height of the visual, and then initializes the attributes and styles of the visual
elements.
6. Save the visual.ts file.
7. Select the capabilities.json file.
At line 14, remove the entire objects element (lines 14-60).
8. Save the capabilities.json file.
9. In PowerShell, start the custom visual.
pbiviz start
This option ensures that the visual is automatically reloaded each time you save project changes.
3. From the Fields pane, drag the Quantity field into the developer visual.
4. Verify that the visual looks like the following.
{
"displayName": "Measure",
"name": "measure",
"kind": "Measure"
}
The dataRoles array now defines a single data role of type measure, that is named measure, and
displays as Measure. This data role allows passing either a measure field, or a field that is summarized.
3. From inside the dataViewMappings array, remove all content (lines 10-31).
4. Inside the dataViewMappings array, insert the following content.
{
"conditions": [
{ "measure": { "max": 1 } }
],
"single": {
"role": "measure"
}
}
The dataViewMappings array now defines one field can be passed to the data role named measure.
5. Save the capabilities.json file.
6. In Power BI, notice that the visual now can be configured with Measure.
NOTE
The visual project does not yet include data binding logic.
3. Expand down into metadata, and then into the columns array, and in particular notice the format and
displayName values.
4. To toggle back to the visual, in the toolbar floating above the visual, select Show Dataview.
This statement assigns the dataView to a variable for easy access, and declares the variable to reference
the dataView object.
2. In the update method, replace.text(“Value”)** with the following.
.text(dataView.single.value as string)
3. In the update method, replace .text(“Label”) with the following.
.text(dataView.metadata.columns[0].displayName)
Debugging
For tips about debugging your custom visual, see the debugging guide.
Next steps
Adding formatting options
Tutorial: Adding formatting options to a Power BI
custom visual
3/8/2019 • 4 minutes to read • Edit Online
"objects": {},
4. Save the capabilities.json file.
5. In Power BI, review the formatting options again.
NOTE
If you do not see the formatting options change then select Reload Custom Visual.
6. Set the Title option to Off. Notice that the visual no longer displays the measure name at the top-left corner.
Adding custom formatting options
You can add custom properties to enable configuring the color of the circle, and also the border width.
1. In PowerShell, stop the custom visual.
2. In Visual Studio Code, in the capabilities.json file, insert the following JSON fragment into the object
labeled objects.
"circle": {
"displayName": "Circle",
"properties": {
"circleColor": {
"displayName": "Color",
"description": "The fill color of the circle.",
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"circleThickness": {
"displayName": "Thickness",
"description": "The circle thickness.",
"type": {
"numeric": true
}
}
}
},
The JSON fragment describes a group named circle, which consists of two options named circleColor and
circleThickness.
3. Save the capabilities.json file.
4. In the Explorer pane, from inside the src folder, and then select settings.ts. This file represents the settings
for the starter visual.
5. In the settings.ts file, replace the two classes with the following code.
This module defines the two classes. The CircleSettings class defines two properties with names that
match the objects defined in the capabilities.json file (circleColor and circleThickness) and also sets
default values. The VisualSettings class inherits the DataViewObjectParser class and adds a property
named circle, which matches the object defined in the capabilities.json file, and returns an instance of
CircleSettings.
6. Save the settings.ts file.
7. Open the visual.ts file.
8. In the Visual class, add the following property.
This property stores a reference to the VisualSettings object, describing the visual settings.
9. In the Visual class, add the following method before the update method. This method is used to populate
the formatting options.
10. In the update method, after the declaration of the radius variable, add the following code.
this.visualSettings = VisualSettings.parse<VisualSettings>(dataView);
This code retrieves the format options. It adjusts any value passed into the circleThickness property,
converting it to 0 if negative, or 10 if it's a value greater than 10.
11. For the circle element, modify the value passed to the fill style to the following expression.
this.visualSettings.circle.circleColor
12. For the circle element, modify the value passed to the stroke-width style to the following expression.
this.visualSettings.circle.circleThickness
pbiviz start
15. In Power BI, in the toolbar floating above the visual, select Toggle Auto Reload.
16. In the visual format options, expand Circle.
Modify the color and thickness option.
Modify the thickness option to a value less than zero, and a value higher than 10. Then notice the visual
updates the value to a tolerable minimum or maximum.
pbiviz package
Now the package is output to the dist folder of the project. The package contains everything required to import
the custom visual into either the Power BI service or a Power BI Desktop report. You have now packaged the
custom visual, and it is now ready for use.
Debugging
For tips about debugging your custom visual, see the debugging guide.
Next steps
You can list your newly developed visual for others to use by submitting it to the AppSource. For more
information on this process reference Publish custom visuals to AppSource.
Organizational custom visuals in Power BI
3/8/2019 • 2 minutes to read • Edit Online
You can use custom visuals in Power BI to create a unique type of visual that’s tailored to you. Custom visuals are
created by developers, and they're often created when the multitude of visuals that are included in Power BI don’t
quite meet their need.
In some organizations, custom visuals are even more important – they might be necessary to convey specific
data or insights unique to the organization, they may have special data requirements, or they may highlight
private business methods. Such organizations need to develop custom visuals, share them throughout their
organization, and make sure they’re properly maintained. Power BI custom visuals lets organizations do just that.
The following image shows the process by which organization custom visuals in Power BI flow from
administrator, through development and maintenance, all finally make their way to the data analyst.
Organizational visuals are deployed and managed by the Power BI administrator from the Admin portal. Once
deployed into the organizational repository, users in the organization can easily discover them, and import the
organizational custom visuals into their reports directly from Power BI Desktop.
To learn more about how to use organizational custom visuals in the reports that you created, see the following
article: Learn more about importing organizational visuals into your reports .
WARNING
A custom visual can contain code with security or privacy risks. Make sure you trust the author and the source of any
custom visual before deploying it to the organization repository.
Troubleshoot
For information about troubleshooting, visit Troubleshooting your Power BI custom visuals.
FAQ
For more information and answers to questions, visit Frequently asked questions about Power BI custom visuals.
More questions? Try the Power BI Community.
Guidelines for Power BI visuals
3/25/2019 • 2 minutes to read • Edit Online
NOTE
For the visual to be certified, it must not access external services or resources.
IMPORTANT
If you update your visual from free to "Additional purchase may be required", users must receive the same level of free
functionality as before the update. You may add optional advanced paid features in addition to the existing free features. We
recommend that you submit the IAP visuals with the advanced features as new visuals and not update the existing free ones.
NOTE
Watermarks are not allowed on the free features or free visuals. Watermarks may only be used on paid features that are used
without a valid license. We recommend to display a pop-up window with all the license related information, if the advanced
paid features are used without a valid license.
Logo guidelines
This section describes the specifications for adding logos and logotypes in visuals.
IMPORTANT
Logos are allowed in edit mode only. Logos can't be displayed in view mode.
Best practices
Visual landing page
Use the landing page to clarify to users how they can use your visual and where to purchase the license. Don't
include videos that are automatically triggered. Add only material that helps improve the user's experience, such as
information or links to license purchasing details and how to use IAP features.
License key and token
For the user's convenience, add the license key or token related fields at the top of the format pane.
FAQ
For more information about visuals, see Frequently asked questions about visuals with additional purchases.
Next steps
Learn how you can publish your custom visual to AppSource for others to discover and use.
Frequently asked questions about Power BI custom
visuals
3/14/2019 • 7 minutes to read • Edit Online
NOTE
All free visuals should keep same free features previously offered. You may add optional advanced paid features on top of the
old free features. We recommend to submit the IAP visuals with the advanced features as new visuals and not to update the
old free ones.
Additional questions
How to get support?
Feel free to contact the custom visuals support team:*[email protected]*with any questions,
comments, or issues you have.
Next steps
For more information, visit Troubleshooting your Power BI custom visuals.
Certified custom visuals
3/18/2019 • 4 minutes to read • Edit Online
NOTE
You don’t have to publicly share your code in Github.
Uses only public reviewable OSS components (JS libraries or TypeScript that are public. The source code is
available for reviewing and doesn't have known vulnerabilities). We can't verify a custom visual using a
commercial component.
Does not access external services or resources, including but not limited to, no HTTP/S or WebSocket
requests go out of Power BI to any services.
TIP
We recommend that you use EsLint with default security ruleset, to pre-validate your code before submission.
Aster Plot
Beyondsoft Calendar
Calendar by Tallan
Chiclet Slicer
Chord Video
Cluster Map
Dial Gauge
Dot Plot
Drilldown Cartogram
Drilldown Choropleth
Dual KPI
Enlighten Aquarium
Enlighten Slicer
Gantt Video
Histogram Chart
Image by CloudScope
Image Grid
Infographic Designer
KPI Indicator
LineDot Chart
Multi KPI
Overview by CloudScope
Radar Chart
Scroller
Stream Graph
Sunburst
Table Heatmap
Tachometer Video
Text Filter
FAQ
For more information about visuals, see Frequently asked questions about certified visuals.
Next steps
Developing a Power BI custom visual
Microsoft's custom visual playlist on YouTube
Visualizations in Power BI
Custom Visualizations in Power BI
Publish custom visuals to Microsoft AppSource
More questions? Try the Power BI Community
Publish custom visuals to AppSource
3/8/2019 • 8 minutes to read • Edit Online
Learn how you can publish your custom visual to AppSource for others to discover and use.
Once you have created your custom visual, you may want to publish it AppSource for others to discover and use.
There is some preparation that needs to be done before you can do that. For more information on how to create a
custom visual, see Developing a Power BI Custom Visual.
What is AppSource?
The AppSource is the place to find SaaS apps and add-ins for your Microsoft products and service. AppSource
connects millions of users of Office 365, Dynamics 365, Cortana Intelligence, and others, to solutions that help
them get work done more efficiently, more insightfully or more beautifully than before.
Sample .pbix report file Yes To showcase your visual, you should
help users to get acquainted with the
visual. You should emphasize on the
value the visual brings to the user and
give examples of usage, formatting
options, etc. You can also add a "hints"
page at the end with some tips and
tricks, things to avoid and the like.
The sample .pbix report file must work
offline, without any external connection
Privacy document link Yes Provide a link to the privacy policy for
customers who use your visual. This
link is entered as part of your
SellerDashboard listing and is visible to
users when they access your visual’s
listing on AppSource. The format of
your link should include https:// or
http://.
End-user license agreement (EULA) Yes You must upload a EULA file. This can
be either your own EULA or use the
default EULA within the Office store for
Power BI custom visuals. To use the
default EULA, paste the following URL
in the seller dashboard's "End-User
License Agreement" file upload dialog:
https://visuals.azureedge.net/app-
store/Power BI - Default Custom Visual
EULA.pdf.
ITEM REQUIRED DESCRIPTION
Submitting to Power BI
Submission starts with sending an email to the Power BI custom visuals submission team. You can email
[email protected].
IMPORTANT
You must fill the following fields in the pbiviz.json file: “description”, “supportUrl”, “author“, “name” and “email” before you
create the .pbiviz package.
Attach the .pbiviz file and the sample report .pbix file in your email. The Power BI team will reply back with
instructions and an app package XML file to upload. This XML app package is required in order to submit your
visual through the Office developer center.
NOTE
To improve quality and assure that existing reports are not breaking, updates to existing visuals will take an additional two
weeks to reach production environment after approval in the store.
Submitting to AppSource
Once you get the app package XML from the Power BI team, navigate to the developer center to submit your
visual to AppSource.
NOTE
You must have a valid Office developer account to log in to the Office developer center. An Office developer account must
be a Microsoft Account (Live ID, e.g. hotmail.com or outlook.com).
IMPORTANT
You must send an email with the .pbiviz file and the .pbix file to the Power BI team before submitting to AppSource. This
allows the Power BI team to upload the files to the public share server. Otherwise, the store will not be able to retrieve the
files. You must send the files with each new visual submission, update to existing visual, and fixes to rejected submissions.
4. You should receive an approval that this is a valid Power BI app package.
NOTE
If you select any other option other than free, or have an In-App purchase content in the submitted visual, the
submission will be rejected.
17. You can now select Save as draft and submit later, or select Submit for approval to submit the custom
visual to the Office store.
Next steps
Developing a Power BI custom visual
Visualizations in Power BI
Custom Visualizations in Power BI
Getting a custom visual certified
More questions? Try asking the Power BI Community
Use R-powered custom visuals in Power BI
3/8/2019 • 5 minutes to read • Edit Online
In Power BI Desktop and the Power BI service, you can use R -powered custom visuals without any knowledge
of R and without any R scripting. This enables you to harness the analytic and visual power of R visuals, and R
scripts, without learning R or doing any programming yourself.
To use R -powered custom visuals, you first select and download the R custom visual you're interested in using
from the AppSource gallery of custom visuals for Power BI.
The following sections describe how to select, load, and use R -powered visuals in Power BI Desktop.
3. Select the visual you're interested in using from the gallery, and you're taken to a page that describes the
visual. Select the Get it now button to download.
NOTE
For authoring in Power BI Desktop, you need to have R installed on your local machine. But, when users want to
view an R-powered visual in the Power BI service they do not need R installed locally.
You do not need to install R to use R -powered custom visuals in the Power BI service, however, if you want
to use R -powered custom visuals in Power BI Desktop you must install R on the local machine. You can
download R from the following locations:
CRAN
MRO
4. Once the visual is downloaded (which is like downloading any file from your browser), go to Power BI
Desktop and click the ellipsis (...) in the Visualizations pane, and select Import from file.
5. You're warned about importing a custom visual, as shown in the following image:
6. Navigate to where the visual file was saved, then select the file. Power BI Desktop custom visualizations
have the .pbiviz extension.
7. When you return to Power BI Desktop, you can see the new visual type in the Visualizations pane.
8. When you import the new visual (or open a report that contains an R -powered custom visual), Power BI
Desktop installs the required R packages.
9. From there, you can add data to the visual just as you would any other Power BI Desktop visual. When
complete, you can see your finished visual on the canvas. In the following visual, the Forecasting R -
powered visual was used with United Nations (UN ) birth rate projections (the visual on the left).
Like any other Power BI Desktop visual, you can publish this report with its R -powered visuals to the
Power BI service and share it with others.
Check the library often, since new visuals are being added all the time.
Get custom visuals from within Power BI Desktop
1. You can also get custom visuals from within Power BI Desktop. In Power BI Desktop click the ellipsis (the
...) in the Visualizations pane, and select Import from marketplace.
2. When you do so, the Power BI Visuals dialog appears, where you can scroll through the available custom
visuals and select what you would like. You can search by name, select a category, or just scroll through the
available visuals. When you're ready, just select Add to add the custom visual to Power BI Desktop.
3. Install R packages manually, using any R console. The steps for this approach follow:
a. Download the R -powered visual installation script and save that file to a local drive.
b. From the R console, run the following:
source(“C:/Users/david/Downloads/ScriptInstallPackagesForForecastWithWorkarounds.R”)
Next steps
Take a look at the following additional information about R in Power BI.
Power BI custom visuals gallery
Running R Scripts in Power BI Desktop
Create R visuals in Power BI Desktop
Use an external R IDE with Power BI
Troubleshoot Power BI custom visuals
3/8/2019 • 2 minutes to read • Edit Online
Debug
Pbiviz command not found (or similar errors)
When you run pbiviz in your terminal's command line, you should see the help screen. If not, then it is not
installed correctly. Make sure you have at least the 4.0 version of NodeJS installed.
Can't find the debug visual in the Visualizations tab
The debug visual looks like a prompt icon within the Visualizations tab.
If you don't see it, make sure you have enabled it within the Power BI settings.
NOTE
The debug visual is currently only available in the Power BI service and not in Power BI Desktop or the mobile app. The
packaged visual will still work everywhere.
Next steps
For more information, visit Frequently asked questions about Power BI custom visuals.
What can developers do with the Power BI API?
4/2/2019 • 2 minutes to read • Edit Online
Using Power BI REST API, you can create apps that integrate with Power BI reports, dashboards, and tiles.
With Power BI REST API, it is possible to perform management tasks on Power BI objects like reports, datasets,
and workspaces.
Here are some of the things you can do with the Power BI APIs.
Embed reports, dashboards, and tiles for Power BI users and How to embed your Power BI dashboards, reports, and tiles
Non-Power BI users.
Extend an existing business workflow to push key data into a Push data into a dashboard
Power BI dashboard.
NOTE
The Power BI APIs still refer to app workspaces as groups. Any references to groups mean that you are working with app
workspaces.
Next Steps
Push data into a dataset
Developing a Power BI custom visual
Power BI REST API Reference
Power BI REST APIs
More questions? Try asking the Power BI Community
Push data into a Power BI dataset
2/6/2019 • 2 minutes to read • Edit Online
With the Power BI API, you can push data into a Power BI dataset. For example, you want to extend an existing
business workflow to push key data into your dataset. In this case, you want to push a Sales Marketing dataset
which has a Product table into a dataset.
Before you get started pushing data into a dataset, you need an Azure Active Directory (Azure AD ) and a Power
BI account.
{
"name": "SalesMarketing",
"tables": [
{
"name": "Product",
"columns": [
{
"name": "ProductID",
"dataType": "int"
},
{
"name": "Manufacturer",
"dataType": "string"
},
{
"name": "Category",
"dataType": "string"
},
{
"name": "Segment",
"dataType": "string"
},
{
"name": "Product",
"dataType": "string"
},
{
"name": "IsCompete",
"dataType": "bool"
}
]
}
]
}
For a Power BI table schema, you can use the following data types.
Boolean None
Next steps
Sign up for Power BI
Introducing JSON
Overview of Power BI REST API
More questions? Try the Power BI Community
Step 1: Register an app with Azure AD
2/6/2019 • 2 minutes to read • Edit Online
NOTE: Before you register an app for Power BI, you need to Sign up for Power BI.
Next steps
Sign up for Power BI
Get an authentication access token
Walkthrough: Push data into a dataset
Register an application
Overview of Power BI REST API
More questions? Try asking the Power BI Community
Step 2: Get an authentication access token
2/13/2019 • 4 minutes to read • Edit Online
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
After you get an authentication token, you can call any Power BI operation. The next step shows you how to call
the PostDataset operation to create a dataset to push data into a dashboard.
The next step shows you how to create a dataset in Power BI.
Below is the complete code listing.
namespace walkthrough_push_data
{
class Program
{
private static string token = string.Empty;
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
}
}
Next steps
Create a dataset in Power BI
Register an app with Azure AD
Azure AD Authentication Library for .NET NuGet package
Push data into a Power BI dataset
Overview of Power BI REST API
Power BI REST API reference
More questions? Try the Power BI Community
Step 3: Create a dataset in Power BI
2/13/2019 • 4 minutes to read • Edit Online
1. In the Console Application project you created in Step 2 - Get an authentication access token, add using
System.Net;, and using System.IO; to Program.cs.
2. In Program.cs, add the code below.
3. Run the Console App, and login to your Power BI account. You should see Dataset Created in the Console
Window. Also, you can login to Power BI to see the new dataset.
Sample push data into a dataset
Add this code into Program.cs.
In static void Main(string[] args):
Console.ReadLine();
}
}
#endregion
The next step shows you how to get a dataset to add rows into a Power BI table.
Below is the complete code listing.
namespace walkthrough_push_data
{
class Program
{
private static string token = string.Empty;
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
Console.ReadLine();
}
}
#endregion
}
}
Next steps
Get a dataset to add rows into a Power BI table
Get an authentication access token
PostDataset
PostDatasetInGroup
Push data into a Power BI Dashboard
Overview of Power BI REST API
Power BI REST API reference
More questions? Try the Power BI Community
Step 4: Get a dataset to add rows into a Power BI
table
2/13/2019 • 5 minutes to read • Edit Online
1. In the Console Application project you created in Step 2: Walkthrough to push data, Get an authentication
access token, install the Newtonsoft.Json NuGet package. Here's how to install the package:
a. In Visual Studio 2015, choose Tools > NuGet Package Manager > Package Manager Console.
b. In Package Manager Console, enter Install-Package Newtonsoft.Json.
2. After the package is installed, add using Newtonsoft.Json; to Program.cs.
3. In Program.cs, add the code below to get a Dataset ID.
4. Run the Console App, and login to your Power BI account. You should see Dataset ID: followed by an id in
the Console Window.
Sample get a dataset
Add this code into Program.cs.
In static void Main(string[] args):
return datasetId;
}
}
}
#endregion
The next step shows you how to add rows to a Power BI table.
Below is the complete code listing.
namespace walkthrough_push_data
{
class Program
{
private static string token = string.Empty;
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
Console.ReadLine();
}
}
#endregion
return datasetId;
}
}
}
}
#endregion
}
}
Next steps
Add rows to a Power BI table
Newtonsoft.Json
Get Datasets
Push data into Power BI
Overview of Power BI REST API
Power BI REST API reference
More questions? Try the Power BI Community
Step 5: Add rows to a Power BI table
2/13/2019 • 5 minutes to read • Edit Online
1. In the Console Application project you created in Step 2: Walkthrough to push data, Get an authentication
access token, add the code below.
2. Run the Console App, and login to your Power BI account. You should see Rows Added in the Console
Window. You can also login to Power BI to see the rows added to the dataset.
Sample push data into a dataset
Add this code into Program.cs.
In static void Main(string[] args):
static void Main(string[] args)
{
Console.WriteLine("Rows Added");
Console.ReadLine();
}
}
#endregion
namespace walkthrough_push_data
{
class Program
{
private static string token = string.Empty;
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
Console.ReadLine();
}
}
#endregion
return datasetId;
}
}
}
#endregion
Console.WriteLine("Rows Added");
Console.ReadLine();
}
}
#endregion
}
}
Although, we specify that we //Get the first id in the code above, the correct thing to do is search the dataset by
name.
Next steps
Push data into a Power BI Dashboard
Overview of Power BI REST API
Power BI REST API reference
More questions? Try the Power BI Community
Automatic retention policy for real-time data
2/6/2019 • 2 minutes to read • Edit Online
The automatic retention policy in the Power BI service is a query string parameter, which enables a default
retention policy to automatically clean up old data while keeping a constant flow of new data going into your
dashboard. The first retention policy is called first in first out (FIFO ). When enabled, the data is collected in a table
until it hits 200,000 rows. Once the data goes beyond 200,000 rows, the oldest rows get dropped from the dataset.
This maintains between 200,000 and 210,000 rows of only the latest data.
The retention policies are enabled when you first create your datasets. All you need to do is add the “default
retention policy” query parameter to your POST datasets call and set it equal to basicFIFO.
To POST Rows
75 max columns
75 max tables
10,000 max rows per single POST rows request
1,000,000 rows added per hour per dataset
5 max pending POST rows requests per dataset
120 POST rows requests per minute per dataset
If table has 250,000 or more rows, 120 POST rows requests per hour per dataset
200,000 max rows stored per table in FIFO dataset
5,000,000 max rows stored per table in ‘none retention policy’ dataset
4,000 characters per value for string column in POST rows operation
See also
Azure AD service limits and restrictions
Overview of Power BI REST API
Dataset properties
3/29/2019 • 3 minutes to read • Edit Online
The current v1 of datasets API only allows for a dataset to be created with a name and a collection of tables. Each
table can have a name and a collection of columns. Each column has a name and datatype. We are expanding these
properties most notably with support for measures and relationships between tables. The complete list of
supported properties for this release is as follows:
IMPORTANT
It can be accessed at the Datasets Operation Groups page.
Dataset
NAME TYPE DESCRIPTION READ ONLY REQUIRED
Table
NAME TYPE DESCRIPTION READ ONLY REQUIRED
Column
NAME TYPE DESCRIPTION READ ONLY REQUIRED
Measure
NAME TYPE DESCRIPTION READ ONLY REQUIRED
Relationship
NAME TYPE DESCRIPTION READ ONLY REQUIRED
Example
The following code sample includes a number of these properties:
"name": "PushAdvanced",
"tables": [
"name": "Date",
"columns": [
"name": "Date",
"dataType": "dateTime",
"summarizeBy": "none"
},
{
"name": "sales",
"columns": [
"name": "Date",
"dataType": "dateTime",
"summarizeBy": "none"
},
"name": "Sales",
"dataType": "int64",
"formatString": "0",
"summarizeBy": "sum"
],
"measures": [
"expression": "SUM(sales[Sales])/SUM(forecast[forecast])",
},
"name": "forecast",
"columns": [
"name": "date",
"dataType": "dateTime",
"formatString": "m/d/yyyy",
"summarizeBy": "none"
},
"name": "forecast",
"name": "forecast",
"dataType": "int64",
"formatString": "0",
"summarizeBy": "sum"
],
"relationships": [
"name": "2ea345ce-b147-436e-8ac2-9d3c4d82af8d",
"fromTable": "sales",
"fromColumn": "Date",
"toTable": "Date",
"toColumn": "Date",
"crossFilteringBehavior": "bothDirections"
},
"name": "5d95f419-e589-4345-9581-6e70670b1bba",
"fromTable": "forecast",
"fromColumn": "date",
"toTable": "Date",
"toColumn": "Date",
"crossFilteringBehavior": "bothDirections"
}
Data Model versioning
2/6/2019 • 2 minutes to read • Edit Online
The Data Model exposed by an OData Service, such as the Power BI data model, defines a contract between the
OData service and its clients. Services are allowed to extend their model only to the degree that it does not break
existing clients. Breaking changes, such as removing properties or changing the type of existing properties, require
that a new service version is provided at a different service root URL for the new model.
The following Data Model additions are considered safe and do not require services to version their entry point.
Adding a property that is nullable or has a default value; if it has the same name as an existing dynamic
property, it must have the same type (or base type) as the existing dynamic property
Adding a navigation property that is nullable or collection-valued; if it has the same name as an existing
dynamic navigation property, it must have the same type (or base type) as the existing dynamic navigation
property
Adding a new entity type to the model
Adding a new complex type to the model
Adding a new entity set
Adding a new singleton
Adding an action, a function, an action import, or function import
Adding an action parameter that is nullable
Adding a type definition or enumeration
Adding any annotation to a model element that does not need to be understood by the client to interact with the
service correctly
Clients SHOULD be prepared for services to make such incremental changes to their model. In particular, clients
should be prepared to receive properties and derived types not previously defined by the service.
Services SHOULD NOT change their data model depending on the authenticated user. If the data model is user or
user group dependent, all changes MUST be safe changes as defined in this section when comparing the full model
to the model visible to users with limited authorizations.
For more about OData Data Model standards, see OData Version 4.0 Part 1: Protocol Plus Errata 02.
See also
Overview of Power BI REST API
Configure credentials programmatically for Power BI
2/26/2019 • 2 minutes to read • Edit Online
2. Build credentials string according to Update Datasource Examples depending on the credentials type.
4. Call Update Datasource to set credentials, using the gateway and data source ID from step 1 and using the
credential details from step 4.
3. Encrypt the credentials string with Gateway public key using the RSA encryption algorithm.
Use the following helper class for encryption:
/// <summary>
/// </summary>
parameters.Exponent = Convert.FromBase64String(publicKeyExponent);
parameters.Modulus = Convert.FromBase64String(publicKeyModulus);
rsa.ImportParameters(parameters);
// Split the message into different segments, each segment's length is 85. So, the result
may be 85,85,85,20.
int encryptedDataPosition = 0;
else
lengthToCopy = SegmentLength;
encryptedDataPosition += segmentEncryptedResult.Length;
return Convert.ToBase64String(encryptedData);
3. Build credential details like in the previous scenario using the gateway public key retrieved in step [expired
on-prem data source credentials flow ](#expired-on-premises-data source-credentials-flow -on-premises-
data-gateway).
4. build the request body
pbiClient.Gateways.CreateDatasource(gateway.Id, request);
Troubleshooting
No gateway and data source ID found when calling get data sources
This issue means the dataset isn't bound to a gateway. When creating a new dataset, for each cloud connection a
data source with no credentials is created automatically on the cloud gateway of the user. This gateway is used to
store the credentials for cloud connections.
After you create the dataset, an automatic binding is done between the dataset and a suitable gateway, which
contains matching data sources for all connections. If there's no such gateway or multiple suitable gateways, the
automatic binding fails.
Create missing on-premises data sources if any, and bind the dataset to a gateway manually by using Bind To
Gateway.
To discover gateways that could be bound use Discover Gateways.
Encrypt credentials
2/26/2019 • 2 minutes to read • Edit Online
When you call Create Datasource or Update Datasource under an enterprise on-prem gateway using Power BI
Rest API, the credentials value needs to be encrypted using the gateway's public key.
See code example below how to encrypt the credentials in .NET.
Credentials provided to EncodeCredentials method below should be in one of the following formats depending on
the credentials type:
Basic / Windows credentials
Key credentials
OAuth2 credentials
Anonymous credentials
Encrypt credentials
public static class AsymmetricKeyEncryptionHelper
{
// Split the message into different segments, each segment's length is 85. So the result may be
85,85,85,20.
bool hasIncompleteSegment = plainTextArray.Length % SegmentLength != 0;
encryptedDataPosition += segmentEncryptedResult.Length;
}
return Convert.ToBase64String(encryptedData);
}
}
Power BI REST API Reference
1/14/2019 • 2 minutes to read • Edit Online
Power BI is a cloud-based service that you can use to build custom dashboard applications. The Power BI REST
API is a REST-based API that provides programmatic access to Dashboard resources such as Datasets, Tables,
and Rows in Power BI.
NOTE
If you’re interested in viewing or deleting personal data, please review Microsoft's guidance in the Windows Data Subject
Requests for the GDPR site. If you’re looking for general information about GDPR, see the GDPR section of the Service Trust
portal.
namespace walkthrough_push_data
{
class Program
{
private static string token = string.Empty;
//The client id that Azure AD created when you registered your client app.
string clientID = "{Client_ID}";
Console.WriteLine(token);
Console.ReadLine();
return token;
}
#endregion
Console.ReadLine();
}
}
#endregion
return datasetId;
}
}
}
#endregion
Console.WriteLine("Rows Added");
Console.ReadLine();
}
}
#endregion
}
}
Next steps
Push data into a Power BI dataset
Walkthrough - Push data into a Power BI dataset
Register an app with Azure AD
Get an authentication access token
Create a dataset in Power BI
Get a dataset to add rows into a Power BI table
Add rows to a Power BI table
Power BI REST API reference
Overview of Power BI REST API
More questions? Try the Power BI Community
What is Power BI Report Server?
2/15/2019 • 3 minutes to read • Edit Online
Power BI Report Server is an on-premises report server with a web portal in which you display and manage
reports and KPIs. Along with it come the tools to create Power BI reports, paginated reports, mobile reports, and
KPIs. Your users can access those reports in different ways: viewing them in a web browser or mobile device, or
as an email in their in-box.
NOTE
For Power BI Premium, Power BI Report Server is only included with P SKUs. It is not included with EM SKUs.
Web portal
The entry point for Power BI Report Server is a secure web portal you can view in any modern browser. Here,
you access all your reports and KPIs. The content on the web portal is organized in a traditional folder hierarchy.
In your folders, content is grouped by type: Power BI reports, mobile reports, paginated reports, KPIs, and Excel
workbooks. Shared datasets and shared data sources are in their own folders, to use as building blocks for your
reports. You tag favorites to view them in a single folder. And you create KPIs right in the web portal.
Depending on your permissions, you can manage the content in the web portal. You can schedule report
processing, access reports on demand, and subscribe to published reports. You can also apply your own custom
branding to your web portal.
More about the Power BI Report Server web portal.
Power BI reports
You create Power BI reports (.PBIX) with the version of Power BI Desktop optimized for the report server. Then
you publish them to and view them in the web portal in your own environment.
A Power BI report is a multi-perspective view into a data model, with visualizations that represent different
findings and insights from that data model. A report can have a single visualization or pages full of
visualizations. Depending on your role, you may read and explore reports, or you may create them for others.
Install Power BI Desktop optimized for Power BI Report Server.
Paginated reports
Paginated reports (.RDL ) are document-style reports with visualizations, in which tables expand horizontally and
vertically to display all their data, continuing from page to page as needed. They're great for generating fixed-
layout, pixel-perfect documents optimized for printing, such as PDF and Word files.
You can create modern-looking reports using Report Builder or Report Designer in SQL Server Data Tools
(SSDT).
Next steps
Install Power BI Report Server
Download Report Builder
More questions? Try asking the Power BI Community
Comparing Power BI Report Server and the Power BI
service
3/4/2019 • 2 minutes to read • Edit Online
Power BI Report Server and the Power BI service have many similarities and some key differences. This table
explains which is which.
Release cycle Once every 4 months Once a month Latest features and fixes
come to Power BI Service
first. Most core functionality
comes to Power BI Report
Server in the next few
releases; some features only
meant for the Power BI
service.
Power BI Desktop Version optimized for Report Version optimized for Power Power BI Desktop for the
Server, available for BI Service, available from the report server
download with Report Server Windows Store
Power BI Desktop for the
Power BI service
Next steps
Install Power BI Report Server
Tutorial: Explore the Power BI Report Server web
portal in a VM
2/15/2019 • 5 minutes to read • Edit Online
In this tutorial, you create an Azure virtual machine with Power BI Report Server already installed, so you can
experience viewing, editing, and managing sample Power BI and paginated reports, and KPIs.
Double-click the Report Server Web Portal icon. The browser opens http://localhost/reports/browse . In the web
portal, you see various files grouped by type.
NUMBER WHAT IT IS
Excel workbooks
Power BI reports
You can view and interact with Power BI reports in the web portal, and start Power BI Desktop right from the web
portal.
View Power BI reports
1. In the web portal under Power BI reports, select Sample Customer Overview Report. The report opens
in the browser.
2. Select the United States block in the tree map to see how it highlights related values in the other visuals.
Edit in Power BI Desktop
1. Select Edit in Power BI Desktop.
2. Select Allow to allow this web site to open a program on your computer.
The report opens in Power BI Desktop. Note the name in the top bar, "Power BI Desktop (March 2018)".
That's the version optimized for Power BI Report Server.
Use the version of Power BI Desktop that's installed on the VM. You can't go across domains to upload a
report.
3. In the Fields pane, expand the Customers table and drag the Occupation field to Report level filters.
4. Save the report.
5. Go back to the report in the browser and select the browser Refresh icon.
6. Expand the Filters pane on the right to see the Occupation filter you added. Select Professional.
7. Select Browse to go back to the web portal.
Clean up resources
Now that you've finished this tutorial, delete the resource group, virtual machine, and all related resources.
To do so, select the resource group for the VM and select Delete.
Next steps
In this tutorial, you've created a VM with Power BI Report Server. You've tried some of the functionality of the web
portal, and you've opened a Power BI report and a paginated report in their respective editors. This VM has SQL
Server Analysis Services data sources installed, so you can try creating your own Power BI and paginated reports
with those same data sources.
To learn more about creating reports for Power BI Report Server, continue on.
Create a Power BI report for Power BI Report Server
What's new in Power BI Report Server
2/21/2019 • 12 minutes to read • Edit Online
Learn about what's new in Power BI Report Server. This article covers the major feature areas and is updated as
new items are released.
To download the latest versions of Power BI Report Server and Power BI Desktop optimized for Power BI Report
Server, go to On-premises reporting with Power BI Report Server.
For related Power BI "What's New" information, see:
What's new in the Power BI service
What's new in Power BI Desktop
What's new in the mobile apps for Power BI
January 2019
Support for these features in Power BI reports:
Row-level security Setting up row -level security (RLS ) with Power BI Report Server can restrict data access for
given users. Filters restrict data access at the row level, and you can define filters within roles.
Expand and collapse on matrix row headers We've added the ability to expand and collapse individual row
headers, one of the most requested visual features.
Copy and paste between .pbix files You can copy visuals between .pbix files, either from the visual’s context
menu or with the standard Ctrl+C keyboard shortcut, and paste it into another report with Ctrl+V.
Smart alignment guides You see smart alignment guides when moving objects on your report page, like you see
in PowerPoint, to help you align everything on your page. You see the smart guides any time you drag or resize
something on your page. When you move an object near another one, it snaps into a position aligned with the
other object.
Accessibility features Too many accessibility features to list: for example, fields list pane accessibility support. The
fields list pane is fully accessible. You can navigate around the pane using just your keyboard and a screen reader
and use the context menu to add fields to your report page.
Custom Visuals
The API version shipped with this release is 2.3.
Administrator settings
Administrators can set the following properties in SSMS Advanced Properties for the server farm:
AllowedResourceExtensionsForUpload Set extensions of resources that can be uploaded to the report server.
Extensions for built-in file types like *.rdl and *.pbix are not required to be included. Default is “*, *.xml, *.xsd, *.xsl,
*.png, *.gif, *.jpg, *.tif, *.jpeg, *.tiff, *.bmp, *.pdf, *.svg, *.rtf, *.txt, *.doc, *.docx, *.pps, *.ppt, *.pptx”.
SupportedHyperlinkSchemes Sets a comma-separated list of the URI schemes allowed to be defined on
Hyperlink actions that are allowed to be rendered or “*” to enable all hyperlink schemes. For example, setting
“http,https” would allow hyperlinks to “https://www. contoso.com”, but would remove hyperlinks to
“mailto:[email protected]” or “javascript:window.open(‘www.contoso.com’, ‘_blank’)”. Default is “*”.
August 2018
August 2018 sees many new features added to the version of Power BI Desktop optimized for Power BI Report
Server. Here they are, broken out by area:
Reporting
Analytics
Modeling
Highlights of the August 2018 release
Out of the whole long list of new features, these features stand out as especially interesting. For more information,
see our blog post.
Report theming
Report theming has been added to the August 2018 release of Power BI Report Server, which allows you to
quickly color your entire report to match a theme or corporate branding. When you import a theme, all your charts
automatically update to use the theme colors, and you can have access to the theme colors from the color palette.
You can upload a theme file using the Import Theme option under the Switch Theme button.
A theme file is a JSON file that includes all the colors you want us to use in your report along with any default
formatting you want to apply to visuals. Here is a simple sample JSON theme that just updates the default colors
of the report:
{
"name": "waveform",
"dataColors": [ "#31B6FD", "#4584D3", "#5BD078", "#A5D028", "#F5C040", "#05E0DB", "#3153FD", "#4C45D3",
"#5BD0B0", "#54D028", "#D0F540", "#057BE0" ],
"background":"#FFFFFF",
"foreground": "#F2F2F2",
"tableAccent":"#5BD078"
}
NOTE
This scenario is supported only when SAP HANA is treated as a relational data source with reports you’ve created in Power BI
desktop. To enable this in Power BI Desktop, in the DirectQuery menu under Options, check the “Treat SAP HANA as a
relational source” and click OK.
Custom Visuals
The API version shipped with this release is 1.13.0.
Now custom visuals can fall back to a previous version compatible with the current version of the server
API (if available).
Reporting
Report Theming
Buttons to trigger actions
Combo chart line styles
Improved default sort for visuals
Numeric slicer
Advanced slicer syncing
Log axis improvements
Data label options for funnel chart
Set line stroke width to zero
High contrast support for reports
Donut radius control
Pie and donut detail labels position control
Format data labels separately for each measure in a combo chart
New visual header with more flexibility and formatting
Wallpaper formatting
Tooltips for table & matrix
Turn tooltips off for visuals
Slicer accessibility
Formatting pane improvements
Stepped line support for line and combo charts
Sorting experience improvement
Print reports through Export to PDF (in Power BI Desktop)
Create bookmark groups
Slicer restatement
Report page tooltips
Analytics
New DAX function: COMBINEVALUES ()
Measure drillthrough
Conditional formatting by a different field
Conditional formatting by values
Modeling
Filtering and sorting in data view
Improved locale formatting
Data categories for measures
Statistical DAX functions
May 2018
Configure Power BI iOS mobile apps for report servers remotely
As an IT admin, you can now use your organization's MDM tool to remotely configure Power BI iOS mobile app
access to a report server. See Configure Power BI iOS mobile app access to a report server remotely for details.
March 2018
March 2018 sees many, many new features added to the version of Power BI Desktop optimized for Power BI
Report Server. Here they are, broken out by area:
Visuals
Reporting
Analytics
Performance
Report server
Others
Highlights of the March 2018 release
Out of the whole long list of new features, these features stand out as especially interesting.
Rule-based conditional formatting for table and matrix
Create rules to conditionally color the background or font color of a column based on specific business logic in
your table or matrix.
Show and hide pages
You want readers to have access to your report, but some of the pages aren't quite finished. Now you can hide
them until they're ready. Or you can hide pages from normal navigation, and readers can get to the page by
bookmarks or drillthrough.
Bookmarking
Speaking of bookmarking, create bookmarks to tell a story with the data in your report.
Cross-highlighting for bookmarks: Bookmarks maintain and display the cross-highlighted state of the report
page at the time you created the bookmark.
More bookmark flexibility: Bookmarks reflect the properties you set in your report, and affect only the visuals
you choose.
Multi-select data points across multiple charts
Select multiple data points in multiple charts and have the cross-filtering apply to the entire page.
Sync slicers across multiple pages of your report
A slicer can apply to one, two, or more pages in a report.
Quick measures
Create new measures based on existing measures and numerical columns in a table.
Drilling down filters other visuals
When you drill down in a given category in one visual, you can have it filter all the visuals on the page by that
same category.
Visuals updates
Cell alignment for table and matrix
Display units and precision control for table & matrix columns
Overflow data labels for bar and column charts
Control data label background color for Cartesian and maps visuals
Bar/column padding control
Increase area used for axis labels in charts
Scatter visual from x- & y-axis groupings
High density sampling for maps based on latitude and longitude
Responsive slicers
Add an anchor date for relative date slicer
Reporting
Turn off the visual header in reading mode for a report
Report options for slow data sources
Improved default visual placement
Control visual ordering through the selection pane
Lock objects on your report
Search the formatting and analytics pane
Field properties pane and field descriptions
Analytics
UTCNOW () and UTCTODAY ()
Mark custom date table
Drill filters other visuals
Cell-level formatting for multidimensional AS models for multi-row card
Performance
Filtering performance improvements
DirectQuery performance improvements
Open and save performance improvements
“Show items with no data” improvements
Report server
Export to accessible PDF
When you export a paginated (RDL ) report to PDF, you can now get an accessible/tagged PDF file. It's larger in
size but easier for screen readers and other assistive technologies to read and navigate. You enable accessible PDF
by setting the AccessiblePDF device information setting to True. See PDF Device Information Settings and
Changing Device Information Settings.
Other improvements
Add Column From Examples improvements
Consulting Services quick link
Improved error reporting
View previous errors you’ve encountered
October 2017
Power BI report data sources
Power BI reports in Power BI Report Server can connect to a variety of data sources. You can import data and
schedule data refresh, or query it directly using DirectQuery or a live connection to SQL Server Analysis Services.
See the list of data sources that support scheduled refresh and those that support DirectQuery in "Power BI report
data sources in Power BI Report Server".
Scheduled data refresh for imported data
In Power BI Report Server, you can set up scheduled data refresh to keep data up-to-date in Power BI reports with
an embedded model rather than a live connection or DirectQuery. With an embedded model you import the data,
so it's disconnected from the original data source. It needs to be updated to keep the data fresh, and scheduled
refresh is the way to do that. Read more about "scheduled refresh for Power BI reports in Power BI Report Server".
Editing Power BI reports from the server
You can open and edit Power BI report (.pbix) files from the server, but you get back the original file you uploaded.
This means if the data has been refreshed by the server, the data won’t be refreshed when you first open
the file. You need to manually refresh it locally to see the change.
Large file upload/download
You can upload files up to 2 GB in size, though by default this limit is set to 1 GB in the Report Server settings in
SQL Server Management Studio (SSMS ). These files are stored in the database just as they are for SharePoint,
and no special configuration for the SQL Server catalog is required.
Accessing shared datasets as OData feeds
You can access shared datasets from Power BI Desktop with an OData feed. For more information, see Accessing
shared datasets as OData feeds in Power BI Report Server.
Scale -out
This release supports scale-out. Use a load-balancer and set server affinity for the best experience. Note that the
scenario is not yet optimized for scale-out, so you'll see models potentially replicated across multiple nodes. The
scenario will work without the Network Load Balancer and sticky sessions. However, you'll not only see an over-
use of memory across nodes as the model is loaded N times, but performance will slow in between connections as
the model is streamed as it hits a new node in between requests.
Administrator settings
Administrators can set the following properties in SSMS Advanced Properties for the server farm:
EnableCustomVisuals: True/False
EnablePowerBIReportEmbeddedModels: True/False
EnablePowerBIReportExportData: True/False
MaxFileSizeMb: Default is now 1000
ModelCleanupCycleMinutes: How often it checks to evict models from memory
ModelExpirationMinutes: How long until model expires and is evicted, based on last time used
ScheduleRefreshTimeoutMinutes: How long data refresh can take for a model. By default, this is two hours.
There is no hard upper limit.
Config file rsreportserver.config
<Configuration>
<Service>
<PollingInterval>10</PollingInterval>
<IsDataModelRefreshService>false</IsDataModelRefreshService>
<MaxQueueThreads>0</MaxQueueThreads>
</Service>
</Configuration>
Developer API
The developer API (REST API) introduced for SSRS 2017 has been extended for Power BI Report Server to work
with both Excel files and .pbix files. One potential use case is to programmatically download files from the server,
refresh them, and then republish them. This is the only way to refresh Excel workbooks with PowerPivot models,
for example.
Note that there is a new separate API for large files, which will be updated in the Power BI Report Server version
of Swagger.
SQL Server Analysis Services (SSAS ) and the Power BI Report Server memory footprint
Power BI Report Server now hosts SQL Server Analysis Services (SSAS ) internally. This isn't specific to scheduled
refresh. Hosting SSAS can greatly expand the report server memory footprint. The AS.ini configuration file is
available on the server nodes, so if you're familiar with SSAS, you may want to update the settings, including
maximum memory limit and disk caching etc. See Server properties in Analysis Services for details.
Viewing and interacting with Excel workbooks
Excel and Power BI contain a portfolio of tools that is unique in the industry. Together, they enable business
analysts to more easily gather, shape, analyze, and visually explore their data. In addition to viewing Power BI
reports in the web portal, business users can now do the same with Excel workbooks in Power BI Report Server,
giving them a single location to publish and view their self-service Microsoft BI content.
We’ve published a walkthrough of how to add Office Online Server (OOS ) to your Power BI Report Server
preview environment. Customers with a Volume Licensing account can download OOS from the Volume License
Servicing Center at no cost and will have view -only functionality. Once configured, users can view and interact with
Excel workbooks that:
Have no external data source dependencies
Have a live connection to an external SQL Server Analysis Services data source
Have a PowerPivot data model
Support for new table and matrix visuals
Power BI Report Server now supports the new Power BI table and matrix visuals. To create reports with these
visuals, you will need an updated Power BI Desktop release for the October 2017 release. It can't be installed side
by side with the Power BI Desktop (June 2017) release. For the latest version of Power BI Desktop, on the Power
BI Report Server download page, select Advanced download options.
June 2017
Power BI Report Server made generally available (GA).
May 2017
Power BI Report Server Preview made available
Ability to publish Power BI reports on-premises
support for custom visuals
Support for Analysis Services live connections only with more data sources to come.
Power BI Mobile app updated to display Power BI reports hosted in Power BI Report Server
Enhanced collaboration in reports with comments
Next steps
Check these sources to keep up-to-date on new features in Power BI Report Server.
Microsoft Power BI Blog
SQL Server Reporting Services Team Blog
The Guy in a Cube YouTube channel
More questions? Try asking the Power BI Community
Changelog for Power BI Report Server
4/2/2019 • 6 minutes to read • Edit Online
This change log is for Power BI Report Server and lists new items along with bug fixes for each released build.
For detailed information about new features, see What's new in Power BI Report Server.
January 2019
Power BI Report Server
Version 1.4.7024.16477 (Build 15.0.1102.299 ), Released: March 28, 2019
Bug Fixes
Power BI Reports
Fix for issue with basic credentials when using direct query for SAP Hana and SAP
BW
Fix for OData feed data refresh fails with "Could not load file or assembly
'Microsoft.OData.Core.NetFX35.V7"
Power BI Report Server
Version 1.4.6969.7395 (Build 15.0.1102.235 ), Released: January 30, 2019
Bug Fixes
Power BI Reports
Fix for issue with basic credentials when using direct query
Fix for bidirectional relationships with row -level security filters applied
Fix for stale data after a model refresh in a scale-out environment
Fix for double scrollbar for table/ matrix on Firefox 63+
Fix for +/- icon size in Internet Explorer
Paginated Reports
Fix for issue with updating usage of a shared datasource for a report
Version 1.4.6960.38798 (Build 15.0.1102.222 ), Released: January 22, 2019
Features
Power BI Reports
Support for Row -level security
Expand and collapse on matrix row headers
Copy and paste between .pbix files
Smart alignment guides
Support for SAP BW 2.0 Connector
Administrators
Ability to restrict extensions of resources that can be uploaded to the report server
Ability to restrict supported hyperlink schemes
Programmability
New Web API: /PowerBIReports({Id})/DataModelRoles (GET)
New Web API: /PowerBIReports({Id})/DataModelRoleAssignments (GET & PUT)
See Power BI Report Server REST API for more details
Bug Fixes
HTML Injection Vulnerability
Export to PDF is not showing Euro symbol
Saving a password with multiple data sources in Power BI reports invalidates non changed
passwords
Visuals display issues in Power BI Mobile App after being idle
Power BI Desktop (optimized for Power BI Report Server)
Version: 2.65.5313.1562 (January 2019 ), Released: January 30, 2019
Shortcut and pinned icons remain after uninstalling Power BI Report Server
Fix for pinning Power BI Report Server to start menu giving black text on a black icon
Version: 2.65.5313.1421 (January 2019 ), Released: January 22, 2019
Contains changes required for connection with Power BI Report Server (January 2019)
August 2018
Power BI Report Server
Version 1.3.6816.37243 (Build 15.0.2.557 ), Released: August 30, 2018
Bug fixes
Fixed an issue when server was upgraded from earlier versions of PBI Report Server
where a binding redirect was not updated, customers saw this :
Failed to load expression host assembly. Details: Could not load file or assembly
'Microsoft.ReportingServices.ProcessingObjectModel, Version=2018.7.0.0,
Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of its dependencies. The
located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040) (rsErrorLoadingExprHostAssembly)
March 2018
Power BI Report Server
Version 1.2.6690.34729 (Build 15.0.2.402 ), Released: April 27, 2018
Bug fixes
Enable migration of SQL Server Reporting Services 2017 catalogs
For Power BI Reports (PBIX)
Reports can be refresh when a server is configured to use custom authentication
Modifying the properties of a report does not reset data source credentials
For Paginated Reports (RDL )
Usage of Lookup() or derivative functions such as LookupSet() and MultiLookup()
in RDL Expressions no longer result in #Error
Linked reports respect the page size of the target report when printing
Subscriptions can be created for linked reports that use cascading parameters
Multi-value parameter defaults can be modified when using IE11
Data-driven subscription delivery options are editable
Subscriptions can be viewed and edited while the subscription is executing
Setting data source credentials does not remove expression-based connection
strings
For KPIs
Trend lines are refreshed when data is updated
General stability improvements
Version 1.2.6660.39920 (Build 15.0.2.389 ), Released: March 28, 2018
Bug fixes
For Power BI Reports (PBIX), fix for Export Data not working from Power BI Visuals
For Power BI Reports (PBIX), fix for URL filters not working
For Paginated Reports (RDL ), fix for images not being displayed correctly in IE11 after
upgrading to Power BI Report Server March release
Version 1.2.6648.38132 (Build 15.0.2.378 ), Released: March 19, 2018
Security Updates
Accessibility Improvements
Bug fixes
For Paginated Reports (RDL ), fix for parameters visibility in a linked report that is reverted
after editing its properties
Fix for web portal with custom forms authentication that is ignoring the sliding expiration
cookie
Fix for export to Word that creates unequal row height if row content is empty
For Paginated Reports (RDL ), fix for expression based connection string that is deleted
when we change credential for data source
Fix for ability to use KPI with text values
For Paginated Reports (RDL ), fix for ability to assign a new dataset to an existing Paginated
Report (RDL )
Other stability and usability fixes
Power BI Desktop (optimized for Power BI Report Server)
Version: 2.56.5023.1043 (March 2018), Released: March 19, 2018
Contains changes required for connection with Power BI Report Server (March 2018)
October 2017
Power BI Report Server
Version 1.1.6582.41691 (Build 14.0.600.442 ), Released: January 10, 2018
Security Updates
Bug Fixes
Fix for Model.GetParameters returning 400
Fix for setting shared data set to existing Paginated Reports (RDL )
Fix for ExecutionNotFoundException when exporting report with different parameter
values to PDF
Version 1.1.6551.5155 (Build 14.0.600.438 ), Released: December 11, 2017
Bug Fixes
Failure to save data after refreshing for certain Power BI Desktop reports.
Version 1.1.6530.30789 (Build 14.0.600.437 ), Released: November 17, 2017
Bug Fixes
Fix for Basic Authentication Scenarios
Fix for weekdays were not selectable on schedule page for Subscriptions, Cache Refresh
Plans and History Snapshots on Portal
For Paginated Reports (RDL ), fix for having expressions in Textbox with CanGrow property
set to false is resulting in values not showing colors and fonts not being proper
For Power BI Reports (PBIX), fix for adding Legends to line chart renders an empty visual
Version 1.1.6514.9163 (Build 14.0.600.434 ), Released: November 1, 2017
Bug Fixes
Fix for upload reliability problems for PBIX reports over 500MB
Fix for data loading issue for PBIX reports over 1GB
Version 1.1.6513.3500 (Build 14.0.600.433 ), Released: October 31, 2017
Features
Embedded Data Model Support
Excel Workbook Viewing (with Office Online Server integration enabled)
Scheduled Data Refresh (PBIX)
Direct Query Support
Large File Support (up to 2 GB )
Public REST API
Shared Dataset support in Power BI Desktop (via oData)
URL Parameter Support for PBIX files
Accessibility improvements
Power BI Desktop (optimized for Power BI Report Server)
Version: 2.51.4885.3981 (October 2017 ), Released: April 10, 2018
Security Updates
Version: 2.51.4885.2501 (October 2017 ), Released: January 10, 2018
Security Updates
Version: 2.51.4885.1423 (October 2017 ), Released: November 17, 2017
Bug Fixes
Fix for 32-bit Power BI Desktop failing to run on x86 OS
For Power BI Reports (PBIX), fix to show x-axis gridlines
Other minor bug fixes
Version: 2.51.4885.1041 (October 2017 ), Released: October 31, 2017
Features
Contains changes required for connection with Power BI Report Server (October 2017)
June 2017
Power BI Report Server
Build 14.0.600.309, Released: January 10, 2018
Security Updates
Build 14.0.600.305, Released: September 19, 2017
Bug Fixes
Update to the latest Bing Maps Web Control
Build 14.0.600.301, Released: July 11, 2017
Bug Fixes
The {{UserId}} tag resolves to the stored credentials instead of the user executing the
report in Power BI Reports
Some images fail to render in Power BI Report Server reports
Unable to change the name of a Power BI Report in the Power BI Report Server
Unable to load Custom Visuals in the Power BI mobile application (it requires reinstall of
the mobile app to clear up the local cache)
Build 14.0.600.271,Released: June 12, 2017
Power BI Report Server initial release
Power BI Desktop (optimized for Power BI Report Server)
Version: 2.47.4766.4901 (June 2017 ), Released: January 10, 2018
Security Updates
Next steps
What is Power BI Report Server? Administrator overview
Install Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Support timeline for Power BI Report Server
2/15/2019 • 2 minutes to read • Edit Online
Power BI Report Server releases a few times per year. Security and critical updates are available until the next
release becomes generally available (GA). After the next release, the previous release continues to receive security
updates for the remainder of the 12-month release lifespan.
This support policy allows us to deliver innovation to customers at a rapid rate while providing flexibility for
customers to adopt the innovation at their pace.
Security and Critical Updates servicing phase - When running the latest current version of Power BI Report
Server, you receive both Security and Critical updates.
Security Updates (Only) servicing phase - After the release of a new version, support for older versions
reduces to Security updates only for the rest of the 12-month support lifecycle (shown in figure 1).
Version history
VERSION AVAILABILITY DATE SUPPORT END DATE
To download Power BI Report Server, and Power BI Desktop optimized for Power BI Report Server, go to On-
premises reporting with Power BI Report Server.
Next steps
What's new in Power BI Report Server
What is Power BI Report Server? Administrator overview
Install Power BI Report Server
More questions? Try asking the Power BI Community
Hardware and software requirements for installing
Power BI Report Server
3/22/2019 • 3 minutes to read • Edit Online
This article lays out the minimum hardware and software requirements to install and run Power BI Report Server.
Memory Minimum: 1 GB
Recommended: At least 4 GB
Processor type x64 Processor: AMD Opteron, AMD Athlon 64, Intel Xeon
with Intel EM64T support, Intel Pentium IV with EM64T
support
COMPONENT REQUIREMENT
Windows 10 Home
Windows 10 Professional
Windows 10 Enterprise
Windows 8.1
Windows 8
Windows 8 Pro
Windows 8 Enterprise
NOTE
Installation of Power BI Report Server is supported on x64 processors only.
Considerations
Power BI Report Server will install default values to configure the core settings required to make a report server
operational. It has the following requirements:
A SQL Server Database Engine must be available after setup and before you configure the database for the
report server. The Database Engine instance hosts the report server database that Reporting Services
Configuration Manager will create. The Database Engine is not required for the actual setup experience.
Reporting Services Features Supported by the Editions of SQL Server outlines differences between the editions
of SQL Server.
The user account that runs Setup must be a member of the local Administrators group.
The user account that runs Reporting Services Configuration Manager must have permission to access and
create databases on the Database Engine instance that hosts the report server databases.
Setup must be able to use the default values to reserve the URLs that provide access to the report server and
the web portal. These values are port 80, a strong wildcard, and the virtual directory names in the format
ReportServer and Reports.
Next steps
What is Power BI Report Server?
Administrator overview
Install Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Browser support for Power BI Report Server
1/14/2019 • 3 minutes to read • Edit Online
Learn about what browser versions are supported for managing and viewing Power BI Report Server and the
Report Viewer Controls.
Microsoft Edge (+) Negotiate, Kerberos, NTLM, Negotiate Yes. The default
Basic authentication settings work
with Edge.
Your browser does not support scripts or has been configured to not allow scripts to run. Click here to view
this report without scripts
If you choose to view the report without script support, the report is rendered in HTML without report viewer
capabilities such as the report toolbar and the document map.
NOTE
The report toolbar is part of the HTML Viewer component. By default the toolbar appears at the top of every report that is
rendered in a browser window. The report viewer provides features include the ability to search the report for information,
scroll to a specific page, and adjust the page size for viewing purposes. For more information about the report toolbar or
HTML Viewer, see HTML Viewer and the Report Toolbar.
Browser support for Report Viewer web server controls in Visual Studio
The Report Viewer Web server control is used to embed report functionality in an ASP.NET web application. For
more information on how to get the Report Viewer Control, see Integrating Reporting Services Using Report
Viewer Controls - Get Started.
Use a browser that has script support enabled. If the browser cannot run scripts, you cannot view the report.
Microsoft Windows
Windows 7, 8.1, 10; Windows Server 2008 R2, 2012, 2012 R2
Microsoft Edge (+)
Microsoft Internet Explorer 11
Google Chrome (+)
Mozilla Firefox (+)
(+) Latest publicly released version
Next steps
Administrator overview
Install Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Admin overview, Power BI Report Server
1/14/2019 • 2 minutes to read • Edit Online
This article is the administration overview of Power BI Report Server, an on-premises location for storing and
managing your Power BI, mobile, and paginated reports. This article introduces concepts of planning, deploying,
and managing your Power BI Report Server, with links to more information.
Security
Security and protection are important to every organization. You can learn about authentication, authorization,
roles, and permissions over in the security documentation.
Next steps
Install Power BI Report Server
Find your report server product key
Install Power BI Desktop optimized for Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Power BI report scheduled refresh in Power BI Report
Server
1/17/2019 • 3 minutes to read • Edit Online
Scheduled refresh for Power BI reports allows the data for a report to stay up to date.
Scheduled refresh is specific to Power BI reports with an embedded model. Meaning you imported data into the
report instead of using a live connection or DirectQuery. When importing your data, it is disconnected from the
original data source and needs to be updated to keep data fresh. Scheduled refresh is the way to keep your data up
to date.
Scheduled refresh is configured within the management section of a report. For more information on how to
configure scheduled refresh, see How to configure Power BI report scheduled refresh.
Next steps
Configure scheduled refresh on a Power BI report.
More questions? Try asking the Power BI Community
Power BI report data sources in Power BI Report
Server
1/14/2019 • 6 minutes to read • Edit Online
Power BI reports can connect to a number of data sources. Depending on how data is used, different data sources
are available. Data can be imported or data can be queried directly using DirectQuery or a live connection to SQL
Server Analysis Services.
These data sources are specific to Power BI reports used within Power BI Report Server. For information about
data sources supported with paginated reports (.rdl), see Data Sources Supported by Reporting Services.
IMPORTANT
All data sources in a Power BI Desktop report must support configuring scheduled refresh.
Facebook Yes No No
Impala Yes No No
Power BI service No No No
R Script Yes No No
Snowflake Yes No No
Smartsheet Yes No No
IMPORTANT
Row-level security configured at the data source should work for certain DirectQuery (SQL Server, Azure SQL Database,
Oracle and Teradata) and live connections assuming Kerberos is configured properly in your environment.
Amazon Redshift No No No No
Azure HDInsight No No No No
(HDFS)
Facebook No No No No
Folder No No No Yes
Google Analytics No No No No
Impala No No No No
Microsoft Exchange No No No No
Microsoft Exchange No No No No
Online
Power BI service No No No No
R Script No No No No
Salesforce Objects No No No No
Salesforce Reports No No No No
Snowflake No No No No
appFigures (Beta) No No No No
Azure Analysis No No No No
Services database
(Beta)
Azure Cosmos DB No No No No
(Beta)
Azure HDInsight No No No No
Spark (Beta)
comScore Digital No No No No
Analytix (Beta)
GitHub (Beta) No No No No
Google BigQuery No No No No
(Beta)
IBM Informix No No No No
database (Beta)
Kusto (Beta) No No No No
MailChimp (Beta) No No No No
Microsoft Azure No No No No
Consumption Insights
(Beta)
Mixpanel (Beta) No No No No
Planview Enterprise No No No No
(Beta)
Projectplace (Beta) No No No No
QuickBooks Online No No No No
(Beta)
Smartsheet No No No No
Spark (Beta) No No No No
SparkPost (Beta) No No No No
Stripe (Beta) No No No No
SweetIQ (Beta) No No No No
Troux (Beta) No No No No
Twilio (Beta) No No No No
tyGraph (Beta) No No No No
Vertica (Beta) No No No No
ANONYMOUS USERNAME AND WINDOWS
DATA SOURCE AUTHENTICATION KEY AUTHENTICATION PASSWORD AUTHENTICATION
Webtrends (Beta) No No No No
Zendesk (Beta) No No No No
INTEGRATED
ANONYMOUS KEY USERNAME AND WINDOWS WINDOWS
DATA SOURCE AUTHENTICATION AUTHENTICATION PASSWORD AUTHENTICATION AUTHENTICATION
Next steps
Now that you've connected to your data source, create a Power BI report using data from that data source.
More questions? Try asking the Power BI Community
Paginated report data sources in Power BI Report
Server
1/14/2019 • 2 minutes to read • Edit Online
Reporting Services paginated reports in Power BI Report Server support the same data sources that are supported
in SQL Server Reporting Services. See the list of Data sources supported by Reporting Services.
Next steps
Now that you've connected to your data source, create a paginated report.
More questions? Try asking the Power BI Community
Troubleshoot scheduled refresh in Power BI Report
Server
2/13/2019 • 7 minutes to read • Edit Online
This article discusses resources available to troubleshoot issues with scheduled refresh in Power BI Report Server.
As issues come up, this article will be updated with information to help you.
Common issues
The following are the more common issues you will hit when trying to schedule refresh for a report.
Driver related problems
Connecting to different data sources may require 3rd party drivers that need to be installed in order to connect
successfully. Not only would you need to install them on the machine you are using Power BI Desktop on, but you
will also need to make sure the driver is installed on the report server.
The driver may also come in both 32bit and 64bit. Make sure to install the 64bit driver as Power BI Report Server
is 64bit.
Please refer to the manufacturer for details on how to install and configure 3rd party drivers.
Memory pressure
Memory pressure can occur when reports require more memory to process and render. Schedule refresh on
reports may demand a significant amount of memory on the machine. Especially for larger reports. Memory
pressure can result in report failures as well as a potential crash of the report server itself.
If you are encountering memory pressure consistently, it may be worth looking at a scaled out deployment of the
report server in order to spread the load of resources. You can also define that a given report server is used for
data refresh with the IsDataModelRefreshService setting within rsreportserver.config. With this setting, you could
define one or more servers to be the front end server to handle on demand reports, and have another set of
servers to only be used for scheduled refresh.
For information on how to monitor an Analysis Services instance, see Monitor an Analysis Services Instance.
For information about memory settings within Analysis Services, see Memory Properties.
Kerberos configuration
Connecting to a data source with windows credentials may require configuring Kerberos constrained delegation to
make a successful connection. For more information about how to configure Kerberos constrained delegation, see
Configure Kerberos to use Power BI reports.
Known issues
Information about known issues will be listed here when they become available.
Configuration settings
The following settings can be used to affect scheduled refresh. Settings set within SQL Server Management Studio
(SSMS ) apply to all report servers within a scale-out deployment. Settings configured within rsreportserver.config
are for the specific server they are set on.
Settings within SSMS:
SETTING DESCRIPTION
ModelExpirationMinutes Defines how long until the model expires based on the last
time used and is evicted. Default is 60 minutes.
ScheduleRefreshTimeoutMinutes Defines how long the data refresh can take for a mode.
Default is 120 minutes. There is no upper limit.
<Configuration>
<Service>
<PollingInterval>10</PollingInterval>
<IsDataModelRefreshService>false</IsDataModelRefreshService>
<MaxQueueThreads>0</MaxQueueThreads>
</Service>
</Configuration>
Error condition
Successful refresh
2017-10-25 15:23:41.9370|INFO|6|Handling event with data: TimeEntered: 10/25/2017 8:23:41 PM, Type: Event,
SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, EventType: DataModelRefresh
2017-10-25 15:23:41.9370|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Data Refresh.
2017-10-25 15:23:41.9370|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Retrieving PBIX AsDatabaseInfo.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Verifying all the data sources are embedded.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Verifying connection strings are valid.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Streaming model to Analysis Server.
2017-10-25 15:23:42.7603|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Refreshing the model.
2017-10-25 15:23:51.5258|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Removing credentials from the model.
2017-10-25 15:23:51.6508|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a,
Status: Starting Saving model to the catalog.
Incorrect Credentials
Analysis Services
There may be times you want to modify Analysis Services for diagnosing issues, or adjust memory limits.
IMPORTANT
These settings will be reset any time you upgrade the report server. Be sure to keep a copy of your changes and reapply
them if needed.
Install location
The default location for Power BI Report Server, and Analysis Services is the following.
C:\Program Files\Microsoft Power BI Report Server\PBIRS\ASEngine
The following settings are reset when ever the Analysis Services process is launched. Any changes you make to
these will be ignored.
ConfigurationSettings\PrivateProcess
ConfigurationSettings\DataDir
ConfigurationSettings\LogDir
ConfigurationSettings\TempDir
ConfigurationSettings\BackupDir
ConfigurationSettings\AllowedBrowsingFolders
ConfigurationSettings\CrashReportsFolder
ConfigurationSettings\ExtensionDir
ConfigurationSettings\Port
ConfigurationSettings\DeploymentMode
ConfigurationSettings\ServerLocation
ConfigurationSettings\TMCompatabilitySKU
ConfigurationSettings\FlightRecorder\TraceDefinitionFile
Profiling the local Analysis Services process
A SQL Profiler trace can be run on the local Analysis Services process for diagnostic purposes. To connect to the
local Analysis Services instance, do the following.
SQL Server Profiler Trace is included with the SQL Server Management Studio (SSMS ) download.
1. Start SQL Server Profiler as an administrator.
2. Select the New Trace button.
3. In the Connect to server dialog, select Analysis Services and enter localhost:5132 for the server name.
4. In the Trace properties dialog, select the events you want to capture and select Run.
Welcome to the developer handbook for Power BI Report Server, an on-premises location for storing and
managing your Power BI, mobile, and paginated reports.
This handbook highlights options you have, as a developer, to work with Power BI Report Server.
Embedding
For any report within Power BI Report Server, you can embed within an iFrame by adding the querystring
parameter ?rs:Embed=true to the URL. This technique works with Power BI reports as well as other report types.
Report Viewer Control
For paginated reports, you can take advantage of the Report Viewer Control. With it, you can place the control
within a .NET windows or web application. For more information, see Get started with the Report Viewer Control.
APIs
You have several API options for interacting with Power BI Report Server. This technique includes the following.
REST APIs
URL Access
WMI Provider
You can also use the open-source PowerShell utilities to manage your report server.
NOTE
The PowerShell utilities don't currently support Power BI Desktop files (.pbix).
Custom extensions
The Extension Library is a set of classes, interfaces, and value types that are included in Power BI Report Server.
This library provides access to system functionality and is designed to be the foundation on which Microsoft .NET
Framework applications can be used to extend Power BI Report Server components.
There are several types of extensions you can build.
Data processing extensions
Delivery extensions
Rendering extensions for paginated reports
Security extensions
To learn more, see Extension library.
Next steps
Get started with the Report Viewer Control
Building Applications Using the Web Service and the .NET Framework
URL Access
Extension library
WMI Provider
More questions? Try asking the Power BI Community
Quickstart: Embed a Power BI Report Server report
using an iFrame in SharePoint Server
2/13/2019 • 2 minutes to read • Edit Online
In this quickstart you will learn how to embed a Power BI Report Server report by using an iFrame in a SharePoint
page. If you are working with SharePoint Online, Power BI Report Server must be publicly accessible. In
SharePoint Online, the Power BI Web Part that works with the Power BI service doesn’t work with Power BI Report
Server.
Prerequisites
You will need to have Power BI Report Server installed and configured.
You will need to have Power BI Desktop optimized for Power BI Report Server installed.
You will need to have a SharePoint environment installed and configured.
3. Select the gear on the top right and select Edit Page.
7. In the ribbon select the Format Text tab then select Edit Source.
8. In the Edit Source window paste your iFrame code and select OK.
For example:
9. In the ribbon select the Page tab and select Stop Editing.
Learn how to install Power BI Desktop optimized for Power BI Report Server.
To create Power BI reports for Power BI Report Server, you need to download and install Power BI Desktop
optimized for Power BI Report Server. This release is different from the Power BI Desktop used with the Power BI
service. For example, the version of Power BI Desktop for the Power BI service includes preview features that
aren't in the Power BI Report Server version until they're released. Using this release makes sure that the report
server can interact with a known version of the reports and model.
The good news is that you can install Power BI Desktop, and Power BI Desktop optimized for Power BI Report
Server, side by side on the same computer.
Or go directly to Microsoft Power BI Desktop (Optimized for Power BI Report Server - January 2019) in
the Microsoft Download Center.
2. In the Download Center page, select Download.
3. Depending on your computer, select:
PBIDesktopRS.msi (the 32-bit version) or
PBIDesktopRS_x64.msi (the 64-bit version).
4. After you download the installer, run the Power BI Desktop (January 2019) Setup Wizard.
5. At the end of the installation, check Start Power BI Desktop now.
It starts automatically and you're ready to go.
The Power BI Desktop version for the Power BI service doesn't have the month and year in the title bar.
Next steps
Now that you have Power BI Desktop installed, you can start creating Power BI reports.
Create a Power BI report for Power BI Report Server
What is Power BI Report Server?
More questions? Try asking the Power BI Community
Create a Power BI report for Power BI Report Server
2/15/2019 • 2 minutes to read • Edit Online
You can store and manage Power BI reports on premises in the Power BI Report Server web portal, just as you
can store Power BI reports in the cloud in the Power BI service (https://powerbi.com). You create and edit reports
in Power BI Desktop, and publish them to the web portal. Then report readers in your organization can view
them in a browser or in a Power BI mobile app on a mobile device.
Or go directly to Microsoft Power BI Desktop (Optimized for Power BI Report Server - August 2018) in
the Microsoft Download Center.
2. In the Download Center page, select Download.
3. Depending on your computer, select:
PBIDesktopRS.msi (the 32-bit version) or
PBIDesktopRS_x64.msi (the 64-bit version).
4. After you download the installer, run the Power BI Desktop (August 2018) Setup Wizard.
5. At the end of the installation, check Start Power BI Desktop now.
It starts automatically and you're ready to go. You can tell you have the right version because "Power BI
Desktop (August 2018)" is in the title bar.
6. If you're not familiar with Power BI Desktop, consider watching the videos on the welcome screen.
The Power BI Report Server web portal is an on-premises location for viewing, storing and managing your Power
BI, mobile, and paginated reports, and KPIs.
You can view the web portal in any modern browser. In the web portal, reports and KPIs are organized in folders,
and you can mark them as favorites. You can also store Excel workbooks there. From the web portal, you can
launch the tools you need to create reports:
Power BI reports created with Power BI Desktop: View them in the web portal and the Power BI mobile apps.
Paginated reports created in Report Builder: Modern-looking, fixed-layout documents optimized for printing.
KPIs created right in the web portal.
In the web portal you can browse the report server folders or search for specific reports. You can view a report, its
general properties and past copies of the report that are captured in report history. Depending on your
permissions, you might also be able to subscribe to reports for delivery to your e-mail inbox or a shared folder on
the file system.
Next steps
What is Power BI Report Server?
More questions? Try asking the Power BI Community
Row-level security (RLS) in Power BI Report Server
3/26/2019 • 6 minutes to read • Edit Online
Setting up row -level security (RLS ) with Power BI Report Server can restrict data access for given users. Filters
restrict data access at the row level, and you can define filters within roles. If you're using the default permissions
in Power BI Report Server, any user with Publisher or Content Manager permissions for the Power BI report can
assign members to roles for that report.
You configure RLS for reports imported into Power BI with Power BI Desktop. You can also configure RLS on
reports that use DirectQuery, such as SQL Server. Keep in mind that RLS isn't respected if your DirectQuery
connection uses integrated authentication for report readers. For Analysis Services live connections, you configure
row -level security on the on-premises model. The security option doesn't show up for live connection datasets.
NOTE
You can't define roles within Power BI Desktop for Analysis Services live connections. You need to do that within the
Analysis Services model.
4. Select Create.
8. After you have created the DAX expression, you can select the check above the expression box to validate
the expression.
9. Select Save.
You can't assign users to a role within Power BI Desktop. You assign them in the Power BI service. You can enable
dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX functions
and having the proper relationships configured.
Bidirectional cross-filtering
By default, row -level security filtering uses single-directional filters, regardless of whether the relationships are set
to single direction or bidirectional. You can manually enable bidirectional cross-filter with row -level security.
Select the relationship and check the Apply security filter in both directions checkbox.
Check this box when implementing dynamic row -level security based on user name or login ID.
To learn more, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing the
Tabular BI Semantic Model technical whitepaper.
2. Select a role you created > OK to apply that role. The report renders the data relevant for that role.
3. You can also select Other user and supply a given user. It's best to supply the User Principal Name (UPN )
as that's what the Power BI service and Power BI Report Server use.
4. Select OK and the report renders based on what that user can see.
Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on
your DAX expressions.
Depending on how you have Active Directory configured, entering the User Principal Name here also
works. In that case, the Report Server shows the corresponding username in the list.
6. Click OK to apply.
7. To remove members, check the box next to their names and select Delete. You can delete multiple
members at a time.
Limitations
Here are the current limitations for row -level security on Power BI models.
Users that had reports using the username() DAX function will notice new behavior now where the User Principal
Name (UPN ) is returned EXCEPT when using DirectQuery with integrated security. Since RLS isn't respected in
that scenario, the behavior in that scenario is unchanged.
You can define RLS only on datasets created with Power BI Desktop. To enable RLS for datasets created with Excel,
you must convert your files into Power BI Desktop (PBIX) files first. Learn more about converting Excel files.
Only Extract, Transform, Load (ETL ) and DirectQuery connections using stored credentials are supported. Live
connections to Analysis Services and DirectQuery connections using integrated authentication are handled in the
underlying data source.
If you're using integrated security with DirectQuery, then your users may notice:
RLS is disabled and all data is returned.
Users can't update their role assignments, and get an error on the RLS Manage page.
For the DAX username function, you continue to receive the username as DOMAIN\USER.
Report authors don't have access to view the report data in Power BI Report Server until they've assigned
themselves roles accordingly after uploading the report.
FAQ
Can I create these roles for Analysis Services data sources?
You can if you imported the data into Power BI Desktop. If you're using a live connection, you can't configure RLS
within the Power BI service. RLS is defined within the Analysis Services model on-premises.
Can I use RLS to limit the columns or measures accessible by my users?
No. If a user has access to a particular row of data, they can see all the columns of data for that row.
Does RLS let me hide detailed data but give access to data summarized in visuals?
No, you secure individual rows of data but users can always see either the details or the summarized data.
Can I add new roles in Power BI Desktop if I already have existing roles and members assigned?
Yes, if you already have existing roles defined and members assigned in Power BI Report Server, you can make
additional roles and republish your report with no effect on your current assignments.
Next steps
What is Power BI Report Server? Administrator handbook
More questions? Try asking the Power BI Community
Create a paginated report for Power BI Report
Server
2/15/2019 • 3 minutes to read • Edit Online
As the name suggests, paginated reports can run to many pages. They're laid out in a fixed format and offer
precise customization. Paginated reports are .rdl files.
You can store and manage paginated reports in the Power BI Report Server web portal, just as you can in the SQL
Server Reporting Services (SSRS ) web portal. You create and edit them in Report Builder or Report Designer in
SQL Server Data Tools (SSDT), then publish them to either web portal. Then report readers in your organization
can view them in a browser or in a Power BI mobile app on their mobile device.
If you've already created paginated reports in Report Builder or Report Designer, then you're ready to create
paginated reports for Power BI Report Server. If not, here are some quick steps to get you started.
If you don't have Report Builder installed already, it leads you through the installation process now.
2. After it's installed, Report Builder opens to the New Report or Dataset screen.
3. Select the wizard for the kind of report you want to create:
Table or matrix
Chart
Map
Blank
4. Let's start with the Chart wizard.
The Chart wizard walks you the steps of creating a basic chart in a report. From there, you can customize
your report in almost unlimited ways.
3. Arrange the fields by dragging them to the Categories, Series, and Values boxes.
4. Select Next > Finish.
Next steps
There are many great resources for designing reports in Report Builder and in Report Designer in SQL Server
Data Tools. The Report Builder tutorials are a good place to start.
Report Builder tutorials
What is Power BI Report Server?
More questions? Try asking the Power BI Community
Enter data directly in a paginated report in Report
Builder (Preview) - Power BI
2/15/2019 • 3 minutes to read • Edit Online
In this article, you learn about a feature in the new version of SQL Server 2016 Report Builder that lets you enter
data directly into an RDL report as an embedded dataset. This feature is similar to Power BI Desktop. You can type
the data directly in a dataset in your report, or paste it from another program like Microsoft Excel. After you've
created a dataset by entering data, you can use it just like you would any other embedded dataset you've created.
Plus you can add more than one table and use one as a filter for the other. This feature is especially useful for
small, static datasets you might need to use in your report, like report parameters.
Prerequisites
To enter data directly in a paginated report, install the new version of Report Builder from the Microsoft
Download Center.
To save your paginated report to the Power BI service, you need a Power BI Pro account and write access to a
workspace in a Power BI Premium capacity.
To save your paginated report to a report server, you need permissions to edit the RsReportServer.config file.
Get started
After you’ve downloaded and installed Report Builder, you follow the same workflow you use to add an embedded
data source and dataset to your report. In the following procedure, under Data Sources you see a new option:
Enter Data. You only need to set up this data source once in a report. After that, you can create multiple tables of
entered data as separate datasets, all using that single data source.
1. In the Report Data pane, select New > Dataset.
2. In the Dataset Properties dialog box, select Use a dataset embedded in my report.
3. Next to Data source, select New.
4. In the Data Source Properties dialog box, select Use a connection embedded in my report.
5. In the Select connection type box, select ENTER DATA > OK.
9. If the first row contains column headings from the original data, right-click and delete it.
10. By default, the data type for each column is String. To change the data type, right-click the column header >
Change Type, and set it to another data type, such as Date or Float.
You can use your dataset as the basis for data visualizations in your report. You can also add another dataset and
use the same data source for it.
After you've edited it, here's what the list of data providers in the config file should look like:
That’s it – you can now publish reports that use this new functionality to your report server.
Next steps
What are paginated reports in Power BI Premium? (Preview )
What is Power BI Report Server?
Accessing shared datasets as OData feeds in Power BI
Report Server
1/14/2019 • 2 minutes to read • Edit Online
You can access shared datasets from Power BI Desktop with an OData feed.
1. With the OData feed URL, you connect to the OData source.
2. After you bring the data into Power BI Desktop, you can modify it in the Query Editor.
To refresh data in your Power BI report, a scheduled refresh plan must be created. This is done within the Manage
area of a Power BI report.
4. On the Edit Scheduled Refresh Plan page, enter a description and set a schedule for when you want your
data model to be refreshed.
5. Select Apply when done.
Viewing the status of Schedule Refresh Plan
View the status of a schedule refresh plan in the web portal.
1. In the web portal, right-click on the Power BI report and select Manage.
STATUS DESCRIPTION
New Scheduled Refresh Plan The plan has been created but has not ran.
Streaming model to Analysis Server Copying the model from the report server catalog
database to the hosted Analysis Services instance.
Removing credentials from the model Removed the credentials used to connect to the data
source from the model.
Saving model to the catalog Refreshing of data is complete and the refreshed model is
being saved back to the report server catalog database.
The web page must be refreshed to see the current status. The status will not change automatically.
Next steps
To learn more about creating and modifying schedules, see Create, modify, and delete schedules.
For information on how to troubleshoot scheduled refresh, see Troubleshoot scheduled refresh in Power BI Report
Server.
More questions? Try asking the Power BI Community
Add comments to a report in a report server - Power
BI Report Server
2/15/2019 • 2 minutes to read • Edit Online
You can add comments to reports, including Power BI reports, within the web portal of a report server. The
comments live with the report, and anyone with the right permissions can see the comments for the report. See the
Permissions section below for details.
TIP
Did you know? You can annotate Power BI reports in the Power BI mobile apps and share the annotated reports with
others.
Permissions
Depending on your permissions, you can:
Not see comments.
See all comments, and post, edit, and delete your own.
See all comments; post, edit, and delete your own; and delete other people’s.
Next steps
What is Power BI Report Server?
More questions? Try asking the Power BI Community
Install Power BI Report Server
2/28/2019 • 5 minutes to read • Edit Online
Download
To download Power BI Report Server, go to On-premises reporting with Power BI Report Server, and select
Download free trial.
IMPORTANT
While you can install Power BI Report Server in an environment that has a Read-Only Domain Controller (RODC), Power
BI Report Server needs access to a Read-Write Domain Controller to function properly. If Power BI Report Server only has
access to a RODC, you may encounter errors when trying to administer the service.
Selecting Power BI Report Server key displays a dialog contain your product key. You can copy it and use it
with the installation.
SQL Server Enterprise Software Assurance (SA)
If you have a SQL Server Enterprise SA agreement, you can get your product key from the Volume Licensing
Service Center.
Otherwise, you can enter a product key for the server that you acquired from either the Power BI service
or the Volume License Service Center. For more information about how to get your product key, see the
Before you begin section.
4. Read and agree to the license terms and conditions and then select Next.
5. You need to have a Database Engine available to store the report server database. Select Next to install
the report server only.
6. Specify the install location for the report server. Select Install to continue.
To work around the error, you can change the service account to either Network Service or a domain account.
Changing the service account to Network Service applies rights in the context of the machine account for the
report server.
For more information, see Configure the report server service account .
Windows Service
A windows service is created as part of the installation. It is displayed as Power BI Report Server. The service
name is PowerBIReportServer.
PART DESCRIPTION
Host name The default host name is a strong wildcard (+). It specifies
that the report server accepts any HTTP request on the
designated port for any host name that resolves to the
computer, including
http://<computername>/reportserver ,
http://localhost/reportserver , or
http://<IPAddress>/reportserver.
Port The default port is 80. If you use any port other than port
80, you have to explicitly add it to the URL when you open
web portal in a browser window.
Firewall
If you are accessing the report server from a remote machine, you want to make sure you have configured any
firewall rules if there is a firewall present.
You need to open up the TCP port that you have configured for your Web Service URL and Web Portal URL. By
default, these are configured on TCP port 80.
Additional configuration
To configure integration with the Power BI service so you can pin report items to a Power BI dashboard, see
Integrate with the Power BI service.
To configure email for subscriptions processing, see E -Mail settings and E -Mail delivery in a report server .
To configure the web portal so you can access it on a report computer to view and manage reports, see
Configure a firewall for report server access and Configure a report server for remote administration .
Next steps
Administrator overview
How to find your report server product key
Install Power BI Desktop optimized for Power BI Report Server
Verify a reporting services installation
Configure the report server service account
Configure report server URLs
Configure a report server database connection
Initialize a report server
Configure SSL connections on a report server
Configure windows service accounts and permissions
Browser support for Power BI Report Server
More questions? Try asking the Power BI Community
How to find your report server product key
1/14/2019 • 2 minutes to read • Edit Online
Learn how you can find your Power BI Report Server product key to install your server in a production
environment.
https://www.youtube.com/embed/6CQnf-NGtpU?rel=0&showinfo=0
You downloaded Power BI Report Server, and you have a SQL Server Enterprise Software Assurance agreement.
Or, you purchased Power BI Premium. You want to install the server in a production environment, but you need a
product key in order to do that. Where is the product key?
The product key will be in one of two places depending on what you purchased.
Selecting Power BI Report Server key will display a dialog contain your product key. You can copy it and use it
with the installation.
Next steps
Install Power BI Report Server
Install Power BI Desktop optimized for Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Upgrade Power BI Report Server
1/14/2019 • 2 minutes to read • Edit Online
Download
To download Power BI Report Server, and Power BI Desktop optimized for Power BI Report Server, go to On-
premises reporting with Power BI Report Server.
3. Read and agree to the license terms and conditions and then select Upgrade.
4. After a successful upgrade, you can select Configure Report Server to launch the Reporting Services
Configuration Manager, or select Close to exit the installer.
Upgrade Power BI Desktop
After the report server is upgrade, you will want to make sure that any Power BI report authors upgrade to the
version of Power BI Desktop optimized for Power BI Report Server that matches the server.
Next steps
Administrator overview
Install Power BI Desktop optimized for Power BI Report Server
Verify a reporting services installation
Configure the report server service account
Configure report server URLs
Configure a report server database connection
Initialize a report server
Configure SSL connections on a report server
Configure windows service accounts and permissions
Browser support for Power BI Report Server
More questions? Try asking the Power BI Community
Migrate a report server installation
1/21/2019 • 2 minutes to read • Edit Online
Learn how to migrate your existing SQL Server Reporting Services (SSRS ) instance to an instance of Power BI
Report Server.
Migration is defined as moving application data files to a new Power BI Report Server instance. The following are
common reasons why you might migrate your installation:
You want to move from SQL Server Reporting Services to Power BI Report Server
NOTE
There is not an inplace upgrade from SQL Server Reporting Services to Power BI Report Server. A migration is
necessary.
NOTE
SQL Server 2008 Reporting Services and later are supported for migration.
Backup database, application, and configuration files
Back up the encryption key
Clone your report server database hosting your reports
Install Power BI Report Server. If you're using the same hardware, you can install Power BI Report Server on
the same server as the SSRS instance. For more information on installing Power BI Report Server, see Install
Power BI Report Server.
NOTE
The instance name for the Power BI Report Server will be PBIRS.
Configure the report server using Report Server Configuration Manager and connect to the cloned database.
Perform any cleanup needed for the SSRS (Native mode) instance
You need to migrate the specific report server content from SharePoint to your Power BI Report Server. You need
to have already installed Power BI Report Server somewhere in your environment. For more information on
installing Power BI Report Server, see Install Power BI Report Server.
If you want to copy the report server content from your SharePoint environment to Power BI Report Server, you
need to use tools such as rs.exe to copy the content. Below is a sample of what the script would be to copy report
server content from SharePoint to Power BI Report Server.
NOTE
The sample script should work against SharePoint 2010 and later and SQL Server 2008 Reporting Services and later.
Sample script
Sample Script
rs.exe
-i ssrs_migration.rss -e Mgmt2010
-s http://SourceServer/_vti_bin/reportserver
-v st="sites/bi" -v f="Shared Documents“
-u Domain\User1 -p Password
-v ts=http://TargetServer/reportserver
-v tu="Domain\User" -v tp="Password"
NOTE
The instance name for the Power BI Report Server will be PBIRS.
Configure the report server using Report Server Configuration Manager and connect to the cloned database.
Perform any cleanup needed for the old Power BI Report Server installation.
Next steps
Administrator overview
Install Power BI Report Server
Script with the rs.exe Utility and the Web Service
More questions? Try asking the Power BI Community
Configure Kerberos to use Power BI reports
2/13/2019 • 9 minutes to read • Edit Online
https://www.youtube.com/embed/vCH8Fa3OpQ0?showinfo=0
Learn how to configure your report server for Kerberos authentication to data sources used within your Power BI
reports for a distributed environment.
Power BI Report Server includes the ability to host Power BI reports. Many data sources are supported by your
report server. While this article focuses specifically on SQL Server Analysis Services, you can use the concepts and
apply that to other data sources such as SQL Server.
You can install Power BI Report Server, SQL Server and Analysis Services on a single machine and everything
should work without additional configuration. This is great for a test environment. You may hit errors if you have
these services installed on separate machines which is called a distributed environment. In this environment, you
are required to use Kerberos authentication. There is configuration required to implement this.
Specifically, you will need to configure constrained delegation. You may have Kerberos configured in your
environment but it may not be configured for constrained delegation.
We couldn’t run the report because we couldn’t connect to its data source. The report or data source might not
be configured correctly.
We couldn’t connect to the Analysis Services server. The server forcibly closed the connection. To connect as
the user viewing the report, your organization must have configured Kerberos constrained delegation.
Within the rsreportserver.config file, you will want to fine the Authentication/AuthenticationTypes section.
We want to make sure that RSWindowsNegotiate is listed and the first in the list of authentication types. It should
look similar to the following.
<AuthenticationTypes>
<RSWindowsNegotiate/>
<RSWindowsNTLM/>
</AuthenticationTypes>
If you had to change the configuration file, you will want to stop and start the report server to make sure the
changes take effect.
For more information, see Configure Windows Authentication on the Report Server.
NOTE
You will need domain admin rights in order to create the SPN.
It is recommended to create two SPNs. One with the NetBIOS name and the other with the fully qualified domain
name (FQDN ). The SPN will be in the following format.
<Service>/<Host>:<port>
Power BI Report Server will use a Service of HTTP. For HTTP SPNs you will not list a port. The service we are
interested in here is HTTP. The host of the SPN will be the name you use in a URL. Typically, this is the machine
name. If you are behind a load balancer, this may be a virtual name.
NOTE
You can verify the URL by either looking at what you enter into the address bar of the browser, or you can look in the Report
Server Configuration Manager on the Web Portal URL tab.
NetBIOS HTTP/ContosoRS
Location of SPN
So, where do you put the SPN? The SPN will be placed on whatever you are using for your service account. If you
are using Virtual Service Account or Network Service, this will be the machine account. Although we mentioned
before you should only need to do this for a virtual URL. If you are using a domain user for the report server
service account, then you will place the SPN on that domain user account.
For example, if we are using the Network Service account and our machine name is ContosoRS, we would place
the SPN on ContosoRS.
If we are using a domain user account of RSService, we would place the SPN on RSService.
Using SetSPN to add the SPN
We can use the SetSPN tool to add the SPN. We will follow the same example as above with the Machine account
and the domain user account.
Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following
if we were using a virtual URL of contosoreports.
Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the
following if you were using the machine name for the host of the SPN.
TYPE FORMAT
Placement of the SPN is also similar to what was mentioned with Power BI Report Server. It is based on the
service account. If you are using Local System or Network Service, you will be in the context of the machine
account. If you are using a domain user account for the Analysis Services instance, you will place the SPN on the
domain user account.
Using SetSPN to add the SPN
We can use the SetSPN tool to add the SPN. For this example, the machine name will be ContosoAS.
Placing the SPN on a machine account, for both the FQDN and NetBIOS SPN, would look similar to the following.
Placing the SPN on a domain user account, for both the FQDN and NetBIOS SPN, would look similar to the
following.
MSOLAPDisco.3/ContosoAS.contoso.com
MSOLAPDisco.3/ContosoAS
Placement of the SPN is also similar to what was mentioned with Power BI Report Server. The difference here is
that SQL Browser always runs under the Local System account. This means that the SPNs will always go on the
machine account.
Using SetSPN to add the SPN
We can use the SetSPN tool to add the SPN. For this example, the machine name will be ContosoAS.
Placing the SPN on the machine account, for both the FQDN and NetBIOS SPN, would look similar to the
following.
For more information, see An SPN for the SQL Server Browser service is required.
While this configuration should work in most cases, with Kerberos, there can be different configuration depending
on your environment. If the report will still not load, you will want to reach out to your domain administrator to
investigate further or contact support.
Next steps
Administrator overview
Install Power BI Report Server
More questions? Try asking the Power BI Community
Configure Power BI iOS mobile app access to a
report server remotely
2/15/2019 • 2 minutes to read • Edit Online
In this article, learn how to use your organization's MDM tool to configure Power BI iOS mobile app access to a
report server. To configure it, IT administrators create an app configuration policy with the required information to
be pushed to the app.
With the report server connection already configured, Power BI iOS mobile app users can connect to their
organization's report server more easily.
2. On the Connect to server page, the report server details already filled in. They tap Connect.
3. They type a password to authenticate, then tap Sign in.
Now they can view and interact with KPIs and Power BI reports stored on the report server.
Next steps
Administrator overview
Install Power BI Report Server
More questions? Try asking the Power BI Community
Configure your report server to host Excel workbooks
using Office Online Server (OOS)
2/13/2019 • 5 minutes to read • Edit Online
In addition to viewing Power BI reports in the web portal, Power BI Report Server can host Excel workbooks by
using Office Online Server (OOS ). Your report server becomes a single location to publish and view self-service
Microsoft BI content.
Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-
Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-
Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-
Includes,InkandHandwritingServices,NET-Framework-Features,NET-Framework-Core,NET-HTTP-Activation,NET-
Non-HTTP-Activ,NET-WCF-HTTP-Activation45,Windows-Identity-Foundation,Server-Media-Foundation
Add-WindowsFeature Web-Server,Web-Mgmt-Tools,Web-Mgmt-Console,Web-WebServer,Web-Common-Http,Web-Default-
Doc,Web-Static-Content,Web-Performance,Web-Stat-Compression,Web-Dyn-Compression,Web-Security,Web-
Filtering,Web-Windows-Auth,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-
Includes,NET-Framework-Features,NET-Framework-45-Features,NET-Framework-Core,NET-Framework-45-Core,NET-
HTTP-Activation,NET-Non-HTTP-Activ,NET-WCF-HTTP-Activation45,Windows-Identity-Foundation,Server-Media-
Foundation
Parameters
–InternalURL is the fully qualified domain name (FQDN ) of the server that runs Office Online Server, such as
http://servername.contoso.com .
–ExternalURL is the FQDN that can be accessed on the Internet.
–CertificateName is the friendly name of the certificate.
Create the Office Online Server farm (HTTP)
Use the New -OfficeWebAppsFarm command to create a new Office Online Server farm that consists of a single
server, as shown in the following example.
Parameters
–InternalURL is the name of the server that runs Office Online Server, such as http://servername .
–AllowHttp configures the farm to use HTTP.
Verify that the Office Online Server farm was created successfully
After the farm is created, details about the farm are displayed in the Windows PowerShell prompt. To verify that
Office Online Server is installed and configured correctly, use a web browser to access the Office Online Server
discovery URL, as shown in the following example. The discovery URL is the InternalUrl parameter you specified
when you configured your Office Online Server farm, followed by /hosting/discovery, for example:
<InternalUrl>/hosting/discovery
If Office Online Server works as expected, you should see a Web Application Open Platform Interface Protocol
(WOPI)-discovery XML file in your web browser. The first few lines of that file should resemble the following
example:
If you did not already allow external data, from the Analysis Services step above, run the following command.
Set-OfficeWebAppsFarm -ExcelAllowExternalData:$true
Firewall considerations
To avoid firewall issues, you may need to open the ports 2382 and 2383. You can also add the msmdsrv.exe, for the
Power Pivot instance, as an application firewall wall policy.
To get to Site settings, select the gear icon in the upper right and select Site settings.
Only a user with the System Administrator role will see the Office Online Server discovery url setting.
After you enter the discovery url, and select Apply, selecting an Excel workbook, within the web portal, should
display the workbook within the web portal.
Limitations and considerations
You will have read only capability with workbooks.
Next steps
Administrator overview
Install Power BI Report Server
Download Report Builder
Download SQL Server Data Tools (SSDT)
More questions? Try asking the Power BI Community
Develop with the REST APIs for Power BI Report
Server
3/4/2019 • 3 minutes to read • Edit Online
Power BI Report Server support Representational State Transfer (REST) APIs. The REST APIs are service
endpoints that support a set of HTTP operations (methods), which provide create, retrieve, update, or delete access
for resources within a report server.
The REST API provides programmatic access to the objects in a Power BI Report Server catalog. Examples of
objects are folders, reports, KPIs, data sources, datasets, refresh plans, subscriptions, and more. Using the REST
API, you can, for example, navigate the folder hierarchy, discover the contents of a folder, or download a report
definition. You can also create, update, and delete objects. Examples of working with objects are upload a report,
execute a refresh plan, delete a folder, and so on.
NOTE
If you’re interested in viewing or deleting personal data, please review Microsoft's guidance in the Windows Data Subject
Requests for the GDPR site. If you’re looking for general information about GDPR, see the GDPR section of the Service Trust
portal.
API documentation
A modern REST API calls for modern API documentation. The REST API is built on the OpenAPI specification
(a.k.a. the swagger specification) and documentation is available on SwaggerHub. Beyond documenting the API,
SwaggerHub helps generate a client library in the language of choice – JavaScript, TypeScript, C#, Java, Python,
Ruby, and more.
Next steps
Review the available APIs over on SwaggerHub.
Samples are available on GitHub. The sample includes an HTML5 app built on TypeScript, React, and webpack
along with a PowerShell example.
More questions? Try asking the Power BI Community
Capacity planning guidance for Power BI Report Server
1/14/2019 • 7 minutes to read • Edit Online
Power BI Report Server is a self-service BI and enterprise reporting solution that customers can deploy on their premises, behind their firewall. It
combines the interactive report capability of Power BI Desktop with the on-premises server platform of SQL Server Reporting Services. With heavy and
growing usage of analytics and reporting within enterprises, budgeting the hardware infrastructure and software licenses required to scale to an
enterprise user base can be a challenge. This paper aims to offer guidance on capacity planning for Power BI Report Server by sharing results of
numerous load test executions of various workloads against a report server. While organizations’ reports, queries, and usage patterns vary widely, the
results presented in this paper, along with the actual tests used and a detailed description of how they were executed, serve as a reference point for
anyone in the early-stage planning process of deploying Power BI Report Server.
Executive summary
We executed two different types of workloads against Power BI Report Server; each workload consisted of rendering different types of reports as well as
performing various web portal operations.
In “Power BI Report Heavy” workload, the most frequently executed operation (i.e. the operation executed 60% of the time) was rendering Power BI
reports.
In “Paginated Report Heavy” workload, the most frequently executed operation was rendering paginated reports.
Under a four-server topology of Power BI Report Server and the expectation that no more than 5% of users will access a report server at any one time,
the following table describes the maximum number of users Power BI Report Server can handle with at least 99% reliability.
In each run, the most overwhelmed resource was CPU. Due to this, increasing the number of cores to Power BI Report Server would yield a higher gain
in the reliability of the system than increasing the amount of memory or hard-disk space.
Test methodology
The testing topology used was based on Microsoft Azure Virtual Machines instead of vendor-specific physical hardware. All machines were hosted in US
regions. This reflects the general trend of hardware virtualization both on-premises and in the public cloud.
Power BI Report Server topology
The Power BI Report Server deployment consisted of the following virtual machines:
Active Directory Domain Controller: this was needed by SQL Server Database Engine, SQL Server Analysis Services, and Power BI Report Server to
securely authenticate all requests.
SQL Server Database Engine and SQL Server Analysis Services: this was where we stored all the databases for the reports to consume when we
rendered them.
Power BI Report Server
Power BI Report Server Database. The report server database is hosted on a different machine than Power BI Report Server so that it does not need
to compete with SQL Server Database Engine for memory, CPU, network, and disk resources.
See Appendix 1.1 Power BI Report Server Topology and Appendix 1.2 Power BI Report Server Virtual Machine Configuration for a thorough
configuration of each virtual machine used in the topology.
Tests
The tests used in the load test runs are publicly available in a GitHub project called Reporting Services LoadTest. This tool allows users to study the
performance, reliability, scalability and recoverability characteristics of SQL Server Reporting Services and Power BI Report Server. This project consists
of four groups of test cases:
Tests simulating rendering Power BI reports,
Tests simulating rendering mobile reports,
Tests simulating rendering small and large paginated reports, and
Tests simulating performing various types of web portal operations.
All tests were written to perform an end-to-end operation (such as rendering a report, creating a new data source, etc.). They accomplish this by making
one or more web requests to the report server (via APIs). In the real world, a user may need to perform a few intermediate operations to complete one
of these end-to-end operations. For example, to render a report a user will need to go to the web portal, navigate to the folder where the report is, then
click the report to render it. While tests don’t perform all the operations needed to accomplish an end-to-end task, they still impose most of the load that
Power BI Report Server would experience. You can learn more about the different types of reports used as well as the variety of operations performed by
exploring the GitHub project.
Workloads
There are 2 workload profiles used in testing: Power BI Report Heavy and Paginated Report Heavy. The table below describes the distribution of
requests executed against the Report Server.
ACTIVITY POWER BI REPORT HEAVY, FREQUENCY OF OCCURRENCE PAGINATED REPORT HEAVY, FREQUENCY OF OCCURRENCE
User load
For each test run, tests were executed based on the frequency specified in one of the two workloads. Tests started with 20 concurrent user requests to
the report server. The user load was then gradually increased until reliability dropped below the 99% target.
Results
Concurrent user capacity
As stated earlier, tests started with 20 concurrent users making requests to the report server. The number of concurrent users was then gradually
increased until 1% of all requests were failing. The results in the following table tell us the number of concurrent user requests that the server would be
able to handle under peak load with a failure rate of less than 1%.
View results
Select a report to view the results of the load test.
https://msit.powerbi.com/view?
r=eyJrIjoiMDhhNGY4NGQtNGRhYy00Yzk4LTk2MzAtYzFlNWI5NjBkMGFiIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
https://msit.powerbi.com/view?
r=eyJrIjoiNDBiODk1OGUtYTAyOC00MzVhLThmZmYtNzVjNTFjNzMwYzkwIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
https://msit.powerbi.com/view?
r=eyJrIjoiNDFiZWYzMTktZGIxNS00MzcwLThjODQtMmJkMGRiZWEzNjhlIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
https://msit.powerbi.com/view?
r=eyJrIjoiOTU0YjJkYTgtNDg4Yy00NzlhLWIwMGYtMzg4YWI2MjNmOTZjIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9
Summary
For each load test run, CPU was the most overwhelmed resource at the point of peak load on the Power BI Report Server machine. Due to this, the first
resource that should be increased is the number of cores. Alternately, you can consider scaling out by adding more servers hosting Power BI Report
Server in your topology.
The results presented in this paper were derived from executing a specific set of reports consuming a specific set of data, repeated in a specific way. It’s a
useful reference point, but keep in mind that your usage will depend on your reports, queries, usage patterns and deployment of your Power BI Report
Server.
Appendix
1 Topology
1.1 Power BI Report Server Topology
To focus solely on Power BI Report Server behavior under different configurations, the VM configuration for each type of machine (except for the
machine hosting Power BI Report Server) was fixed. Each machine was provisioned according to the second-generation (v2) D Series machines with
Premium Storage Disks. You can find detailed information about each VM size under the “General Purpose” section on
https://azure.microsoft.com/pricing/details/virtual-machines/windows/.
A Power BI gateway is software that you install within an on-premises network; it facilitates access to data in that
network. It's like a gatekeeper that listens for connection requests, and grants them only when a users' requests
meet certain criteria. This lets organizations keep databases and other data sources on their on-premises networks,
yet securely use that on-premises data in Power BI reports and dashboards.
A gateway can be used for a single data source or multiple data sources. The following diagram shows a basic
view, with the gateway handling requests from the cloud for three on-premises computers. We'll expand on this
later in the article.
Types of gateways
Power BI offers two gateways, each for a different scenario:
On-premises data gateway (personal mode) – allows one user to connect to sources, and can’t be
shared with others. Can only be used with Power BI. This gateway is well-suited to scenarios where you’re
the only person who creates reports, and you don't need to share the data sources with others.
On-premises data gateway – allows multiple users to connect to multiple on-premises data sources. Can
be used by Power BI, PowerApps, Flow, Azure Analysis Services, and Azure Logic apps, all with a single
gateway installation. This gateway is well-suited to more complex scenarios with multiple people accessing
multiple data sources.
Using a gateway
There are four main steps for using a gateway:
1. Install the gateway on a local computer, using the appropriate mode
2. Add users to the gateway, so they can access on-premises data sources
3. Connect to data sources, so they can be used in reports and dashboards
4. Refresh on-premises data, so Power BI reports are up to date
You can install a stand-alone gateway or add a gateway to a cluster, which is recommended for high availability.
Next steps
Install the on-premises data gateway
More questions? Try the Power BI Community
Tutorial: Connect to on-premises data in SQL Server
1/14/2019 • 4 minutes to read • Edit Online
An on-premises data gateway is software that you install within an on-premises network; it facilitates access to
data in that network. In this tutorial you build a report in Power BI Desktop based on sample data imported from
SQL Server. You then publish the report to the Power BI service, and configure a gateway so the service can access
the on-premises data. This access means the service can refresh the data to keep the report up to date.
In this tutorial, you learn how to:
Create a report from data in SQL Server
Publish the report to the Power BI Service
Add SQL Server as a gateway data source
Refresh the data in the report
If you're not signed up for Power BI, sign up for a free trial before you begin.
Prerequisites
Install Power BI Desktop
Install SQL Server on a local computer
Install an on-premises data gateway on the same local computer (in production, it would typically be a different
computer)
5. In the Power BI Desktop Report view, in the Visualizations pane, select the Stacked column chart.
6. With the column chart selected in the report canvas, in the Fields pane select the Product and Sales fields.
The chart should now look like the following.
Notice that SLR Camera is the current sales leader. This will change when you update data and refresh the
report later in this tutorial.
7. Save the report with the name "TestGatewayDocs.pbix".
8. On the Home tab select Publish > My Workspace > Select. Sign in to the Power BI service if you're
asked to do so.
1. In the upper-right corner of the Power BI service, select the gear icon > Manage gateways.
2. Select Add data source, and enter "test-sql-source" for Data Source Name.
3. Select a Data Source Type of SQL Server, then enter other values as shown.
OPTION VALUE
Database TestGatewayDocs
Password The password for the account you use to connect to SQL
Server
4. Select Add. You see Connection Successful when the process succeeds.
You can now use this data source to include data from SQL Server in your Power BI dashboards and
reports.
UPDATE Product
SET Sales = 32508, Quantity = 252
WHERE Product='Compact Digital'
4. Select My Workspace > Reports > TestGatewayDocs. See how the update flowed through, and the sales
leader is now Compact Digital.
5. Select My Workspace > Reports > TestGatewayDocs. Select more (. . .) > Schedule refresh.
6. Under Schedule refresh, set refresh to On, then select Apply. The dataset is refreshed daily by default.
Clean up resources
If you don't want to use the sample data anymore, run DROP DATABASE TestGatewayDocs in SSMS. If you don't want
to use the SQL Server data source, remove the data source.
Next steps
In this tutorial, you learned how to:
Create a report from data in SQL Server
Publish the report to the Power BI Service
Add SQL Server as a gateway data source
Refresh the data in the report
Advance to the next article to learn more
Manage a Power BI gateway
Guidance for deploying a data gateway for Power BI
1/14/2019 • 8 minutes to read • Edit Online
This article provides guidance and considerations for deploying a data gateway in your network environment. A
gateway is software that facilitates access to data that resides on a private, on-premises network, for subsequent
use in a cloud service like Power BI. This article walks you through the deployment, and provides guidance for, the
On-premises data gateway setup.
For more about On-premises data gateway, including a link to install it, take a look at the blog post.
NOTE
These counters will not capture specific task duration time.
The gateway counter, in addition to your machine's counters, provide you with an idea of how much load your
machine is handling, and can provide an indication of whether the server resource capacity is becoming stretched
or exceeded.
These counters can be accessed from Windows Performance Monitor, and can be consumed by any reporting
tools you use for this purpose. For a detailed walk-through of how to use the gateway performance monitor with
Power BI, take a look at the following community-create blog post.
Monitor On-premises data gateways
Logs
Configuration and service logs provide another dimension on what's happening with your gateway. Always check
your gateway logs when your connection is not working as expected, as not all error messages are surfaced on the
Power BI service.
An easy way to view all the log files on your local machine is to use the Export Logs button on the On-premises
data gateway when you re-open the gateway after the initial installation is complete, and then select Diagnostics
> Export Logs.
Additional logging
By default the gateway performs basic logging. If you're investigating gateway issues, and need more information
about query connection details, you can temporarily enable verbose logging to gather additional log information.
To do this, in the installed gateway select Diagnostics > Additional logging.
Enabling this setting likely will increase the log size significantly, based on gateway usage. It's recommended that
once you're done reviewing the logs, you disable Additional logging. It's not recommended to leave this setting
enabled during normal gateway usage.
Network configuration
The gateway creates an outbound connection to the Azure Service Bus. The gateway communicates on the
following outbound ports:
TCP 443 (default)
5671
5672
9350 thru 9354
The gateway does not require inbound ports. All required ports are listed in the above list.
It is recommended that you whitelist the IP addresses, for your data region, in your firewall. You can download list
of IP addresses, which are found in the Microsoft Azure Datacenter IP list. That list is updated weekly. The gateway
will communicate with Azure Service Bus using the specified IP address, along with the fully qualified domain
name (FQDN ). If you're forcing the gateway to communicate using HTTPS, the gateway strictly uses FQDN only,
and no communication will occur using IP addresses.
Forcing HTTPS communication with Azure Service Bus
You can force the gateway to communicate with the Azure Service Bus by using HTTPS, instead of direct TCP.
Doing so will slightly reduce performance. You can also force the gateway to communicate with the Azure Service
Bus by using HTTPS by using the gateway's user interface (beginning with the March 2017 release of the
gateway).
To do so, in the gateway select Network, then turn the Azure Service Bus connectivity mode On.
Additional guidance
This section provides additional guidance for deploying and managing gateways.
Avoid having a single point of failure. If possible, distribute your on-premises data sources across several
gateways; in this case, if one machine becomes unavailable, you'll still be able to refresh portions of your data,
and not lose that functionality completely.
The gateway cannot be installed on a domain controller, so don't plan or try to do so.
Don't install a gateway on a computer that may be turned off, go into the sleep mode, or not be connected to
the Internet (for example, a laptop computer), because the gateway can't run under any of those circumstances.
Avoid installing a gateway on a wireless network, since performance might suffer over a wireless network.
Gateway Recovery
You can recover your existing gateway, or move it to a new machine, using the recovery key. The recovery key is
provided to the user who installs the gateway, and it cannot be changed later. The recovery key is used for both
data encryption and gateway recovery.
To recover your gateway, make sure you're an admin on the gateway, make sure you know the gateway name,
ensure you have the correct recovery key, and that you have a new machine available with similar performance
characteristics.
After you sign in, select the Migrate an existing gateway option. Next, you need to choose the gateway you'd
like to recover or migrate, and finally provide the recovery key and hit configure. Once that step is done, the old
gateway will be replaced by the new gateway, and the new gateway will inherit its name and all data sources
previously configured. All data sources will now go through the new machine, without the need to re-publish
anything. Automatic failover is not yet supported, but it is a feature that the gateway team is actively considering.
Administrators
You can find a list of gateway administrators in the Power BI service. When signed into the Power BI service,
select Settings (the gear icon) > Manage Gateways > Gateway UI.
From there, you can select a gateway and see the list of gateway administrators. The administrators listed can
access, recover, and delete the gateway. They can also add and delete data sources in the gateway. To make sure all
administrators in the organization have access to all gateways in their group, the following is recommended:
Create an AAD security group and add other users to it, then add this security group to the list of the respective
gateway administrators. This ensures that more than one person has access to the gateway in case of a failure,
or when you need to recover or migrate the gateway. This also gives other administrators a view of what
gateways are being used in their groups, and which data sources exist on each gateway.
Next steps
Configuring proxy settings
Troubleshooting the On-premises data gateway
On-premises data gateway FAQ
More questions? Try the Power BI Community
On-premises data gateway FAQ
1/14/2019 • 7 minutes to read • Edit Online
General
Question: What is the actual Windows service called?
Answer: The gateway is called On-premises data gateway service in Services
Question: What are the requirements for the gateway?
Answer: Take a look at the requirements section of the main gateway article.
Question: What data sources are supported with the gateway?
Answer: See the data sources table in the main gateway article.
Question: Do I need a gateway for cloud data sources like Azure SQL Database?
Answer: No! The service will be able to connect to that data source without a gateway.
Question: Are there any inbound connections to the gateway from the cloud?
Answer: No. The gateway uses outbound connections to Azure Service Bus.
Question: What if I block outbound connections? What do I need to open?
Answer: See the list of ports and hosts that the gateway uses.
Question: Does the gateway have to be installed on the same machine as the data source?
Answer: No. The gateway will connect to the data source using the connection information that was provided.
Think of the gateway as a client application in this sense. It will just need to be able to connect to the server name
that was provided.
Question: What is the latency for running queries to a data source from the gateway? What is the best
architecture?
Answer: It is recommended to have the gateway as close to the data source as possible to avoid network latency. If
you can install the gateway on the actual data source, it will minimize the latency introduced. Consider the data
centers as well. For example, if your service is making use of the West US data center, and you have SQL Server
hosted in an Azure VM, you will want to have the Azure VM in West US as well. This will minimize latency and
avoid egress charges on the Azure VM.
Question: Are there any requirements for network bandwidth?
Answer: It is recommended to have good throughput for your network connection. Every environment is different
and this is also dependent on the amount of data being sent. Using ExpressRoute could help to guarantee a level of
throughput between on-premises and the Azure data centers.
You can use the 3rd party Azure Speed Test app to help gauge what your throughput is.
Question: Can the gateway Windows service run with an Azure Active Directory account?
Answer: No. The Windows service needs to have a valid Windows account. By default it will run with the Service
SID, NT SERVICE\PBIEgwService.
Question: How are results sent back to the cloud?
Answer: This is done by way of the Azure Service Bus. For more information, see how it works.
Question: Where are my credentials stored?
Answer: The credentials you enter for a data source are stored encrypted in the gateway cloud service. The
credentials are decrypted at the gateway on-premises.
Question: Can I place the gateway in a perimeter network (also known as DMZ, demilitarized zone, and screened
subnet)?
Answer: The gateway requires connectivity to the data source. If the data source is not accessible in your
perimeter network, the gateway may not be able to connect to it. For example, your SQL Server may not be in
your perimeter network. And, you cannot connect to your SQL Server from the perimeter network. If you placed
the gateway in your perimeter network, it would not be able to reach the SQL Server.
Question: Is it possible to force the gateway to use HTTPS traffic with Azure Service Bus instead of TCP?
Answer: Yes. Although, this will greatly reduce performance. You will want to modify the
Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config file. You will want to change the value from
AutoDetect to Https . This file is located, by default, at C:\Program Files\On-premises data gateway.
Question: Do I need to whitelist the Azure Datacenter IP list? Where do I get the list?
Answer: If you are blocking outbound IP traffic, you may need to whitelist the Azure Datacenter IP list. Currently,
the gateway will communicate with Azure Service Bus using the IP address in addition to the fully qualified
domain name. The Azure Datacenter IP list is updated weekly. You can download the Microsoft Azure Datacenter
IP list.
Troubleshooting
Question: Where are the gateway logs located?
Answer: See the tools section of the troubleshooting article.
Question: How can I see what queries are being sent to the on-premises data source?
Answer: You can enable query tracing. This will include the queries being sent. Remember to change it back to the
original value when done troubleshooting. Having query tracing enabled will cause the logs to be larger.
You can also look at tools your data source has for tracing queries. For example, for SQL Server and Analysis
Services you can use Extended Events or SQL Profiler.
Analysis Services
Question: Can I use msdmpump.dll to create custom effective username mappings for Analysis Services?
Answer: No. This is not supported at this time.
Question: Can I use the gateway to connect to a multidimensional (OLAP ) instance.
Answer: Yes! The On-premises data gateway supports live connections to both Analysis Services Tabular and
Multidimensional models.
Question: What if I install the gateway on a computer in a different domain from my on-premises server that uses
Windows authentication?
Answer: No guarantees here. It all depends on the trust relationship between the two domains. If the two different
domains are in a trusted domain model, then the gateway might be able to connect to the Analysis Services server
and the effective user name can be resolved. If not, you may encounter a login failure.
Question: How can I find out what effective username is being passed to my on-premises Analysis Services
server?
Answer: We answer this in the troubleshooting article.
Question: I have 25 databases in Analysis Services, is there a way to have them all enabled for the gateway at
once?
Answer: No. This is on the roadmap, but we don’t have a timeframe.
Administration
Question: Can I have more than one admin for a gateway?
Answer: Yes! When you manage a gateway, you can go to the administrator’s tab to add additional admins.
Question: Does the gateway admin need to be an admin on the machine where the gateway is installed?
Answer: No. The gateway admin is used to manage the gateway from within the service.
Question: Can I prevent users in my organization from creating a gateway?
Answer: No. This is on the roadmap, but we don’t have a timeframe.
Question: Can I get usage and statistics information of the gateways in my organization?
Answer: No. This is on the roadmap, but we don’t have a timeframe.
Power BI
Question: Do I need to upgrade the personal gateway? Answer: No, you can keep using the personal gateway for
Power BI.
Question: How often are tiles in a dashboard, in Power BI, refreshed when connected through the On-premises
data gateway?
Answer: About ten minutes. DirectQuery connections are just that. This doesn’t mean that a tile issues a query to
your on-premises server, and shows new data, every ten minutes.
Question: Can I upload Excel workbooks with Power Pivot data models that connect to on-premises data sources?
Do I need a gateway for this scenario?
Answer: Yes, you can upload the workbook. And, no, you don’t need a gateway. But, because the data will reside in
the Excel data model, reports in Power BI based on the Excel workbook will not be live. In order to refresh reports
in Power BI, you’d have to re-upload an updated workbook each time. Or, use the gateway with scheduled refresh.
Question: If users share dashboards that has a DirectQuery connection, will those other users be able to see the
data even though they might not have the same permissions.
Answer: For a dashboard connected to Analysis Services, users will only see the data they have access to. If the
users do not have the same permissions, they will not be able to see any data. For other data sources, all users will
share the credentials entered by the admin for that data source.
Question: Why can't I connect to my Oracle server?
Answer: You may need to install the Oracle client and configure the tnsnames.ora file with the proper server
information in order to connect to your Oracle server. This is a separate install outside of the gateway. For more
information, see Installing the Oracle Client.
Question: Will the gateway work with ExpressRoute?
Answer: Yes. For more information about ExpressRoute and Power BI, see Power BI and ExpressRoute.
Question: I'm using R scripts. Is that supported? Answer: R scripts are supported only for personal mode.
Next steps
On-premises data gateway
On-premises data gateway in-depth
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Install a gateway for Power BI
1/14/2019 • 2 minutes to read • Edit Online
A Power BI gateway is software that you install within an on-premises network; it facilitates access to data in that
network. As described in the overview, you can install a gateway in personal mode or standard mode
(recommended). In standard mode, you can install a stand-alone gateway or add a gateway to a cluster, which is
recommended for high availability. In this article, we show you how to install a standard gateway, then add
another gateway to create a cluster.
If you're not signed up for Power BI, sign up for a free trial before you begin.
1. In the Power BI service in the upper right corner, select the download icon > Data Gateway.
6. Enter the account you use to sign in to Power BI > Sign in.
The gateway is associated with your Power BI account, and you manage gateways from within the Power
BI service. You're now signed in to your account.
7. Select Register a new gateway on this computer > Next.
8. Enter a name for the gateway (must be unique across the tenant) and a recovery key. You need this key if
you ever want to recover or move your gateway. Select Configure.
Notice the option Add to an existing gateway cluster. We'll use this option in the next section of the
article.
9. Review the information in the final window. Notice that the gateway is available for Power BI, and also
PowerApps and Flow, because I use the same account for all three. Select Close.
Now you've successfully installed a gateway, you can add another gateway to create a cluster.
After you install a Power BI data gateway, you manage it based on your requirements. In this topic, you learn
how to: add and remove data sources and users; restart a gateway; and migrate, restore, take over, and remove a
gateway.
You can manage a gateway through the Manage gateways area of the Power BI service, in the gateway app on
your local computer, and with PowerShell scripts. This article focuses on the Power BI service.
If you've just installed a gateway, we recommend that you next add a data source, and then add users so they can
access the data source.
2. Either select a gateway > Add data source, or go to Gateways > Add data source.
5. For SQL Server, you would choose an Authentication Method of Windows or Basic (SQL
Authentication). If you choose Basic, enter the credentials for your data source.
6. Under Advanced settings, optionally configure the privacy level) for your data source (does not apply to
DirectQuery).
You can now use this data source to include data from SQL Server in your Power BI dashboards and reports.
Remove a data source
You can remove a data source if you're no longer using it. Be aware that removing a data source breaks any
dashboards and reports that rely on that data source.
To remove a data source, go to the data source then select Remove.
And that’s all there is to it. Remember that you need to add users to each data source to which you want to grant
access. Each data source has a separate list of users, and you must add users to each data source separately.
Remove users from a data source
On the Users tab for the data source, you can remove users and security groups that use this data source.
Add and remove administrators
On the Administrators tab for the gateway, add and remove users (or security groups) that can administer the
gateway.
Share a gateway
You can't share a gateway per se, but you can add administrators to the gateway, and you can add users to the
gateway's data sources.
After you install a gateway, you are by default the administrator of that gateway. As shown earlier, you can add
other people as administrators. These administrators can add data sources, configure, and remove the gateway.
You can also assign users to the data sources you create under each of your gateways. Users can then use those
data sources to refresh Power BI reports. They can't, however, change any of the data sources or the gateway
settings.
3. Select from the available clusters and gateways, and enter the recover key for the selected gateway. Select
Configure.
Restart a gateway
The gateway runs as a Windows service. Like any Windows service, there multiple ways to start and stop it. Here
is how you can do it from the command prompt.
1. On the machine where the gateway is running, launch a command prompt with Administrator privileges
2. Enter net stop PBIEgwService to stop the service.
3. Enter net start PBIEgwService to restart the service.
Remove a gateway
You can remove a gateway if you're no longer using it. But be aware that removing a gateway deletes all the data
sources under it. This in turn breaks any dashboards and reports that rely on those data sources.
1. In the upper-right corner of the Power BI service, select the gear icon > Manage gateways.
2. Select the gateway > Remove
Next steps
Guidance for deploying a data gateway
More questions? Try the Power BI Community
Manage your data source - Analysis Services
1/14/2019 • 11 minutes to read • Edit Online
Once you have installed the On-premises data gateway, you will need to add data sources that can be used with
the gateway. This article will look at how to work with gateways and data sources. You can use the Analysis
Services data source either for scheduled refresh or for live connections.
https://www.youtube.com/embed/ownIGbcRAAU
Add a gateway
To add a gateway, simply download and install the gateway on a server in your environment. After you have
installed the gateway, it will show in the lists of gateways under Manage gateways.
NOTE
Manage gateways will not show up until you are the admin of at least one gateway. This can happen either by being
added as an admin or you installing and configuring a gateway.
Remove a gateway
Removing a gateway will also delete any data sources under that gateway. This will also break any dashboards
and reports that rely on those data sources.
1. Select the gear icon in the upper-right corner > Manage gateways.
2. Gateway > Remove
You can then select the Data Source Type from the list. Select Analysis Services if you are connecting to either a
Multidimensional or Tabular server.
You will then want to fill in the information for the data source which includes the Server and the Database.
The Username and Password that you enter will be used by the gateway to connect to the Analysis Services
instance.
NOTE
The Windows account you enter must have Server Administrator permissions for the instance you are connecting to. If this
account’s password is set to expire, users could get a connection error if the password isn’t updated for the data source. For
more information, see the main On-premises data gateway article to learn more about how credentials are stored.
You can click Add after you have everything filled in. You can now use this data source for scheduled refresh, or
live connections, against an Analysis Services instance that is on premises. You will see Connection Successful if it
succeeded.
Advanced settings
You can configure the privacy level for your data source. This controls how data can be mashed up. This is only
used for scheduled refresh. It does not apply to live connections. Learn more
Usernames with Analysis Services
Each time a user interacts with a report connected to Analysis Services, the effective username is passed to the
gateway and then onto your on-premises Analysis Services server. The email address, that you sign into Power BI
with, is what we will pass to Analysis Services as the effective user. This is passed in the connection property
EffectiveUserName. This email address should match a defined UPN within the local Active Directory Domain.
The UPN is a property of an Active Directory account. That Windows account then needs to be present in an
Analysis Services role. If a match cannot be found, in Active Directory, the login will not be successful. Learn
more
You can also map your Power BI sign in name with a local directory UPN. Learn more
https://www.youtube.com/embed/Qb5EEjkHoLg
How do I tell what my UPN is?
You may not know what your UPN is, and you may not be a domain administrator. You can use the following
command from your workstation to find out the UPN for your account.
whoami /upn
The result will look similar to an email address, but this is the UPN that is on your domain account. If you are
using an Analysis Services data source for live connections, and If this doesn't match the email address you sign
into Power BI with, you may want to look at how to Map user names.
NOTE
You may inadvertently change a user that you didn't intend to. For example, if your Replace (original value) is
@contoso.com and your With (New name) is @contoso.local, all users with a sign in that contains @contoso.com will
then be replaced with @contoso.local. Also, if your Replace (Original name) is [email protected] and your With (New
name) is [email protected], a user with the sign in of [email protected] would be sent as [email protected].
AD lookup mapping
To perform on-premises AD property lookup to re-map AAD UPNs to Active Directory users, follow the steps in
this section. To begin with, let's review how this works.
In the Power BI service the following occurs:
For each query by a Power BI AAD user to an on-premises SSAS server, a UPN string is passed along, such
as: [email protected]
NOTE
Any manual UPN user mappings defined in the Power BI data source configuration are still applied before sending the user
name string to the On-premises data gateway.
On the On-premises data gateway with configurable Custom User Mapping, do the following:
1. Find Active Directory to search (automatic, or configurable)
2. Look up the attribute of the AD Person (such as Email) based on incoming UPN string
(“[email protected]”) from the Power BI service.
3. If the AD Lookup fails, it attempts to use the passed-along UPN as EffectiveUser to SSAS.
4. If the AD Lookup succeeds, it retrieves UserPrincipalName of that AD Person.
5. It passes the UserPrincipalName email as EffectiveUser to SSAS, such as: [email protected]
How to configure your gateway to perform the AD Lookup:
1. Download and install the latest gateway
2. In the gateway, you need to change the On-premises data gateway service to run with a domain
account (instead of a local service account – otherwise the AD lookup won’t work properly at runtime).
You'll need to restart the gateway service for the change to take effect. Go to the gateway app on your
machine (search for “On-premises data gateway”). To do this, go to Service settings > Change service
account. Make sure you have the recovery key for this gateway, since you'll need to restore it on the same
machine unless you want to create a new gateway instead.
3. Navigate to the gateway’s installation folder, C:\Program Files\On-premises data gateway as an
administrator, to ensure that you have write-permissions, and edit the following file:
Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config
4. Edit the following two configuration values according to your Active Directory attribute configurations for
your AD users. The configuration values shown below are just examples – you need to specify them based
on your Active Directory configuration. These configurations are case-sensitive so make sure they match
the values in Active Directory.
If no value is provided for the ADServerPath configuration, the gateway uses the default Global Catalog.
You can also specify multiple values for the ADServerPath. Each value must be separated by a semicolon
as in the following example.
The gateway parses the values for ADServerPath from left to right until it finds a match. If no match is
found then the original UPN is used. Make sure the account running the gateway service (PBIEgwService)
has query permissions to all AD servers that you specify in ADServerPath.
The gateway supports two types of ADServerPath, as in the following examples.
WinNT
<value="WinNT://usa.domain.corp.contoso.com,computer"/>
GC
5. Restart the On-premises data gateway service for the configuration change to take effect.
Working with mapping rules
To create a mapping rule, enter a value for Original name and New Name and then select Add.
FIELD DESCRIPTION
Replace (Original name) The email address that you signed into Power BI with.
With (New Name) The value you want to replace it with. The result of the
replacement is what will be passed to the EffectiveUserName
property for the Analysis Services connection.
When you select an item in the list, you can choose to re-order it by using the chevron icons, or Delete the
entry.
NOTE
Rules that are saved will take a few minutes for the service to start using them. Within the browser, the rule will work
immediately.
Manage administrators
On the Administrators tab for the gateway, you can add and remove users (or security groups) that can
administer the gateway.
Manage users
On the Users tab for the data source, you can add, and remove, users, or security groups, that can use this data
source.
NOTE
The users list only controls who are allowed to publish reports. The report owners can create dashboards, or content packs,
and share those with other users.
The link between your dataset and the data source within the gateway is based on your server name and
database name. These have to match. For example, if you supply an IP Address for the server name, within Power
BI Desktop, you will need to use the IP Address for the data source within the gateway configuration. If you use
SERVER\INSTANCE, in Power BI Desktop, you will need to use the same within the data source configured for
the gateway.
This is the case for both live connections and scheduled refresh.
Using the data source with live connections
You will need to make sure the server and database name matches between Power BI Desktop and the
configured data source for the gateway. You will also need to make sure your user is listed in the Users tab of the
data source in order to publish live connection datasets. The selection, for live connections, occurs within Power
BI Desktop when you first import data.
After you publish, either from Power BI Desktop or Get Data, your reports should start working. It may take
several minutes, after creating the data source within the gateway, for the connection to be usable.
Using the data source with scheduled refresh
If you are listed in the Users tab of the data source configured within the gateway, and the server and database
name match, you will see the gateway as an option to use with scheduled refresh.
Next steps
On-premises data gateway
On-premises data gateway - in-depth
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Manage your SAP HANA data source
1/14/2019 • 3 minutes to read • Edit Online
Once you have installed the On-premises data gateway , you will need to add data sources that can be used with
the gateway. This article will look at how to work with gateways and data sources. You can use the SAP HANA
data source either for scheduled refresh or for DirectQuery.
Add a gateway
To add a Gateway, simply download and install the gateway on a server in your environment. After you have
installed the gateway, it will show in the lists of gateways under Manage gateways.
NOTE
Manage gateways will not show up until you are the admin of at least one gateway. This can happen either by being added
as an admin or you installing and configuring a gateway.
Remove a gateway
Removing a gateway will also delete any data sources under that gateway. This will also break any dashboards and
reports that rely on those data sources.
1. Select the gear icon in the upper-right corner > Manage gateways.
2. Gateway > Remove
Add a data source
You can add a data source by either selecting a gateway and click Add data source, or go to Gateway > Add
data source.
You can then select the Data Source Type from the list.
You will then want to fill in the information for the data source which includes the Server, Username and
Password.
NOTE
All queries to the data source will run using these credentials. For more information, see the main On-premises data
gateway article to learn more about how credentials are stored.
You can click Add after you have everything filled in. You can now use this data source for scheduled refresh, or
DirectQuery, against a SAP HANA server that is on-premises. You will see Connection Successful if it succeeded.
Advanced settings
You can configure the privacy level for your data source. This controls how data can be mashed up. This is only
used for scheduled refresh. It does not apply to DirectQuery. Learn more
Remove a data source
Removing a data source will break any dashboards or reports that rely on the given data source.
To remove a Data Source, go to the Data Source > Remove.
Manage administrators
On the Administrators tab for the gateway, you can add and remove users (or security groups) that can administer
the gateway.
Manage users
On the Users tab, for the data source, you can add, and remove, users, or security groups, that can use this data
source.
NOTE
The users list only controls who are allowed to publish reports. The report owners can create dashboards, or content packs,
and share those with other users.
NOTE
Server and database name have to match between Power BI Desktop and the data source within the On-premises data
gateway!
The link between your dataset and the data source within the gateway is based on your server name and database
name. These have to match. For example, if you supply an IP Address for the server name, within Power BI
Desktop, you will need to use the IP Address for the data source within the gateway configuration. If you use
SERVER\INSTANCE, in Power BI Desktop, you will need to use the same within the data source configured for the
gateway.
This is the case for both DirectQuery and scheduled refresh.
Using the data source with DirectQuery connections
You will need to make sure the server and database name matches between Power BI Desktop and the configured
data source for the gateway. You will also need to make sure your user is listed in the Users tab of the data source
in order to publish DirectQuery datasets. The selection for DirectQuery occurs within Power BI Desktop when you
first import data. Learn more
After you publish, either from Power BI Desktop or Get Data, your reports should start working. It may take
several minutes, after creating the data source within the gateway, for the connection to be usable.
Using the data source with scheduled refresh
If you are listed in the Users tab of the data source configured within the gateway, and the server and database
name match, you will see the gateway as an option to use with scheduled refresh.
Next steps
On-premises data gateway
On-premises data gateway - in-depth
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Manage your data source - SQL Server
2/13/2019 • 4 minutes to read • Edit Online
Once you have installed the On-premises data gateway, you can add data sources that can be used with the
gateway. This article will look at how to work with gateways and data sources. You can use the SQL Server data
source either for scheduled refresh or for DirectQuery.
Add a gateway
To add a gateway, simply download and install the gateway on a server in your environment. After you have
installed the gateway, it will show in the lists of gateways under Manage gateways.
NOTE
Manage gateways will not show up until you are the admin of at least one gateway. This occurs when you are added as an
admin to a gateway, or you install and configure a gateway yourself.
Remove a gateway
Removing a gateway will also delete any data sources under that gateway. This will also break any dashboards and
reports that rely on those data sources.
1. Select the gear icon in the upper-right corner > Manage gateways.
2. Gateway > Remove
Add a data source
You can add a data source by either selecting a gateway and click Add data source, or go to Gateway > Add
data source.
You can then select the Data Source Type from the list.
NOTE
When using DirectQuery, the gateway only supports SQL Server 2012 SP1 and subsequent versions.
You will then want to fill in the information for the data source which includes the Server and the Database.
You will also need to choose an Authentication Method. This can either be Windows or Basic. You would want
to choose Basic if you are going to use SQL Authentication instead of Windows Authentication. Then enter the
credentials that will be used for this data source.
NOTE
All queries to the data source will run using these credentials, unless Kerberos Single Sign On (SSO) is configured and
enabled for the data source. With SSO, import datasets use the stored credentials, but DirectQuery datasets use the current
Power BI user to execut the queries using SSO. For more information, see the main On-premises data gateway article to
learn more about how credentials are stored, or the article describing how to use Kerberos for SSO (single sign-on) from
Power BI to on-premises data sources.
You can click Add after you have everything filled in. You can now use this data source for scheduled refresh, or
DirectQuery, against a SQL Server that is on-premises. You will see Connection Successful if it succeeded.
Advanced settings
You can configure the privacy level for your data source. This controls how data can be mashed up. This is only
used for scheduled refresh. It does not apply to DirectQuery. Learn more
Manage administrators
On the Administrators tab for the gateway, you can add and remove users (or security groups) that can administer
the gateway.
Manage users
On the Users tab, for the data source, you can add, and remove, users, or security groups, that can use this data
source.
NOTE
The users list only controls who are allowed to publish reports. The report owners can create dashboards, or content packs,
and share those with other users.
NOTE
Server and database name have to match between Power BI Desktop and the data source within the On-premises data
gateway!
The link between your dataset and the data source within the gateway is based on your server name and database
name. These have to match. For example, if you supply an IP Address for the server name, within Power BI
Desktop, you will need to use the IP Address for the data source within the gateway configuration. If you use
SERVER\INSTANCE, in Power BI Desktop, you will need to use the same within the data source configured for the
gateway.
This is the case for both DirectQuery and scheduled refresh.
Using the data source with DirectQuery connections
You will need to make sure the server and database name matches between Power BI Desktop and the
configured data source for the gateway. You will also need to make sure your user is listed in the Users tab of the
data source in order to publish DirectQuery datasets. The selection, for DirectQuery, occurs within Power BI
Desktop when you first import data. Learn more
After you publish, either from Power BI Desktop or Get Data, your reports should start working. It may take
several minutes, after creating the data source within the gateway, for the connection to be usable.
Using the data source with scheduled refresh
If you are listed in the Users tab of the data source configured within the gateway, and the server and database
name match, you will see the gateway as an option to use with scheduled refresh.
Next steps
On-premises data gateway
On-premises data gateway - in-depth
Troubleshooting the On-premises data gateway
Use Kerberos for SSO (single sign-on) from Power BI to on-premises data sources.
More questions? Try the Power BI Community
Manage your data source - Oracle
2/13/2019 • 6 minutes to read • Edit Online
Once you have installed the On-premises data gateway, you will need to add data sources that can be used with
the gateway. This article will look at how to work with gateways and data sources. You can use the Oracle data
source either for scheduled refresh or for DirectQuery.
WARNING
In order for the gateway to be able to connect to your Oracle server, the Oracle Data Provider for .NET (ODP.NET) needs to
be installed and configured. This is part of the Oracle Data Access Components (ODAC). For more information on how to
download the Oracle provider, see Installing the Oracle Client below.
CONTOSO =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracleserver.contoso.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = CONTOSO)
)
)
Add a gateway
To add a gateway, simply download and install the gateway on a server in your environment. After you have
installed the gateway, it will show in the lists of gateways under Manage gateways.
NOTE
Manage gateways will not show up until you are the admin of at least one gateway. This can happen either by being added
as an admin or you installing and configuring a gateway.
Remove a gateway
Removing a gateway will also delete any data sources under that gateway. This will also break any dashboards and
reports that rely on those data sources.
1. Select the gear icon in the upper-right corner > Manage gateways.
2. Gateway > Remove
You will then want to fill in the information for the data source which includes the Server and the Database.
You will also need to choose an Authentication Method. This can either be Windows or Basic. You would want
to choose Basic if you are going to use an account that is created within Oracle instead of Windows
Authentication. Then enter the credentials that will be used for this data source.
NOTE
All queries to the data source will run using these credentials. For more information, see the main On-premises data gateway
article to learn more about how credentials are stored.
You can click Add after you have everything filled in. You can now use this data source for scheduled refresh, or
DirectQuery, against an Oracle server that is on-premises. You will see Connection Successful if it succeeded.
Advanced settings
You can configure the privacy level for your data source. This controls how data can be mashed up. This is only
used for scheduled refresh. It does not apply to DirectQuery. Learn more
Remove a data source
Removing a data source will break any dashboards or reports that rely on the given data source.
To remove a Data Source, go to the Data Source > Remove.
Manage administrators
On the Administrators tab for the gateway, you can add and remove users (or security groups) that can administer
the gateway.
Manage users
On the Users tab, for the data source, you can add, and remove, users, or security groups, that can use this data
source.
NOTE
The users list only controls who are allowed to publish reports. The report owners can create dashboards, or content packs,
and share those with other users. Users that are consuming the report or dashboard do not need to be in the users list.
Using the data source
After you have created the data source, it will be available to use with either DirectQuery connections, or through
scheduled refresh.
WARNING
Server and database name have to match between Power BI Desktop and the data source within the On-premises data
gateway!
The link between your dataset and the data source within the gateway is based on your server name and database
name. These have to match! For example, if you supply an IP Address for the server name, within Power BI
Desktop, you will need to use the IP Address for the data source within the gateway configuration. This name also
has to match an alias defined within the tnsnames.ora file. For more information about the tnsnames.ora file, see
Installing the Oracle Client.
This is the case for both DirectQuery and scheduled refresh.
Using the data source with DirectQuery connections
You will need to make sure the server and database name matches between Power BI Desktop and the configured
data source for the gateway. You will also need to make sure your user is listed in the Users tab of the data source
in order to publish DirectQuery datasets. The selection, for DirectQuery, occurs within Power BI Desktop when
you first import data. Learn more
After you publish, either from Power BI Desktop or Get Data, your reports should start working. It may take
several minutes, after creating the data source within the gateway, for the connection to be usable.
Using the data source with scheduled refresh
If you are listed in the Users tab of the data source configured within the gateway, and the server and database
name match, you will see the gateway as an option to use with scheduled refresh.
Troubleshooting
You may encounter several errors from Oracle when the naming syntax is either incorrect or not configured
properly.
ORA-12154: TNS: could not resolve the connect identifier specified
ORA-12514: TNS listener does not currently know of service requested in connect descriptor
ORA-12541: TNS: no listener
ORA-12170: TNS:Connect timeout occurred
ORA-12504: TNS listener was not given the SERVICE_NAME in CONNECT_DATA
These errors could occur if either the Oracle client is not installed, or if it is not configured properly. If it is installed,
you will want to verify the tnsnames.ora file is properly configured and you are using the proper
net_service_name. You will also need to make sure that the net_service_name is the same between the machine
using Power BI Desktop and the machine that is running the gateway. For more information, see Installing the
Oracle Client.
NOTE
You may also be hitting an issue due to compatability between the Oracle server version and the Oracle client version.
Typically you want these to match.
For additional troubleshooting information relating to the gateway, see Troubleshooting the On-premises data
gateway.
Next steps
On-premises data gateway
On-premises data gateway - in-depth
Troubleshooting the On-premises data gateway
Power BI Premium
More questions? Try asking the Power BI Community
Manage your data source - Import/Scheduled
Refresh
1/14/2019 • 4 minutes to read • Edit Online
Once you have installed the On-premises data gateway, you will need to add data sources that can be used with
the gateway. This article will look at how to work with gateways and data sources that are used for scheduled
refresh as opposed to DirectQuery or live connections.
Add a gateway
To add a gateway, simply download and install the enterprise gateway on a server in your environment. After you
have installed the gateway, it will show in the lists of gateways under Manage gateways.
NOTE
Manage gateways will not show up until you are the admin of at least one gateway. This can happen either by being added
as an admin or you installing and configuring a gateway.
Remove a gateway
Removing a gateway will also delete any data sources under that gateway. This will also break any dashboards and
reports that rely on those data sources.
1. Select the gear icon in the upper-right corner > Manage gateways.
2. Gateway > Remove
Add a data source
You can add a data source by either selecting a gateway and click Add data source, or go to Gateway > Add
data source.
You can then select the Data Source Type from the list. All of the data sources listed can be used for scheduled
refresh with the enterprise gateway. Analysis Services, SQL Server and SAP HANA can be used for either
scheduled refresh, or DirectQuery/live connections.
You will then want to fill in the information for the data source which includes the source information and
credentials used to access the data source.
NOTE
All queries to the data source will run using these credentials. For more information, see the main On-premises data
gateway article to learn more about how credentials are stored.
You can click Add after you have everything filled in. You can now use this data source for scheduled refresh with
your on-premises data. You will see Connection Successful if it succeeded.
File No Yes
Folder No Yes
MySQL No Yes
OData No Yes
ODBC No Yes
Oledb No Yes
PostgresSQL No Yes
Sybase No Yes
Web No Yes
Advanced settings
You can configure the privacy level for your data source. This controls how data can be mashed up. This is only
used for scheduled refresh. Learn more
Remove a data source
Removing a data source will break any dashboards or reports that rely on the given data source.
To remove a Data Source, go to the Data Source > Remove.
Manage administrators
On the Administrators tab, for the gateway, you can add, and remove, users that can administer the gateway. You
can only add users at this time. Security groups cannot be added.
Manage users
On the Users tab, for the data source, you can add, and remove, users, or security groups, that can use this data
source.
NOTE
The users list only controls who are allowed to publish reports. The report owners can create dashboards, or content packs,
and share those with other users.
NOTE
Server and database name have to match between Power BI Desktop and the data source within the On-premises data
gateway!
The link between your dataset and the data source within the gateway is based on your server name and database
name. These have to match. For example, if you supply an IP Address for the server name, within Power BI
Desktop, you will need to use the IP Address for the data source within the gateway configuration. If you use
SERVER\INSTANCE, in Power BI Desktop, you will need to use the same within the data source configured for the
gateway.
If you are listed in the Users tab of the data source configured within the gateway, and the server and database
name match, you will see the gateway as an option to use with scheduled refresh.
WARNING
If your dataset contains multiple data sources, each data source must be added within the gateway. If one or more data
sources are not added to the gateway, you will not see the gateway as available for scheduled refresh.
Limitations
OAuth is not a supported authentication scheme with the On-premises data gateway. You cannot add data
sources that require OAuth. If your dataset has a data source requiring OAuth, you will not be able to use the
gateway for scheduled refresh.
Next steps
On-premises data gateway
On-premises data gateway - in-depth
Troubleshooting the On-premises data gateway
More questions? Try the Power BI Community
Merge or append on-premises and cloud data
sources
1/14/2019 • 2 minutes to read • Edit Online
The On-premises data gateway enables you to merge or append on-premises and cloud data sources in the same
query. This is helpful when you want to mashup data from multiple sources without having to use separate queries.
Prerequisites
A gateway installed on a local computer.
A Power BI Desktop file with queries that combine on-premises and cloud data sources.
1. In the upper-right corner of the Power BI service, select the gear icon > Manage gateways.
Next steps
To learn more about data refresh for gateways, see Using the data source for scheduled refresh.
Overview of single sign-on (SSO) for gateways in
Power BI
1/14/2019 • 2 minutes to read • Edit Online
You can get seamless single sign-on connectivity, enabling Power BI reports and dashboards to update from on-
premises data, by configuring your On-premises data gateway either with Kerberos constrained delegation or
Security Assertion Markup Language (SAML ). The On-premises data gateway facilitates SSO using DirectQuery,
which it uses to connect to on-premises data sources.
We currently support the following data sources:
SQL Server (Kerberos)
SAP HANA (Kerberos and SAML
SAP BW (Kerberos
Teradata (Kerberos)
Spark (Kerberos)
Impala (Kerberos)
When a user interacts with a DirectQuery report in the Power BI Service, each cross-filter, slice, sorting, and report
editing operation can result in queries executing live against the underlying on-premises data source. When SSO is
configured for the data source, queries execute under the identity of the user interacting with Power BI (that is,
through the web experience or Power BI mobile apps). Thereby, each user sees precisely the data for which they
have permissions in the underlying data source – with single sign-on configured, there is no shared data caching
across different users.
Next steps
Now that you understand the basics of SSO, read more detailed information about Kerberos and SAML:
Single sign-on (SSO ) - Kerberos
Single sign-on (SSO ) - SAML
Use Kerberos for single sign-on (SSO) from Power
BI to on-premises data sources
3/18/2019 • 18 minutes to read • Edit Online
Use Kerberos constrained delegation to enable seamless single sign-on (SSO ) connectivity. Enabling SSO
makes it easy for Power BI reports and dashboards to refresh data from on-premises sources.
NOTE
If Azure AD Connect is configured, and user accounts are synchronized, the gateway service doesn't need to perform local
Azure AD lookups at runtime. You can use the local service SID (instead of requiring a domain account) for the gateway
service. The Kerberos constrained delegation configuration steps outlined in this article are the same as that
configuration. They are simply applied to the gateway's computer object in Azure AD, instead of the domain account.
Prerequisite 3: Have domain admin rights to configure SPNs (SetSPN ) and Kerberos constrained delegation
settings
It's not recommended for a domain administrator to temporarily or permanently allow rights to someone else
to configure SPNs and Kerberos delegation without requiring domain admin rights. In the following section, we
cover the recommended configuration steps in more detail.
3. Under User Rights Assignment, from the list of policies, select Impersonate a client after
authentication.
Right-click, and open Properties. Check the list of accounts. It must include the gateway service account
(PBIEgwTest\GatewaySvc).
4. Under User Rights Assignment, from the list of policies, select Act as part of the operating system
(SeTcbPrivilege). Ensure that the gateway service account is included in the list of accounts as well.
5. Restart the On-premises data gateway service process.
If you're using SAP HANA, we recommend following these additional steps, which can yield a small
performance improvement.
1. In the gateway installation directory, find and open this configuration file:
Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.
2. Find the FullDomainResolutionEnabled property, and change its value to True.
This configuration works in most cases. However, with Kerberos there can be different configurations
depending on your environment. If the report still won't load, contact your domain administrator to investigate
further.
2. Select the Sign-in button on the main page, and sign in with your Power BI account.
3. After sign-in is completed, select the Service Settings tab.
4. Select Change account to start the guided walk-through.
NOTE
gsskrb5 is no longer actively supported by SAP. For more information, see SAP Note 352295. Also note that gsskrb5
doesn't allow for SSO connections from the data gateway to SAP BW Message Servers. Only connections to SAP BW
Application Servers are possible.
must be in use by both the client and server to complete an SSO connection through the gateway. The
gsskrb5
Common Crypto Library (sapcrypto) isn't currently supported.
1. Download gsskrb5 - gx64krb5 from SAP Note 2115486 (SAP s-user required). Ensure you have at
least version 1.0.11.x of gsskrb5.dll and gx64krb5.dll.
2. Put the library in a location on your gateway machine that is accessible by your gateway instance (and
also by the SAP GUI if you want to test the SSO connection by using SAP Logon).
3. Put another copy on your SAP BW server machine in a location accessible by the SAP BW server.
4. On the client and server machines, set the SNC\_LIB and SNC\_LIB\_64 environment variables to point to
the locations of gsskrb5.dll and gx64krb5.dll, respectively.
Create a SAP BW service user and enable SNC communication
In addition to the gateway configuration you've already done, there are a few additional steps specific to SAP
BW. The Configure delegation settings on the gateway service account section of the documentation assumes
you've already configured SPNs for your underlying data sources. To complete this configuration for SAP BW:
1. On an Active Directory Domain Controller server, create a service user (initially just a plain Active
Directory user) for your SAP BW Application Server in your Active Directory environment. Then assign
an SPN to it.
SAP recommends starting the SPN with SAP/ , but it should also be possible to use other prefixes, such
as HTTP/ . What comes after the SAP/ is up to you; one option is to use the SAP BW server's service
user's username. For example, if you create BWServiceUser@\<DOMAIN\> as your service user, you can use
the SPN SAP/BWServiceUser . One way to set the SPN mapping is the setspn command. For example, to
set the SPN on the service user we just created, you would run the following command from a cmd
window on a Domain Controller machine: setspn -s SAP/ BWServiceUser DOMAIN\ BWServiceUser . For
more information, see the SAP BW documentation.
2. Give the service user access to your SAP BW Application Server:
a. On the SAP BW server machine, add the service user to the Local Admin group for your SAP BW
server. Open the Computer Management program and double-click the Local Admin group for
your server.
b. Double-click the Local Admin group, and select Add to add your service user to the group. Select
Check Names to ensure you've entered the name correctly. Select OK.
3. Set the SAP BW server's service user as the user who starts the SAP BW server service on the SAP BW
server machine.
a. Open Run, and enter "Services.msc". Look for the service corresponding to your SAP BW
Application Server instance. Right-click it, and select Properties.
b. Switch to the Log on tab, and change the user to your SAP BW service user. Enter the user's
password, and select OK.
4. Sign in to your server in SAP Logon, and set the following profile parameters by using the RZ10
transaction:
a. Set the snc/identity/as profile parameter to p:<the SAP BW service user you've created>, such as
p:[email protected]. Note the p: that precedes the service user's UPN. It's not
p:CN= like when Common Crypto Lib is used as the SNC library.
b. Set the snc/gssapi_lib profile parameter to <path to gsskrb5.dll/gx64krb5.dll on the server
machine (the library you'll use depends on OS bitness)>. Remember to put the library in a
location the SAP BW Application Server can access.
c. Also set the following additional profile parameters, changing the values as required to fit your
needs. Note that the last five options enable clients to connect to the SAP BW server by using
SAP Logon, without having SNC configured.
SETTING VALUE
snc/data_protection/max 3
snc/data_protection/min 1
snc/data_protection/use 9
snc/accept_insecure_cpic 1
snc/accept_insecure_gui 1
snc/accept_insecure_r3int_rfc 1
snc/accept_insecure_rfc 1
snc/permit_insecure_start 1
3. Select the SNC tab. In the SNC name input box, enter p:<your Active Directory user>@<your domain>.
Note the mandatory p: that must precede the Active Directory user's UPN. The Active Directory user you
specify should belong to the person or organization for whom you want to enable SSO access to the
SAP BW Application Server. For example, if you want to enable SSO access for the user
[email protected], enter p:[email protected].
4. Select the Save icon (the image of a floppy disk) near the top left of the screen.
Test sign-in by using SSO
Verify that you can sign in to the server. Use the SAP Logon through SSO as the Active Directory user for
whom you've just enabled SSO access.
1. As the Active Directory user you just enabled SSO access for, sign in to a machine on which SAP Logon
is installed. Launch SAP Logon, and create a new connection.
2. In the Create New System Entry screen, select User Specified System > Next.
3. Fill in the appropriate details on the next screen, including the application server, instance number, and
system ID. Then select Finish.
4. Right-click the new connection and select Properties. Select the Network tab. In the SNC Name text
box, enter p:<the SAP BW service user's UPN>, such as p:[email protected]. Then
select OK.
5. Double-click the connection you just created to attempt an SSO connection to your SAP BW server. If
this connection succeeds, proceed to the next step. Otherwise, review the earlier steps in this document
to make sure they've been completed correctly, or review the troubleshooting section below. Note that if
you can't connect to the SAP BW server via SSO in this context, you won't be able to connect to the SAP
BW server using SSO in the gateway context.
Troubleshoot installation and connections
If you encounter any problems, follow these steps to troubleshoot the gsskrb5 installation and SSO connections
from the SAP Logon.
Viewing the server logs (…work\dev_w0 on the server machine) can be helpful in troubleshooting any
errors you encounter in completing the gsskrb5 setup steps. This is particularly true if the SAP BW
server won't start after the profile parameters have been changed.
If you're unable to start the SAP BW service due to a logon failure, you might have provided the wrong
password when setting the SAP BW "start-as" user. Verify the password by logging in to a machine in
your Active Directory environment as the SAP BW service user.
If you get errors about SQL credentials preventing the server from starting, verify that you've granted
the service user access to the SAP BW database.
You might get the following message: "(GSS -API) specified target is unknown or unreachable." This
usually means you have the wrong SNC name specified. Make sure to use "p:" only, not "p:CN=" or
anything else in the client application, other than the service user's UPN.
You might get the following message: "(GSS -API) An invalid name was supplied." Make sure "p:" is in the
value of the server's SNC identity profile parameter.
You might get the following message: "(SNC error) the specified module could not be found." This is
usually caused by putting the gsskrb5.dll/gx64krb5.dll somewhere that requires elevated privileges
(administrator rights) to access.
Add registry entries to the gateway machine
Add required registry entries to the registry of the machine that the gateway is installed on. Here are the
commands to run:
1. REG ADD HKLM\SOFTWARE\Wow6432Node\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1
/f
2. REG ADD HKLM\SOFTWARE\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f
Set configuration parameters on the gateway machine
There are two options for setting configuration parameters, depending on whether you have Azure AD Connect
configured so that users can sign in to the Power BI service as an Azure AD user.
If you have Azure AD Connect configured, follow these steps.
1. Open the main gateway configuration file, Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll . By
default, this file is stored at C:\Program Files\On-premises data gateway.
2. Ensure the FullDomainResolutionEnabled property is set to True, and
SapHanaSsoRemoveDomainEnabled is set to False.
3. Save the configuration file.
4. From the Services tab of Task Manager, right-click the gateway service and select Restart.
If you don't have Azure AD Connect configured, follow these steps for every Power BI service user you want to
map to an Azure AD user. These steps manually link a Power BI service user to an Active Directory user with
permission to sign in to SAP BW.
1. Open the main gateway configuration file, Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll . By
default, this file is stored at C:\Program Files\On-premises data gateway.
2. Set the ADUserNameLookupProperty to msDS-cloudExtensionAttribute1 , and the
ADUserNameReplacementProperty to SAMAccountName . Save the configuration file.
3. From the Services tab of Task Manager, right-click the gateway service and select Restart.
4. Set the msDS-cloudExtensionAttribute1 property of the Active Directory user. This is the user you mapped
to a SAP BW user. Set the property to the Power BI service user for whom you want to enable Kerberos
SSO. One way to set the msDS-cloudExtensionAttribute1 property is by using the Active Directory Users
and Computers MMC snap-in. (You can also use other methods.)
a. Sign in to a Domain Controller machine as an administrator user.
b. Open the Users folder in the snap-in window, and double-click the Active Directory user you
mapped to a SAP BW user.
c. Select the Attribute Editor tab.
If you don't see this tab, you'll need to search for directions on how to enable it, or use another
method to set the property. Select one of the attributes and then the M key to go to the Active
Directory properties that start with the letter m. Locate the msDS-cloudExtensionAttribute1
property, and double-click it. Set the value to the username you use to sign in to the Power BI
Service, in the form YourUser@YourDomain.
d. Select OK.
e. Select Apply. Verify that the correct value has been set in the Value column.
Add a new SAP BW Application Server data source to the Power BI service
Add the SAP BW data source to your gateway by following the instructions earlier in this article on running a
report.
1. In the data source configuration window, enter the Application Server's Hostname, System Number,
and client ID, as you would to sign in to your SAP BW server from Power BI Desktop. For the
Authentication Method, select Windows.
2. In the SNC Partner Name field, enter p: <the SPN you mapped to your SAP BW service user>. For
example, if the SPN is SAP/[email protected], you should enter
p:SAP/[email protected] in the SNC Partner Name field.
3. For the SNC Library, select SNC_LIB or SNC_LIB_64.
4. The Username and Password should be the username and password of an Active Directory user with
permission to sign in to the SAP BW server with SSO. In other words, these should belong to an Active
Directory user who has been mapped to a SAP BW user through the SU01 transaction. These credentials
are only used if the Use SSO via Kerberos for DirectQuery queries box is not checked.
5. Select the Use SSO via Kerberos for DirectQuery queries box, and select Apply. If the test
connection is not successful, verify that the previous setup and configuration steps were completed
correctly.
The gateway always uses the typed-in credentials to establish a test connection to the server, and to do
scheduled refreshes of import-based reports. The gateway only attempts to establish an SSO connection
if the Use SSO via Kerberos for DirectQuery queries is selected, and the user is accessing a direct
query-based report or dataset.
Test your setup
To test your setup, publish a DirectQuery report from Power BI Desktop to the Power BI service. Make sure
you’re signed in to the Power BI service as either an Azure AD user, or a user you’ve mapped to the
msDS-cloudExtensionAttribute1 property of an Azure AD user. If the setup has been completed successfully, you
should be able to create a report from the published dataset in the Power BI service. You should also be able to
pull data through visuals in the report.
Troubleshoot gateway connectivity issues
1. Check the gateway logs. Open the gateway configuration application, and select Diagnostics > Export
logs. The most recent errors are at the bottom of any log files you examine.
2. Turn on SAP BW tracing, and review the generated log files. There are several different types of SAP BW
tracing available. Consult the SAP documentation for more information.
The technical details associated with the error message (DM_GWPipeline_Gateway_ServerUnreachable) might
look like the following:
The result is that the gateway can't impersonate the originating user properly, and the database connection
attempt failed.
Next steps
For more information about the On-premises data gateway and DirectQuery, check out the following
resources:
On-premises data gateway
DirectQuery in Power BI
Data sources supported by DirectQuery
DirectQuery and SAP BW
DirectQuery and SAP HANA
Use resource-based Kerberos for single sign-on (SSO)
from Power BI to on-premises data sources
3/22/2019 • 5 minutes to read • Edit Online
Use resource-based Kerberos constrained delegation to enable single sign-on connectivity for Windows Server
2012 and later versions, permitting front-end and back-end services to be in different domains. For this to work,
the back-end service domain needs to trust the front-end service domain.
To enable **Kerberos Constrained Delegation, the gateway must run as a domain account, unless your Azure AD is
already synchronized with your local Active Directory (using Azure AD DirSync/Connect). If you need to switch the
account to a domain account, see Switching the gateway to a domain account.
If Azure AD DirSync / Connect is configured and user accounts are synchronized, the gateway service does not
need to perform local AD lookups at runtime. You can use the local Service SID (instead of requiring a domain
account) for the gateway service. The Kerberos Constrained Delegation configuration steps outlined in this article
are the same as that configuration (they are simply applied to the gateway's computer object in Active Directory,
instead of the domain account).
Prerequisite 4: Have domain admin rights to configure SPNs (SetSPN ) and Kerberos constrained delegation
settings
While it is technically possible for a domain administrator to temporarily or permanently allow rights to someone
else to configure SPNs and Kerberos delegation without requiring domain admin rights, that's not the
recommended approach. In the following section, we cover the configuration steps necessary for Prerequisite 3 in
detail.
3. Create a group in Active Directory Users and Computers, on the domain controller for
PBIEgwTestBack-end domain. Add the gateway service account to this group as shown in the following
image. The image shows a new group called ResourceDelGroup and the gateway service account
GatewaySvc added to this group.
4. Open command prompt and run the following commands n the domain controller for PBIEgwTestBack-
end domain to update msDS -AllowedToActOnBehalfOfOtherIdentity attribute of the back-end service
account:
$c = Get-ADGroup ResourceDelGroup
Set-ADUser SQLService -PrincipalsAllowedToDelegateToAccount $c
5. You can verify that the update is reflected in the "Attribute Editor" tab in the properties for the back-end
service account in Active Directory Users and Computers.
Finally, on the machine running the gateway service ( PBIEgwTestGW in our example), the gateway service
account must be granted the local policy "Impersonate a client after authentication". You can perform/verify this
with the Local Group Policy Editor (gpedit).
1. On the gateway machine, run: gpedit.msc.
2. Navigate to Local Computer Policy > Computer Configuration > Windows Settings > Security
Settings > Local Policies > User Rights Assignment, as shown in the following image.
3. From the list of policies under User Rights Assignment, select Impersonate a client after
authentication.
4. Right-click and open the Properties for Impersonate a client after authentication, and check the list of
accounts. It must include the gateway service account ( PBIEgwTestFront-end \GatewaySvc ).
5. From the list of policies under User Rights Assignment, select Act as part of the operating system
(SeTcbPrivilege). Ensure that the gateway service account is included in the list of accounts as well.
6. Restart the On-premises data gateway service process.
Next steps
For more information about the On-premises data gateway and DirectQuery, check out the following
resources:
On-premises data gateway
DirectQuery in Power BI
Data sources supported by DirectQuery
DirectQuery and SAP BW
DirectQuery and SAP HANA
Use Security Assertion Markup Language (SAML) for
single sign-on (SSO) from Power BI to on-premises
data sources
3/20/2019 • 6 minutes to read • Edit Online
Use Security Assertion Markup Language (SAML ) to enable seamless single sign-on connectivity. Enabling SSO
makes it easy for Power BI reports and dashboards to refresh data from on-premises sources.
openssl req -new -x509 -newkey rsa:2048 -days 3650 -sha256 -keyout CA_Key.pem -out CA_Cert.pem -extensions
v3_ca
Add the certificate (for example, CA_Cert.pem) to the HANA server's Trust Store so that the HANA server will
trust any certificates signed by the Root CA you have just created. The location of your HANA server's Trust Store
can be found by examining the ssltruststore configuration setting. If you have followed the SAP Documentation
covering how to configure OpenSSL, your HANA server may already trust a Root CA you that can reuse. See how
How to Configure Open SSL for SAP HANA Studio to SAP HANA Server for details. If you have multiple HANA
servers that you want to enable SAML SSO for, make sure that each of the servers trusts this Root CA.
1. Create the Gateway IdP's X509 certificate. For example, to create a certificate-signing request (IdP_Req.pem)
and a private key (IdP_Key.pem) that are valid for a year, execute the following command:
openssl req -newkey rsa:2048 -days 365 -sha256 -keyout IdP_Key.pem -out IdP_Req.pem -nodes
Sign the certificate-signing request using the Root CA you've configured your HANA server(s) to trust. For
example, to sign IdP_Req.pem using CA_Cert.pem and CA_Key.pem (the certificate and key of the Root CA),
execute the following command:
openssl x509 -req -days 365 -in IdP_Req.pem -sha256 -extensions usr_cert -CA CA_Cert.pem -CAkey CA_Key.pem -
CAcreateserial -out IdP_Cert.pem
The resulting IdP certificate will be valid for a year (see the -days option). Now, import your IdP's certificate in
HANA Studio to create a new SAML Identity Provider.
1. In SAP HANA Studio, right-click your SAP HANA server, then navigate to Security > Open Security
Console > SAML Identity Provider > OpenSSL Cryptographic Library.
4. Expand Users then select the user you want to map your Power BI user to.
5. Select SAML then Configure.
6. Select the identity provider you created in step 2. For External Identity , enter the Power BI user's UPN,
then select Add.
Now that you have the certificate and identity configured, you convert the certificate to a pfx format and configure
the gateway machine to use the certificate.
1. Convert the certificate to the pfx format by running the following command. Note that this command sets
"root" as the pfx file's password.
openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout
pass:root
3. Grant the gateway service account access to the private key of the certificate:
a. On the gateway machine, run the Microsoft Management Console (MMC ).
g. Add the gateway service account to the list. By default, the account is NT
SERVICE\PBIEgwService. You can find out what account is running gateway service by running
services.msc and find On-premises data gateway service.
Finally, follow these steps to add the certificate thumbprint to the gateway configuration.
1. Run the following PowerShell command to list the certificates on your machine.
5. Once the troubleshooting is complete, turn off the authentication trace by running the following query.
Next steps
For more information about the On-premises data gateway and DirectQuery, check out the following
resources:
On-premises data gateway
DirectQuery in Power BI
Data sources supported by DirectQuery
DirectQuery and SAP BW
DirectQuery and SAP HANA
Configuring proxy settings for the On-premises data
gateway
3/12/2019 • 3 minutes to read • Edit Online
Your work environment may require that you go through a proxy to access the internet. This could prevent the
On-premises data gateway from connecting to the service.
Windows Service
The second is for the actual windows service that interacts with the Power BI service, and handles the requests.
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
The default configuration works with Windows authentication. If your proxy uses another form of
authentication, you will need to change the settings. If you are not sure, you should contact your network
administrator. Basic proxy authentication is not recommended, and attempting to use basic proxy authentication
may cause proxy authentication errors that result in the gateway not being properly configured. Use a stronger
proxy authentication mechanism to resolve.
In addition to using default credentials, you can add a element to define proxy server settings in more detail. For
example, you can specify that your On-premises data gateway should always use the proxy even for local
resources by setting the bypassonlocal parameter to false. This can help in troubleshooting situations if you
want to track all https requests originating from an On-premises data gateway in the proxy log files. The
following sample configuration specifies that all requests must go through a specific proxy with the IP address
192.168.1.10.
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy
autoDetect="false"
proxyaddress="http://192.168.1.10:3128"
bypassonlocal="false"
usesystemdefault="true"
/>
</defaultProxy>
</system.net>
Additionally, for the gateway to connect to cloud data sources through a proxy, update the following file:
C:\Program Files\On-premises data gateway\Microsoft.Mashup.Container.NetFX45.exe. In the file, expand the
<configurations> section to include the contents below, and update proxyaddress attribute with your proxy
information. The following example would route all cloud requests via a specific proxy with the IP address
192.168.1.10.
<configuration>
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy proxyaddress=""http://192.168.1.10:3128" bypassonlocal="true" />
</defaultProxy>
</system.net>
</configuration>
To learn more about the configuration of the proxy elements for .NET configuration files, see defaultProxy
Element (Network Settings).
NOTE
It is recommended that you use a managed service account to avoid having to reset passwords. Learn how to create a
managed service account within Active Directory.
3. Start the On-premises data gateway configurator. You can select the windows start button and search
for On-premises data gateway.
4. Sign in to Power BI.
5. Restore the gateway using your recovery key.
This will allow the new service account to be able to decrypt stored credentials for data sources.
NOTE
When you change the service account directly using Services Control panel, it does not update ACLs automatically. You
need to ensure that new service account has access to the installation files and folder. You can find Gateway Installation
folder under C:\Program Files\On-premises data gateway.
Next steps
On-premises data gateway (personal mode) Firewall information
More questions? Try the Power BI Community
High availability clusters for On-premises data
gateway
2/13/2019 • 5 minutes to read • Edit Online
You can create high availability clusters of On-premises data gateway installations, to ensure your
organization can access on-premises data resources used in Power BI reports and dashboards. Such clusters allow
gateway administrators to group gateways to avoid single points of failure in accessing on-premises data
resources. The Power BI service always uses the primary gateway in the cluster, unless it’s not available. In that
case, the service switches to the next gateway in the cluster, and so on.
This article describes the steps you can take to create a high availability cluster of On-premises data gateways and
shares best practices when setting them up. High availability gateway clusters require the November 2017 update
to On-premises data gateway, or later.
To add a gateway to an existing cluster, you must provide the Recovery key for the primary gateway instance for
the cluster you want the new gateway to join. The primary gateway for the cluster must be running the gateway
update from November 2017 or later.
3. Next, navigate to the On-premises data gateway installation folder in the PowerShell window, and import
the necessary module using the following command:
Import-Module .\OnPremisesDataGatewayHAMgmt.psm1
Once those steps are complete, you can use the commands in the following table to manage your gateway clusters.
Login-OnPremisesDataGateway This command allows a user to log in to AAD username and password (provided
manage his or her On-premises data as part of the command execution, not
gateway clusters. You must run this initial invocation)
command and log in before other high
availability commands can work
properly. Note: the AAD auth token
acquired as part of a Login call is only
valid for 1 hour, after which it expires.
You can re-run the Login command to
acquire a new token.
Get-OnPremisesDataGatewayClusters Retrieves the list of gateway clusters for Optionally, you can pass formatting
the logged in user. parameters to this command for better
readability, such as Format-Table -
AutoSize -Wrap
Get-OnPremisesDataClusterGateways Retrieves the list of gateways within the -ClusterObjectID xyz (where xyz is
specified cluster, as well as additional replaced with an actual cluster object ID
information for each gateway value, which can be retrieved using the
(online/offline status, machine name, so Get-OnPremisesDataGatewayClusters
on) command)
Set-OnPremisesDataGateway Lets you set property values for a given -ClusterObjectID xyz (xyz, should be
gateway within a cluster, including the replaced with an actual cluster object ID
ability to Enable/Disable a specific value, which can be retrieved using the
gateway instance Get-OnPremisesDataGatewayClusters
command) -GatewayObjectID abc (abc
should be replaced with an actual
gateway object ID value, which can be
retrieved using the Get-
OnPremisesDataClusterGateways
command, given a cluster object ID)
Get-OnPremisesDataGatewayStatus Lets you retrieve the status for a given -ClusterObjectID xyz (xyz should be
gateway instance within a cluster replaced with an actual cluster object ID
value, which can be retrieved using the
Get-OnPremisesDataGatewayClusters
command) -GatewayObjectID abc (abc
should be replaced with an actual
gateway object ID value, which can be
retrieved using the Get-
OnPremisesDataClusterGateways
command, given a cluster object ID)
COMMAND DESCRIPTION PARAMETERS
Remove-OnPremisesDataGateway Lets you remove a gateway instance -ClusterObjectID xyz (xyz should be
from a cluster - note that the primary replaced with an actual cluster object ID
gateway in the cluster cannot be value, which can be retrieved using the
removed until all other gateways in the Get-OnPremisesDataGatewayClusters
cluster are removed. command) -GatewayObjectID abc (abc
should be replaced with an actual
gateway object ID value, which can be
retrieved using the Get-
OnPremisesDataClusterGateways
command, given a cluster object ID)
Next steps
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Oracle
Manage your data source - Import/Scheduled refresh
On-premises data gateway in-depth
On-premises data gateway (personal mode)
Configuring proxy settings for the On-premises data gateway
Use Kerberos for SSO (single sign-on) from Power BI to on-premises data sources
More questions? Try the Power BI Community
On-premises data gateway
1/30/2019 • 12 minutes to read • Edit Online
The On-premises data gateway acts as a bridge, providing quick and secure data transfer between on-
premises data (data that is not in the cloud) and the Power BI, Microsoft Flow, Logic Apps, and
PowerApps services.
You can use a single gateway with different services at the same time. If you are using Power BI as well as
PowerApps, a single gateway can be used for both. It is dependent on the account you sign in with.
NOTE
The On-premises data gateway implements data compression, and transport encryption, in all modes.
Requirements
Minimum Requirements:
.NET 4.6 Framework
64-bit version of Windows 7 / Windows Server 2008 R2 (or later)
Recommended:
8 Core CPU
8 GB Memory
64-bit version of Windows 2012 R2 (or later)
Related Considerations:
The gateway cannot be installed on a domain controller
If you are planning to use Windows authentication, make sure you install the gateway on a computer
that is a member of the same Active Directory environment as the data source(s).
You shouldn't install a gateway on a computer, such a laptop, that may be turned off, asleep, or not
connected to the Internet because the gateway can't run under any of those circumstances. In addition,
gateway performance might suffer over a wireless network.
Analysis Services is not required to use the gateway. You can use the gateway to connect to an Analysis
Services data source.
Limitations of Analysis Services live connections
You can use a live connection against tabular or multidimensional instances.
File No Yes
Folder No Yes
MySQL No Yes
OData No Yes
ODBC No Yes
Oledb No Yes
PostgresSQL No Yes
Sybase No Yes
Web No Yes
Download and install the On-premises data gateway
To download the gateway, select Data Gateway under the Downloads menu. Download the On-premises
data gateway.
Note that you update the On-premises data gateway by installing the gateway again, as described in this
section. As long as you install a newer version of the gateway, your existing settings are retained. If you
install the same version, it treats this as a complete reinstall, and your settings are not retained.
NOTE
The gateway is supported only on 64-bit Windows operating systems.
For Power BI, the first choice you have to make is the mode of the gateway.
On-premises data gateway: Multiple users can share and reuse a gateway in this mode. This
gateway can be used by Power BI, PowerApps, Flow or Logic Apps. For Power BI, this includes support
for both schedule refresh and DirectQuery
Personal: This is for Power BI only and can be used as an individual without any administrator
configuration. This can only be used for on-demand refresh and schedule refresh. This selection
launchs installation of the personal gateway.
There are a few things to note about installing either mode of the gateway:
both gateways require 64-bit Windows operating systems
gateways can’t be installed on a domain controller
you can install up to two On-premises data gateways on the same computer, one running in each
mode (personal and standard).
you cannot have more than one gateway running in the same mode on the same computer.
you can install multiple On-premises data gateways on different computers, and manage them all from
the same Power BI gateway management interface (excluding personal, see the following bullet point)
You can only have one Personal mode gateway running for each Power BI user. If you install another
Personal mode gateway for the same user, even on a different computer, the most recent installation
replaces the existing previous installation.
Here are a few things to consider before installing the gateway.
If you are installing on a laptop, and your laptop is turned off, not connected to the internet, or asleep
the gateway won’t work and the data in the cloud service will not be synchronized with your on-
premises data.
If your machine is connected to a wireless network, the gateway may perform more slowly which will
cause it to take longer to synchronize the data in the cloud service with your on-premises data.
Once the gateway is installed, you will need to sign in with your work or school account.
After you are signed in, you will have the option to configure a new gateway, or to migrate, restore, or take
over an existing gateway.
Configure a new gateway
1. Enter a name for the gateway
2. Enter a recovery key. This has to be a minimum of 8 characters.
3. Select Configure.
NOTE
The recovery key will be needed if you ever need to migrate, restore or take over a gateway. Be sure to keep this
key in a safe place.
Migrate, restore or take over an existing gateway
You will need to select the gateway you want to recover and supply the recovery key that was used to first
create the gateway.
On-premises data gateway connected
Once the gateway is configured, you will be able to make use of it to connect to on-premises data sources.
If the gateway is for Power BI, you will need to add your data sources to the gateway within the Power BI
service. This is done within the Manage gateways area. You can refer to the manage data sources
articles for more information.
For PowerApps, you will need to select a gateway for a defined connection for supported data sources.
For Flow and Logic Apps, this gateway is ready to be used with your on-premises connections.
After the personal gateway is installed, you will need to launch the Power BI Gateway - Personal
Configuration Wizard.
You will then need to sign into Power BI to register the gateway with the cloud service.
You will also need to supply the windows user name and password that the windows service will run as.
You can specify a different Windows account from your own. The gateway service will run using this
account.
After the installation is complete, you will need to go to your datasets within Power BI and make sure
credentials are entered for your on-premises data sources.
Sign in account
Users sign in with either a work or school account. This account is your organization account. If you
signed up for an Office 365 offering and didn’t supply your actual work email, it may look like
[email protected]. Your account is stored within a tenant in Azure Active Directory (AAD ).
In most cases, your AAD account’s UPN will match the email address.
Windows Service account
The On-premises data gateway is configured to use NT SERVICE\PBIEgwService for the Windows
service logon credential. By default, it has the right of Log on as a service, in the context of the machine
that you are installing the gateway on. The account is not the same account used to connect to on-
premises data sources. The account is also not the work or school account that you sign in to cloud
services with.
NOTE
If you selected personal mode, you configure the Windows service account separately.
If you encounter authentication issues with your proxy server, try changing the Windows service account
to a domain user or managed service account. For more information, see proxy configuration.
Ports
The gateway creates an outbound connection to Azure Service Bus. It communicates on outbound ports:
TCP 443 (default), 5671, 5672, 9350 through 9354. The gateway does not require inbound ports.
It is recommended that you whitelist the IP addresses, for your data region, in your firewall. You can
download the Microsoft Azure Datacenter IP list, which is updated weekly. The gateway will communicate
with Azure Service Bus using the IP address along with the fully qualified domain name (FQDN ). If you
are forcing the gateway to communicate using HTTPS it will strictly use FQDN only, and no
communication will happen using IP addresses.
NOTE
The IP Addresses listed in the Azure Datacenter IP list are in CIDR notation. For example, 10.0.0.0/24 does not
mean 10.0.0.0 through 10.0.0.24. Learn more about the CIDR notation.
Here is a listing of the fully qualified domain names used by the gateway.
NOTE
Traffic going to visualstudio.com or visualstudioonline.com are for app insights and are not required for the
gateway to function.
The value for the ServiceBusSystemConnectivityModeString parameter is case-sensitive. Valid values are
AutoDetect and Https.
Alternatively, you can force the gateway to adopt this behavior using the gateway user interface. In the
gateway user interface select Network, then toggle the Azure Service Bus connectivity mode to On.
Once changed, when you select Apply (a button that only appears when you make a change), the
gateway Windows service restarts automatically, so the change can take effect.
For future reference, you can restart the gateway Windows service from the user interface dialog by
selecting Service Settings then select Restart Now.
Support for TLS 1.2
By default, the On-premises data gateway uses Transport Layer Security (TLS ) 1.2 to communicate with
the Power BI service. To ensure all gateway traffic uses TLS 1.2, you might have to add or modify the
following registry keys on the machine running the gateway service:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword
:00000001
NOTE
Adding or modifying these registry keys applies the change to all .NET applications. For information about registry
changes that affect TLS for other applications, see Transport Layer Security (TLS) registry settings.
Let’s first look at what happens when a user interacts with an element connected to an on-premises data
source.
NOTE
For Power BI, you will need to configure a data source for the gateway.
1. A query will be created by the cloud service, along with the encrypted credentials for the on-premises
data source, and sent to the queue for the gateway to process.
2. The gateway cloud service will analyze the query and will push the request to the Azure Service Bus.
3. The On-premises data gateway polls the Azure Service Bus for pending requests.
4. The gateway gets the query, decrypts the credentials and connects to the data source(s) with those
credentials.
5. The gateway sends the query to the data source for execution.
6. The results are sent from the data source, back to the gateway, and then onto the cloud service. The
service then uses the results.
NOTE
The IP address ranges might change over time, so make sure you download the latest information on a regular
basis.
Troubleshooting
If you’re having trouble when installing and configuring a gateway, be sure to see Troubleshooting the
On-premises data gateway. If you think you are having an issue with your firewall, see the firewall or
proxy section in the troubleshooting article.
If you think you are encountering proxy issues, with the gateway, see Configuring proxy settings for the
Power BI gateways.
Next steps
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Oracle
Manage your data source - Import/Scheduled refresh
On-premises data gateway in-depth
On-premises data gateway (personal mode) - the new version of the personal gateway
Configuring proxy settings for the On-premises data gateway
More questions? Try the Power BI Community
On-premises data gateway in-depth
3/22/2019 • 13 minutes to read • Edit Online
It's possible for users in your organization to access on-premises data (to which they already have access
authorization), but before those users can connect to your on-premises data source, an On-premises data
gateway needs to be installed and configured. The gateway facilitates quick and secure behind-the-scenes
communication between a user in the cloud, to your on-premises data source, and then back to the cloud.
Installing and configuring a gateway is usually done by an administrator. It may require special knowledge of
your on-premises servers and in some cases may require Server Administrator permissions.
This article doesn’t provide step-by-step guidance on how to install and configure the gateway. For that, be sure
to see On-premises data gateway. This article is meant to provide you with an in-depth understanding of how
the gateway works. We’ll also go into some detail about usernames and security in both Azure Active Directory
and Analysis Services, and how the cloud service uses the e-mail address a user sign in with, the gateway, and
Active Directory to securely connect to and query your on-premises data.
Let’s first look at what happens when a user interacts with an element connected to an on-premises data source.
NOTE
For Power BI, you will need to configure a data source for the gateway.
1. A query will be created by the cloud service, along with the encrypted credentials for the on-premises data
source, and sent to the queue for the gateway to process.
2. The gateway cloud service will analyze the query and will push the request to the Azure Service Bus.
3. The On-premises data gateway polls the Azure Service Bus for pending requests.
4. The gateway gets the query, decrypts the credentials and connects to the data source(s) with those
credentials.
5. The gateway sends the query to the data source for execution.
6. The results are sent from the data source, back to the gateway, and then onto the cloud service. The service
then uses the results.
File No Yes
Folder No Yes
MySQL No Yes
OData No Yes
ODBC No Yes
Oledb No Yes
PostgresSQL No Yes
Sybase No Yes
USER CONFIGURED MANUAL OR
DATA SOURCE LIVE/DIRECTQUERY SCHEDULED REFRESH
Web No Yes
Sign in account
Users will sign in with either a work or school account. This is your organization account. If you signed up for an
Office 365 offering and didn’t supply your actual work email, it may look like [email protected].
Your account, within a cloud service, is stored within a tenant in Azure Active Directory (AAD ). In most cases,
your AAD account’s UPN will match the email address.
Role-based security
Models provide security based on user roles. Roles are defined for a particular model project during authoring
in SQL Server Data Tools – Business Intelligence (SSDT-BI), or after a model is deployed, by using SQL Server
Management Studio (SSMS ). Roles contain members by Windows username or by Windows group. Roles
define permissions a user has to query or perform actions on the model. Most users will belong to a role with
Read permissions. Other roles are meant for administrators with permissions to process items, manage
database functions, and manage other roles.
Row-level security
Row -level security is specific to Analysis Services row -level security. Models can provide dynamic, row -level
security. Unlike having at least one role in which users belong to, dynamic security is not required for any tabular
model. At a high-level, dynamic security defines a user’s read access to data right down to a particular row in a
particular table. Similar to roles, dynamic row -level security relies on a user’s Windows username.
A user’s ability to query and view model data are determined first by the roles their Windows user account are a
member of and second, by dynamic row -level security, if configured.
Implementing role and dynamic row -level security in models are beyond the scope of this article. You can learn
more at Roles (SSAS Tabular) and Security Roles (Analysis Services - Multidimensional Data) on MSDN. And,
for the most in-depth understanding of tabular model security, download and read the Securing the Tabular BI
Semantic Model whitepaper.
whoami /upn
The result will look similar to an email address, but this is the UPN that is on your local domain account. If you
are using an Analysis Services data source for live connections, this must match what was passed to
EffectiveUserName from the gateway.
NOTE
Synchronizing accounts with the Azure AD Connect tool will create new accounts within your AAD tenant.
What to do next?
After you get the gateway installed, you will want to create data sources for that gateway. You can add data
sources within the Manage gateways screen. For more information, see the manage data sources articles.
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Oracle
Manage your data source - Import/Scheduled refresh
Sign in account
Users sign in with either a work or school account. This account is your organization account. If you signed up
for an Office 365 offering and didn’t supply your actual work email, it may look like
[email protected]. Your account is stored within a tenant in Azure Active Directory (AAD ). In
most cases, your AAD account’s UPN will match the email address.
NOTE
If you selected personal mode, you configure the Windows service account separately.
If you encounter authentication issues with your proxy server, try changing the Windows service account to a
domain user or managed service account. For more information, see proxy configuration.
Ports
The gateway creates an outbound connection to Azure Service Bus. It communicates on outbound ports: TCP
443 (default), 5671, 5672, 9350 through 9354. The gateway does not require inbound ports.
It is recommended that you whitelist the IP addresses, for your data region, in your firewall. You can download
the Microsoft Azure Datacenter IP list, which is updated weekly. The gateway will communicate with Azure
Service Bus using the IP address along with the fully qualified domain name (FQDN ). If you are forcing the
gateway to communicate using HTTPS it will strictly use FQDN only, and no communication will happen using
IP addresses.
NOTE
The IP Addresses listed in the Azure Datacenter IP list are in CIDR notation. For example, 10.0.0.0/24 does not mean
10.0.0.0 through 10.0.0.24. Learn more about the CIDR notation.
Here is a listing of the fully qualified domain names used by the gateway.
NOTE
Traffic going to visualstudio.com or visualstudioonline.com are for app insights and are not required for the gateway to
function.
The value for the ServiceBusSystemConnectivityModeString parameter is case-sensitive. Valid values are
AutoDetect and Https.
Alternatively, you can force the gateway to adopt this behavior using the gateway user interface. In the gateway
user interface select Network, then toggle the Azure Service Bus connectivity mode to On.
Once changed, when you select Apply (a button that only appears when you make a change), the gateway
Windows service restarts automatically, so the change can take effect.
For future reference, you can restart the gateway Windows service from the user interface dialog by selecting
Service Settings then select Restart Now.
Support for TLS 1.2
By default, the On-premises data gateway uses Transport Layer Security (TLS ) 1.2 to communicate with the
Power BI service. To ensure all gateway traffic uses TLS 1.2, you might have to add or modify the following
registry keys on the machine running the gateway service:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000
001
NOTE
Adding or modifying these registry keys applies the change to all .NET applications. For information about registry
changes that affect TLS for other applications, see Transport Layer Security (TLS) registry settings.
Next steps
Troubleshooting the On-premises data gateway
Azure Service Bus
Azure AD Connect
More questions? Try the Power BI Community
On-premises data gateway (personal mode)
2/13/2019 • 7 minutes to read • Edit Online
You can use on-premises data sources, and create Power BI reports and dashboards, using a gateway. A
gateway is software that facilitates access to data that is stored on a private, on-premises network, then enables
you to use that data in online services like the Power BI service. The On-premises data gateway (personal
mode) is a recently released update to the Power BI gateway that allows individuals to install a gateway on their
own computer, and gain access to on-premises data.
NOTE
The On-premises data gateway (personal mode) replaces the previously supported version of the personal gateway,
which is called Power BI Gateway - Personal. The previous personal gateway will continue working only until July 31,
2017. See the sections below for information on how to update to the new version.
You can also download the gateway from this location. You can follow the installation steps, and since the
installation process allows you to install either version of the gateway (the standard gateway, which can be
shared with others, or personal mode), make sure you select On-premises data gateway (personal mode)
when prompted for which version of the gateway you want to install.
Updating from the previous personal gateway
If you already have the Power BI Gateway - personal gateway installed, you'll be prompted to install the new
and enhanced version of the personal gateway when you view Datasets under Settings in the Power BI
service.
When you select a dataset, and then select Gateway connection you're notified that the new and enhanced
version of the personal gateway is available. When you do, select Install now.
NOTE
If you're running the previous version of Power BI Gateway - personal as an elevated process, make sure you start the
new gateway installation process elevated as well, so your dataset credentials can be automatically updated. Otherwise,
you'll have to update dataset credentials manually.
You'll be taken through the update process, after which you'll see that the installation was successful. Don't close
things out yet, there's one last step.
Here's the last step. Once the new personal gateway is installed (and the last installation screen still visible), sign
in to the Power BI service, and wait until you see that the gateway is online, as shown in the following image.
If you've updated the personal gateway on the same machine as the previous gateway is installed, your
credentials will update automatically, and all refresh activities will go through the new gateway. If the previous
gateway was installed on a different machine, you'll be asked to update your credentials on certain datasets. In
the previous image, notice the list of datasets in the window; the list will show datasets that might require
updated credentials. Each dataset listed is a direct link that you simply click on to easily update your credentials.
That's it - almost. With the new gateway installed, you no longer need to previous version installed on your
machine, so you should uninstall it. You can do this by searching for Power BI Gateway - personal on your
machine, and uninstalling it.
Determining which version of the personal gateway you have installed
To determine which version of the personal gateway you currently have installed, you can do the following:
The previous version of the personal gateway is called Power BI Gateway - Personal and uses the Power BI
icon in its installation dialog.
The new version of the personal gateway is called On-premises data gateway (personal mode) and uses
the gateway icon (a cloud with an up-and-down arrow along the bottom).
You can go to Add/Remove Programs and see whether Power BI Gateway - Personal appears on the list,
and if so, you have the previous version of the personal gateway installed.
3. Once complete, the setting will take effect in approximately one minute. To check that it's working
properly, try an on-demand refresh in the Power BI service to confirm that Fast Combine is working.
Next steps
Configuring proxy settings for the Power BI Gateways
More questions? Try the Power BI Community
Use custom data connectors with the On-premises
data gateway
1/14/2019 • 2 minutes to read • Edit Online
Data Connectors for Power BI enable you to connect to and access data from an application, service, or data
source. You can develop custom data connectors and use them in Power BI Desktop.
To learn more about how to develop custom data connectors for Power BI, check out our documentation here.
When you build reports in Power BI Desktop that use custom data connectors, you can use the On-premises data
gateway to refresh those reports from the Power BI service.
If you are using the personal version of the On-premises data gateway, you should be able at this point to upload
your Power BI report to the Power BI service and use the gateway to refresh it.
For the enterprise version of the gateway, you still need to create a data source for your custom connector. In the
gateway settings page in the Power BI service, you should see a new option when you select the gateway cluster to
allow using custom connectors with this cluster. Make sure all gateways in the cluster have the July 2018 update
release or later for this option to be available. Now select that option to enable using custom connectors with this
cluster.
When this option is enabled, you now see your custom connectors as available data sources that you can create
under this gateway cluster. Once you create a data source using your new custom connector, you can now refresh
Power BI reports using that custom connector in the Power BI service.
Considerations and limitations
Make sure the folder you create is accessible to the background gateway service. Typically, folders under your
user’s Windows folder or system folders won’t be accessible. The gateway configurator shows a message if the
folder is not accessible (this doesn't apply for the personal version of the gateway)
For custom connectors to work with the On-premises data gateway, they need to implement a “TestConnection”
section in the custom connector’s code. This is not required when using custom connectors with Power BI
Desktop. You can have one that works with the Desktop, but not with the gateway for this reason. Please refer to
this documentation on how to implement a TestConnection section.
Next steps
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Oracle
Manage your data source - Import/Scheduled refresh
On-premises data gateway in-depth
On-premises data gateway (personal mode)
Configuring proxy settings for the On-premises data gateway
Use Kerberos for SSO (single sign-on) from Power BI to On-premises data sources
More questions? Try the Power BI Community
Troubleshooting the On-premises data gateway
2/13/2019 • 25 minutes to read • Edit Online
This article discusses some common issues when using the On-premises data gateway.
NOTE
If you encounter an issue that is not listed below, you can ask for further assistance in the following locations.
For Power BI, you can use the communities site or you can create a support ticket.
For PowerApps, you can use the communities site or you can create a support ticket.
For Microsoft Flow, you can use the communities site of you can create a support ticket.
For Logic Apps, you can submit a support ticket through the Azure portal.
Common issues
Here are a few common issues and resolutions that have helped a number of customers in environments
that restrict internet access.
Authentication to proxy server
Your proxy may require authentication from a domain user account. By default, the gateway uses a Service
SID for the windows service log on user. Changing the log on user to a domain user can help with this. For
more information, see Changing the gateway service account to a domain user.
Your proxy only allows ports 80 and 443 traffic
Some proxies restrict traffic to only ports 80 and 443. By default, communication to Azure Service Bus will
occur on ports other than 443.
You can force the gateway to communicate with Azure Service Bus using HTTPS instead of direct TCP. You
will need to modify the Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config file. Change the
value from AutoDetect to Https . This file is located, by default, at C:\Program Files\On-premises data
gateway.
Installation
Error: Failed to add user to group. (-2147463168 PBIEgwService Performance Log Users )
You may receive this error if you are trying to install the gateway on a domain controller. Deploying on a
domain controller is not supported. You will need to deploy the gateway on a machine that is not a domain
controller.
Installation fails
You may encounter installation failures if the anti-virus software on the installation machine is out of date.
You can either update the anti-virus installation, or disable anti-virus only for the duration of the gateway
installation to complete, then re-enable anti-virus.
Configuration
How to restart the gateway
The gateway runs as a Windows service, so you can start and stop it in a few ways. For example, you can
open a command prompt with elevated permissions on the machine where the gateway is running and
then run either of these commands:
To stop the service, run this command:
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<remove name="Default" />
<add name="ApplicationFileTraceListener"
type="Microsoft.PowerBI.DataMovement.Pipeline.Common.Diagnostics.RotatableFilesManagerTraceListener,
Microsoft.PowerBI.DataMovement.Pipeline.Common"
initializeData="%LOCALAPPDATA%\Microsoft\On-premises data
gateway\,GatewayInfo.log,GatewayErrors.log,GatewayNetwork.log,20,50" />
</listeners>
</trace>
</system.diagnostics>
This includes a stack trace, and that stack trace may include the following message.
Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.CouldNotUpdateGatewayConfigurationException:
Error updating gateway configuration. ----> System.ArgumentNullException: Value cannot be null.
Parameter name: serviceSection
If you are upgrading from an older gateway, we preserve the config file. There may be a section that is
missing. When the gateway tries to read it, we can get the above null reference exception.
To correct this, do the following steps.
1. Uninstall the gateway.
2. Delete the following folder.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]"SchUseStrongCrypto"=dword:
00000001
NOTE
Adding or modifying these registry keys applies the change to all .NET applications. For information about registry
changes that affect TLS for other applications, see Transport Layer Security (TLS) registry settings.
Data sources
Error: Unable to Connect. Details: "Invalid connection credentials"
Within Show details, it displays the error message received from the data source. For SQL Server, you see
something like the following.
Verify that you have the correct username and password. Also, verify that those credentials can successfully
connect to the data source. Make sure the account being used matches the Authentication Method.
Error: Unable to Connect. Details: "Cannot connect to the database"
We were able to connect to the server, but not to the database supplied. Verify the name of the database,
and that the user credential as the proper permission to access that database.
Within Show details, it displays the error message received from the data source. For SQL Server, you see
something like the following.
Cannot open database "AdventureWorks" requested by the login. The login failed. Login failed for user
'username'.
The 'CONTOSO\account' value of the 'EffectiveUserName' XML for Analysis property is not valid.
If the underlying error message is similar to the following, it could mean that the service account for
Analysis Services may be missing the token-groups-global-and-universal (TGGAU ) directory attribute.
To correct this issue, you need to enable TGGAU on the account used for the Analysis Services windows
service.
Another possibility for username or password incorrect
This error could also be caused if the Analysis Services server is in a different domain than the users and
there is not a two-way trust established.
You need to work with your domain administrators to verify the trust relationship between domains.
Unable to see the data gateway data sources in the 'Get Data' experience for Analysis Services from the Power BI service
Make sure that your account is listed in the Users tab of the data source within the gateway configuration.
If you don't have access to the gateway check with the administrator of the gateway and ask them to verify.
Only accounts in the Users list can see the data source listed in the Analysis Services list.
Error: You don't have any gateway installed or configured for the data sources in this dataset
Ensure that you have added one or more data sources to the gateway, as described in Add a data source. If
the gateway doesn't appear in the admin portal under Manage gateways, try clearing your browser cache
or signing out of the service then signing back in.
Datasets
Error: There is not enough space for this row
This occurs if you have a single row greater than 4 MB in size. You need to determine what the row is from
your data source and attempt to filter it out or reduce the size for that row.
Error: The server name provided doesn't match the server name on the SQL Server SSL Certificate
This can occur when the certificate CN is for the servers fully qualified domain name (FQDN ), but you only
supplied the NetBIOS name for the server. This causes a mismatch for the certificate. To resolve this issue,
you need to make the server name within the gateway data source, and the PBIX file, to use the FQDN of
the server.
I don't see the On-premises data gateway present when configuring scheduled refresh
This could be because of a few different scenarios.
1. The server and database name don't match between what was entered in Power BI Desktop and the
data source configured for the gateway. These need to be the same values. They are not case-sensitive.
2. Your account is not listed in the Users tab of the data source within the gateway configuration. You need
to get with the administrator of the gateway to be added to that list.
3. Your Power BI Desktop file has multiple data sources within it and not all of those data sources are
configured with the gateway. You need to have each data source defined with the gateway for the
gateway to show up within Scheduled Refresh.
Error: The received uncompressed data on the gateway client has exceeded the limit
The exact limitation is 10 GB of uncompressed data per table. If you are hitting this issue, there are good
options to optimize and avoid the issue. In particular, reducing the use of highly constant, long string values
and instead using a normalized key or removing the column (if not in use) helps.
Reports
Report could not access the data source because you do not have access to our data source via an On-
premises data gateway
This is usually caused by one of the following.
1. The data source information does not match what is in the underlying dataset. The server and database
name need to match between the data source defined for the On-premises data gateway and what you
supply within Power BI Desktop. If you use an IP Address in Power BI Desktop, the data source, for the
On-premises data gateway, needs to use an IP Address as well.
2. There is not a data source available on any gateway within your organization. You can configure the data
source on a new, or existing On-premises data gateway.
Error: Data source access error. Please contact the gateway administrator
If this report is making use of a live Analysis Services connection, you could be encountering an issue with
a value being passed to EffectiveUserName that is either not valid or doesn't have permissions on the
Analysis Services machine. Typically, an authentication issue is due to the fact that the value being passed
for EffectiveUserName doesn't match a local user principal name (UPN ).
To confirm this, you can do the following.
1. Find the effective username within the gateway logs.
2. Once you have the value being passed, validate that it is correct. If it is your user, you can use the
following command from a command prompt to see the UPN. The UPN looks like an email address.
whoami /upn
Optionally, you can see what Power BI gets from Azure Active Directory.
1. Browse to https://developer.microsoft.com/graph/graph-explorer.
2. Select Sign in in the upper right.
3. Run the following query. You see a rather large JSON response.
https://graph.windows.net/me?api-version=1.5
Firewall or Proxy
For information on providing proxy information for your gateway, see Configuring proxy settings for the
Power BI gateways.
You can test to see if your firewall, or proxy, may be blocking connections by running Test-NetConnection
from a PowerShell prompt. This will test connectivity to the Azure Service Bus. This only tests network
connectivity and doesn't have anything to do with the cloud server service or the gateway. It helps to
determine if your machine can actually get out to the internet.
NOTE
Test-NetConnection is only available on Windows Server 2012 R2 and later. It is also available on Windows 8.1 and
later. On earlier OS versions, you can use Telnet to test port connectivity.
The results should look similar to the following. The difference will be with TcpTestSucceeded. If
TcpTestSucceeded is not true, then you may be blocked by a firewall.
ComputerName : watchdog.servicebus.windows.net
RemoteAddress : 70.37.104.240
RemotePort : 5672
InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet - Virtual Switch)
SourceAddress : 10.120.60.105
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True
If you want to be exhaustive, substitute the ComputerName and Port values with those listed for ports
The firewall may also be blocking the connections that the Azure Service Bus makes to the Azure data
centers. If that is the case, you will want to whitelist (unblock) the IP addresses for your region for those
data centers. You can get a list of Azure IP addresses here.
You can find the data center region you are in by doing the following:
1. Select the ? in the upper right of the Power BI service.
2. Select About Power BI.
3. Your data region is listed in Your data is stored in.
If you are still not getting anywhere, you could try getting a network trace using a tool like fiddler or netsh,
although these are advanced collection methods and you may need assistance in analyzing the collected
data. You can contact support for assistance.
Performance
https://www.youtube.com/embed/IJ_DJ30VNk4?showinfo=0
Performance Counters
There are a number of performance counters that can be used to gauge the activities for the gateway. These
can be helpful to understand if we have a large load of activity and may need to make a new gateway. These
counters do not reflect how long something takes.
These counters can be accessed through the Windows Performance Monitor tool.
OLEDB Certain data sources use this. This includes SAP HANA and
Analysis Service 2016 or later.
COUNTER DESCRIPTION
# of ADO.NET open connection executed / sec Number of ADO.NET open connection actions executed
per second (succeeded or failed).
# of ADO.NET open connection failed / sec Number of ADO.NET open connections actions failed per
second.
# of ADO.NET queries executed / sec Number of ADO.NET queries executed per second
(succeeded or failed).
# of ADO.NET queries failed / sec Number of ADO.NET failed queries executed per second.
COUNTER DESCRIPTION
# of ADOMD open connection executed / sec Number of ADOMD open connection actions executed
per second (succeeded or failed).
# of ADOMD open connection failed / sec Number of ADOMD open connection actions failed per
second.
# of ADOMD queries executed / sec Number of ADOMD queries executed per second
(succeeded or failed).
# of ADOMD queries failed / sec Number of ADOMD failed queries executed per second.
# of all open connection executed / sec Number of open connection actions executed per second
(succeeded or failed).
# of all open connection failed / sec Number of failed open connection actions executed per
second.
# of all queries executed / sec Number of queries executed per second (succeeded or
failed).
# of items in the ADO.NET connection pool Number of items in the ADO.NET connection pool.
# of items in the OLEDB connection pool Number of items in the OLEDB connection pool.
# of items in the Service Bus pool Number of items in the Service Bus pool.
# of Mashup open connection executed / sec Number of Mashup open connection actions executed per
second (succeeded or failed).
# of Mashup open connection failed / sec Number of Mashup open connection actions failed per
second.
# of Mashup queries executed / sec Number of Mashup queries executed per second
(succeeded or failed).
# of Mashup queries failed / sec Number of Mashup failed queries executed per second
# of OLEDB multiple result set queries failed / sec Number of multiple result sets of OLEDB failed queries
executed per second.
# of OLEDB multiple result sets of queries executed / sec Number of OLEDB multiple result sets of queries executed
per second (succeeded or failed).
# of OLEDB open connection executed / sec Number of OLEDB open connection actions executed per
second (succeeded or failed).
# of OLEDB open connection failed / sec Number of OLEDB open connection actions failed per
second.
# of OLEDB queries executed / sec Number of OLEDB multiple result sets of queries executed
per second (succeeded or failed).
COUNTER DESCRIPTION
# of OLEDB queries failed / sec Number of OLEDB multiple result sets of failed queries
executed per second.
# of OLEDB single result set queries executed / sec Number of OLEDB single result set queries executed per
second (succeeded or failed).
# of single result set OLEDB queries failed / sec Number of single result set OLEDB failed queries executed
per second.
IMPORTANT
Enabling EmitQueryTraces could increase the log size significantly depending on gateway usage. Once you are done
reviewing the logs, you can need to set EmitQueryTraces to False. It is not recommended to leave this setting
enabled long term.
Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.dll.config
Within the Microsoft.PowerBI.DataMovement.Pipeline.Diagnostics.dll.config file, change the
TracingVerbosity value from 4 to 5 . This file is located, by default, at C:\Program Files\On-premises
data gateway. Changing this setting begins to log verbose entries to the gateway log. This includes entries
that show duration. You can also enable verbose entries by enabling the "Additional Logging" button in the
On-Premises Gateway application.
IMPORTANT
Enabling TracingVerbosity to 5 could increase the log size significantly depending on gateway usage. Once you are
done reviewing the logs, you need to set TraceVerbosity to 4 . It is not recommended to leave this setting enabled
long term.
Activity Types
ACTIVITY TYPE DESCRIPTION
NOTE
FireActivityCompletedSuccessfullyEvent is a verbose entry. This entry is not logged unless TraceVerbosity is at
level 5.
Firewall or Proxy
For information on providing proxy information for your gateway, see Configuring proxy settings for the
Power BI gateways.
You can test to see if your firewall, or proxy, may be blocking connections by running Test-NetConnection
from a PowerShell prompt. This tests connectivity to the Azure Service Bus. This only tests network
connectivity and don't have anything to do with the cloud server service or the gateway. It helps to
determine if your machine can actually get out to the internet.
NOTE
Test-NetConnection is only available on Windows Server 2012 R2 and later. It is also available on Windows 8.1 and
later. On earlier OS versions, you can use Telnet to test port connectivity.
The results look similar to the following. The difference is with TcpTestSucceeded. If TcpTestSucceeded is
not true, then you may be blocked by a firewall.
ComputerName : watchdog.servicebus.windows.net
RemoteAddress : 70.37.104.240
RemotePort : 5672
InterfaceAlias : vEthernet (Broadcom NetXtreme Gigabit Ethernet - Virtual Switch)
SourceAddress : 10.120.60.105
PingSucceeded : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded : True
If you want to be exhaustive, substitute the ComputerName and Port values with those listed for ports
The firewall may also be blocking the connections that the Azure Service Bus makes to the Azure data
centers. If that is the case, you want to whitelist (unblock) the IP addresses for your region for those data
centers. You can get a list of Azure IP addresses here.
Network Ports Test
The network ports test is a tool to check if your gateway can access the correct ports for all remote servers
that are required by your gateway for transferring data. If the network ports test fails to connect to any of
the ports, your gateway may experience network issues. If you are currently experiencing network issues
with your gateway, run a network ports test to ensure that you have the optimal network environment.
Start a new test
To run a new network ports test, in theOn-premises data gatewayuser interface.
When executing the network ports test, your gateway retrieves a list of ports and servers from Azure
Service Bus and then it attempts to connect to all the servers and ports. When the Start new test link
reappears, the network ports test has finished executing.
Test results
A summary of the test can be seen below the Start new test link as Recent test results. The two results are
Completed (Succeeded) and Completed (Failed, see last test results). If the test succeeded, then your
gateway successfully connected to all the required ports. If the test failed, then your network environment
may be blocking these required ports and servers.
To view the results of the last completed test, select the Open last completed test results link, as seen below.
The test results open in Windows’ default text editor.
The test results list all the servers, ports, and IP addresses that are required by your gateway. If the test
results display Closed for any ports as shown below, ensure that your network environment is not blocking
the connection. You may need to contact your network administrator to open the required ports.
Kerberos
If the underlying database server and On-premises data gateway are not appropriately configured for
Kerberos Constrained Delegation, enable verbose logging on the gateway, and investigate based on the
errors/traces in the gateway’s log files as a starting point for troubleshooting.
ImpersonationLevel
The ImpersonationLevel is related to the SPN setup or the local policy setting.
Solution
Follow these steps to solve the issue:
1. Setup an SPN for the On-Premises Gateway
2. Setup constrained delegation in your Active Directory (AD )
FailedToImpersonateUserException: Failed to create windows identity for user userid
The FailedToImpersonateUserException happens if you are not able to impersonate on behalf of another
user. This could also happen if the account you are trying to impersonate is from another domain than the
one the gateway service domain is on (this is a limitation).
Solution
Verify that the configuration is correct as per the steps in the ImpersonationLevel section above
Ensure that the userid it's trying to impersonate is a valid AD Account
General error; 1033 error while parsing the protocol
You get the 1033 error when your external ID that is configured in SAP HANA is not matching the login if
the user is impersonated using the UPN ([email protected]). In the logs you see the “Original UPN
'[email protected]' replaced with a new UPN '[email protected]' at the top of the error logs as seen
below.”
[DM.GatewayCore] SingleSignOn Required. Original UPN '[email protected]' replaced with new UPN
'[email protected].'
Solution
SAP HANA requires the impersonated user to use the sAMAccountName attribute in AD (user
alias). If this is not correct, you see the 1033 error.
In the logs you see the sAMAccountName (alias) and not the UPN, which is the alias followed by the
domain ([email protected])
[SAP AG ][LIBODBCHDB DLL ][HDBODBC ] Communication link failure;-10709 Connection failed (RTE:[-1]
Kerberos error. Major: "Miscellaneous failure [851968]", minor: "No credentials are available in the
security package
You get the -10709 Connection failed error message if your delegation is not configured correctly in AD.
Solution
Ensure you have the SAP Hana server on the delegation tab in AD for the gateway service account
Tools for troubleshooting
Collecting logs from the gateway configurator
There are several logs you can collect for the gateway, and you should always start with the logs. The
simplest way to collect logs after installing the gateway is through the user interface. In the On-premises
data gateway user interface, select Diagnostics and then select the Export logs link near the bottom of
the page, as shown in the following image.
Installer logs
%localappdata%\Temp\On-premises_data_gateway_*.log
Configuration logs
Event Logs
The On-premises data gateway service event logs are present under Application and Services Logs.
Fiddler Trace
Fiddler is a free tool from Telerik that monitors HTTP traffic. You can see the back and forth with the Power
BI service from the client machine. This may show errors and other related information.
Refresh History
When using the gateway for a scheduled refresh, Refresh History can help you see what errors have
occurred, as well as provide useful data if you need to create a support request. You can view both
scheduled, as well as on-demand, refreshes. Here is how you can get to the Refresh History.
1. In the Power BI navigation pane, in Datasets, select a dataset > Open Menu > Schedule Refresh.
Next steps
Configuring proxy settings for the Power BI gateways
On-premises data gateway
On-premises data gateway - in-depth
Manage your data source - Analysis Services
Manage your data source - SAP HANA
Manage your data source - SQL Server
Manage your data source - Import/Scheduled refresh
More questions? Try the Power BI Community
What is Power BI administration?
3/22/2019 • 4 minutes to read • Edit Online
Power BI administration is the management of a Power BI tenant, including the configuration of governance
policies, usage monitoring, and provisioning of licenses, capacities, and organizational resources. This article
provides an overview of administration roles, tasks, and tools; and links to articles that go into more detail.
Power BI is designed for self-service business intelligence, and the administrator is the guardian of data,
processes, and policies in the Power BI tenant. A Power BI administrator is a key member of a team that includes
BI developers, analysts, and other roles. The administrator can help support an organization to make sure that
critical goals are met:
Understand the KPIs and metrics that users actually need
Decrease the time to delivery for IT-led corporate reporting
Increase adoption and return on investment from a Power BI deployment
The job is to make business users productive and ensure security and compliance with laws and regulations.
Responsibilities may include help and support and, in many cases, assisting business users to do the right thing.
Office 365 Global Administrator Office 365 Can manage all aspects of a Power BI
tenant and other services.
Office 365 Billing Administrator Office 365 Can acquire Power BI licenses through
Office 365 subscriptions.
TYPE OF ADMINISTRATOR ADMINISTRATIVE SCOPE POWER BI SCOPE
Power BI Service Administrator Power BI tenant Has full control over a Power BI tenant
and its administrative features (except
for licensing).
Power BI Premium Capacity A single Premium capacity Has full control over a premium
Administrator capacity and its administrative features.
Power BI Embedded Capacity A single Embedded capacity Has full control over an embedded
Administrator capacity and its administrative features.
Global Administrators in Office 365 or Azure Active Directory have administrator rights in Power BI. An Office
365 Global Administrator can assign other users to the Power BI Service Administrator role, which grants
administrative rights over Power BI features only.
Power BI Service Administrators have access to the Power BI admin portal which includes various tenant-level
settings regarding functionality, security, and monitoring. Service Administrators have full access to all resources
of a Power BI tenant. In most cases, Service Administrators identify issues and then follow up with the resource
owners to take corrective actions.
The Power BI Service Administrator role does not grant the ability to assign licenses to users or view audit logs in
Office 365. Therefore, the task of administering Power BI cannot currently be performed by users who are solely
members of the Power BI Service Administrator role.
Administrative tasks
Administrators perform many tasks to support the Power BI tenant for their organization, which are covered in
the following table.
Manage the Power BI tenant Enable and disable key Power BI features
Report on usage and performance
Review and manage auditing of events
Manage Embedded capacity Acquire Embedded capacity to simplify how ISVs and
developers use Power BI capabilities
Ensure compliance with internal policies, laws, and regulations Manage classification of business data
Help to enforce content publishing and sharing
policies
TASK AREA TYPICAL TASKS
Provide help and support to tenant users Troubleshoot data access and other issues
Administrative tools
There are several tools related to Power BI administration, which are covered in the following table.
Administrators typically spend most of their time in the Power BI Admin portal and use other tools as necessary.
Office 365 Security & Compliance Center Review and manage auditing of events
Azure Active Directory (AAD) in the Azure portal Configure conditional access to Power BI resources
through AAD
Provision Power BI Embedded capacity
Administrative APIs and SDK Build custom administrative tools to facilitate the work
of a Power BI admin. For example, Power BI Desktop
can use these APIs to build reports based on data
related to administration
Next steps
We hope this article gave you some quick insights into the job of the Power BI administrator, and the specific
roles, tasks, and tools that are involved. We recommend the follow articles topics to deepen your understanding.
Use the Power BI admin portal
Use PowerShell cmdlets
Power BI administration FAQ
More questions? Try asking the Power BI Community
What is Microsoft Power BI Premium?
3/15/2019 • 3 minutes to read • Edit Online
NOTE
This article is currently being updated to describe new features, provide more details, and improve readability. For
the latest information, see Deploying and Managing Power BI Premium Capacities.
Power BI Premium provides resources dedicated to running the Power BI service for your organization. It
gives you more dependable performance and enables larger data volumes. Premium also enables
widespread distribution of content without requiring you to purchase per-user Pro licenses for content
consumers.
AREA DESCRIPTION
AREA DESCRIPTION
(1) Items within a Premium capacity Accessing app workspaces (as members or
admins) and publishing apps requires a Power BI
Pro license.
Sharing an app requires a Pro license, but
consuming an app doesn't.
All dashboard recipients, regardless of the license
they're assigned, can set data alerts.
REST APIs for embedding use a service account
with a Pro license, rather than a user account.
(2) My workspace in shared capacity Sharing and consuming an app both require a Pro
license.
(3) App workspaces in shared capacity Any app usage requires a Pro license.
In shared capacity, Power BI puts more limits on individual users to ensure quality of experience for all
users. By default, your workspace is in a shared capacity, including your personal My workspace and App
workspaces.
The following table provides a summary of the differences between shared capacity and Premium
capacity:
EM1 (month to 1 v-core 0.5 v-cores, 0.5 v-cores 3.75 per second 1
month) 2.5-GB RAM
1: Frontend v-cores are responsible for the web service. For example, dashboard and report document
management, access rights management, scheduling, APIs, uploads and downloads, and generally for
everything that relates to the user experience.
2: Backend v-cores are responsible for the heavy lifting, like query processing, cache management,
running R servers, data refresh, natural language processing, real-time feeds, and server-side rendering
of reports and images. With the backend v-cores, a certain amount of memory is reserved as well. Having
sufficient memory becomes especially important when dealing with large data models or with a large
number of active datasets.
Next steps
Deploying and Managing Power BI Premium Capacities
How to purchase Power BI Premium
Power BI Premium FAQ
More questions? Try asking the Power BI Community
Microsoft Power BI Premium capacity resource
management and optimization
2/28/2019 • 7 minutes to read • Edit Online
This article describes how Power BI Premium manages resources; the article also provides examples and
troubleshooting suggestions. For an overview, see What is Power BI Premium?.
A1 0.5 1
A2 1 2
A3 2 3
A4 4 6
A5 8 12
A6 16 24
SKU BACKEND V-CORES MODEL REFRESH PARALLELISM
EM1 0.5 1
EM2 1 2
EM3 2 3
P1 4 6
P2 8 12
P3 16 24
P4 32 48
P5 64 96
TIP
If your refreshes are delayed, check the number of parallel refreshes supported by your capacity.
Example scenarios
Here are some common scenarios and the actions taken by the service:
Twenty scheduled refreshes submitted all at the same time. Power BI attempts to start the first x refreshes at
the same time. The value for x is determined by the refresh parallelization policy for that SKU. If Power BI is
unable to obtain enough memory by evicting inactive datasets (datasets not used recently), not all x refreshes will
start at the same time. Any refresh that cannot start is queued until it can start.
Two refreshes running at the same time and there is only enough memory for one to finish. The one that
can finish starts. The other is retried later.
Large number of datasets being queried while several datasets are being refreshed. If enough memory is
not available, Power BI attempts to stop active refreshes to give priority to interactive queries. This decreases the
refresh performance.
Dataset requires too much memory to be refreshed on current capacity size. Refresh fails. No attempts are
made to obtain more memory by eviction.
Refreshing a single dataset which has a large spike in memory. If the spike is larger than the amount of
memory that can be obtained by evicting inactive datasets, refresh is retried later until there is enough memory to
handle the spike.
Query is executed for a dataset which cannot obtain enough memory by evicting all inactive datasets
and refreshes. Those queries fail. For these kinds of workload requirements, higher capacity should be
purchased.
NOTE
This article is currently being updated to describe new features, provide more details, and improve readability.
This article describes how to purchase Power BI Premium capacity (P1-P3) for your organization. You purchase
Power BI Premium capacity in the Microsoft 365 admin center, and you manage your capacities in the Power BI
admin portal. For current pricing and planning information, see the Power BI pricing page and the Power BI
Premium calculator.
Content creators still need a Power BI Pro license, even if your organization uses Power BI Premium. Ensure you
purchase at least one Power BI Pro license for your organization.
If a Premium subscription expires, you have 30 days of full access to your capacity. After that, your content
reverts to a shared capacity. Models that are greater than 1 GB will are not supported in shared capacity.
Alternatively, you can browse to the Microsoft 365 admin center. You can get there by going to
https://portal.office.com and selecting Admin.
2. Select Billing > Purchase services.
3. Under Other plans, look for Power BI Premium offerings. This will list as P1 through P3, EM3 and P1
(month to month).
4. Hover over the ellipsis (. . .) and then select Buy now.
IMPORTANT
Selecting Submit charges the credit card on file.
The Purchase services page will then indicate the number of instances you have. Within the Power BI admin
portal, under Capacity settings, the available v-cores reflects the new capacity purchased.
Next steps
Power BI pricing page
Power BI Premium calculator
Power BI Premium FAQ
Planning a Power BI Enterprise Deployment whitepaper
More questions? Try asking the Power BI Community
Monitor Premium capacities with the app
3/27/2019 • 12 minutes to read • Edit Online
Monitoring your capacities is essential to making informed decisions on how best to utilize your Premium
capacity resources. You can monitor capacities in the Admin portal or with the Power BI Premium Capacity
Metrics app. This article describes using the Premium Capacity Metrics app. The app provides the most in-depth
information into how your capacities are performing. For a higher level overview of average use metrics over the
last seven days, you can use the Admin portal. To learn more about monitoring in the portal, see Monitor
Premium capacities in the Admin portal.
The app is updated regularly with new features and functionality. Make sure you're running the latest version. If
you have a previous version of the app already installed, it’s best to delete it from your apps and then press
CTRL+F5 to refresh.
METRIC DESCRIPTION
System Summary
METRIC DESCRIPTION
CPU Highest Utilization Capacity Capacity with the maximum number of times CPU exceeded
80% of the thresholds in the past seven days.
CPU Highest Utilization Count Number of times CPU the named capacity exceeded 80% of
the thresholds in the past seven days.
Memory Max Utilization Capacity Capacity with the maximum number of times max memory
limit was hit in the past seven days, split into three-minute
buckets.
Memory Max Utilization Count Number of times the named capacity reached the max
memory limit in the past seven days, split into three-minute
buckets.
Dataset Summary
METRIC DESCRIPTION
Datasets Average Size (MB) Average size of datasets across all workspaces in your
capacities.
Datasets Average Loaded Count Average count of datasets loaded into memory.
Datasets - Average Active Dataset (%) Average active datasets in the past seven days. A dataset is
defined as active if the user has interacted on the visuals with
the past three minutes.
CPU - Datasets Max (%) Max CPU consumption by dataset workload in the past seven
days.
CPU - Datasets Average (%) Average CPU consumption by dataset workload in the past
seven days.
Memory - Datasets Average (GB) Average memory consumption by dataset workload in the
past seven days.
METRIC DESCRIPTION
Memory - Datasets Max (GB) Max memory consumption by dataset workload in the past
seven days.
DirectQuery/Live High Utilization Count Number of times DirectQuery/Live connections exceeded 80%
of the thresholds in the past seven days, split into three-
minute buckets.
DirectQuery/Live Max Utilization Count Most times the DirectQuery/Live connections exceeded 80%
in the past seven days, split into one-hour buckets.
DirectQuery/Live Max Occurred Time Time in UTC that DirectQuery/Live connections exceeded 80%
the most times in an hour.
Refresh Reliability (%) Number of successful refreshes divided by the total number
of refreshes in the past seven days.
Refreshes Average Wait Time (Minutes) Average amount of time before starting refresh.
Queries Total Total number of queries run in the past seven days.
Queries Total Wait Count Total number of queries that had to wait before being
executed.
Queries Average Wait Time (MS) Average time queries waited on system resources before
being executed.
Dataflow Summary
METRIC DESCRIPTION
Refreshes Average Duration (Minutes) The time taken to complete the refresh.
Refreshes Average Wait Times (Minutes) The lag between the scheduled time and actual start of the
refresh.
METRIC DESCRIPTION
CPU - Dataflows Max (%) Max CPU consumption by dataflows workload in the past
seven days.
CPU - Dataflows Average (%) Average CPU consumption by dataflows workload in the past
seven days.
Memory - Dataflows Max (GB) Max memory consumption by dataflows workload in the past
seven days.
Memory - Dataflows Average (GB) Average memory consumption by dataflows workload in the
past seven days.
METRIC DESCRIPTION
Views Total Total number of times that all reports have been viewed by
users.
Total Time Total time it takes for all phases (data retrieval, processing,
and rendering) of all reports, in milliseconds.
CPU - Paginated Reports Max (%) Maximum CPU consumption by paginated report workload in
the past seven days.
CPU - Paginated Reports Average (%) Average CPU consumption by paginated report workload in
the past seven days.
Memory - Paginated Reports Max (GB) Maximum memory consumption by paginated report
workload in the past seven days.
Memory - Paginated Reports Average (GB) Average memory consumption by paginated report workload
in the past seven days.
Reports
Reports provide more detailed metrics. To see reports for capacities for which you are an admin, in Reports, click
Power BI Premium Capacity Metrics. Or, from the dashboard, click a metric cell to go to the underlying report.
At the bottom of the report, there are five tabs:
Datasets - Provides detailed metrics on the health of the Power BI datasets in your capacities.
Paginated Reports - Provides detailed metrics on the health of the paginated reports in your capacities.
Dataflows - Provides detailed refresh metrics for dataflows in your capacities.
Resource Consumption - Provides detailed resource metrics including memory and CPU high utilization.
IDs and Info - Names, IDs, and owners for capacities, workspaces, and workloads.
Each tab opens a page where you can filter metrics by capacity and date range. If no filters are selected, the report
defaults to show the past week’s metrics for all capacities that are reporting metrics.
Datasets
The Datasets page has different areas, which include Refreshes, Query Durations, Query Waits, and Datasets.
Use the buttons at the top of the page to navigate to different areas.
Refreshes area
Top 5 Datasets by Average Duration (minutes) The five datasets with the longest average refresh duration, in
minutes.
Top 5 Datasets by Average Wait Time (minutes) The five datasets with the longest average refresh wait time,
in minutes.
Hourly Refresh Count and Memory Consumption (GB) Successes, failures, and memory consumption, split into one-
hour buckets, reported in UTC time.
Hourly Average Refresh Wait Times (minutes) The average refresh wait time, split into one-hour buckets,
reported in UTC time. Multiple spikes with high refresh wait
times are indicative of the capacity running hot.
Query Duration Distribution The query duration histogram is bucketed by query durations
(in milliseconds)into the following categories: <= 30ms, 30-
100ms, 100-300ms, 300ms-1sec, 1sec-3sec, 3sec-10sec,
10sec-30sec, and> 30 seconds intervals. Long query
durations and long wait times are indicative of the capacity
running hot. It may also mean that a single dataset is causing
problems and further investigation is needed.
Top 5 Datasets by Average Duration The five datasets with the longest average query duration, in
milliseconds.
REPORT SECTION METRICS
Hourly Query Duration Distributions Query counts and average duration (in milliseconds) vs.
memory consumption in GB, split into one-hour buckets,
reported in UTC time.
DirectQuery / Live Connections (> 80% Utilization) The times that a DirectQuery or live connection exceeded
80% CPU utilization, split into one-hour buckets, reported in
UTC time.
Query Wait Times Data in this section is sliced by datasets, workspace, and
hourly buckets in the past seven days.
Total: The total number of queries run for the dataset.
Wait count: The number of queries in the dataset that waited
on system resources before starting execution.
Average: The average query wait time for the dataset, in
milliseconds.
Max: The duration of the longest-waiting query in the
dataset, in milliseconds.
Top 5 Datasets by Average Wait Time The five datasets with the longest average wait time to start
executing a query, in milliseconds.
Wait Time Distributions The query duration histogram is bucketed by query durations
(in milliseconds)into the following categories: <= 50ms , 50-
100ms , 100-200ms , 200-400ms 400ms-1sec , 1 sec-5 sec
and> 5 secondsintervals.
Hourly Query Wait Time Distributions Query wait counts and average wait time (in milliseconds) vs.
memory consumption in GB, split into one-hour buckets
reported in UTC time.
Datasets area
Dataset Sizes Max size: The maximum size of the dataset in MB for the
period shown.
Dataset Eviction Counts Total: The total number of dataset evictions for each capacity.
When a capacity faces memory pressure, the node evicts one
or more datasets from memory. Datasets that are inactive
(with no query/refresh operation currently executing) are
evicted first. Then the eviction order is based on a measure of
'least recently used' (LRU).
Hourly Loaded Dataset Counts Number of datasets loaded into memory vs. memory
consumption in GB, split into one-hour buckets, reported in
UTC time.
Hourly Dataset Evictions and Memory Consumption Dataset evictions vs. memory consumption in GB, split into
one-hour buckets, reported in UTC time.
REPORT SECTION METRICS
Paginated Reports
REPORT SECTION METRICS
Overall usage Total Views: The number of times that the report has been
viewed by users.
Row Count: The number of rows of data in the report.
Retrieval (avg): The average amount of time it takes to
retrieve data for the report, in milliseconds. Long durations
can indicate slow queries or other data source issues.
Processing (avg): The average amount of time it takes to
process the data for a report, in milliseconds.
Rendering (avg): The average amount of time it takes to
render a report in the browser, in milliseconds.
Total time: The time it takes for all phases of the report, in
milliseconds.
Top 5 Reports by Average Data Retrieval Time The five reports with the longest average data retrieval time,
in milliseconds.
Top 5 Reports by Average Report Processing Time The five reports with the longest average report processing
time, in milliseconds.
Hourly Results Successes, failures, and memory consumption, split into one-
hour buckets, reported in UTC time.
Hourly Durations Data retrieval vs. processing and rendering time, split into
one-hour buckets, reported in UTC time.
Dataflows
REPORT SECTION METRICS
Top 5 dataflows by Average Refresh Duration The five dataflows with the longest average refresh duration,
in minutes.
REPORT SECTION METRICS
Top 5 dataflows by Average Wait Time The five dataflows with the longest average refresh wait time,
in minutes.
Hourly Average Refresh Wait Times The average refresh wait time, split into one-hour buckets,
reported in UTC time. Multiple spikes with high refresh wait
times are indicative of the capacity running hot.
Hourly Refresh Count and Memory Consumption Successes, failures, and memory consumption, split into one-
hour buckets, reported in UTC time.
Resource Consumption
REPORT SECTION METRICS
SKU and Workload Information SKU and workload settings for the capacity.
Workspaces area
Datasets area
Paginated Reports Names, workspace names, and IDs for all paginated reports.
Dataflows area
Dataflows Dataflow names, workspace names, and IDs for all dataflows.
NOTE
You can monitor Power BI Embedded capacity usage in the app or the Azure portal, but not in the Power BI admin portal.
Next steps
Power BI Premium capacity resource management and optimization
Monitor capacities in the Admin portal
2/6/2019 • 2 minutes to read • Edit Online
This article describes how you can use the Capacity settings area in the Admin portal to get a quick view of your
capacity's performance. To get the most in-depth metrics about your capacity, it's best to use the Power BI
Premium Capacity Metrics app.
Capacity metrics
The Capacity settings area of the admin portal provides four gauges that indicate the loads placed and the
resources utilized by your capacity for the past seven days. These four tiles work on an hourly time window that
indicates how many hours in the past seven days the corresponding metric was above 80%. This metric indicates a
potential degradation for the end-user experience.
METRIC DESCRIPTION
Metrics reflect utilization over the past week. If you'd like to see a more detailed view of the metrics, you can do so
by clicking any of the summary tiles. This will take you to detailed charts for each of the metrics for your premium
capacity. The following chart shows details for the CPU metric.
These charts are summarized on an hourly basis for the past week, and can help isolate when you may have had
specific performance-related events in your premium capacity.
You may also export the underlying data for any of the metrics to a csv file. This export will give you detailed
information in three minute intervals for each day of the past week.
Next steps
Now that you understand how to monitor Power BI Premium capacities, learn more about optimizing capacities.
Power BI Premium capacity resource management and optimization
Configure workloads in a Premium capacity
4/1/2019 • 2 minutes to read • Edit Online
This article describes enabling and configuring workloads for Power BI Premium capacities. By default, capacities
support only the workload associated with running Power BI queries. You can also enable and configure additional
workloads for AI (Cognitive Services), Dataflows, and Paginated reports.
AI (Cognitive 20% default; min 20% default; min 20% default; min 20% default; min 20% default; min
Services) TBD TBD TBD TBD TBD
Dataflows N/A 20% default; 12% 20% default; 5% 20% default; 3% 20% default; 2%
minimum minimum minimum minimum
Paginated N/A N/A 20% default; 10% 20% default; 5% 20% default;
reports minimum minimum 2.5% minimum
AI (Cognitive N/A 20% default; 20% default; 20% default; 20% default; 20% default;
Services) min TBD min TBD min TBD min TBD min TBD
Dataflows 40% default; 24% default; 20% default; 20% default; 20% default; 20% default;
40% 24% minimum 12% minimum 5% minimum 3% minimum 2% minimum
minimum
Paginated N/A N/A N/A 20% default; 20% default; 20% default;
reports 10% minimum 5% minimum 2.5%
minimum
Configure workloads
Maximize your capacity's available resources by enabling workloads only if they will be used. Change memory
settings only when you have determined default settings are not meeting your capacity resource requirements.
To configure workloads in the Power BI admin portal
1. In Capacity settings > PREMIUM CAPACITIES, select a capacity.
2. Under MORE OPTIONS, expand Workloads.
3. Enable one or more workloads, and set a value for Max Memory.
4. Click Apply.
NOTE
If enabling the paginated reports workload, paginated reports allow you to run your own code when rendering a report
(such as dynamically changing text color based on content). Power BI Premium runs paginated reports in a contained space
within the capacity. The maximum memory you specify to this space is used whether or not the workload is active. If you use
Power BI reports or dataflows in the same capacity, make sure you set memory low enough for paginated reports that it
doesn't negatively affect the other workloads. In rare circumstances, the paginated reports workload can become
unavailable. In this case, the workload shows an error state in the admin portal, and users see timeouts for report rendering.
To mitigate this issue, disable the workload then enable it again.
REST API
Workloads can be enabled and assigned to a capacity by using the Capacities REST APIs.
Monitoring workloads
The Power BI Premium Capacity Metrics app provides dataset, dataflows, and paginated reports metrics to
monitor workloads enabled for your capacities.
Next steps
Power BI Premium capacity resource management and optimization
Self-service data prep in Power BI with Dataflows
What are paginated reports in Power BI Premium?
More questions? Ask the Power BI Community
Restart a Power BI Premium capacity
2/6/2019 • 2 minutes to read • Edit Online
As a Power BI administrator, you might need to restart a Premium capacity. This article explains how to restart a
capacity and addresses several questions about restart and performance.
Next steps
What is Power BI Premium?
More questions? Try asking the Power BI Community
Power BI Premium support for large datasets
2/6/2019 • 2 minutes to read • Edit Online
Power BI Premium supports uploads of Power BI Desktop (.pbix) files that are up to 10 GB in size. Once uploaded,
a dataset can be refreshed to up to 12 GB in size. To use a large dataset, publish it to a workspace that is assigned
to Premium capacity.
Best practices
This section describes best practices for working with large datasets.
Large models can be very resource-intensive on your capacity. We recommend at least a P1 SKU for any
models larger than 1 GB. Although publishing large models to workspaces backed by A SKUs up to A3 might
work, refreshing them will not.
The following table describes recommended SKUs for various .pbix sizes:
P1 < 3 GB
P2 < 6 GB
P3, P4, P5 up to 10 GB
The Power BI Embedded A4 SKU is equal to the P1 SKU, A5 = P2 and A6 = P3. Note that publishing large models
to A and EM SKUs might return errors that aren't specific to the model size limitation error in the shared capacity.
Refresh errors for large models in A and EM SKUs are likely to point to timeouts. We are working on improving
the error messages for these scenarios.
Your .pbix files represent data in a highly compressed state. The data will likely expand several times when
loaded in memory, and from there it may expand several more times during data refresh.
Scheduled refresh of large datasets can take a long time and be very resource-intensive. Accordingly, do not
schedule too many overlapping refreshes. Notice also that the timeout for scheduled refresh jobs has been
doubled to four hours for all datasets in this capacity. We recommend incremental refresh, because it's faster, more
reliable, and consumes fewer resources.
The initial report load of large datasets can take a long time if it has been a while since the last time the
dataset was used, because the model is loaded into memory of your Premium capacity. A loading bar for longer-
loading reports displays the load progress.
If you remove the workspace from Premium capacity, the model and all associated reports and dashboards
will not work.
While the per-query memory and time constraints are much higher in Premium capacity, it is highly
recommended that you use filters and slicers to limit visuals to display only what is necessary.
Next steps
What is Power BI Premium? Power BI Premium release notes Microsoft Power BI Premium whitepaper Planning
a Power BI Enterprise Deployment whitepaper
More questions? Try asking the Power BI Community
Incremental refresh in Power BI Premium
2/13/2019 • 7 minutes to read • Edit Online
Incremental refresh enables very large datasets in the Power BI Premium service with the following benefits:
Refreshes are faster - Only data that has changed needs to be refreshed. For example, refresh only the
last five days of a ten-year dataset.
Refreshes are more reliable - It's no longer necessary to maintain long-running connections to volatile
source systems.
Resource consumption is reduced - Less data to refresh reduces overall consumption of memory and
other resources.
With the parameters defined, you can then apply the filter by selecting the Custom Filter menu option for a
column.
Ensure rows are filtered where the column value is after or equal to RangeStart and before RangeEnd.
TIP
While the data type of the parameters must be date/time, it's possible to convert them to match the requirements of the
datasource. For example, the following Power Query function converts a date/time value to resemble an integer surrogate
key of the form yyyymmdd, which is common for data warehouses. The function can be called by the filter step.
(x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)
Select Close and Apply from the Power Query Editor. You should have a subset of the dataset in Power BI
Desktop.
Filter date column updates
The filter on the date column is used to dynamically partition the data into ranges in the Power BI service.
Incremental refresh isn't designed to support cases where the filtered date column is updated in the source
system. An update is interpreted as an insertion and a deletion, not an actual update. If the deletion occurs in the
historical range and not the incremental range, it won’t get picked up. This can cause data refresh failures due to
partition-key conflicts.
Query folding
It's important the partition filters are pushed to the source system when queries are submitted for refresh
operations. To push filtering down means the datasource should support query folding. Most data sources that
support SQL queries support query folding. However, data sources like flat files, blobs, web, and OData feeds
typically do not. In cases where the filter is not supported by the datasource back-end, it cannot be pushed down.
In such cases, the mashup engine compensates and applies the filter locally, which may require retrieving the full
dataset from the data source. This can cause incremental refresh to be very slow, and the process can run out of
resources either in the Power BI service or in the on-premises data gateway if used.
Given the various levels of query folding support for each datasource, it's recommended that verification is
performed to ensure the filter logic is included in the source queries. To make this easier, Power BI Desktop
attempts to perform this verification for you. If unable to verify, a warning is displayed in the incremental refresh
dialog when defining the incremental refresh policy. SQL based data sources such as SQL, Oracle, and Teradata
can rely on this warning. Other data sources may be unable to verify without tracing queries. If Power BI Desktop
is unable to confirm, the following warning is displayed.
TIP
The current design requires that the column to detect data changes is persisted and cached into memory. You may want to
consider one of the following techniques to reduce cardinality and memory consumption.
Persist only the maximum value of this column at time of refresh, perhaps using a Power Query function.
Reduce the precision to a level that is acceptable given your refresh-frequency requirements.
We plan to allow the definition of custom queries for data-change detection at a later date. This could be used to avoid
persisting the column value altogether.
NOTE
Refresh operations in the service run under UTC time. This can determine the effective date and affect complete periods.
We plan to add the ability to override the effective date for a refresh operation.
Query timeouts
The troubleshooting refresh article explains that refresh operations in the Power BI service are subject to
timeouts. Queries can also be limited by the default timeout for the data source. Most relational sources allow
overriding timeouts in the M expression. For example, the expression below uses the SQL Server data-access
function to set it to 2 hours. Each period defined by the policy ranges submits a query observing the command
timeout setting.
let
Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2,
0, 0)]),
dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
#"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
#"Filtered Rows"
Multi-Geo support for Power BI Premium
3/7/2019 • 3 minutes to read • Edit Online
Multi-Geo is a Power BI Premium feature that helps multinational customers address regional, industry-specific,
or organizational data residency requirements. As a Power BI Premium customer, you can deploy content to
datacenters in regions other than the home region of the Power BI tenant. A geo (geography) can contain more
than one region. For example, the United States is a geo, and West Central US and South Central US are regions
in the United States. You may choose to deploy content to any of the following geos:
United States
Canada
United Kingdom
Brazil
Europe
Japan
India
Asia Pacific
Australia
Multi-Geo isn't available for Power BI Germany, Power BI China operated by 21Vianet, or Power BI for the US
government.
Multi-Geo is now also available in Power BI Embedded. Read more at Multi-Geo support in Power BI Embedded.
Using Multi-Geo
For new capacities, enable Multi-Geo by selecting a region other than the default region from the dropdown.
Each available capacity shows the region where it's currently located, such as West Central US.
After you've created capacity, it remains in that region, and any workspaces created will have their content stored
in that region. You can migrate workspaces from one region to another through the dropdown on the workspace
settings screen.
You don't need to reset the gateway credentials during a migration at this time. After they're stored in the
Premium capacity region, you will need to reset them upon migration.
During migration, certain operations may fail, such as publishing new datasets or scheduled data refresh.
The following items are stored in the Premium region when Multi-Geo is enabled:
Models (.ABF files) for import and Direct Query datasets
Query cache
R images
These items remain in the home region for the tenant:
Push datasets
Excel workbooks
Dashboard/report metadata: e.g., tile names, tile queries
Service buses for gateway queries or scheduled refresh jobs
Permissions
Dataset credentials
Next steps
Power BI Premium: What is it?
Multi-Geo for Power BI Embedded capacities
More questions? Try asking the Power BI Community
Connect to datasets with client applications and tools
(Preview)
3/28/2019 • 4 minutes to read • Edit Online
Power BI Premium workspaces and datasets support read -only connections from Microsoft and third-party client
applications and tools.
NOTE
This article is intended only to introduce read-only connectivity to Power BI Premium workspaces and datasets. It is not
intended to provide in-depth information about programmability, specific tools and applications, architecture, and workspace
and dataset management. Subjects described here require a solid understanding of Analysis Services tabular model database
architecture and administration.
Protocol
Power BI Premium uses the XML for Analysis (XMLA) protocol for communications between client applications
and the engine that manages your workspaces and datasets. These communications are through what are
commonly referred to as XMLA endpoints. XMLA is the same communication protocol used by the Microsoft
Analysis Services engine, which under the hood, runs Power BI's semantic modeling, governance, lifecycle, and
data management.
The vast majority of client applications and tools do not explicitly communicate with the engine by using XMLA
endpoints. Instead, they use client libraries such as MSOLAP, ADOMD, and AMO as an intermediary between the
client application and the engine, which communicates exclusively by using XMLA.
Supported tools
These tools support read-only access to Power BI Premium workspaces and datasets:
SQL Server Management Studio (SSMS ) - Supports DAX, MDX, XMLA, and TraceEvent queries. Requires
version 18.0 (Preview ). Download here.
SQL Server Profiler - Included with SSMS 18.0 (Preview ), this tool provides tracing and debugging of server
events. You can capture and save data about each event to a file or table to analyze later. While officially deprecated
for SQL Server, Profiler continues to be included in SSMS and remains supported for Analysis Services and Power
BI Premium. To learn more, see SQL Server Profiler.
DAX Studio - Open-source, community tool for executing and analyzing DAX queries against Analysis Services.
Requires version 2.8.2 or higher. To learn more, see daxstudio.org.
Excel PivotTables - Click-to-Run version of Office 16.0.11326.10000 or above is required.
Third party - Includes client data visualization applications and tools that can connect to, query, and consume
datasets in Power BI Premium. Most tools require the latest versions of MSOLAP client libraries, but some may
use ADOMD.
Client libraries
Client libraries are necessary for client applications and tools to connect to Power BI Premium workspaces. The
same client libraries used to connect to Analysis Services are also supported in Power BI Premium. Microsoft client
applications like Excel, SQL Server Management Studio (SSMS ), and SQL Server Data Tools (SSDT) install all
three client libraries and update them along with regular application updates. In some cases, particularly with third-
party applications and tools, you may need to install newer versions of the client libraries. Client libraries are
updated monthly. To learn more, see Client libraries for connecting to Analysis Services.
Workspace connections use the following URL format to address a workspace as though it were an Analysis
Services server name:
powerbi://api.powerbi.com/v1.0/[tenant name]/[workspace name]
NOTE
[workspace name] is case sensitive and can include spaces.
To connect in SSMS
In Connect to Server > Server Type, select Analysis Services. In Server name, enter the URL. In
Authentication, select Active Directory - Universal with MFA Support, and then in User name, enter your
organizational user ID.
When connected, the workspace is shown as an Analysis Services server, and datasets in the workspace are shown
as databases.
Initial catalog
Some tools, such as SQL Server Profiler, you may need to specify an Initial Catalog. Specify a dataset (database) in
your workspace. In Connect to Server, click Options. In the Connect to Server dialog, on the Connection
Properties tab, in Connect to database, enter the dataset name.
Duplicate workspace name
When connecting to a workspace with the same name as another workspace, you may get the following error:
Cannot connect to powerbi://api.powerbi.com/v1.0/[tenant name]/[workspace name].
To get around this error, in addition to the workspace name, specify the ObjectIDGuid, which can be copied from
the workspace objectID in the URL. Append the objectID to the connection URL. For example,
`powerbi://api.powerbi.com/v1.0/myorg/Contoso Sales - 9d83d204-82a9-4b36-98f2-a40099093830'
Duplicate dataset name
When connecting to a dataset with the same name as another dataset in the same workspace, append the dataset
guid to the dataset name. You can get both dataset name and guid when connected to the workspace in SSMS.
Delay in datasets shown
When connecting to a workspace, changes from new, deleted, and renamed datasets can take up to 5 minutes to
appear.
Audit logs
When client applications and tools connect to a workspace, access through XMLA endpoints is logged in the Power
BI audit logs under the GetWorkspaces operation. To learn more, see Auditing Power BI.
See also
Analysis Services References
SQL Server Management Studio
SQL Server Analysis Services Tabular Protocol
Dynamic Management Views (DMVs)
More questions? Try asking the Power BI Community
Power BI Premium FAQ
3/22/2019 • 5 minutes to read • Edit Online
This article addresses questions frequently asked about Power BI Premium. For an overview, see What is Power
BI Premium?.
If you have other questions, try asking the Power BI Community.
Still have an issue? Please visit the Power BI support page.
What is Power BI Premium?
Power BI Premium is a capacity-based offering that includes:
Flexibility to publish reports broadly across an enterprise, without requiring recipients to be licensed
individually per user.
Greater scale and performance than shared capacity in the Power BI service.
The ability to maintain BI assets on-premises with Power BI Report Server.
One API surface, a consistent set of capabilities, and access to the latest features for embedded analytics.
What does Power BI Premium do? How does it work?
Power BI Premium consists of capacity in the Power BI service exclusively allocated to each organization. The
capacity is supported by dedicated hardware fully managed by Microsoft. Organizations can choose to apply their
dedicated capacity broadly, or allocate it to assigned workspaces based on the number of users, workload needs,
or other factors—and scale up or down as requirements change.
How is Power BI Pro different than Power BI Premium?
Power BI Premium is a capacity-based license, while Power BI Pro is a user-based license. Power BI Pro is for
those users publishing reports, sharing dashboards, collaborating with colleagues in workspaces and engaging in
other related activities – such as the ability to:
Edit and save customized views
Create personal dashboards (pin to new dashboard)
Analyze data in Excel or Power BI Desktop
Share with Excel Web App support
Share dashboards and collaborate with Office 365 Groups
Integrate content with Microsoft Teams
Do I need Power BI Pro to use Power BI Premium?
Yes. Power BI Pro is required to publish reports, share dashboards, collaborate with colleagues in workspaces and
engage in other related activities. Power BI Pro isn't required to consume content in Premium capacity.
Can you outline a scenario of how Power BI Pro and Power BI Premium work to cover an organization
for Modern BI?
The following examples outline how customers can meet their BI needs using a combination of Power BI Pro and
Power BI Premium.
SCENARIO 1 SCENARIO 2 SCENARIO 3 SCENARIO 4
1. Power BI Pro for every 1. Power BI Pro for users 1. Power BI Pro for users 1. Power BI Pro for every
user that require self-service BI that require self-service BI user in the finance
and collaboration and collaboration department
2. Look to expand the
opportunity by adding 2. Add Power BI Premium to 2. Add Power BI Premium to 2. Add Power BI Premium
Power BI Premium – see the be able to distribute BI be able to publish reports for the dedicated resources
additional scenarios content to users who only on-premises – and move to – in the cloud – to be used
need to consume the cloud as appropriate exclusively by the finance
team, providing larger scale
and greater performance
How much does Power BI Premium cost? How many SKUs will you make available?
Power BI Premium is purchased based on the number of virtual cores. You can see prices at the Power BI pricing
page. For more information on nodes and v-cores, see the Microsoft Power BI Premium whitepaper. Also use this
calculator to get an estimate of how much Premium capacity you may need.
What do you mean by "capacity"?
A capacity is a grouping of one or more nodes that is provisioned by an admin through the Power BI Premium
capacity admin portal. See the Microsoft Power BI Premium whitepaper for more information.
How is Power BI Premium billed?
Power BI Premium is billed monthly with an annual commitment.
How do I buy Power BI Premium?
Power BI Premium is available from the Microsoft 365 admin center. For more information, see How to purchase
Power BI Premium. You can also contact your Microsoft representative for more information.
How do I know how much Power BI Premium capacity I need to purchase?
Use the cost calculator to estimate how much Power BI Premium capacity you may need.
Is Power BI Premium available with Office 365 E5?
Power BI Premium is available as an add-on to Power BI Pro. Office 365 E5 includes Power BI Pro. E5 customers
can purchase Premium as an add-on to their existing Pro licenses.
What is Power BI Report Server? Does this mean you’re making Power BI available on-premises?
Power BI Report Server is an on-premises server that allows the deployment and distribution of interactive Power
BI reports, and paginated reports, completely within the boundaries of the organization’s firewall. Power BI Report
Server is available through Power BI Premium or as a benefit for customers with SQL Server Enterprise Edition
with Software Assurance. Contact your Microsoft representative for more information.
With Power BI Premium. the same number of virtual cores an organization provisions in the cloud can also be
deployed on-premises through Power BI Report Server. There is no need to split the capacity. Organizations can
choose Power BI in the cloud, or elect to keep reports on-premises with Power BI Report Server and move to the
cloud at their pace.
For more information, see Get started with Power BI Report Server.
Next steps
What is Power BI Premium? Power BI Premium release notes Microsoft Power BI Premium whitepaper Planning
a Power BI Enterprise Deployment whitepaper Extended Pro Trial activation Power BI Embedded FAQ
More questions? Try asking the Power BI Community
Understanding the Power BI service administrator
role
3/22/2019 • 2 minutes to read • Edit Online
Learn how you can use the Power BI service administrator role in your organization. Users in this role have full
control over a Power BI tenant and its administrative features, except for licensing.
https://www.youtube.com/embed/PQRbdJgEm3k?showinfo=0
The Power BI service administrator role can be assigned to users who need access to the Power BI Admin portal
without also granting those users complete Office 365 administrative access.
Office 365 user management administrators assign users to the Power BI service administrator role in the
Microsoft 365 admin center, or by using a PowerShell script. Once a user is assigned, they can access the Power BI
admin portal. There, they have access to tenant-wide usage metrics, and can control tenant-wide usage of Power
BI features.
2. Select the user that you want to assign the role to.
3. Under Roles, select Edit.
4. Select Customized administrator > Power BI service administrator.
PARAMETER DESCRIPTION
Next steps
Administering Power BI in your Organization
Power BI admin portal
More questions? Try asking the Power BI Community
Administering Power BI - frequently asked questions
(FAQ)
3/22/2019 • 11 minutes to read • Edit Online
This article addresses frequently asked questions for Power BI administration. For an overview of the Power BI
administration, see What is Power BI administration?.
IMPORTANT
If your organization has multiple email domains and you prefer all email address extensions to be in the same tenant, add all
email address domains to an Azure Active Directory tenant before any users sign up. There is no automated mechanism to
move users across tenants after they have been created. For more information on this process, see If I have multiple
domains, can I control the Office 365 tenant that users are added to? later in this article and Add a domain to Office 365.
How can I prevent users from joining my existing Office 365 tenant?
There are steps you can take, as an admin, to prevent users from joining your existing Office 365 tenant. If you
block access, users’ attempts to sign up fail, and they are directed to contact their organization’s admin. You do not
need to repeat this process if you have already disabled automatic license distribution (e.g. through Office 365 for
Education for Students, Faculty, and Staff).
Use the following PowerShell script to prevent new users from joining a managed tenant. (Learn more about
PowerShell.)
$msolcred = get-credential
connect-msolservice -credential $msolcred
NOTE
Blocking access prevents new users in your organization from signing up for Power BI. Users that sign up for Power BI prior
to disabling new signups for your organization still retain their licenses. To remove a user, see How do I remove Power BI for
users that already signed up? later in this article.
$msolcred = get-credential
connect-msolservice -credential $msolcred
Get-MsolCompanyInformation | fl allow*
How can I prevent my existing users from starting to use Power BI?
The Azure AD setting that controls this is AllowAdHocSubscriptions. Most tenants have this setting set to true,
which means it is enabled. If you acquired Power BI through a partner, this may be set to false, which means it is
disabled.
Use the following PowerShell script to disable ad hoc subscriptions. (Learn more about PowerShell.)
1. Sign into Azure Active Directory using your Office 365 credentials. The first line of the following PowerShell
script prompts you for your credentials. The second line connects to Azure Active Directory.
$msolcred = get-credential
connect-msolservice -credential $msolcred
2. Once you are signed in, run the following command to see how your tenant is currently configured.
Get-MsolCompanyInformation | fl AllowAdHocSubscriptions
Administration of Power BI
How will this change the way I manage identities for users in my organization today?
There are three scenarios that might apply to users in your organization:
Scenario 1: If your organization already has an existing Office 365 environment and all users in your
organization have Office 365 accounts, there is no change in how you manage identity.
Scenario 2: If your organization already has an existing Office 365 environment but not all users in your
organization have Office 365 accounts, we create a user in the tenant and assign licenses based on the
user’s work, or school, email address.
This means that the number of users you are managing at any particular time grows as users in your
organization sign up for the service.
Scenario 3: If your organization does not have an Office 365 environment connected to your email domain,
there is no change in how you manage identity.
Users are added to a new, cloud-only user directory, and you have the option to elect to take over as the
tenant admin and manage them.
How do we manage Power BI?
Power BI provides an admin portal that enables you to view usage statistics, provides a link to the Microsoft 365
admin center to manage users and groups, and provides the ability to control tenant-wide settings.
To access the Power BI admin portal, your account must be marked as a Global Admin within Office 365 or Azure
Active Directory, or have been assigned the Power BI service administrator role. For more information, see
Understanding the Power BI admin role and Power BI Admin Portal.
What is the process to manage a tenant created by Microsoft for my users?
When a self-service user signs up for a cloud service that uses Azure AD, they are added to an unmanaged Azure
AD directory based on their email domain. You can claim and manage the tenant that was created using a process
known as an admin takeover. The type of takeover you do depends on whether there is an existing managed
tenant associated with your domain:
Use an internal takeover to create a new managed tenant for the domain.
Use an external takeover to move the domain to an existing managed tenant.
For more information, see Take over an unmanaged directory as administrator in Azure Active Directory.
When you perform an external takeover, Power BI content that was created before the takeover is placed in a
Power BI Archived Workspace. You must manually migrate any content that you want to use in the new tenant.
If I have multiple domains, can I control the Office 365 tenant that users are added to?
If you do nothing, a tenant is created for each user email domain and subdomain. If you want all users to be in the
same tenant regardless of their email address extensions: Create a target tenant ahead of time, or use an existing
tenant, and add all the existing domains and subdomains that you want consolidated within that tenant. Then all
the users with email addresses ending in those domains and subdomains automatically join the target tenant when
they sign up.
IMPORTANT
There is no supported automated mechanism to move users across tenants once they have been created. To learn about
adding domains to a single Office 365 tenant, see Add your users and domain to Office 365.
Security in Power BI
Does Power BI meet national, regional, and industry-specific compliance requirements?
To learn more about Power BI compliance, see the Microsoft Trust Center.
How does security work in Power BI?
Power BI is built on the foundation of Office 365, which in turn builds on Azure services like Azure Active
Directory. For an overview of Power BI architecture, see Power BI Security.
Next steps
Power BI admin portal
Understanding the Power BI admin role
Self-service sign up for Power BI
Purchasing Power BI Pro
What is Power BI Premium?
How to purchase Power BI Premium
Power BI Premium whitepaper
Manage your group in Power BI and Office 365
Office 365 user account management
Office 365 group management
More questions? Try asking the Power BI Community
Power BI high availability, failover, and disaster
recovery FAQ
2/19/2019 • 4 minutes to read • Edit Online
This article explains how the Power BI service delivers high availability and provides business continuity and
disaster recovery to its users. After reading this article, you should have a better understanding of how high
availability is achieved, under what circumstances Power BI performs a failover, and what to expect from the
service when it fails over.
In the Power BI service, users have defined capabilities based on two types of licenses:
Per-user - Power BI Pro licensing and free licensing. A Power BI Pro license enables access to all content
and capabilities in the Power BI service, including the ability to share content and collaborate with other
Pro users. Only Pro users can publish to and consume content from app workspaces, share dashboards,
and subscribe to dashboards and reports. A free license enables access to some of the features of the
Power BI service. For more information, see Per-user license type comparison.
Capacity-based - Power BI Premium licensing. Premium provides dedicated capacity to deliver more
consistent performance and support larger data volumes in Power BI. For individual users, Premium also
enables widespread distribution of content by Pro users without requiring Pro licenses for recipients who
view the content. For more information, see What is Power BI Premium?.
This article focuses on per-user licensing from an administrator perspective.
4. Under Other Plans, hover over the ellipsis (. . .) for Power BI Pro and select Start free trial.
5. On the order confirmation screen, select Try now.
6. On the order receipt, select Continue.
Now you can assign licenses in Office 365.
2. If the block is available, you can now assign licenses in Office 365. If the block isn't available, you have two
choices:
Have a member of your organization sign up individually, which triggers the creation of the
unlimited block.
Go to the next procedure, where you can sign up for a fixed number of licenses.
If the unlimited Power BI (free) license block isn't available and you don't want to do an individual sign up, follow
this procedure.
1. Navigate to the Microsoft 365 admin center.
2. On the left navigation pane, select Billing > Subscriptions.
3. On the right side, select Add subscriptions +.
4. Under Other Plans, hover over the ellipsis (. . .) for Power BI (free) and select Buy now.
5. Enter the number of licenses you want to add and select Check out now or Add to cart.
6. Enter the required information in the check out flow.
There is no purchase when using this approach, although you will need to either enter your credit card
information for billing, or choose to be invoiced.
7. You can now assign licenses in Office 365.
8. If you decide later that you want to add more licenses, you can go back to Add subscriptions, and select
Change license quantity for Power BI (free).
$msolcred = get-credential
connect-msolservice -credential $msolcred
2. Once you are signed in, run the following command to see how your tenant is currently configured.
Get-MsolCompanyInformation | fl AllowAdHocSubscriptions
NOTE
The AllowAdHocSubscriptions flag is used to control several user capabilities in your organization, including the ability for
users to sign up for the Azure Rights Management Service. Changing this flag affects all of these capabilities.
Next steps
Self-service sign up for Power BI
Purchase and assign Power BI Pro licenses
More questions? Try asking the Power BI Community
Purchase and assign Power BI Pro licenses
3/22/2019 • 2 minutes to read • Edit Online
Power BI Pro is an individual license that allows access to all content and capabilities in the Power BI service,
including the ability to share content and collaborate with other Pro users. Only Pro users can publish to and
consume content from app workspaces, share dashboards, and subscribe to dashboards and reports. For more
information, see Power BI features by license type.
This article first explains how to purchase Power BI Pro licenses in Office 365. The article then explains the two
options you have for assigning those licenses to individual users: Office 365 and Azure (choose one option).
Prerequisites
You must be a member of the Global administrator or Billing administrator role in Office 365.
To assign licenses in Azure, you must be an owner of the Azure subscription that Power BI uses for Active
Directory lookups.
3. In the upper right corner of the Subscriptions page, select Add subscriptions.
4. Locate the desired subscription offering:
Under Enterprise Suite, select Office 365 Enterprise E5.
5. Hover over the ellipsis (. . .) for the desired subscription, and select Buy now.
6. Choose Pay monthly or Pay for a full year, according to your billing preference.
7. Under How many users do you want? enter the desired number of licenses, and then select Check out
now to complete the transaction.
8. Verify that the acquired subscription is now listed on the Subscriptions page.
9. To add more licenses after the initial purchase, select Power BI Pro from the Subscriptions page, and
then select Add/Remove licenses.
5. Under Status for the selected account, verify that the Power BI Pro license has been assigned successfully.
Assign licenses in Azure
Follow these steps to assign Power BI Pro licenses to individual user accounts:
1. Open the Azure portal.
2. In the left navigation bar, select Azure Active Directory.
4. Under Licenses, select All products then select Power BI Pro to display the list of licensed users.
https://www.youtube.com/embed/gbSuFST-Nx4?showinfo=0
This article describes an alternative way to sign up for Power BI, using an Office 365 trial. If you're having
problems signing up for Power BI with your work email address, first make sure it's an email address that can be
used with Power BI. If that's not successful, try signing up for an Office 365 trial first and then signing up for
Power BI. You'll be able to use Power BI even after the Office 365 trial expires.
1. Sign up for an Office 365 trial on the Office 365 web site.
2. When you complete that signup process, you're given a new sign-in name that looks like
[email protected]. This is the sign-in you'll use with Power BI.
3. Sign up for Power BI using this link. If you're prompted, sign in using the sign-in name and password you
selected for Office 365 in the previous step.
4. That's it! When you're finished, you'll be redirected to Power BI. If you have any issues signing in with the
new account, try using a private browser session.
Important considerations
By using this signup method, you are creating a new organizational tenant and you'll become the administrator of
the tenant. For more information, see What is Power BI administration?. You can add new users to your tenant,
then share with them, as described in the Office 365 admin documentation.
Next steps
What is Power BI administration?
Power BI licensing in your organization
Signing up for Power BI as an individual
More questions? Try asking the Power BI Community
Unable to add Power BI to Office 365 partner
subscription
3/22/2019 • 2 minutes to read • Edit Online
Office 365 enables companies to resell Office 365 bundled and integrated with their own solutions, providing end-
customers with a single point of contact for purchasing, billing, and support.
If you are interested in acquiring Power BI alongside your Office 365 subscription, we recommend you contact
your partner to do so. If your partner does not currently offer Power BI, you have different options to pursue.
If you don't see Subscriptions, you can't buy from Microsoft directly or from another partner.
If your partner does not offer Power BI and you can't buy directly from Microsoft or another partner, consider
signing up for a free trial.
Sign up for a free trial
You can sign up for a free trial of Power BI Pro. If you don't purchase Power BI Pro at the end of the trial period,
you still have a free license that offers many of the features of Power BI. For more information, see Power features
by license type.
Enable ad-hoc subscriptions
By default, individual sign-ups (also known as ad-hoc subscriptions) are disabled. In this case, you see the
following message when you try to sign up: Your IT department has turned off signup for Microsoft Power BI.
To enable ad-hoc subscriptions, you can contact your partner and request that they turn it on. If you are an
administrator of your tenant, and know how to use Azure Active Directory PowerShell commands, you can enable
ad-hoc subscriptions yourself. Azure Active Directory PowerShell for Graph
1. Sign in to Azure Active Directory using your Office 365 credentials. The first line of the script below
prompts you for your credentials. The second line connects to Azure Active Directory.
$msolcred = get-credential
connect-msolservice -credential $msolcred
2. Once you're signed in, run the following command to check the current setting for AllowAdHocSubscriptions .
Get-MsolCompanyInformation
3. Run the following command to enable free sign ups.
Next steps
Power BI licensing in your organization
More questions? Try asking the Power BI Community
Administering Power BI in the admin portal
4/1/2019 • 15 minutes to read • Edit Online
The admin portal enables you to manage a Power BI tenant for your organization. The portal includes items
such as usage metrics, access to the Microsoft 365 admin center, and settings.
The full admin portal is accessible to all users who are Global Admins in Office 365 or have been assigned the
Power BI service administrator role. If you're not in one of these roles, you only see Capacity settings in the
portal. For more information about the Power BI service administrator role, see Understanding the Power BI
admin role.
There are seven tabs in the portal. The rest of this article provides information about each of these tabs.
Usage metrics
Users
Audit logs
Tenant settings
Capacity settings
Embed codes
Organizational visuals
Usage metrics
The Usage metrics enables you to monitor Power BI usage for your organization. It also provides the ability to
see which users, and groups, are the most active within Power BI for your organization.
NOTE
The first time you access the dashboard, or after you visit again after a long period of not viewing the dashboard, you'll
likely see a loading screen while we load the dashboard.
Once the dashboard loads, you see two sections of tiles. The first section includes usage data for individual users,
and the second section has similar information for groups in your organization.
Here’s a breakdown of what you can see in each tile:
Distinct count of all dashboards, reports, and datasets in the user workspace
Most consumed dashboard by number of users who can access it. For example, if you have a dashboard
that you shared with 3 users, and you also added it to a content pack that two different users connected
to, its count would be 6 (1 + 3 + 2)
The most popular content users connected to. This would be anything the users could reach through the
Get Data process, so SaaS content packs, Organizational content packs, files or databases.
A view of your top users based on how many dashboards they have, both dashboards they created
themselves and dashboards shared to them.
A view of your top users based on how many reports they have
The second section shows the same type of information, but based on groups. This lets you see which groups in
your organization are most active and what kind of content they are consuming.
With this information, you can get real insights into how people are using Power BI across your organization,
and be able to recognize those users and groups who are very active in your organization.
Users
You manage Power BI users, groups, and admins in the Microsoft 365 admin center. The Users tab provides a
link to the admin center for your tenant.
Audit logs
You manage Power BI audit logs in the Office 365 Security & Compliance center. The Audit logs tab provides a
link to the Security & Compliance center for your tenant. Learn more
To use audit logs, make sure the Create audit logs for internal activity auditing and compliance setting is
enabled.
Tenant settings
The Tenant settings tab enables fine-grained control over the features that are made available to your
organization. If you have concerns around sensitive data, some of our features may not be right for your
organization, or you may only want a particular feature to be available to a specific group.
The following image shows the first two sections of the Tenant settings tab.
NOTE
It can take up to 10 minutes for a setting change to take effect for everyone in your tenant.
Settings can have three states:
Disabled for the entire organization: No one in your organization can use this feature.
Enabled for the entire organization: Everyone in your organization can use this feature.
Enabled for a subset of the organization: A specific subset of users or groups in your organization can
use this feature.
You can enable the feature for your entire organization, except for a specific group of users.
You can also enable the feature only for a specific group of users and also disable it for a group of users.
Using this approach ensures that certain users do not have access to the feature even if they are in the
allowed group.
The next few sections provide an overview of the different types of tenant settings.
Workspace settings
Create workspaces (preview)
Users in the organization can create app workspaces to collaborate on dashboards, reports, and other content.
Learn more
The following image shows the message that appears when you share with an external user.
Publish to web
Users in the organization can publish reports to the web. Learn more
The following image shows the File menu for a report when the Publish to web setting is enabled.
Users see different options in the UI based on what the Publish to web setting is.
Publish to web under Enabled for all Not visible for all Only visible for authorized
report's File menu. users or groups.
Manage embed codes Enabled for all Enabled for all Enabled for all
under Settings
* Delete option only for
authorized users or groups.
* Get codes enabled for all.
Embed codes within admin Status reflects one of the Status displays Disabled Status reflects one of the
portal following: following:
* Active * Active
* Not supported * Not supported
* Blocked * Blocked
Existing published reports All enabled All disabled Reports continue to render
for all.
Export data
Users in the organization can export data from a tile or visualization. Learn more
The following image shows the option to export data from a tile.
NOTE
Disabling Export Data also prevents users from using the Analyze in Excel feature, as well as using the Power BI service
live connection.
The following image shows the File menu for a report when the Print dashboards and reports setting is
enabled.
Allow external guest users to edit and manage content in the organization
Azure B2B guest users can edit and manage content in the organization. Learn more
The following image shows the option to Allow external guest users to edit and manage content in the
organization.
Integration settings
Ask questions about data using Cortana
Users in the organization can ask questions about their data using Cortana. Learn more
NOTE
This setting applies to the entire organization and cannot be limited to specific groups.
NOTE
Disabling Export Data also prevents users from using the Analyze in Excel feature.
NOTE
This setting can be applied to the entire organization or can be limited to specific groups.
Power BI Desktop (starting from March '19 release) supports using Group Policy to disable the usage of
custom visuals across an organization's deployed computers.
ATTRIBUTE VALUE
key Software\Policies\Microsoft\Power BI Desktop\
valueName EnableCustomVisuals
A value of 1 (decimal) enables the use of custom visuals in Power BI (This is the default).
A value of 0 (decimal) disable the use of custom visuals in Power BI.
Allow only certified visuals
Users in the organization who have been granted permissions to add and use custom visuals, denoted by the
setting "Add and use custom visuals", will only be able to use certified custom visuals (uncertified visuals will be
blocked and will display an error message when used).
Power BI Desktop (starting from March '19 release) supports using Group Policy to disable the usage of
uncertified custom visuals across an organization's deployed computers.
ATTRIBUTE VALUE
valueName EnableUncertifiedVisuals
A value of 1 (decimal) enables the use of uncertified custom visuals in Power BI (This is the default).
A value of 0 (decimal) disable the use of uncertified custom visuals in Power BI (This option enables only the use
of certified custom visuals).
R visuals settings
Interact with and share R visuals
Users in the organization can interact with and share visuals created with R scripts. Learn more
NOTE
This setting applies to the entire organization and cannot be limited to specific groups.
NOTE
This setting applies to the entire organization and cannot be limited to specific groups.
Dashboard settings
Data classification for dashboards
Users in the organization can tag dashboards with classifications that indicate dashboard security levels. Learn
more
NOTE
This setting applies to the entire organization and cannot be limited to specific groups.
Developer settings
Embed content in apps
Users in the organization can embed Power BI dashboards and reports in Software as a Service (SaaS )
applications. Disabling this setting prevents users from being able to use the REST APIs to embed Power BI
content within their application. Learn more
Dataflow settings
Create and use dataflows
Users in the organization can create and use dataflows. For an overview of dataflows, see Self-service data prep
in Power BI. To enable dataflows in a Premium capacity, see Configure workloads.
NOTE
This setting applies to the entire organization and cannot be limited to specific groups.
With the second setting, Install template apps, you control who in your organization can download and install
template apps from AppSource or another source
Capacity settings
Power BI Premium
The Power BI Premium tab enables you to manage any Power BI Premium capacities (EM or P SKU ) that have
been purchased for your organization. All users within your organization can see the Power BI Premium tab,
but they only see contents within it if they are assigned as either a Capacity admin or a user that has assignment
permissions. If a user does not have any permissions, the following message appears.
Power BI Embedded
The Power BI Embedded tab enables you to view your Power BI Embedded (A SKU ) capacities that you've
purchased for your customer. Since you can only purchase A SKUs from Azure, you manage embedded
capacities in Azure from the Azure Portal.
For more information about how to manage Power BI Embedded (A SKU ) settings, see What is Power BI
Embedded.
Embed codes
As an administrator, you can view the embed codes that are generated for your tenant. You can also revoke or
delete codes. Learn more
Organizational visuals
The Organizational visuals tab enables you to deploy and manage custom visuals inside your organization.
With organizational visuals, you can easily deploy proprietary visuals in your organization, which report authors
can then discover and import into their reports from Power BI Desktop. Learn more
WARNING
A custom visual could contain code with security or privacy risks; make sure you trust the author and the source of the
custom visual before deploying to the organization's repository.
The following image shows all the custom visuals that are currently deployed in an organization's repository.
Add a new custom visual
To add a new custom visual to the list, follow these steps.
1. In the right pane, select Add a custom visual.
IMPORTANT
Deletion is irreversible. Once deleted, the visual immediately stops rendering in existing reports. Even if you upload the
same visual again, it won't replace the previous one that was deleted. However, users can import the new visual again and
replace the instance they have in their reports.
Workspaces (preview)
As an administrator, you can view the workspaces that exist in your tenant. You can sort and filter the list of
workspaces and display the details for each workspace. Note that the table columns correspond to the properties
returned by the Power BI admin Rest API for workspaces. Personal workspaces are of type PersonalGroup,
legacy workspaces are of type Group, and modern workspaces are of type Workspace. For more information,
see Create the new workspaces (preview ) in Power BI.
Next steps
Administering Power BI in your Organization Understanding the Power BI admin role
Auditing Power BI in your organization
More questions? Try asking the Power BI Community
Where is my Power BI tenant located?
3/7/2019 • 2 minutes to read • Edit Online
https://www.youtube.com/embed/0fOxaHJPvdM?showinfo=0
Learn where your Power BI tenant is located and how that location is selected. Understanding the location is
important, because it can impact the interactions you have with the service.
IMPORTANT
You cannot change this selection after you create the tenant.
If you are a tenant admin, and want to see who has signed into Power BI, use the Azure Active Directory access
and usage reports to gain visibility.
https://www.youtube.com/embed/1AVgh9w9VM8?showinfo=0
NOTE
The activity report provides useful information, but it doesn't identify the type of license each user has. Use the Microsoft
365 admin center to view licenses.
Requirements
Any user (including non-admins) can see a report of their own sign-ins, but you must meet the following
requirements to see a report for all users.
Your tenant must have an Azure AD Premium license associated with it.
You must be in one of the following roles: Global Admin, Security Admin, or Security Reader.
3. Filter the application by either Microsoft Power BI or Power BI Gateway, and select Apply.
Microsoft Power BI filters to sign-in activity related to the service, whereas Power BI Gateway filters to
sign-in activity specific to the On-premises data gateway.
Export the data
You have two options to export the sign-in data: download a csv file, or use PowerShell. At the top of the sign-in
report, select one of the following options:
Download to download a csv file for the currently filtered data.
Script to download a PowerShell script for the currently filtered data. You can update the filter in the script
as necessary.
Data retention
Sign-in related data is available for up to 30 days. For more information, see Azure Active Directory report
retention policies.
Next steps
Using auditing within your organization
More questions? Try asking the Power BI Community
Using auditing within your organization
3/22/2019 • 9 minutes to read • Edit Online
Knowing who is taking what action on which item in your Power BI tenant can be critical in helping your
organization fulfill its requirements, such as meeting regulatory compliance and records management. Use
Power BI auditing to audit actions performed by users, such as "View Report" and "View Dashboard". You cannot
use auditing to audit permissions.
You work with auditing in the Office 365 Security and Compliance Center or use PowerShell. Auditing relies on
functionality in Exchange Online, which is automatically provisioned to support Power BI.
You can filter the audit data by date range, user, dashboard, report, dataset and activity type. You can also
download the activities in a csv (comma separated value) file to analyze offline.
Requirements
You must meet these requirements to access audit logs:
You must either be a global admin or be assigned the Audit Logs or View -Only Audit Logs role in
Exchange Online to access the audit log. By default, these roles are assigned to the Compliance
Management and Organization Management role groups on the Permissions page in the Exchange
admin center.
To provide non-administrator accounts with access to the audit log, you must add the user as a member of
one of these role groups. Alternatively, you can create a custom role group in the Exchange admin center,
assign the Audit Logs or View -Only Audit Logs role to this group, and then add the non-administrator
account to the new role group. For more information, see Manage role groups in Exchange Online.
If you can't access the Exchange admin center from the Microsoft 365 admin center, go to
https://outlook.office365.com/ecp and sign in using your credentials.
If you have access to the audit log but are not a global admin or Power BI Service admin, you will not have
access to the Power BI Admin portal. In this case, you must use a direct link to the Office 365 Security &
Compliance Center.
COLUMN DEFINITION
Date The date and time (in UTC format) when the event occurred.
IP address The IP address of the device that was used when the activity
was logged. The IP address is displayed in either an IPv4 or
IPv6 address format.
User The user (or service account) who performed the action that
triggered the event.
Detail Additional detail about an activity. Again, not all activities will
have a value.
Set-ExecutionPolicy RemoteSigned
$UserCredential = Get-Credential
Import-PSSession $Session
Search-UnifiedAuditLog -StartDate 9/11/2018 -EndDate 9/15/2018 -RecordType PowerBI -ResultSize 1000 | Format-
Table | More
For more information on connecting to Exchange Online, see Connect to Exchange Online PowerShell. For
another example of using PowerShell with audit logs, see Using Power BI audit log and PowerShell to assign
Power BI Pro licenses.
Activities audited by Power BI
The following activities are audited by Power BI.
Update capacity resource governance UpdateCapacityResourceGovernanceSe Not currently in Microsoft 365 admin
settings ttings center
Next steps
What is Power BI administration?
Power BI Admin Portal
More questions? Try asking the Power BI Community
Track Power BI service health in Office 365
3/22/2019 • 2 minutes to read • Edit Online
The Microsoft 365 admin center provides important tools for Power BI administrators, including current and
historical information about service health. To access this information, you must be in one of the following roles:
Power BI Service Administrator or Office 365 Global Administrator. For more information about roles, see
Administrator roles related to Power BI.
1. Sign in to the Microsoft 365 admin center.
2. Select the Service health tile.
3. In the current list select N advisories or N incidents, and review the results. In the graphic below, you see
one of three active advisories.
4. To see more information, select Show details for an item. In the graphic below, you see additional details,
including recent status updates.
Scroll down to see more info, then close the pane when you're finished.
5. To see historical information across all services, in the upper right of the main list select View history. Then
select Last 7 days or Last 30 days. To return to current service health, select View current status.
Closing your Power BI Account
1/14/2019 • 2 minutes to read • Edit Online
If you don't want to use Power BI any longer, you can close your Power BI account. After your account is closed,
you can no longer sign in to Power BI. Any customer data you uploaded or created in Power BI is deleted,
according to the data retention policy in the Power BI Terms of Service.
3. Select a reason for closing the account (1). You can also provide further information (2). Then select Close
account.
4. Confirm that you want to close your account.
You should see a confirmation that your account is closed. You can reopen your account from here if
necessary.
ExpressRoute is an Azure service that lets you create private connections between Azure datacenters (where
Power BI resides) and your on-premises infrastructure, or create private connections between Azure datacenters
and your colocation environment.
With Power BI and ExpressRoute, you can create a private network connection from your organization to Power
BI (or using an ISP’s colocation facility), bypassing the Internet to better secure your sensitive Power BI data and
connections.
For more information, see ExpressRoute overview. Power BI is compliant with ExpressRoute, with some
exceptions, where Power BI gets or sends data over the public Internet. For a list of the URLs that Power BI uses,
see Power BI URLs.
Distribute Power BI content to external guest users
with Azure AD B2B
3/7/2019 • 5 minutes to read • Edit Online
Power BI integrates with Azure Active Directory business-to-business (Azure AD B2B ) to allow secure distribution
of Power BI content to guest users outside your organization, while still maintaining control over the internal data.
Additionally, you can allow guest users outside your organization to edit and manage content within your
organization.
Enable access
Make sure the Share content with external users feature is enabled in the Power BI admin portal before inviting
guest users.
Additionally, the Allow external guest users to edit and manage content in the organization feature lets you select
which guest user can see and create content in workspaces, including browsing your organization's Power BI.
4. Select Invite.
To invite more than one guest user, use PowerShell. For more information, see Azure AD B2B collaboration code
and PowerShell samples.
The guest user needs to select Get Started in the email invitation they receive. The guest user is then added to the
tenant.
Ad-hoc invites
To perform an invite at anytime, add the external user to your dashboard or report through the share UI, or your
app through the access page. Here is an example of what to do when inviting an external user to use an app.
The guest user will receive an email indicating that the app has been shared with them.
The guest user must sign in with their organization email address. They will be prompted to accept the invitation
after signing in. After sign in, the guest user is redirected to the app content. To return to the app, they can
bookmark the link or save the email.
Licensing
The guest user must have the proper licensing in place to view the content that was shared. There are three
options to accomplish this: use Power BI Premium; assign a Power BI Pro license; or use the guest's Power BI Pro
license.
When using the Allow external guest users to edit and manage content in the organization feature, guest users
contributing content to workspaces or sharing content with others require a Power BI Pro license.
Use Power BI Premium
Assigning the app workspace to Power BI Premium capacity enables the guest user to use the app without
requiring a Power BI Pro license. Power BI Premium also enables apps to take advantage of other capabilities like
increased refresh rates, dedicated capacity, and large model sizes.
Next steps
For more detailed information, including how row -level security works, check out the whitepaper: Distribute
Power BI content to external guest users using Azure AD B2B.
For information regarding Azure AD B2B, see What is Azure AD B2B collaboration?.
Row-level security (RLS) with Power BI
1/14/2019 • 7 minutes to read • Edit Online
Row -level security (RLS ) with Power BI can be used to restrict data access for given users. Filters restrict data
access at the row level, and you can define filters within roles. Be aware that in the Power BI service, members of
a workspace have access to datasets in the workspace. RLS doesn't restrict this data access.
You can configure RLS for data models imported into Power BI with Power BI Desktop. You can also configure
RLS on datasets that are using DirectQuery, such as SQL Server. Previously, you were only able to implement
RLS within on-premises Analysis Services models outside of Power BI. For Analysis Services live connections,
you configure Row -level security on the on-premises model. The security option will not show up for live
connection datasets.
NOTE
You can't define roles within Power BI Desktop for Analysis Services live connections. You need to do that within
the Analysis Services model.
4. Select Create.
NOTE
You can use username() within this expression. Be aware that username() has the format of DOMAIN\username
within Power BI Desktop. Within the Power BI service and Power BI Report Server, it's in the format of the user's
User Principal Name (UPN). Alternatively, you can use userprincipalname(), which always returns the user in the
format of their user principal name, [email protected].
8. After you have created the DAX expression, you can select the check above the expression box to validate
the expression.
9. Select Save.
You can't assign users to a role within Power BI Desktop. You assign them in the Power BI service. You can
enable dynamic security within Power BI Desktop by making use of the username() or userprincipalname() DAX
functions and having the proper relationships configured.
By default, row -level security filtering uses single-directional filters, regardless of whether the relationships are
set to single direction or bi-directional. You can manually enable bi-directional cross-filter with row -level security
by selecting the relationship and checking the Apply security filter in both directions checkbox. You should
check this box when implementing dynamic row -level security, wherein you provide row -level security based on
user name or login ID.
For more information, see Bidirectional cross-filtering using DirectQuery in Power BI Desktop and the Securing
the Tabular BI Semantic Model technical article.
2. Select a role you created > OK to apply that role. The report renders the data relevant for that role.
3. You can also select Other user and supply a given user. It's best to supply the User Principal Name (UPN )
as that's what the Power BI service and Power BI Report Server use.
4. Select OK and the report renders based on what that user can see.
Within Power BI Desktop, Other user only displays different results if you're using dynamic security based on
your DAX expressions.
This will take you to the RLS page for you to add members to a role you created in Power BI Desktop. Only the
owners of the dataset will see Security available. If the dataset is in a Group, only Administrators of the group
will see the security option.
You can only create or modify roles within Power BI Desktop.
Working with members
Add members
You can add a member to the role by typing in the email address, or name, of the user, security group or
distribution list you want to add. This member has to be within your organization. You cannot add Groups
created within Power BI.
You can also see how many members are part of the role by the number in parenthesis next to the role name, or
next to Members.
Remove members
You can remove members by selecting the X next to their name.
You will then see reports that are available for this role. Dashboards are not presented in this view. In the blue
bar above, you will see what is being applied.
You can test other roles, or combination of roles, by selecting Now viewing as.
You can choose to view data as a specific person, or you can select a combination of available roles to validate
they are working.
To return to normal viewing, select Back to Row-Level Security.
WARNING
If you have configured the app workspace so that members have edit permissions, the RLS roles will not be applied to
them. Users will be able to see all of the data.
Limitations
Following is a list of the current limitations for row -level security on cloud models.
If you previously defined roles and rules in the Power BI service, you must re-create them in Power BI
Desktop.
You can define RLS only on the datasets created with Power BI Desktop. If you want to enable RLS for
datasets created with Excel, you must convert your files into Power BI Desktop (PBIX) files first. Learn
more
Only ETL and DirectQuery connections are supported. Live connections to Analysis Services are handled
in the on-premises model.
Cortana is not supported with RLS at this time.
Known issues
There is a known issue where you'll get an error message if you try to publish a previously published report
from Power BI Desktop. The scenario is as follows.
1. Anna has a dataset that is published to the Power BI service and has configured RLS.
2. Anna updates the report in Power BI Desktop and republishes.
3. Anna receives an error.
Workaround: Republish the Power BI Desktop file from the Power BI service until this issue is resolved. You can
do that by selecting Get Data > Files.
FAQ
Question: What if I had previously created roles and rules for a dataset in the Power BI service? Will they still
work if I do nothing?
Answer: No. Visuals will not render properly. You will have to re-create the roles and rules within Power BI
Desktop and then publish to the Power BI service.
Question: Can I create these roles for Analysis Services data sources?
Answer: You can if you imported the data into Power BI Desktop. If you are using a live connection, you will not
be able to configure RLS within the Power BI service. This is defined within the Analysis Services model on-
premises.
Question: Can I use RLS to limit the columns or measures accessible by my users?
Answer: No. If a user has access to a particular row of data, they can see all the columns of data for that row.
Question: Does RLS let me hide detailed data but give access to data summarized in visuals?
Answer: No, you secure individual rows of data but users can always see either the details or the summarized
data.
Next steps
Row -level security (RLS ) with Power BI Desktop
More questions? Try asking the Power BI Community
Power BI Archived Workspace
1/14/2019 • 2 minutes to read • Edit Online
With Power BI, anyone can sign up and start using the service in a few minutes. Later, your organization's IT
department might choose to take over managing Power BI for users in your organization. If this takeover occurs,
you benefit from central management of users and permissions in your organization. You might also be able to
take advantage of streamlined sign-in using the same username and password you use for other services in your
organization.
Any content you created before your IT department started managing Power BI is be placed in a Power BI
Archived Workspace, which is accessible from the left navigation of Power BI. You should start creating new Power
BI content in My Workspace, which is secured and managed by your organization's IT department. Your Archived
Workspace will continue to exist, but there are restrictions on actions you can perform on content in your Archived
Workspace. To remove these restrictions, you must migrate the content from your Archived Workspace to My
Workspace, managed by your IT department.
Microsoft Intune enables organizations to manage devices and applications. The Power BI mobile applications for
iOS and Android integrate with Intune. This integration enables you to manage the application on your devices,
and to control security. Through configuration policies, you can control items like requiring an access pin, how data
is handled by the application, and even encrypting application data when the app is not in use.
NOTE
After you configure Intune, background data refresh is turned off for the Power BI mobile app on your iOS or Android device.
Power BI refreshes the data from the Power BI service on the web when you enter the app.
2. Select Add....
3. Under Software you can select Mobile Application Management for either Android or iOS. To get started
quickly, you can select Create a policy with the recommended settings, or you can create a custom
policy.
4. Edit the policy to configure the restrictions you want on the application.
3. Provide a Publisher, Name and Description. You can optionally provide an Icon. The Category is for the
Company Portal app. Once you are done, select Next.
4. You can decide if you want the publish the app as Any (default), iPad or iPhone. By default it will show Any
and will work for both device types. The Power BI app is the same URL for both iPhone and iPad. Select
Next.
5. Select Upload.
6. If you don't see the app in the list, refresh the page: Go to Overview then back to Apps.
2. In the Select Groups screen, you can choose which groups you want to deploy this app to. Select Next.
3. In the Deployment Action screen, you can choose how you want to deploy this app. Selecting Available
Install, or Required Install, will make the app available in the Company Portal for users to install on-
demand. After you are done making your selection, select Next.
4. In the Mobile App Management screen, you can select the Mobile App Management policy that we
created in Step 2. It will default to the policy you made, if that is the only iOS policy available. Select Next.
5. In the VPN Profile screen, you can select a policy if you have one for your organization. It defaults to
None. Select Next.
6. In the Mobile App Configuration screen, you can select an App Configuration Policy if you created
one. It defaults to None. This is not required. Select Finish.
After you have deployed the app, it should show Yes for deployed, in the apps page.
Deploy for Android
1. On the apps screen, select the app you created. Then select the Manage Deployment... link.
2. In the Select Groups screen, you can choose which groups you want to deploy this app to. Select Next.
3. In the Deployment Action screen, you can choose how you want to deploy this app. Selecting Available
Install, or Required Install, will make the app available in the Company Portal for users to install on-
demand. After you are done making your selection, select Next.
4. In the Mobile App Management screen, you can select the Mobile App Management policy that we
created in Step 2. It will default to the policy you made, if that is the only Android policy available. Select
Finish.
After you have deployed the app, it should show Yes for deployed, in the apps page.
4. Select Install.
5. If you are on iOS, it will push the app to you. Select Install on the push dialog.
6. After the app is installed, you will see that it is Managed by your company. If you enabled access with a
pin, in the policy, you will see the following.
Next steps
Configure and deploy mobile application management policies in the Microsoft Intune console
Power BI apps for mobile devices
More questions? Try asking the Power BI Community
PowerShell cmdlets, REST APIs, and .NET SDK for
Power BI administration
1/14/2019 • 2 minutes to read • Edit Online
Power BI enables administrators to script common tasks with PowerShell cmdlets. It also exposes REST APIs and
provides a .NET SDK for developing administrative solutions. This topic shows a list of cmdlets and the
corresponding SDK method and REST API endpoint. For more information, see:
PowerShell download and documentation
REST API documentation
.NET SDK download
Cmdlets below should be called with -Scope Organization to operate against the tenant for administration.
The Power BI online service, also known as the Power BI SaaS (Software as a Service) application, requires
connectivity to the internet. The endpoints below should be reachable for customers using the Power BI online
service.
To use the Power BI online service, you must have access to connect to the endpoints marked required in the
tables below, and any endpoints marked required on the linked sites. If the link to an external site refers to a
specific section, you only need to review the endpoints in that section.
Endpoints marked optional may also be whitelisted for specific functionality to work.
The Power BI online service requires only TCP Port 443 to be opened for the listed endpoints.
Wildcards (*) represent all levels under the root domain, and we use N/A when information isn't available. The
Destination(s) column is a list with FQDN/domains and links to external sites, which contain further endpoint
information.
IMPORTANT
The information in the tables below doesn't represent the U.S. Government cloud, the Germany cloud, or the China
cloud.
Authentication
Power BI depends on the required endpoints in the Office 365 authentication and identity sections. To use Power
BI, you must be able to connect to the endpoints in the linked site below.
Administration
To perform administrative functions within Power BI, you must be able to connect to the endpoints in the linked
sites below.
Getting data
To get data from specific data sources, such as OneDrive, you must be able to connect to the endpoints in the table
below. Access to additional internet domains and URLs may be required for specific data sources used within your
organization.
2 Optional: Sign in and get Depends on content packs Depends on content packs
data for content packs used used
3 Optional: Import files From See the Required URLs and N/A
OneDrive personal ports for OneDrive site
Custom visuals
Power BI depends on certain endpoints to be able to view and access the custom visuals. You must be able to
connect to the endpoints in the table and linked sites below.
Over the last few decades, companies have become increasingly aware of the need to leverage data assets to profit
from market opportunities. Either by performing competitive analysis or by understanding operational patterns,
many organizations now understand they can benefit from having a data strategy as a way to stay ahead of their
competition.
The Planning a Power BI Enterprise Deployment whitepaper provides a framework for increasing the return on
investment related to Power BI as companies increasingly seek to become more data-savvy.
Business Intelligence practitioners typically define data-savvy companies as those that benefit from the use of
factual information to support decision making. We even describe certain organizations as having a data culture.
Whether at the organizational level, or at a departmental level, a data culture can positively alter a company’s
ability to adapt and thrive. Data insights don't always have to be at enterprise scope to be far-reaching: small
operational insights that alter day-to-day operations can be transformational as well.
For these companies, there is an understanding that facts – and fact analysis – must drive how business processes
are defined. Team members attempt to seek data, identify patterns, and share findings with others. This approach
can be useful regardless of if the analysis is done over external or internal business factors. It is first and foremost a
perspective, not a process. Read the whitepaper to learn about concepts, options and suggestions for governance
within the Power BI ecosystem.
Power BI Security
3/25/2019 • 4 minutes to read • Edit Online
For a detailed explanation of Power BI security, read the Power BI Security whitepaper.
The Power BI service is built on Azure, which is Microsoft’s cloud computing infrastructure and platform. The
Power BI service architecture is based on two clusters – the Web Front End (WFE ) cluster and the Back-End
cluster. The WFE cluster manages the initial connection and authentication to the Power BI service, and once
authenticated, the Back-End handles all subsequent user interactions. Power BI uses Azure Active Directory (AAD )
to store and manage user identities, and manages the storage of data and metadata using Azure BLOB and Azure
SQL Database, respectively.
Power BI Architecture
Each Power BI deployment consists of two clusters – a Web Front End (WFE ) cluster, and a Back-End cluster.
The WFE cluster manages the initial connection and authentication process for Power BI, using AAD to
authenticate clients and provide tokens for subsequent client connections to the Power BI service. Power BI also
uses the Azure Traffic Manager (ATM ) to direct user traffic to the nearest datacenter, determined by the DNS
record of the client attempting to connect, for the authentication process and to download static content and files.
Power BI uses the Azure Content Delivery Network (CDN ) to efficiently distribute the necessary static content
and files to users based on geographical locale.
The Back-End cluster is how authenticated clients interact with the Power BI service. The Back-End cluster
manages visualizations, user dashboards, datasets, reports, data storage, data connections, data refresh, and other
aspects of interacting with the Power BI service. The Gateway Role acts as a gateway between user requests and
the Power BI service. Users do not interact directly with any roles other than the Gateway Role. Azure API
Management will eventually handle the Gateway Role.
IMPORTANT
It is imperative to note that only Azure API Management (APIM) and Gateway (GW) roles are accessible through the
public Internet. They provide authentication, authorization, DDoS protection, Throttling, Load Balancing, Routing, and other
capabilities.
User Authentication
Power BI uses Azure Active Directory (AAD ) to authenticate users who sign in to the Power BI service, and in turn,
uses the Power BI login credentials whenever a user attempts to access resources that require authentication.
Users sign in to the Power BI service using the email address used to establish their Power BI account; Power BI
uses that login email as the effective username, which is passed to resources whenever a user attempts to connect
to data. The effective username is then mapped to a User Principal Name (UPN and resolved to the associated
Windows domain account, against which authentication is applied.
For organizations that used work emails for Power BI login (such as [email protected]), the effective username
to UPN mapping is straightforward. For organizations that did not use work emails for Power BI login (such as
[email protected]), mapping between AAD and on-premises credentials will require directory
synchronization to work properly.
Platform security for Power BI also includes multi-tenant environment security, networking security, and the ability
to add additional AAD -based security measures.