What Are Dataflows in Power BI?
A Power BI dataflow is a cloud-based data preparation process built in Power Query Online. Instead of transforming data separately in each Power BI Desktop file, you define the transformations once in a dataflow and load the result to a shared storage layer. Multiple datasets and reports connect to this shared output, ensuring consistent data across all your reports and reducing duplicated transformation work.
Dataflows in Power BI are cloud-based data preparation pipelines that let you clean, transform, and store data once, then reuse it across multiple reports and datasets.
What a Dataflow Is
A dataflow is a set of data preparation steps defined in Power Query Online, running in the Power BI Service rather than in a Desktop file. You connect to your data sources, apply your transformations (cleaning, filtering, joining, renaming), and the dataflow stores the result in a structured table format. This stored output is what your Power BI datasets import from. The dataflow is independent of any single report: it lives in a workspace and can be consumed by any number of datasets across that workspace.
How It Differs from Power Query in Desktop
In Power BI Desktop, Power Query runs as part of your dataset refresh. If you have three reports connecting to the same ERP system and applying the same transformations, each of those three datasets runs the same transformations independently when refreshed. This means three separate connections to the source, three sets of transformation steps to maintain, and three opportunities for inconsistencies to creep in when one report’s logic gets updated and the others do not.
A dataflow centralises that work. The transformation logic sits in one place. When the dataflow refreshes, it updates the stored tables. Your datasets then import from those tables, always getting consistently prepared data. Changes to transformation logic happen once, in the dataflow, and all downstream datasets benefit automatically. This also makes it easier to use a shared date table across your entire organisation.
When to Use Dataflows
Dataflows add value when multiple reports share the same source data, when the transformation logic is complex enough to be worth centralising, or when you want to separate the data engineering work from the report-building work. A data engineer can own the dataflow, and a report developer can connect to it without needing to understand the underlying source system.
Dataflows are less useful for one-off reports, for data that is unique to a single report, or for small teams where the overhead of maintaining a separate dataflow exceeds the benefit. A single .pbix file with its own Power Query is often the simpler choice in those cases. For context on how Import mode works with dataflows, see DirectQuery vs Import Mode in Power BI.
Standard vs Analytical Dataflows
Power BI has two dataflow types. Standard dataflows are available in Power BI Premium workspaces and store output in Azure Data Lake Storage Gen2. They are the most common type for Power BI reporting teams. Analytical dataflows are part of Microsoft Fabric and store data in OneLake, making the output accessible to other Fabric workloads beyond Power BI. If your organisation uses Fabric for data engineering as well as reporting, analytical dataflows provide a unified storage layer. If you are working purely within Power BI Premium, standard dataflows cover most needs.
Our tip: Treat your dataflow as the single source of truth for each shared dataset. Give each dataflow table a descriptive name and add column descriptions, just as you would in a database. Future report builders who connect to the dataflow will thank you.
Frequently asked questions
What is the difference between Power Query in Desktop and a dataflow?
Power Query in Power BI Desktop runs transformations locally when you refresh a dataset. Each .pbix file has its own Power Query transformations, and if two reports use the same source data, both run the same transformations independently. A dataflow runs Power Query Online in the Power BI Service. It transforms the data once and stores the result in a shared location. Multiple datasets then import from that result, so the transformation logic lives in one place and runs once per refresh cycle.
When should I use a dataflow instead of Power Query in Desktop?
Use a dataflow when the same data preparation logic needs to be shared across more than one report or dataset, when you want non-Desktop users to maintain the transformation logic, or when you want to separate data preparation from report building. For a single report used by one person, Power Query in Desktop is simpler. For a team with five reports that all use the same sales data from the same source, a dataflow avoids five copies of the same transformation code.
What is an analytical dataflow in Power BI?
Power BI has two types of dataflows: standard dataflows and analytical dataflows (also called Fabric dataflows or Gen2 in Microsoft Fabric). Standard dataflows store output in Azure Data Lake Storage and are available in Power BI Premium or Fabric. Analytical dataflows are part of Microsoft Fabric and store data in OneLake, allowing other Fabric workloads (such as Spark notebooks or SQL analytics endpoints) to query the data alongside Power BI. For most Power BI-only scenarios, standard dataflows are sufficient.
Can I use a dataflow as a source in Power BI Desktop?
Yes. In Power BI Desktop, you connect to a dataflow via Get Data and select Power Platform Dataflows or Power BI Dataflows as the connector. You then choose the workspace and the specific dataflow table you want to use. The import works like any other data source: the prepared data loads into your dataset. If you refresh the dataflow first and then refresh the dataset, the dataset always gets the latest prepared data.