Power BI Import vs DirectQuery Modes
Power BI offers different ways to connect to data. The chosen storage mode decides where the data lives, how fast reports respond, and how fresh the numbers stay. Understanding the options helps you pick wisely for every project.
The Library Analogy
Import mode works like photocopying a book and keeping the copy on your desk. Pages open instantly, yet the copy ages as the original receives updates. DirectQuery mode works like walking to the library each time you need a fact. The answer is always current, and every trip takes time.
IMPORT DIRECTQUERY
Source --copy--> Power BI file Source <--live question-- Visual
| |
Visual reads +--answer--> Visual
local copy
Import Mode
Import loads a compressed copy of the data into the Power BI model. The engine stores it in memory, so visuals respond in milliseconds. Every Power BI feature works in import mode, including all DAX functions and all Power Query steps.
Strengths
- Fast visuals even with many users.
- Full support for DAX and Power Query.
- Reports work offline against the saved file.
Limits
- Data stays as fresh as the last refresh.
- Model size has upper limits that depend on the license.
DirectQuery Mode
DirectQuery stores no data inside Power BI. Each click on a visual sends a query to the source database, and the result returns to the screen. The numbers always reflect the current state of the source.
Strengths
- Near real-time numbers.
- Very large datasets stay in the source system.
Limits
- Visuals respond only as fast as the source database.
- Some DAX functions and Power Query steps lose support.
- Many users clicking at once increase load on the source.
Dual Mode and Composite Models
A composite model mixes both modes in one file. Large fact tables stay in DirectQuery, while small dimension tables use Import or Dual mode. Dual mode lets a table act as imported or live depending on the query, which keeps slicers fast.
+----------------------------------------+ | Composite Model | | Sales (fact) --> DirectQuery | | Products --> Dual | | Regions --> Import | +----------------------------------------+
Live Connection
A live connection links a report to an existing semantic model in the Service or to an Analysis Services model. The report holds no data and no model. Authors build visuals only, which keeps one trusted model shared by many reports.
Comparison Table
| Feature | Import | DirectQuery |
|---|---|---|
| Data location | Inside Power BI | In the source |
| Visual speed | Very fast | Depends on source |
| Data freshness | Last refresh | Current |
| DAX support | Complete | Partial |
| Best for | Most reports | Huge or live data |
Choosing a Mode
- Start with Import. It fits most projects.
- Switch to DirectQuery when the data volume exceeds model limits.
- Switch to DirectQuery when a rule demands live numbers.
- Test response times with real users before finalizing.
Worked Example: A Delivery Company
A courier firm tracks millions of parcel scans each day. A manager wants a live board of parcels in transit. The Parcels table runs in DirectQuery for current counts. The Hubs and Dates tables run in Import mode for quick slicers. The board stays accurate, and filter lists open instantly.
Key Points
- Import copies data into the model for the fastest visuals.
- DirectQuery asks the source on every click for current numbers.
- Composite models mix modes inside one file.
- Live connections reuse a published model with no local data.
- Begin with Import and move away only for a clear reason.
