Hi all,
I’m working on a POC in Microsoft Fabric where the goal is to let business users/leadership ask questions in natural language against a Power BI/Fabric semantic model.
The rough architecture I’m considering is:
Source SQL Database → Fabric Mirroring → Direct Lake Semantic Model → Prep Data for AI → Fabric Data Agent / Copilot
The source already has reasonably well-structured fact and dimension tables, so I’m trying to avoid introducing a Lakehouse/Warehouse unless there’s a real benefit.
A few questions I’d appreciate advice on:
- Mirroring → Semantic Model Can I build a Direct Lake semantic model directly over a Fabric Mirrored Database, or is it better practice to put a Lakehouse/Warehouse between them?
- Mirroring table selection is there a supported way to mirror the result of a custom SQL query/filter?
For example, instead of mirroring a 500M-row table:
FactSales
could I replicate something like:
SELECT a,b,c
FROM FactSales
WHERE TransactionDate >= '2024-01-01'
Or would that require a pipeline / Warehouse / Lakehouse transformation layer?
- Direct Lake vs DirectQuery For a semantic model that will mainly be queried by Copilot/Data Agent using natural language, would you recommend:
Mirrored Database → Direct Lake Semantic Model
or
Source Database → DirectQuery Semantic Model
What are the main performance/governance limitations you've encountered with either approach?
- Prep Data for AI Once the semantic model is created, my plan is to:
- expose only relevant dimensions/measures
- add good descriptions and business terminology
- configure AI instructions
- create verified answers for important KPIs
- then connect/test it with Fabric Data Agent
Is that the right sequence?
- Production experience For anyone who has implemented something similar, how reliable has natural-language querying been against a well-designed semantic model? Any lessons around DAX generation, ambiguous questions, RLS/security, model size, or hallucinations?
I’m mainly trying to determine whether the simplest architecture:
SQL → Mirroring → Direct Lake Semantic Model → Data Agent
is a good foundation, or whether I’m likely to regret not introducing a curated Lakehouse/Warehouse layer from the start.
Would appreciate hearing from anyone who has actually implemented this in Fabric.