Blog Post

Data Engineering Community Blog
4 MIN READ

Direct Lake Is Changing the Lakehouse vs Warehouse Debate in Microsoft Fabric

Tamanchu's avatar
Tamanchu
Icon for Super User rankSuper User
3 months ago

Lakehouse vs Warehouse in Microsoft Fabric: Are We Asking the Wrong Question?
For years, data architects have debated the same question :

Should we use a Lakehouse or a Data Warehouse?

With Microsoft Fabric, I believe we're increasingly asking the wrong question.

The traditional reasoning is familiar :

  • Lakehouse for raw and semi-structured data
  • Warehouse for curated and relational data
  • Lakehouse for flexibility
  • Warehouse for performance


While this remains partially true, Fabric introduces a new player that changes the conversation :

Direct Lake.

 

The Traditional Architecture
Most organizations historically followed a pattern similar to :

Source Systems → Bronze → Silver → Warehouse → Power BI

The Warehouse acted as the serving layer between data engineering and business intelligence.

This model is still valid and remains relevant for many enterprise workloads.

However, Fabric introduces a different possibility.

Enter Direct Lake.
Direct Lake allows Power BI to query Delta tables stored in OneLake without importing the data and without relying on DirectQuery.

The result is a model that combines :

  • Near-import performance
  • No scheduled refresh
  • Unified storage in OneLake

This changes the architectural trade-offs.

 

Instead of asking :

"Do I need a Lakehouse or a Warehouse?"

We can start asking :

"What is my serving layer requirement?"

 

The Direct Lake Trap Most Teams Miss
Before going further, there is one critical detail that often gets overlooked in production.

Direct Lake is not unconditionally fast. It operates through a process called framing reading Delta parquet files directly from OneLake into the engine's memory. When this process works as expected, performance is close to Import mode.

 

But Direct Lake will silently fall back to DirectQuery mode when :

  • Delta tables are not V-Ordered (a Fabric-specific file optimization)
  • The number of rowgroups exceeds the capacity limit for your SKU
  • Delta table metadata is stale and requires a reframe

The fallback is silent. There is no warning in your report. Query times simply become slower sometimes dramatically and teams often spend hours troubleshooting what looks like a Power BI performance issue.

The fix is straightforward : run OPTIMIZE with V-Order enabled on your Gold layer Delta tables, and monitor framing status via the semantic model's Direct Lake diagnostics.

OPTIMIZE gold.dim_customer


In Fabric, V-Order is enabled by default for Spark writes. But if you're loading data through pipelines or external tools, always verify.

I've seen this catch teams by surprise on tables over 50 million rows  where Direct Lake was expected to deliver sub-second query times, but was silently falling back to DirectQuery due to missing V-Order optimization, resulting in 8–12 second report load times instead.

When a Lakehouse May Be Enough
I've seen several projects where the architecture was simply :

Source Systems → Lakehouse → Semantic Model (Direct Lake) → Power BI

No Warehouse required.

This approach works particularly well when :

  • Data is already modeled in the Gold layer
  • Business users consume data primarily through Power BI
  • SQL serving requirements are limited
  • The organization wants to reduce architectural complexity

In these scenarios, introducing a Warehouse may provide little additional value.

 

When a Warehouse Still Makes Sense
That doesn't mean the Warehouse disappears.

A dedicated Warehouse remains valuable when :

  • External SQL consumers exist analytics teams, data scientists, or operational applications that query data directly via SSMS, DBeaver, or JDBC connections. These teams don't go through Power BI, and they need a stable, performant SQL endpoint with proper schema management.
  • T-SQL is the primary development language teams with strong SQL backgrounds who build stored procedures, views, and complex relational logic will find the Warehouse a more natural environment than notebooks.
  • Multiple downstream applications consume the data APIs, reporting tools, and data exports that all depend on the same serving layer benefit from the Warehouse's dedicated endpoint and governance model.
  • Enterprise governance requires separation some organizations require a clear boundary between the data engineering layer (Lakehouse) and the serving layer (Warehouse) for audit, access control, or compliance reasons.

In these cases, the Warehouse remains a powerful and justified component of the architecture.

 

The Real Decision Framework
Rather than Lakehouse versus Warehouse, I recommend evaluating :

  1. Who consumes the data?
  2. How is the data consumed Power BI, SQL, API, or a mix?
  3. Do external SQL consumers exist outside of Power BI?
  4. What are the governance and compliance requirements?
  5. What level of operational complexity can the team support?


The answer is rarely universal.

 

Final Thoughts
The most successful Fabric architectures I've seen are not built around product preferences.

They're built around consumption patterns.

Sometimes that's:

Lakehouse → Direct Lake → Power BI

Sometimes it's :

Lakehouse → Warehouse → Power BI

And sometimes it's a combination of both.

The goal isn't to choose a winner.

 

The goal is to design the simplest architecture that satisfies the business requirements while remaining scalable, governable, and cost-effective.

 

In Microsoft Fabric, context beats dogma every time.

 

Published 3 months ago
Version 1.0

5 Comments

  • grdelgado's avatar
    grdelgado
    Frequent Visitor

    Perfect timing.  Thank you for the article.  In the decision stage wether to keep direct lake and go lake, lake, warehouse.  For my setup, direct lake makes more sense.