Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
Looking for governance across semantic models and reports? Need a programmatic solution to deploy Direct Lake (and other) semantic models and reports across workspaces and Lakehouses? Semantic Link Labs is the answer. Thanks to Michael Kovalsky and Markus Cozowicz for their efforts in creating this incredible library! In this article, we will review the Power BI architecture and output of a Fabric notebook that leverages Semantic Link Labs to programmatically deploy semantic models and reports across workspaces and schema-enabled Lakehouses, providing central governance.
Steps:
Partitioning a semantic model and reports into smaller source tables, for example by store (Europe, Asia, North America) has many benefits including:
In the example below, we have an architecture in which each store has its own schema with shared dimensions (shortcuts within Gold Lakehouse). As best practice semantic models and reports are in separate workspaces and reports are distributed via apps:
Within the Data Engineering – Gold workspace we have a schema-enabled Lakehouse with schemas for each store:
The Fact tables in each schema are directly populated via ETL processes (in this case a simple change in where clause) while dimensions are shared across schemas via shortcuts from the “master” dbo schema.
Each Data Hub workspace has their own Reporting Lakehouse with schema shortcuts to their respective schema in the Data Engineering – Gold workspace. Example for Europe shown below:
Now, the goal is to develop three Direct Lake semantic models and reports that point to unique workspaces, Lakehouses and schemas. Instead of having to do this manually each time a change is made to the semantic model or report (which makes for a governance nightmare and leaves a lot of room for error), we will leverage Semantic Link Labs in Fabric notebooks to automate the deployment.
Let’s treat the Europe store as the starting point and source of truth for our development. We have a working semantic model and report for Europe and would like to deploy to Asia and North America.
The notebook below will programmatically deploy the Europe semantic model and report to Asia and North America across workspaces with different Lakehouses and lineage.
As seen below, we now have two new semantic models and reports for Asia and North America with updated workspaces and Lakehouses:
Viewing the reports, everything works as expected:
However, the above items should be able to be done programmatically via Semantic Link Labs and this is next on my to-do list 🙂
1. Adding security role members on the new semantic models:
2. Updating Cloud connection settings to fixed identity (for RLS purposes):
3. Updating permissions:
4. Updating app:
Reporting Hub – Asia App from TestUser1 perspective with dynamic Product RLS implemented:
Coming from a Power BI development background, I’m by no means a Python expert but Semantic Link makes data science and automation accessible to everyone! The extent of capabilities within Semantic Link Labs is truly impressive. Tasks that would have taken hours if not days including testing were done within minutes using minimal scalable code. Give it a try and let me know your thoughts!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.