Semantic Link Labs: The Data Detective’s Toolkit
Description
Every data detective needs the right toolkit—and Semantic Link Labs delivers. In this demo-heavy session, you’ll see it link Power BI datasets with Python notebooks for deeper diagnostics. Learn to trace relationships, uncover hidden dependencies, validate measures, and resolve issues that impact report quality, performance, and reliability. Get patterns for monitoring, validating, and correcting.
Key Takeaways
- Standing on the Shoulders of Giants
- Why this matters and what Semantic Link Labs enables
- ▪ Best practices drift over time
- Use this loop for every mystery you investigate.
- Lakehouse Objects
- Best Practice Analyzer
- No programmatic inventory — structure is trapped in the UI
My Notes
Action Items
- [ ]
Resources & Links
Slides
Semantic Link Labs:
The Data Detective’s Toolkit
Jason Romans
Jason
Romans
Cloud Data & Integration Developer
The DAX Shepherd
Nashville, TN, USA
Began Career as a SQL Server DBA
Transitioned to Microsoft BI Stack
@sql_jar
jason-r-sql-jar
Data Engineering to Data Modeling
https://thedaxshepherd.com/
DataTune Nashville
DOWNLOAD THIS PRESENTATION
All slides, resources, and demo files available:
The DAX Shepherd
www.thedaxshepherd.com/presentations
[Screenshot: Blog homepage
showing 'Presentations' navigation]
Standing on the Shoulders of Giants
This Photo
CC BY-ND
This Photo by Unknown Author is licensed under CC BY-ND
Grateful for the people who share their knowledge, encourage us,
answer questions, and help the rest of us learn faster.
The Case for Semantic Link Labs
Why this matters and what Semantic Link Labs enables
OPEN THE CASE
CASE DEMOS
DETECTIVE AGENCY
CASE CLOSED
YOU ARE HERE
Sound Familiar?
"It was fine on Friday"
Why BI Teams Need Detectives
Too often, BI teams investigate only after something breaks.
▪ Model size creeps up
▪ Best practices drift over time
▪ Small changes leave a wide trail
▪ Performance issues appear before cause
Symptoms aren’t evidence — they’re just the first clue.
Monk Moment: "Something’s off"
That instinct is valuable when paired with evidence.
Use the detective habit:
▪ Notice the detail that doesn’t fit
▪ Follow the trail of dependencies
▪ Prove it with evidence
▪ Turn investigation into prevention
What You’ll Learn
By the end, you’ll be able to:
▪ Investigate model performance with evidence
▪ Trace dependencies and understand change impact
▪ Detect breakage and hygiene issues proactively
▪ Turn investigations into a reusable playbook
The Detective Method
Use this loop for every mystery you investigate.
Investigation loop:
▪ Symptom (what users feel)
▪ Evidence (what we can prove)
▪ Suspects (ranked likely causes)
▪ Fix (targeted action)
▪ Prevention (make it repeatable)
Detective’s Toolkit
SL
SLL
FN
Semantic Link
Semantic Link Labs
Fabric Notebook
Microsoft first-party library
Runs inside Fabric notebooks
Core: list tables, run DAX,
read metadata
Open source
Extends Semantic Link
BPA · VertiPaq · report
scanning
The runtime environment
Where detective
work happens
Python + Spark, pre-installed
libraries
Semantic Link Labs
Microsoft Fabric Semantic Link
List Tables
List
Workspaces
Semantic Link Labs
Recover Deleted
Lakehouse Objects
Best Practice Analyzer
List Models
Migrate to Direct Lake
List Reports
View Broken Reports
Manage Reports
Rebind Reports
Semantic Link + Semantic Link Labs
What this unlocks:
▪
▪
▪
▪
▪
Inspect Fabric through code, not just the UI
Investigate assets and metadata systematically
Trace relationships and understand downstream impact
Catch problems earlier and reduce guesswork
Turn one-off investigations into repeatable practice
Semantic Link
Microsoft’s first-party Fabric Python library
▪ Runs only inside the Fabric runtime
▪ Foundation layer: import sempy.fabric as fabric
▪ Preinstalled in the default runtime
▪
Update with %pip install -U semantic-link
▪ Extended by Semantic Link Labs
Semantic Link Labs
▪ Michael Kovalsky
▪
aka “Kovalsky’s Laboratory”
▪ “Expansion Pack” — Kurt Buhler
▪ Built on Semantic Link
▪
import sempy.fabric as fabric
▪ Open source on GitHub
▪
Active Development
Installing in Microsoft Fabric
Update packages in a notebook cell
Semantic Link
Preinstalled in the Fabric runtime
%pip install -U semantic-link
Semantic Link Labs
Install separately when needed
%pip install –U semantic-link-labs
Follow the Evidence
Real demos that uncover what is happening in Fabric
OPEN THE CASE
CASE DEMOS
DETECTIVE AGENCY
CASE CLOSED
YOU ARE HERE
Case File: The Unidentified Model
Arrive at the scene. Catalog everything before you touch it.
VICTIM: A semantic model in a new Fabric workspace
SYMPTOMS:
• No programmatic inventory — structure is trapped in the UI
• Relationships exist in the model but not in the data — or vice versa
Case File: The Relationship Web
He sees connections others miss. So does find_relationships.
VICTIM: A semantic model with undetected relationship gaps
SYMPTOMS:
• Power BI shows only the relationships it was told about
• Data suggests more connections exist — but nobody modeled them
Case File: Running the Numbers
Your DAX knowledge is trapped in the desktop. Time to set it free.
VICTIM: DAX knowledge locked inside Power BI Desktop
SYMPTOMS:
• Can't query the model programmatically from a pipeline
• DAX results can't feed downstream Python or notebook logic
• No way to automate recurring DAX calculations
DEMO: The Detective’s Toolkit (Cases 1–3)
DEMO TIME
Let’s go investigating...
Case Board: Investigations 1–3
Cases closed. Evidence on record.
CASE 01
CASE 02
CASE 03
The Unidentified
Model
The Relationship
Web
Running the
Numbers
Case File: Something Doesn't Add Up
Every relationship has two sides. Not every key agrees.
VICTIM: Referential integrity violations hiding in your model
SYMPTOMS:
• Fact table keys that point to dimension values that don't exist
• Blank members appearing in slicers or visuals unexpectedly
• Aggregations silently drop rows with no error
Case File: The Evidence Isn’t Ready Yet
The witness statement exists. Monk knows it. But it’s not in the file.
VICTIM: A Delta table just written to OneLake
SYMPTOMS:
• Table confirmed written in the notebook
• Not visible in the SQL Analytics Endpoint
Case File: The Witness Vanished
The witness was there. Then they weren't.
VICTIM: A Delta table deleted from the Lakehouse
SYMPTOMS:
• Table confirmed visible in SQL Analytics Endpoint
• Then gone — query returns nothing
• No backup process, no pipeline to re-run
DEMO: The Detective’s Toolkit (Cases 4–6)
DEMO TIME
Let’s work the case......
Case Board: Investigations 4-6
Cases closed. Evidence on record.
CASE 04
CASE 05
CASE 06
Something Doesn't
Add Up
The Evidence Isn't
Ready Yet
The Witness Vanished
Case File: The Workspace-Wide Sweep
One detective can only cover so much ground.
VICTIM: An entire Fabric workspace — all semantic models
SYMPTOMS:
• BPA run on one model — what about the rest?
• Governance gaps accumulate silently across the workspace
• No historical trend data for model quality
DEMO: The Inspection (Best Practice Analyzer)
DEMO TIME
There’s only one way to know.........
Case File: The Report That Lied
The report is lying to you. I’m not sure how yet. But I will be.
VICTIM: A Power BI report connected to a semantic model
SYMPTOMS:
• Visuals reference fields that were renamed or removed
• Report-level measures live in the report instead of the semantic model
DEMO: The Report Is Lying (Report Analysis)
DEMO TIME
Let’s see what doesn’t add up............
Case File: The Profile
Start with the model:
Find out who’s taking up space before they become a problem.
VICTIM: The SF Case Files semantic model
SYMPTOMS:
• Memory usage is hidden behind the scenes
• Large tables and high-cardinality columns are hard to spot by eye
• Model bloat slows performance and makes optimization guesswork
DEMO: The Profile (VertiPaq Analyzer)
DEMO TIME
This deserves a closer look...
Build the Detective Agency
Monitoring, automation, and repeatable practices for the long haul
OPEN THE CASE
CASE DEMOS
DETECTIVE AGENCY
CASE CLOSED
YOU ARE HERE
From Detective to Detective Agency
Run Pre/Post
Change
Share &
Build Playbook
Your team runs
it without you
Catch regressions
before users do
Standard
Health Checks
BPA + VertiPaq
- dependencies
Reusable
Notebooks
Ad-Hoc
Investigations
The Precinct Goes Automated
One function call. One dashboard. A repeatable monitoring view.
WHAT THIS DOES:
• Creates a pre-built workspace monitoring dashboard
• Scopes it to the current workspace
• Gives the team a repeatable monitoring starting point
WHY IT MATTERS:
• Moves from ad-hoc investigation to operational visibility
• Makes monitoring easier to share across the team
• Helps confirm issues faster without rebuilding the view manually
PRE-REQUISITE:
• Workspace monitoring must be enabled first
DEMO: The Precinct Goes Automated
(Workspace Monitoring Dashboard)
DEMO TIME
The dashboard will confirm it....
Case Closed
Key takeaways, next steps, and where to start with Semantic Link Labs
OPEN THE CASE
CASE DEMOS
DETECTIVE AGENCY
CASE CLOSED
YOU ARE HERE
Case Closed: Key Takeaways
Evidence First
Map the Blast Radius
Build the Playbook
Turn “something’s off” into
evidence using Semantic
Link Labs
Use dependencies to
understand
change impact before you
make it
Make investigations
repeatable
so you find issues before
users do
More from the Crime Lab
SLL ships ready-to-run notebooks for common Fabric governance tasks
— each one a solved case waiting to open
Best Practice Analyzer
— Run BPA rules across models, export results, and spin up a Direct Lake report
Model Optimization
— Fix column encoding, remove auto date tables, clean up model dependencies
Migrate to Direct Lake
— Convert import-mode semantic models to Direct Lake in one notebook
Workspace Monitoring
— Provision a KQL Eventhouse and real-time dashboard with a single call
Report Rebind
— Retarget reports to a new semantic model across an entire workspace
github.com/microsoft/semantic-link-labs → notebooks/
Next Steps
▪ Run BPA + VertiPaq + dependency scan on one of your own models this week
▪ Create a case notebook template your team can run without you
▪ Schedule run_model_bpa_bulk() — make governance automatic
Resources
Semantic Link
https://learn.microsoft.com/en-us/fabric/data-science/semantic-linkoverview
Semantic Link Labs
github.com/microsoft/semantic-link-labs
Session materials (slides + notebooks)
github.com/thedaxshepherd/Presentations
Sound off.
The mic is all yours.
Influence the product roadmap.
Join the Fabric User Panel
Join the SQL User Panel
Share your feedback directly with our
Fabric product group and researchers.
Influence our SQL roadmap and ensure
it meets your real-life needs
https://aka.ms/JoinFabricUserPanel
https://aka.ms/JoinSQLUserPanel
How was
the session?
Complete Session Surveys in
for your chance to WIN
PRIZES!
THANK YOU
Contact Information
The Dax Shepherd
Jason Romans
thedaxshepherd@gmail.com
linkedin.com/in/jason-r-sql-jar/
www.thedaxshepherd.com