The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
I am trying to implement the `app owns data` embedded flow for power Bi. I have been succesfull in creating a report, publishing it and displaying it on a webpage with the embed url, token and stuff... that is not the problem.
Now I am trying to setup the reporting so we have 1 (or 1 per tenant) report with each of them containing their own data. Let me give you some context:
We have an SQL database per tenant (they can also host the DB themselfs), all the databases have the same schema and have the same reports. We need a convenient way (with the REST API's or minimal effort) to add a new Tenant to our application.
How do I achieve this with 1 embedded licensed workspace? This is a requirement because we don't have global admin in azure thus we cannot create new Tenants for the application when needed (like microsoft recommends).
This I have tried:
What doesn't work:
What might work:
I have tried different things all day but did not have any success with the multitenancy. If anyone has more insight to this, please help!
Hi @GilbertQ ,
Thank you for your quick response! Now I am wondering how I would be able to combine multiple databases into 1 semantic model? I would also like it to be auto refreshed. We are aiming at about 40 tenants with quite a lot of data, so I don't really know how big 1 semantic model can get. You got any insights to this?
EDIT
Also we should be able to programatically add the new data to the model, is this possible? Adding a datasource with a connectionstring, doing the transformations, updating the semantic model and publishing all via the rest api?
Kind regards
Depending on how you model your data you could have a lot of rows in your semantic model (dataset) that will not consume a significant amount of memory.
I think you could find a way to use a control table which has got all the data sources. You then use this control table to loop through the databases to get the data into your semantic model.
If I was architecting this and the data size wasn't too big, I would create a single semantic model with all the customer's data in a single model. I would then use row level security and when the customer logged in using Row Level
security, there would only see the data that they have got access to. That way you only have to manage a single report and a single semantic model.
User | Count |
---|---|
43 | |
15 | |
12 | |
11 | |
8 |
User | Count |
---|---|
51 | |
31 | |
20 | |
18 | |
15 |