Advanced Power BI Embedded Development topics Data BISummit
Advanced Power BI Embedded Development topics #Data. BISummit
Agenda Part 1 - Advanced Product topics: • The Power BI Embedded Journey • New Java. Script API capabilities • Visual Embedding • Bookmarks API • Mobile • Building a multi-tenancy solution • Managing Power BI Embedded Azure resources Part 2 - Hands-on workshop #Data. BISummit
Power BI Embedded Journey Jul. 2016 Jun. 2017 Oct. 2017 Power BI Embedded based on Workspace Collections PBI Premium. Converged API surface PBI Embedded Azure “A” SKUs Data connectivity PBI API expansion User interactions Embed capability Azure SQL Database Azure SQL Data Warehouse Customize PBI Embedded Cloud elasticity Import Get reports Get dashboard tiles Embed a specific report Load a default report page Enable/ disable the filter pane Push data Q&A questioned event Set visual location in report Set visual size Monitoring Dataset management APIs Set data source connections Refresh dataset Add/delete workspaces Page changed event Set local language Edit reports Scale up/down (ARM) Gateway management APIs Clone report and dashboard Rebind report Add/delete workspace users Page changed event Report rendered event Customize visual menus Pause resume (ARM) Export PBIX files Update report Datasource management APIs Clone tile Data selection events Set visual filters Set Q&A question Capacity management API Get dashboards Page navigation Print & reload events Filter reports Power. Shell Seamless embedding Responsive visualizations Customized menus and only expose the right visuals Self-service #Data. BISummit
New Java. Script API capabilities #Data. BISummit
Visual embedding + custom layout • Scenario: ISV wants to embed visuals in his app, and have the ability to optimize size and location. • Enabled capabilities: - Show/ hide specific visuals in a page. - Set their size and location in real-time. - Update visibility and sizes during session. - Visuals level API - Customize layout for reports #Data. BISummit
Bookmarks API • Scenario: ISV wants to use Bookmarks on his embedded reports. • Enabled capabilities: - Get bookmarks list - Apply bookmarks- on load, during session - Show/ hide bookmark/Nav panes - ‘Bookmark applied’ event - Capture state as Bookmark (Personalization) #Data. BISummit
Mobile support- V 1 • Scenario: ISV wants to embed reports on his mobile app, and give his users a better experience when engaging with reports. • Enabled capabilities: - Embed report pages in mobile layout. - Support ‘Swipe’ events #Data. BISummit
Building a Multi-Tenant solution for ISVs #Data. BISummit
Develop Master User App Workspace Analytics package: • Reports • Dashboards • Data sets Pre-Prod DB #Data. BISummit
Go to Production- option 1 Master User Azure Capacity Customer 1 WS Pre-Prod WS Customer N WS Automate Customer 1 Pre. Data source Prod DB Customer N Data source #Data. BISummit
ALM APIs #Data. BISummit
Go to Production- option 2 Master User Azure Capacity Production WS Pre-Prod WS Automate RLS filter Customer 1 Customer 2 Customer N Customers Pre. DWH Prod DB #Data. BISummit
Report + Token Defines Roles Asserts Role Membership Roles define predicates Asserts Identity Ex. 1 Role: Company Predicate: [Company] = “Fabrikam” roles: “Fabrikam” Ex. 2 Role: Company roles: “Company” Predicate: [Company] = USERNAME() username: “Fabrikam” = Query + Predicate Query executes with correct scope Select * FROM [Sales] WHERE [Company] = “Fabrikam” SELECT * FROM [Sales] WHERE [Company] = “Fabrikam” #Data. BISummit
1. Go to ‘Manage Roles’ 2. Create a new ‘Role’ and define the rule #Data. BISummit
Dynamic RLS- filtering by users Generate. Token { "access. Level": "View", "identities": [ { "username": "Effective. Identity", "roles": [ "Role 1", "Role 2" ], "datasets": [ "fe 0 a 1 a…. bdc" ] ] } } #Data. BISummit
Dynamic RLS- Matrix of options SQL/ External Import mode DQ/ Live connection As Azure As On-prem • • Roles and rules are defined in PBIX file (through Desktop tool) User name passed in ‘username’ property All data resides inside the model. Data gets updated every refresh (as much as every 30 minutes) • Roles and rules are defined in PBIX file User name passed in ‘username’ property All data comes into Power BI first • • • Roles defined in AS, using ‘Custom. Data’ function to filter. User name passed in ‘Custom. Data’ property Data is filtered in AS • • Roles defined in AS Master user needs to be GW Admin Map user name to SSAS user names or ‘Custom. Data’ Data is filtered in AS #Data. BISummit
Managing Power BI Embedded Azure resources #Data. BISummit
Power BI Embedded Name Virtual Cores Memory Frontend/ Backend cores Peak Renders per hour Price th th th 1. Backend and frontend cores are shared #Data. BISummit 2. Backend cores are shared
• Scenario: ISV can monitor his capacity load and take actions upon usage change. • Enabled capabilities: - Alerts - Metrics: - Memory Consumption- New - Memory Thrashing- New - QPU utilization- New #Data. BISummit
• Additional Metrics • Azure Diagnostics • Multi- geo support • Visual dynamic configuration • Themes API • App Token authentication • New Developer portal & Setup experience #Data. BISummit
Hands-On Workshop- Embed Power BI from scratch #Data. BISummit
Thank you! #Data. BISummit
- Slides: 22