Power BI leverages a very powerful method of sharing named as Power BI Embedded. This method of sharing is important because of mainly two specific features of it. With this method of sharing you can share Power BI content in your own custom application, and you can share it with your custom application users, regardless if they do or don’t have Power BI accounts. In this post, you will learn everything about Power BI Embedded, including but not limited to scenarios of using it, and how to implement it.
When think of Power BI Embedded?
You usually need to think of this method when you have main scenarios like these:
- You want to share Power BI report with users who do not have Power BI accounts
- You want to embed Power BI report inside your custom application
Examples of these scenarios is an ISV company, which has customers from all other companies, their Office 365 tenant might be entirely different for every single company. If the ISV company wants to share Power BI report to all clients, then it means it has to first create Power BI accounts for each client in their tenant, and then publish the Power BI report separately to each tenant. This process involves lots of extra work.
Power BI Embedded is a big help for our ISV company mentioned above. ISV company simply can embed Power BI reports in a custom ASP.NET application, and then create users and passwords as part of the application. The username and password of the application are not Power BI users of course. Everyone who has access to that page would be able to consume the report.
What are things you need to know Before using Embedded?
There are a few things you need to know before choosing Power BI Embedded as your method of sharing:
- Licencing of Power BI Embedded is Different, Page renders
- Power BI Embedded doesn’t have all features of Power BI services (such as subscription, alerts, etc.).
- You do need a web developer to take care of embedding and any further changes.
Power BI Licencing in normal form is per user, Pro user must pay a monthly fee to use Power BI. Power BI Embedded is totally different. Page renders are counted and depend on which bucket of the page render you fall into there is a different licensing plan for it. You will read more about licensing a bit later.
When you use Power BI Embedded, you won’t be using Power BI service. As a result, you will not have features such as Usage Metrics report, Alerts, subscriptions and features like those which are specific to the service. You can obviously implement anything you want, but for those, you need to have a good web developer on your team.
Power BI Embedded is embedding a report into an application, and it needs a web developer to take care of this process. It is not just about the embedding itself, that may be a one-off process. When you embed the report into your application, then all other requests come after that. You would need to manage user and membership for your web application. You may want to have usage analysis of the report, you may want to have different levels of access to each report. Every single extra feature comes as a request for a web developer to implement it. It is obviously possible to implement, but these are all coming at the cost of hiring a web developer.
Myths about Power BI Embedded
Power BI Embedded enhanced significantly recently. There are many myths about this method, that needs clarification:
- Power BI Embedded only works with Live Connection, not with Import Data neither scheduled refresh. This statement is a myth.
- Power BI Embedded does not support all data sources. This statement is a myth.
- You can only embed Power BI report, not dashboard neither Q&A. This statement is a myth.
- Row Level Security is not possible with Power BI Embedded. This statement is a myth.
Many of the above statements were correct at the very beginning phase of the Power BI Embedded. However, with heaps of updates recently and enhancements in this technology recently, you can achieve all items mentioned above with Power BI Embedded. For your peace of mind; there is a team in Power BI only focused on Embedded features, and they are working hard to bring more features to this technology regularly.
What is Power BI Embedded?
After explaining all these about Power BI Embedded now is time to talk about what is the Embedded. Power BI Embedded is embedding entire or part of a report, dashboard, or dataset with Q&A in a custom application. This way of embedding is fully secure because it will leverage authentication keys and tokens. This way of embedding is not like Publish to the web. Publish to the web is not a secure method, however, Power BI Embedded is a fully secure method and customizable.
Licensing of Power BI Embedded
Power BI Embedded is based on page renders. Every time you open a page with Power BI object on it, considered as one page render. If you click on a slicer, then page renders again, if you click on a column chart and it cause other part of the report to slice and dice, then this counts as another page render. There are different buckets of page renders as listed in below section:
|Node Type||Virtual Cores||Memory||Frontend / Backend Cores||Peak Renders per hour||Price|
|A1||1||3 GB RAM||0.5 / 0.5 1||1 – 300||$1.0081/hour|
|A2||2||5 GB RAM||1 / 1 1||301 – 600||$2.0081/hour|
|A3||4||10 GB RAM||2 / 2||601 – 1,200||$4.0242/hour|
|A4||8||25 GB RAM||4 / 4||1,201 – 2,400||$8.0565/hour|
|A5||16||50 GB RAM||8 / 8||2,401 – 4,800||$16.13/hour|
|A6||32||100 GB RAM||16 / 16||4,801 – 9,600||$32.26/hour|
This list is coming from: https://azure.microsoft.com/en-us/pricing/details/power-bi-embedded/
The costing may look high, however, for different scenarios you get different result. for a month of service with Power BI Embedded for about 300 page renders per hour, you need to pay about $700 USD, and 300 page renders should be enough for normal users of about 100 users. if you pay 100 pro users on the other hand, you need to pay $1,000 USD. This is a scenario that Power BI Embedded can be cheaper than Power BI service. However, for every scenario the process needs to be considered separately.
How to Implement Power BI Embedded
This part needs some development talks, If you are not a developer, and don’t want to get into the coding part of the Power BI Embedded, then you can skip rest of this post. If you are a developer and want to learn how to use Power BI Embedded, then keep reading. below blog posts are all about implementing Power BI Embedded and using REST API step by step.
First step is to register your application. What does that mean? Any application which wants to interact with Azure should be registered, and authorized through a process. To register your application there are two ways; one is simpler to start, the other one is simpler to maintain 🙂
Every application which want to interact with Azure environment, should go through an authentication process. This authentication process is passing Client ID (and sometimes Client Secret) to Azure, and getting an authentication code. From this authentication code, and access Token can be fetched. This access token is a property that should be involved in every request sent from your application to Power BI and Azure afterwards. Without this access token your requests will fail.
in this step you will learn about codes and the method to embed the content into your application after registration and authentication of the application.
Power BI REST API is not just for embedding content or getting list of dashboards and reports. It also has many functions to work with data sets, gateways, and data sources. As one of the many exciting features of that; you can easily refresh a data set from an application. you can refresh it as many as times you want. with any frequency you want. You can refresh your data set after ETL run through a console application. or you can have a service application that kick of refresh even every single minute! There is no limitation for your data refresh anymore! Let’s check it out.
New REST API of Power BI is revolutionary. In addition to embedding content in Power BI, ability to refresh data set from API, it also gives you many functions to work with Gateways and Data Sources. With this API, you can set up new data sources, clone data sets, check the credentials of a data source, get list of all data sources under a gateway, and do many other operations. In other words; Data source management can be fully automated with REST API. Continue reading this post if you like to learn more about this.
In this post, I’m going to explain one of the functionalities of REST API which is pushing data to Streaming data set. I’ve previously explained how to do real-time streaming using Azure Streaming Analytics and Power BI. However, this post explains real-time functionality just with the REST API. You won’t need azure services besides it.
Power BI Embedded brings Power BI into your application. Imagine the analytical power of Power BI combined with your custom application. The result would be revolutionary. You can leverage your own users, interact with the embedded object of Power BI from your web application, implement many scenarios such as customized refresh and many other features. This method however, works on a different licensing plan, and you would need a web developer for it. If you are still not sure is Power BI Embedded is the right choice for you or not, please write in below comments, and I’ll be more than happy to guide you through the right way.