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

ImportDirectQueryDirect Lake
Where queries runVertiPaq, on a copy inside the modelSent to the source systemVertiPaq, on Delta data loaded from OneLake
What a refresh doesCopies the dataNothing to copyUpdates metadata only — “framing”
Refresh timeGrows 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.

Similar Posts

Questions, corrections, or additional insights?

This site uses Akismet to reduce spam. Learn how your comment data is processed.