Forum Discussion
Help Me Optimize This Weird API-Based Near Real-Time Power BI Embed Refresh Solution I've Created
- 1 year ago
Hi Mahhin_Shahzad1 ,
It's great to see the progress you've made so far. Partitioning using XMLA appears to be a logical next step, and while I haven't implemented it directly, I've seen several sources indicate it works effectively with surrogate keys for non-time-based incremental refresh scenarios.You may find this Microsoft Learn article useful:
Incremental refresh and XMLA endpoint in Power BIBased on my research, workspace isolation and embedding through the JS API can support client-specific branding and access control, which could complement your XMLA approach.
Are you considering managing dataset versions for each client, or will you use a shared dataset with dynamic partitioning rules? This decision may influence your refresh and isolation strategies.
Hi Mahhin_Shahzad1 ,
Thank you for reaching out to Microsoft Fabric community.Thank you for sharing an overview of your current Power BI embedded solution.
Your implementation using dynamic M parameters, full dataset refreshes, and embed token generation effectively supports near real-time updates with row-level security. However, this approach presents challenges such as increased refresh latency, scalability limitations, and potential security risks in a multi-tenant environment.
Refreshing the entire dataset each time a user accesses a report can be inefficient, particularly with large data volumes. I suggest considering incremental refresh strategies; even without a traditional date column, you can leverage a surrogate key like Forecast ID or Version ID to partition data and optimize refresh processes.
To further enhance security and customization, you may want to isolate each client’s data by using separate workspaces or datasets. This approach supports tenant-specific branding and reduces the risk of data exposure in case of refresh failures.
For near real-time requirements, options such as Push Datasets or Hybrid Models (utilizing both DirectQuery and Import modes) can help minimize latency while maintaining model flexibility. If client-specific visual customization is needed, embedding with the Power BI JavaScript API allows for dynamic theming and interactive features, especially in tenant-isolated setups.
Finally, automating the deployment of tenant-specific datasets, parameters, and security roles through Power BI REST APIs or deployment pipelines can further streamline your solution. You are making strong progress, and these steps will support ongoing improvements in performance, security, and scalability.
Here are some useful resources for further exploration:
Incremental refresh for semantic models in Power BI - Power BI | Microsoft Learn
Enhanced refresh with the Power BI REST API - Power BI | Microsoft Learn
Real-time streaming in Power BI - Power BI | Microsoft Learn
Regards,
Sreeteja.
hi Mahhin_Shahzad1 ,
I hope the information provided above assists you in resolving the issue. If you have any additional questions or concerns, please do not hesitate to contact us. We are here to support you and will be happy to help with any further assistance you may need.