Forum Discussion
How Report server store and run the Power BI reports?
- 5 years ago
When you save pbix report (import mode) to on-prem Power BI Report Server, then whole .pbix binnary content is saved directly to CatalogItemExtendedContent table on MSSQL Server as CatalogItem, and also is content of your .pbix report split to DataModel (including data) and ReportDefinition part and both is also saved to this table.
When user open this report:
-PBI Server check if DataModel is already loaded, if not, PBI Server load DataModel (including data) (from CatalogItemExtendedContent table) in to SSAS internal in-memory instance.
-PBI Server load ReportDefinition (from CatalogItemExtendedContent table) and send them to client
-After client open report, DAX queries of visuals are redirected to internal SSAS instance.
In Direct Query mode it is almost same, only change, DataModel which is same way loaded to SSAS, not contain data, but only DataModel alone. But this DataModel must be also load from MSSQL DB to SSAS instance. And clients sent DAX queries to SSAS same way, but SSAS instance translate DAX queries to queries to source. If you want true direct query to source (without SSAS model) use paginated report.
In case of Live connection is different, there no DataModel, there is only ReportDefiniton. It is loaded from MSSQL DB to client. And after, client DAX queries are redirected to separated SSAS instance.
I think report information stored Catalog table with the unique key is ItemID.
The report content information stored in "[CatalogItemExtendedContent]" can be joined using ItemId
The Connection information of data sources used in PBI Reports stored in "[dbo].[DataModelDataSource]" table and can be joined using "ItemID"
There are stored procedures available in the Report Server database which executes whenever you add/remove/update any subscription or user information of the database and report addition that can be explored.