STORE Orders INTO [lib://Data/Orders.qvd] (qvd);
STORE INTO (writing QVDs) in Power BI
Power Query in Power BI Desktop can't write files. A query only feeds the model. Qlik's STORE pattern, transforming once, saving a QVD and reusing it, maps to Fabric: a Dataflow Gen2 with a data destination such as a Lakehouse table, a notebook writing Delta tables, or a Power BI dataflow that other models connect to. A Power BI dataflow (Gen1) only needs Pro licences, but it stores its output internally, not as files you manage. Without Fabric, the most robust answer is to store in your database or SQL views.
What it does in Qlik
STORE table INTO file (qvd|csv|txt|parquet); writes an in-memory table to disk. Qlik architectures use it for layered extract, transform and model QVDs that many apps reuse, and for incremental loads.
Qlik example
Orders: LOAD * FROM [lib://DB/orders] ...;
STORE Orders INTO [lib://QVD/Extract/Orders.qvd] (qvd);
STORE Orders INTO [lib://QVD/Extract/Orders.parquet] (parquet);
DROP TABLE Orders;Power BI equivalent
Fabric Dataflow Gen2 → Lakehouse
Build the same Power Query steps in a Dataflow Gen2. Under Data destination, choose a Lakehouse or Warehouse table, then pick Replace or Append. Semantic models then read the table, in Direct Lake or import mode.
Fabric notebook (PySpark)
df = spark.read.format("jdbc").option("url", jdbc_url).option("dbtable", "dbo.orders").load()
df.write.mode("overwrite").format("delta").saveAsTable("extract_orders")Without Fabric
Create views or tables in the source database, for example with dbt or stored procedures. Or create a Power BI dataflow (Gen1) in a workspace that several semantic models connect to. Exporting from Desktop isn't a supported pipeline.
Gotchas and behaviour differences
- No 1:1 in Power BI Desktop. Search results that suggest "export to CSV with R/Python visuals" are workarounds, not a QVD layer. Don't build production on them.
- Dataflow Gen2 and Lakehouses need Fabric capacity, including a trial. Check licensing before you promise a QVD-style layer.
Official documentation
- Store - script statement (Qlik Help)
- Dataflow Gen2 data destinations and managed settings (Microsoft Learn)
- What is a lakehouse in Microsoft Fabric? (Microsoft Learn)
- Introduction to dataflows and self-service data prep (Microsoft Learn)
Related pages
WHERE Modified >= '$(vLast)' ... Concatenate ... WHERE NOT Exists(ID); STORE ... INTO x.qvd
QVD incremental load
The QVD incremental pattern (load the changes, append the old QVD rows not in the change set, store) has no file-level equivalent in Power BI. Use the incremental refresh policy on the semantic model, or in Fabric land the data in a Delta table with MERGE.
Partial / different approach
Extract.qvf → QVD layer 1 → Transform.qvf → QVD layer 2 → app
QVD layers (extract, transform, model) to Fabric
The classic multi-tier QVD architecture maps to Fabric's medallion lakehouse: raw data (bronze) → cleaned (silver) → modelled star schema (gold), with a semantic model on top. Without Fabric, Power BI dataflows are the reuse layer, but they are not a full QVD replacement.
Partial / different approach
LOAD ... RESIDENT table; DROP TABLE table;
Resident load and intermediate tables
A Resident load reads a table already in memory. The Power Query equivalent is a referenced query, but it re-runs its source instead of reading from memory. Heavy multi-step transformations are better done upstream in a warehouse, dataflow or lakehouse.
Partial / different approach
Spotted an error or a better pattern? QlikToDax is maintained by a working BI consultant; corrections are welcome via the About page. Last reviewed 2026-10-25.