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 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 databaseNote: 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
| Question | Lean Import | Lean DirectQuery |
|---|---|---|
| How fresh must data be? | A daily/hourly refresh is fine | It must be real-time, to the second |
| How big is the data? | Fits comfortably in memory | Billions of rows, too big to copy |
| How fast must visuals feel? | Need top speed | Can accept some lag |
| What is the source? | Files, Excel, most databases | A 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.
| Mode | Keeps a copy? | Speed | Freshness |
|---|---|---|---|
| Import | Yes (in the file) | Fastest | As of last refresh |
| DirectQuery | No | Depends on source | Always live |
| DirectLake | No (reads cloud storage) | Near Import | Near 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?
✍️ Practice
- Write one real scenario that suits Import and one that suits DirectQuery, and say why for each.
- In one sentence, explain the main trade-off DirectQuery makes compared with Import.
🏠 Homework
- 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.