
Fabric DirectLake on OneLake: Enterprise Performance Architecture for Sub-Second Dashboards Over 1B+ Rows
Microsoft Fabric DirectLake on OneLake enterprise performance architecture: framing modes, V-Order optimization, fallback patterns, capacity sizing for billion-row datasets.
Microsoft Fabric DirectLake on OneLake enterprise performance architecture: framing modes, V-Order optimization, fallback patterns, capacity sizing for billion-row datasets.

Power BI's three historical storage modes — Import, DirectQuery, and Composite — have each represented a trade-off between query performance and data freshness:
DirectLake, introduced with Fabric and matured significantly through 2025–2026, is the fourth storage mode. It reads Delta tables directly from OneLake on first query, caching the relevant column segments in memory. Subsequent queries against cached segments perform like Import. Queries against uncached segments incur a paging cost but no refresh-equivalent cost.
For enterprise data architects, this shifts the architecture conversation. The semantic model no longer "refreshes"; it caches on demand. The capacity-sizing question changes from "how much memory does my model need at peak" to "how much memory does my working-set need given my query pattern." This guide walks through that architecture for Fortune 500 enterprises with billion-row fact tables.
The May 2026 Fabric release matures three distinct DirectLake framings:
The default DirectLake mode reads Delta tables directly from OneLake. The semantic-model engine maintains a column-segment cache; query execution loads segments on demand and serves from cache thereafter. There is no refresh step.
When the underlying Delta table is updated (a new write to the lakehouse, a streaming append, a periodic batch load), the semantic model "frames" — it picks up the new version of the table. The framing operation is fast (seconds, not minutes) because it does not load data; it only updates the model's pointer to the current Delta version.
This mode is the right choice for the majority of enterprise DirectLake implementations.
The second framing reads through the Fabric SQL endpoint rather than directly from the Delta files. This adds a slight query latency overhead but provides access to features that the direct Delta path does not yet support — primarily complex DAX patterns that the engine has not yet pushed down to OneLake directly.
This mode is the right choice for semantic models that depend on DAX patterns currently in the SQL-endpoint path only. The list of patterns changes with each Fabric release; verify against the current Fabric documentation.
The third framing combines DirectLake with an Import-mode fallback. When the engine encounters a query pattern that DirectLake cannot serve efficiently, it falls back to a small Import dataset that loads at framing time.
This mode is the right choice for transitional architectures where the team is migrating from Import to DirectLake but needs to preserve a subset of legacy patterns during the migration window. The fallback Import dataset should be small (typically aggregation tables or historical dimensions) and the fallback should be eliminated over time.
| Workload pattern | Recommended mode |
|---|---|
| Large fact table (>100M rows), simple star schema, standard DAX | DirectLake (default) |
| Same as above but DAX patterns require SQL-endpoint features | DirectLake on SQL endpoint |
| Mixed star + snowflake + complex measures | DirectLake on SQL endpoint |
| Hybrid: large fact + small aggregation tables for performance | DirectLake with Import fallback |
| Real-time streaming source feeding OneLake | DirectLake (default), framing on schedule |
| Sub-second query requirement, predictable working set | DirectLake (default) with capacity tuning |
V-Order is Microsoft's write-time optimization for Parquet files (which underlie Delta tables in OneLake). The optimization arranges column data within the Parquet file in a way that the Vertipaq engine can read more efficiently. The result is materially faster DirectLake query performance.
V-Order is enabled by default for new Delta tables written by Fabric experiences (Fabric Data Factory, Fabric Spark notebooks, Fabric Warehouse). However:
OPTIMIZE operation with V-Order enabled.For tenants migrating to OneLake from existing Databricks or Synapse environments, the V-Order optimization pass is a non-trivial workload. EPC Group's typical pattern:
A Power BI semantic model in DirectLake mode consumes capacity memory based on the column segments it caches. The math:
The capacity-sizing question becomes: how much of the model's column-segment surface is in the working set at any given time?
For most enterprise workloads, the answer is a small fraction of the maximum:
EPC Group's working-set estimate for a typical enterprise fact-table-backed semantic model is 15–30% of the column-segment surface during active business hours, peaking at 50% during heavy month-end or quarter-end analysis periods.
Translating the working-set estimate to F-SKU sizing:
| Model fact-row count | Working-set memory (typical) | Recommended F-SKU |
|---|---|---|
| 50M rows | 1–3 GB | F4 (8 GB capacity memory) |
| 200M rows | 4–10 GB | F8 (16 GB) |
| 1B rows | 15–30 GB | F32 (64 GB) |
| 5B rows | 50–100 GB | F64 (128 GB) or F128 (256 GB) |
| 20B+ rows | 100+ GB | F128+, often multi-capacity architecture |
These are starting-point estimates. The actual right size depends on query pattern, column count, partition strategy, and concurrency. Capacity sizing should be validated against the Fabric Capacity Metrics app during pilot before broad rollout.
For datasets that exceed the largest single F-SKU's capacity (currently F128 at 256 GB capacity memory), the architectural pattern is multi-capacity:
The multi-capacity architecture adds operational complexity but is the correct path for datasets that exceed single-capacity bounds.
For executive dashboards where sub-second response time matters, the architectural patterns that consistently deliver on DirectLake:
Even on DirectLake, the fastest path for high-traffic executive dashboards is an aggregation table — a pre-summarized version of the fact table at the dashboard's query grain. The aggregation table is much smaller and can be Imported for guaranteed sub-second response.
The DirectLake with Import fallback mode supports this pattern cleanly: the aggregation table is the Import portion; the detail-level fact table is the DirectLake portion. The user-experience layer (the visual) automatically uses the aggregation when the query is at the aggregation grain.
A 1-billion-row fact table partitioned by date and V-Ordered queries the current month with negligible latency. The same table un-partitioned or un-V-Ordered queries the current month several times slower. Partitioning and V-Order are operational decisions that affect every dashboard built on the table.
Columns that are not used in any report should be hidden from the semantic model (isHidden = true in TMDL). Hidden columns are not loaded into the column-segment cache, reducing memory pressure and improving cache hit rates.
DirectLake handles calculated columns differently from Import mode. Where possible, push calculated-column logic into the source Delta table (compute the column once during the data engineering step rather than at semantic-model load). This reduces DirectLake framing time and improves query performance.
Star schema (fact table joined directly to dimension tables) outperforms snowflake schema on DirectLake the same way it does on Import. The Vertipaq engine is optimized for star schema. Snowflake patterns force the engine into more complex join paths.
For Fortune 500 enterprises designing DirectLake-on-OneLake architecture, the EPC Group implementation pattern:
Weeks 1–4: Architecture and assessment.
Weeks 5–8: Foundation.
Weeks 9–16: Migration.
Weeks 17–20: Capacity tuning and optimization.
Weeks 21–24: Stabilization and handover.
The 24-week timeline is for a Fortune 500 tenant with substantial Power BI estate and billion-row scale. Smaller tenants run shorter.
Across the DirectLake implementations EPC Group has guided, the recurring patterns:
Skipping the V-Order optimization on imported Delta tables. Tables migrated from Databricks or Synapse without a V-Order pass perform substantially worse than native Fabric-written tables. Optimize early.
Under-sizing the capacity. F-SKU sizing based on the old Premium P-SKU is often too small. Use the working-set estimate, then tune from production data.
Choosing DirectLake on SQL endpoint as the default. Many architects start with the SQL-endpoint mode "for safety." This is unnecessary for most workloads and adds a small but real query latency. Default to DirectLake direct; use SQL endpoint only where required.
Treating DirectLake as a refresh-elimination strategy without addressing the underlying data engineering pipeline. DirectLake removes the dataset-refresh step but the upstream Delta table still needs to be populated by a pipeline. The pipeline becomes the new bottleneck if not designed for the freshness requirement.
Forgetting about RLS and OLS performance. Row-Level Security and Object-Level Security continue to apply in DirectLake. Complex RLS expressions can become the dominant query cost. Test with representative RLS contexts during pilot.
Mixing capacity sizes inconsistently. Multi-capacity architectures require deliberate workload allocation. Workspaces drifting between capacities cause performance variation that is hard to diagnose later.
DirectLake is a Power BI storage mode introduced with Microsoft Fabric that reads Delta tables directly from OneLake without an Import-mode refresh step and without DirectQuery's per-query SQL round-trip. The semantic-model engine maintains a column-segment cache that loads on demand and serves subsequent queries from cache.
Import mode loads all data into the Vertipaq engine at refresh time. DirectLake loads only the column segments needed by active queries, caching as it goes. Both serve queries from memory; the difference is when and how much memory is consumed.
DirectQuery sends every query to the underlying source and waits for the SQL response. DirectLake reads directly from the Delta files in OneLake on first access and serves subsequent queries from in-memory cache. DirectLake performance is closer to Import; DirectQuery performance is bound by the source.
V-Order is Microsoft's write-time optimization for Parquet files (which underlie Delta tables). The optimization arranges column data in a layout that the Vertipaq engine reads efficiently. V-Order is enabled by default for Delta tables written by Fabric experiences but may not be present for tables written by external tools.
For DirectLake performance, V-Order materially improves query latency. Delta tables that will back DirectLake semantic models should have V-Order applied. Tables consumed only by Spark or SQL workloads do not require V-Order.
Framing is the operation where the semantic model picks up the current version of a Delta table. The framing operation is fast (seconds) because it updates the model's pointer to the current Delta version, not the data itself.
Yes. OneLake shortcuts can point to Delta tables in external locations (ADLS Gen2, S3, GCS). DirectLake reads through the shortcut. Performance depends on the external location's read characteristics; V-Order may or may not be present.
Start with the working-set estimate: typically 15–30% of the model's full column-segment surface during normal operations, peaking at 50% during heavy periods. Translate to F-SKU memory based on the model's row count and column count. Validate against the Fabric Capacity Metrics app during pilot before broad rollout.
The practical limit depends on the F-SKU. F128 (the largest standard F-SKU at the time of writing) supports 256 GB capacity memory, which typically maps to a working set of 100+ GB of column segments. Datasets above this size use multi-capacity architectures.
Yes. The streaming source writes to a Delta table in OneLake (typically via Fabric Real-Time Intelligence or a Spark structured streaming pipeline). DirectLake frames on schedule to pick up new versions. The latency from data arrival to query availability is the framing cadence — typically seconds to minutes.
RLS continues to apply in DirectLake. The RLS expression evaluates at query time against the user's context. Complex RLS expressions can become a dominant query cost; testing with representative RLS contexts during pilot is important.
The DirectLake engine pages the relevant column segment in from OneLake. The first query incurs the paging cost; subsequent queries against the same segment serve from cache. The paging cost is typically sub-second to a few seconds depending on segment size and OneLake read latency.
Yes, through the DirectLake with Import fallback mode or a Composite model pattern. The common use case is large fact tables in DirectLake with small aggregation tables in Import for sub-second executive dashboards.
DirectLake reads Delta files directly. DirectLake on SQL endpoint reads through the Fabric SQL endpoint, adding a small latency but providing access to features the direct path doesn't yet support. Default to direct DirectLake; use SQL endpoint where required.
EPC Group works with Fortune 500 enterprises designing and implementing DirectLake-on-OneLake architectures, typically as part of a broader Power BI Premium-to-Fabric F-SKU migration. The standard pattern is a 24-week engagement for a substantial existing Power BI estate. Our consultants — including Microsoft Press bestselling author Errin O'Connor — bring direct DirectLake architecture experience and a compliance-native delivery pattern.
If your enterprise is designing a DirectLake-on-OneLake architecture or planning a Power BI Premium-to-Fabric migration that includes DirectLake, the practical next steps:
EPC Group has 29 years of enterprise Microsoft analytics experience and is Microsoft Solutions Partner with the core designations. We were historically the oldest continuous Microsoft Gold Partner in North America from 2016 until the program's retirement. Our consultants — including Microsoft Press bestselling author Errin O'Connor — bring direct DirectLake implementation experience across hundreds of regulated-industry engagements. To discuss your DirectLake architecture, contact EPC Group for a 30-minute discovery call.
CEO & Chief AI Architect
Microsoft Press bestselling author with 29 years of enterprise consulting experience.
View Full ProfileMicrosoft Fabric May 2026 enterprise rollout: redesigned Power Query Get Data, Copilot Tooling Format for Git-native AI metadata, Real-Time Intelligence, F-SKU migration.
Microsoft FabricMicrosoft Fabric Real-Time Intelligence and Eventhouse enterprise streaming architecture: KQL Database, Data Activator, Real-Time Hub for logistics, manufacturing, finance.
Microsoft FabricMicrosoft Fabric Data Activator 2026 enterprise alert architecture. When to use Data Activator vs Power Automate, reflex patterns, action design, governance.
Our team of experts can help you implement enterprise-grade microsoft fabric solutions tailored to your organization's needs.