Direct Lake
Direct Lake is a storage mode for Power BI semantic models in Microsoft Fabric. It loads Delta tables stored in OneLake directly into memory, where they are queried by the same VertiPaq engine that serves Import-mode models, without first copying the data into the model. It requires a Fabric capacity. Details follow Microsoft Learn documentation revised in June 2026.
Compared with Import and DirectQuery
| Import | DirectQuery | Direct Lake | |
|---|---|---|---|
| Where queries run | VertiPaq, on a copy inside the model | Sent to the source system | VertiPaq, on Delta data loaded from OneLake |
| What a refresh does | Copies the data | Nothing to copy | Updates metadata only — “framing” |
| Refresh time | Grows with data volume | — | Typically seconds |
Framing: what “refresh” means here
A Direct Lake refresh is called framing. It points the model at the latest version of each Delta table’s files instead of copying rows, which is why it takes seconds. The consequence is that freshness depends on two things: when the Delta tables were last written, and when the model was last framed. A pipeline that finishes writing at 06:00 does not change what users see until framing happens after it.
Guardrails and the two variants
Each capacity size has guardrails on the tables a Direct Lake model can use — on an F64, for example, 5,000 Parquet files and 5,000 row groups per table and 1.5 billion rows per table. What happens when a guardrail is exceeded depends on the variant:
- Direct Lake on OneLake fails the refresh, and the model cannot be queried until the Delta tables are optimized back within limits.
- Direct Lake on SQL falls back to DirectQuery if fallback is enabled, so queries still return, more slowly.
The file-count guardrails tie report reliability to table maintenance: a table fragmented into many small files by frequent writes can cross a limit without any growth in actual data. A separate “max memory” figure is not a guardrail; exceeding it causes paging and slower queries rather than failure.
Security depends on the variant
The two variants read data through different paths, and that changes which access rules apply. Direct Lake on OneLake honors OneLake security roles, and the documentation notes that row-level security defined on the SQL analytics endpoint is not applied to it, because it checks OneLake permissions instead. A team that defined row filters only in SQL can therefore see them bypassed in a Direct Lake on OneLake model. Decide where access rules live before choosing the variant. How this fits Fabric’s architecture is worked through in Microsoft Fabric Architecture: OneLake, Capacity, and the Move from Synapse.
References: Microsoft Learn, Direct Lake overview.
Discover more from Insightful Data Lab
Subscribe to get the latest posts sent to your email.
