1. Lighthouse

Level 5 · Import, DirectQuery or a hybrid?

The request

From Hannah Reyes, Chief Financial Officer

“On Black Friday I want the sales page to show today's orders within minutes, next to three years of history, and the page has to stay quick when I slice by category. The warehouse has 60 million order lines. Our workspace runs on Premium capacity. What should the model be?”

Your goal

Pick the storage set-up that gives Hannah both near-real-time orders for today and fast slicing over three years of history.

Today's orders within minutes, three years of history, fast slicing, 60 million rows, Premium capacity. Which set-up fits?

Pick one answer, then check it.

The lesson

Every table in a Power BI model has a storage mode, and it decides where the data lives when someone clicks a slicer: in Power BI’s memory, or in the source database.

What you are working in

This is a quiz. In Power BI Desktop, a table’s storage mode is set in Model view: select the table and look at Properties → Advanced → Storage mode. You choose Import or DirectQuery when you connect (Home → Get data → SQL Server, the Data Connectivity mode option).

Import

The data is copied into the model and compressed by VertiPaq. Every visual is answered from memory: the fastest option, with all of DAX and Power Query available. The price is freshness (data is as old as the last refresh: 8 a day on Pro, 48 on Premium) and size (1 GB per model on shared capacity, more on Premium). Import is the default for good reasons.

DirectQuery

Nothing is copied. Each visual sends a query to the source every time it is drawn or filtered, so the data is always current and can be huge. But every click waits for the source, the source carries the load of every report reader, some DAX functions and Power Query steps are limited, and a single query can’t return more than a million rows to Power BI. It suits data that must be current or must stay at the source.

Composite models and Dual

A composite model mixes modes: for example, a huge fact table in DirectQuery and small dimension tables imported. Dual is a mode for dimensions in such a model: the table is imported and can also act as DirectQuery, so Power BI answers from memory when it can and joins at the source when the query needs the DirectQuery fact table. A composite model can also add your own imported table, such as targets, to a published model through DirectQuery for Power BI semantic models.

Hybrid tables

With incremental refresh (right-click a table → Incremental refresh), a big fact table is split into partitions by date, and each refresh reloads only the recent ones. On Premium capacity, Premium Per User or Fabric, ticking Get the latest data in real time with DirectQuery adds a live partition for the newest period: history comes from memory, today from the source. That is a hybrid table.

Live connection

If the company already publishes a certified semantic model, a new report can connect live to it (Home → Get data → Power BI semantic models). No data is copied and no model is rebuilt; the report reuses the measures, relationships and security everyone else uses.

Choosing

  • Fast and interactive, data a few hours old is fine: Import.
  • Must be current to the minute, or too big or too sensitive to copy: DirectQuery.
  • One big live table, everything else small: composite with Dual dimensions.
  • Long history plus live today: hybrid table.
  • A governed model already exists: live connection.

Common mistakes

  • DirectQuery by default. Every reader’s click becomes a database query.
  • Full refreshes of years of history. Use incremental refresh.
  • Many visuals on a DirectQuery page. Each one is a separate query to the source.

Pick what may run on this site. You can change this any time from "Cookie settings" at the bottom of every page.