Overview#
Fabric BI is centered on Power BI reports and semantic models, with Direct Lake enabling semantic models to read Delta data from OneLake without maintaining an imported copy [S1] [S2] [S3]. The BI layer is where governed lake and warehouse data becomes reusable measures, relationships, reports, apps, and dashboards [S1] [S2].
Core concepts#
A Power BI report is built over a semantic model, and that model defines the analytical layer consumed by visuals and users [S1] [S2]. Semantic models can use Import, DirectQuery, Composite, and Direct Lake patterns depending on freshness, performance, and storage needs [S2] [S3]. Direct Lake loads column data directly from OneLake into the Analysis Services engine on demand, avoiding a scheduled import copy while preserving a high-performance model path [S3].
Capacity size matters because Direct Lake model memory is bounded by SKU, and that memory controls how much column data can remain resident for interactive query workloads [S3] [S4].
How it works and best practices#
Choose the storage mode from the data's location, freshness need, and model size. Import is appropriate when a refreshed copy is acceptable, DirectQuery when queries must remain in the source engine, Composite when tables need different modes, and Direct Lake when OneLake Delta data should be queried without an import refresh [S2] [S3].
Model design still matters. Relationships, measures, column choices, and security settings determine how much data must be loaded and how much work the engine performs for each report query [S2] [S3]. Use certified semantic models as governed consumption points rather than letting every report author rebuild metrics independently [S1] [S2].
Implementation example#
A governed BI model should centralize measures in a shared semantic model and let multiple reports consume that model rather than each report redefining revenue, margin, and security rules independently [S1] [S2]. Direct Lake is a strong fit when curated Delta data in OneLake is the analytical source and the model can operate within the capacity's memory behavior [S3] [S4].
-- Illustrative shared semantic model measures.
Total Sales = SUM ( Sales[SalesAmount] )
Gross Margin =
SUM ( Sales[SalesAmount] ) - SUM ( Sales[CostAmount] )
Gross Margin % =
DIVIDE ( [Gross Margin], [Total Sales] )
Inference: these measures are examples of model-owned business logic. The sourced design rule is to use semantic models as the reusable layer consumed by Power BI reports, with Direct Lake reading OneLake Delta data when that storage mode is chosen [S1] [S2] [S3].
semantic_model_release:
storage_mode: direct_lake
source_tables:
- gold_sales
- dim_customer
- dim_product
validation:
- cold_query_test
- warm_query_test
- capacity_memory_review
- certified_model_review
The validation checklist follows from Direct Lake's column-loading behavior and the capacity/memory characteristics of large semantic models [S3] [S4].
What goes wrong#
Treating Direct Lake as a universal replacement for model design is a mistake. Direct Lake removes the import copy, but it still depends on table layout, capacity memory, and semantic model structure [S3] [S4]. Publishing many similar models can also fragment metric governance and make certified business logic harder to find [S1] [S2].
Internals#
Architecture & design#
The semantic model sits between storage and reports, translating relationships, measures, roles, and storage-mode decisions into query behavior [S2]. Direct Lake connects that layer to OneLake Delta data through the Analysis Services engine rather than through a traditional import refresh [S3].
How it works internally#
Direct Lake loads needed columns lazily from OneLake, including columns required by relationships and measures [S3]. Model memory residency is constrained by the capacity SKU, so cold and warm query behavior depends partly on how much of the model's columns can stay resident [S3] [S4].
Performance characteristics#
Performance depends on semantic model shape, table layout in OneLake, V-Order/file sizing where applicable, and the capacity memory ceiling for Direct Lake [S3] [S4] [S5]. If columns cannot remain resident, Direct Lake queries can require additional reads from OneLake [S3] [S4].
Worked example#
A retail BI team can curate gold Delta tables in a lakehouse, build a Direct Lake semantic model over those tables, certify the model, and let multiple reports reuse the same measures and security rules [S1] [S2] [S3]. If the model exceeds the capacity memory envelope, the team should reduce column footprint, improve table layout, or move to a larger SKU rather than assuming report tuning alone will fix cold reads [S3] [S4].