Going DeeperPro· 35 min read

Import vs DirectQuery: Storage Modes

Should Power BI keep a fast copy of the data, or read it live from the source? That choice is the storage mode.

What you will learn

  • Explain Import and DirectQuery in plain words
  • Choose the right mode for a given situation
  • Know what DirectLake adds in Microsoft Fabric

A choice that shapes everything

When you connect to data, Power BI quietly asks one big question: should it copy the data in so it is fast, or leave it at the source and read it live each time? That decision is called the storage mode, and it changes how fresh your data is and how fast your report feels.

There are two main modes — Import and DirectQuery — plus a newer one, DirectLake, for Microsoft’s Fabric platform. Let us define each in plain words before comparing them.

Import mode — keep a fast copy

Import copies the data into the report file (the .pbix). Power BI compresses it and stores it in memory, so visuals are extremely fast. The trade-off: the copy is a snapshot — it only updates when you click Refresh (or a scheduled refresh runs). This is the default, and it is the right answer for most beginners.

DirectQuery mode — read it live

DirectQuery does not copy the data. Instead, every time a visual needs numbers, Power BI sends a live query to the source database and waits for the answer. The data is always current, and the file stays tiny because it holds no data — but reports can feel slower, and the source must be a database that can answer queries.

Seeing the difference

Picture the same Sales database opened two ways. Watch where the numbers come from and how fresh they are:

Import keeps a fast local copy; DirectQuery reads the source live
IMPORT mode
  Database --(copied once at refresh)--> .pbix holds the data --> visuals are FAST
  Freshness: as of the last Refresh (a snapshot)

DIRECTQUERY mode
  Visual asks --> live query --> Database answers --> visual draws
  Freshness: always live; Speed: depends on the database

Note: Output: In Import mode the visuals read from a compressed copy inside the file, so they respond instantly but show data only as fresh as the last refresh. In DirectQuery the visuals ask the database every time, so the numbers are always up to the minute, but each click waits on the database. Same data, two very different behaviours.

How to choose

QuestionLean ImportLean DirectQuery
How fresh must data be?A daily/hourly refresh is fineIt must be real-time, to the second
How big is the data?Fits comfortably in memoryBillions of rows, too big to copy
How fast must visuals feel?Need top speedCan accept some lag
What is the source?Files, Excel, most databasesA fast database that supports live queries

A worked decision: a small shop with a 50,000-row sales file that updates nightly → Import (fast, simple, daily refresh is plenty). A bank dashboard over a billion live transactions that must be current to the second → DirectQuery (too big to copy, must be live).

DirectLake — the best of both (Fabric)

DirectLake is a newer mode available in Microsoft Fabric (Microsoft’s cloud data platform). It reads data straight from cloud storage in a special columnar format, aiming for Import-like speed with DirectQuery-like freshness — fast *and* live, without keeping a separate copy. It is an advanced, enterprise option; you do not need it for your first dashboards, but it is worth knowing the name when you hear it.

ModeKeeps a copy?SpeedFreshness
ImportYes (in the file)FastestAs of last refresh
DirectQueryNoDepends on sourceAlways live
DirectLakeNo (reads cloud storage)Near ImportNear live

Tip: Start with Import for almost everything you build while learning. Reach for DirectQuery only when the data is too large to copy or must be truly real-time, and meet DirectLake later when you work in Fabric.

Watch out: DirectQuery limits what you can do: some DAX functions and Power Query steps are blocked or run slowly because they must translate to the source database. Import has no such limits, which is another reason it is the friendly default.

Q. Which storage mode keeps a fast copy of the data inside the report and updates only on Refresh?

Answer: Import copies the data into the .pbix and compresses it for speed, so visuals are fast but the data is a snapshot that updates on Refresh. DirectQuery reads the source live instead.

✍️ Practice

  1. Write one real scenario that suits Import and one that suits DirectQuery, and say why for each.
  2. In one sentence, explain the main trade-off DirectQuery makes compared with Import.

🏠 Homework

  1. For a data source you might use, decide Import or DirectQuery and justify your choice in two or three sentences using freshness, size and speed.
Want to learn this with a mentor?

CodingClave runs guided, project-based training (28-day, 45-day & 6-month batches).

Explore Training →