THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

SQLBI - Marco Russo

Please visit the same blog at - comments are now disabled here but you can comment on the new blog (all blog posts available here are available there, too).
You can follow me on Twitter: @marcorus

A warm welcome to Power BI Embedded #powerbi

I wrote this blog post with Alberto Ferrari.

A few days ago, during the Build conference, Microsoft announced the availability, although still in preview, of Power BI Embedded. In a few words, Power BI Embedded lets you embed Power BI reports in your application, taking advantage of the tools in Power BI to enrich the analytical power of your application. Users do not have to authenticate with the Power BI service. In fact, they do not even need a Power BI account. Your application performs the necessary steps to authenticate a user and then, it uses App Tokens to request for report rendering. App Tokens are generated by the Power BI service when your application requests them, providing the necessary keys associated with your Azure subscription.

Power BI embedded is priced using renders. Currently, the price is 2.50 USD per 1,000 renders, and the first 1,000 renders in a month are free. A render is the production of a visual in a report, so a single report requires one or more renders (a dense report will be more expensive).

The first step to use Power BI Embedded is to activate the service in Azure, by means of creating a Power BI Workspace Collection. A workspace collection, as its name implies, is a set of workspaces. A workspace can contain datasets, reports and dashboards, same as it is happening today with the Power BI workspaces you work with when you are connected to the Power BI service.

You can add items to a Power BI Embedded workspace by uploading a PBIX file generated with Power BI Desktop. Connection strings, data model, measures and calculated columns, visual interactions and all other functionalities of Power BI are uploaded along with the model and available for your reports. This is, at least, the experience during the preview. As soon as the product reaches general availability, the development experience might be different and, as of today, there are no information about how it will work when released (hopefully you will be able to automate the creation of the model and its data refresh). Nevertheless, in this early phase, the option of using Power BI Desktop for development is awesome, as it leverages a well-established technology to author the reports, although it means that – as of today – you cannot add a dashboard to a workspace collection, because Power BI Desktop does not have a dashboard authoring feature, it stops with reports. Another limitation that exists during the preview is that you cannot refresh data, unless you upload a new version of the PBIX file. If you need to work with live data, today the only option is to leverage DirectQuery connections, along with all the limitations that come from that.

Once the workspace collection is in place, your application needs to connect to the service and generate an App Token by providing the needed key (which you have to store in the application itself). Once the application has an App Token, it can interact with the user the way it needs and, when it is time to produce a dashboard, it provides the App Token to the service again requesting the rendering of one or more reports. Power BI takes care of handling the report rendering and visual interactions.

In order for the entire reporting system to work, the Power BI service needs to be able to connect to the data source. This can be very easy, if the data source is already in the cloud, or it requires some additional refreshing steps if the data source is on premises and not connected to the service. In such a case, you have to publish to the Power BI cloud service an updated version of the PBIX file using the Power BI Embedded API.

So far, so good, it looks like Microsoft created yet another library to show dashboards inside an app. Why do we believe this is huge, not just yet another reporting app?

  • It uses the very same tools your users are probably using in Power BI to gather insights.
  • It does not have a starting price: you pay for what you use. The more customers are using your application, the more you pay for. By using a similar approach (pay per use) you can limit the initial investment to build a real analytical system in your application
  • It does not provide you a simple reporting tool. It provides a modeling tool where you build a data model through a Power BI Desktop file, along with measures, ETL steps with Power Query, calculated columns and tables. Thus, in order to provide analytics to your application, you do not need to focus on how to build a given report. Instead, you will focus on how to build an analytical model on top of which, later, you will build reports.

This latter change is, in our opinion, the most important of all. A simple shift in the way you think at reporting inside an application might open a whole bunch of new features and help democratizing Business Intelligence. For example, it is easy to think at standard reporting provided inside the application and, for advanced users that require more power, ISV can provide Power BI Desktop files that can be customized and later deployed on Power BI to perform custom analytics.

It is important to note that this preview is not a complete solution for any ISV. Today there are no APIs to programmatically create a PBIX file. This results in strong limitations for automating the creation of a custom data model depending on parameters defined by the application created by the ISV. An API to create a PBIX file or to manipulate a data model published on the server would be an important advancement to create a fully functional ecosystem for the ISVs. We hope this is only the first step in that direction.

Published Thursday, April 7, 2016 1:12 AM by Marco Russo (SQLBI)
Filed under:



David Eldersveld said:

A quick note on pricing per render. The FAQ on the pricing page located at the following link defines "render" differently. It is by visual and not by report.

"What is a render and how is it billed?

A render is a visual element that is displayed to an end user resulting in a query to the service. For example, if a user views a report containing 4 visuals, it would result in 4 renders. If the user refreshes the report and more queries are sent to the service, it would result in 4 more renders."

April 6, 2016 6:41 PM

Marco Russo (SQLBI) said:

David, thanks for the note - I fixed the post clarifying that. Thanks!

April 6, 2016 6:59 PM

Rui Romano said:

Hi Marco, great overview thanks!

One question, did you try this with a reporting connecting to a SSAS database with gateway?


April 7, 2016 7:50 AM

Jono Luk (@jonoatwork) said:

Hi Rui, Power BI Embedded is currently only available against cloud sources with DQ.

April 7, 2016 9:20 PM

Jean-Pierre Riehl (@djeepy1) said:

Hi Marco (and Alberto),

I totally agree your thoughts about Power BI Embedded.

It is a good shift to reduce the traditional gap between App developers and BI developers

April 10, 2016 2:43 AM

Marco Russo (SQLBI) said:

@jono: thanks to the answer for Rui

@Jean-Pierre: thanks for the feedback

April 11, 2016 6:35 PM

Pradeesh Mathew said:

I totally agree.. and waiting to see the ability to manipulate the pbix file and the models to give the flexibility to create custom reports by the end user on the fly which provides the ultimate capabilities in the hands of business users :)

April 12, 2016 7:16 AM

Tempest said:

I read this with great interest, one question, and probably one that shows my low level of understanding...!

As this currently only works with Direct Query does this mean that you cannot create a report that is showing data updating in real time from an Azure Stream Analytics data source?


April 12, 2016 11:40 AM

Marco Russo (SQLBI) said:

Yes real-time updates are not supported yet

April 12, 2016 11:50 AM

El Mehdi ZAIMI said:

Thanks Marco for this interesting post...

April 13, 2016 5:03 AM

Pradeesh Mathew said:

Any updates on the ability to create custom reports by end user  ?

April 25, 2016 7:43 AM

Marco Russo (SQLBI) said:

End users can create custom reports using Power BI, I don't think Microsoft will integrate such a feature soon (after all, users can already do that in Power BI) and I never heard this request before.

April 25, 2016 7:58 AM

pradeesh Mathew said:

Looking to see the same functionality currently available from while creating a report using the dataset ( drag and drop the columns). Its for the end  user to visualize the data by him/her self and possibly save as pbix file back to embedded service ( this functionality is already there in the sample how to publish to Embedded workspace)

April 29, 2016 5:23 PM

Marco Russo (SQLBI) said:

I suggest you to provide feedback to Microsoft in - otherwise your suggestion will not reach MS

May 15, 2016 3:43 PM

Andrew Sadler said:

Hi Marco,

Any update on whether embedded supports or will support data refresh for cached / imported data models?



July 26, 2016 8:52 AM

Ronald said:

We are looking at the possibilities to integrate power bi embedded in a cloud Application. We don't know how many sessions will be used by our clients so we should make some assumptions. In the end, we need to charge the costs for each client that is using power bi. We can charge the sessions the client uses if we can measure this or by an average usage so a fixed price. We have some questions about the power bi embedded service and pricing.

- How can we monitor how many sessions are used for the month? Can we see this realtime via azure?

- We want to charge the usage directly to the clients that are using power bi, how can we separate the clients? Is it possible to create multiple workspaces and reports per client to separate usage by client. Do we also need to create a report for each client/workspace? IT would be nice to create generic report that can be used by all clients.

- is it only possible to embed power bi reports or also dashboards?

- power bi is charged by session. When a user opens a dashboard (if possible) and he clicks on a tile, he jumps to the underlying report. Is this one session or two session?

Thanks by making things clear.

July 27, 2016 3:58 AM

Marco Russo (SQLBI) said:

@Andrew: I think that using direct query / live connections is the primary goal now - I haven't heard about data refresh so far.

@Ronald: for licensing/pricing/monitoring, I suggest you to ask Microsoft. For the technical part, only reports are supported, not dashboards. What MS announced after GA is that they will change the pricing in September, and they will be based on sessions and not on renderings (see more details at

July 27, 2016 4:02 AM

Ronald said:

Thanks, I will do that.

July 27, 2016 10:21 AM said:

Tip! Easily use Microsoft PowerBi in the cloud and/or embed your own reports into your websites and (business) applications by using a simple copy/past piece of javascript. Visit

September 8, 2016 4:08 PM

Sankalp said:

Can powerbi embedded connect to SSAS tabular on premise via Direct query?

September 14, 2016 3:39 AM
New Comments to this post are disabled

About Marco Russo (SQLBI)

Marco Russo is a consultant, writer and trainer specialized in Business Intelligence with Microsoft technologies. He runs the SQLBI.COM website, which is dedicated to distribute resources useful for BI developers, like Integration Services components, Analysis Services models, tools, technical information and so on. Marco is certified as MCT, MCDBA, MCSD.NET, MCSA, MCSE+I.

This Blog



Privacy Statement