By Syed Hussnain Sherazi | October 7, 2025 | Microsoft Fabric

Tags: Microsoft Fabric | Lakehouse | Direct Lake

A practical explanation of the Fabric lakehouse pattern and what it changes for Power BI teams.

Microsoft Fabric arrived with a lot of marketing noise and a fairly simple core idea: put the storage layer, the engine layer, and the consumption layer into a single tenant-level service so that data engineers, data scientists, and Power BI developers all work against the same files.

What a Lakehouse Actually Is

A lakehouse is the marriage of a data lake and a data warehouse. The storage is open, columnar, and cheap, sitting on Delta Parquet files in object storage. The query layer adds transactions, schema enforcement, and indexing on top, so the same files can be queried by a SQL engine, a Spark notebook, or the VertiPaq engine that powers Power BI.

In Fabric, the storage layer is OneLake. The query engines include Spark, the Fabric SQL warehouse, and the Power BI engine running in Direct Lake mode. None of these engines are copying data — they all read the same parquet files.

For Power BI teams, the boundary between the data warehouse and the BI layer becomes much thinner. The warehouse tables are the BI tables.

The Architecture in Practice

The medallion pattern of bronze, silver, and gold is not new. What is new is that all three layers live in the same store, the engines that read them are interoperable, and Power BI can consume the gold layer without import or DirectQuery in the traditional sense.

Direct Lake: The Feature That Matters Most

Direct Lake is the storage mode that ties the lakehouse to Power BI. It is neither Import nor DirectQuery. The semantic model holds metadata and DAX, but the table data is read directly from Delta Parquet files at query time, then cached in memory.

For BI teams, this changes a long-standing trade-off. You no longer have to choose between fresh data (DirectQuery) and fast queries (Import).

The catch: Direct Lake has restrictions that are shrinking with every release but still exist. Some DAX functions force a fallback to DirectQuery. Calculated columns are limited. Data types must align with parquet types.

A Concrete Workflow

Step 1: Land the Raw Data