
If you have worked with Power BI for a while, you have probably heard the word “dataflow.” But here is the thing — when people say “dataflow,” they might mean three completely different things: Dataflow Gen 1, Dataflow Gen 2, and Dataflow Gen 2 CI/CD. Each version has its own licensing requirements, destination options, and feature set.
In this article, I will explain the differences between all three versions of dataflow in Power BI and Microsoft Fabric — when to use each, what features you get, and what my recommendation is if you are starting fresh today.
You can also watch the full video walkthrough here:
What Is a Dataflow?
Before diving into the differences, let me quickly explain what a dataflow is — especially if you are new to this concept.
A dataflow is the Power Query element of Power BI, running as a separate service.
Before dataflows existed, if you wanted to transform data, you had to do it inside Power BI Desktop, Excel, or whatever environment you were working in. The problem? There was little to no way to reuse that transformation logic across multiple files or environments. Every solution had to redo the same work.
Dataflow solved that. It separates the ETL layer — the data transformation logic — from Power BI Desktop. You connect to a data source, transform the data using Power Query Online, and save the result into a destination. Power BI, Microsoft Fabric, or other tools then use that already-transformed data. No duplication of logic. No repeated steps across multiple files.
The result of your transformation gets saved once and reused everywhere.
Now let’s see what the different versions of dataflow look like in action.
Dataflow Gen 1
Dataflow Gen 1 is the original version of dataflow. You might also hear it called Power BI Dataflows or Power Platform Dataflows depending on where you create it. In Power Apps or Power Platform environments, it might be referred to as Power Apps Dataflows. It is the same concept.
Licensing Requirements
To create Dataflow Gen 1, you need to be working in an organizational workspace with at least one of the following licensing configurations:
- Power BI Pro
- Premium Per User (PPU)
- Premium Capacity
- Fabric Capacity
This is not something you can create in “My Workspace” or on a Power BI free plan. It requires at least a Pro license or higher.
The Power Query Online Experience
When you create Dataflow Gen 1, it opens the Power Query Online editor. The interface will feel very familiar if you have used Power Query inside Power BI Desktop. You have the same transformation steps on the right-hand side, a preview of the data, transformations available at the top, and even an advanced editor where you can write M script directly.
One unique addition in the online version is the Diagram View, which lets you visualize the relationship between your queries in a flow diagram. That is something you do not have in Power BI Desktop at the time of writing.
Dataflow Gen 1 uses the same Power Query UI and M scripting you already know from Power BI Desktop.
Where Does the Data Go?
Here is one of the most important things to understand about Dataflow Gen 1: you do not choose the destination.
By default, Dataflow Gen 1 stores the transformed data in Azure Data Lake Storage Gen 2 as CSV files. One folder per table, organized under a top-level folder for the dataflow. You do not control that structure unless you configure what is called an external dataflow.
- Internal dataflow: Data is saved into Microsoft’s proprietary Azure Data Lake Storage. You cannot see or browse that file structure.
- External dataflow: Data is saved into your own Azure Data Lake Storage. You control and can access the file structure.
There is also a distinction within Dataflow Gen 1 between two sub-types:
- Analytical Dataflow: Stores data in Azure Data Lake Storage Gen 2. Includes AI capabilities. This is what you create when working in a Power BI workspace.
- Standard Dataflow: Stores data in Dataverse. Available when creating in Power Platform environments.
It is not recommended to confuse these two sub-types. If you are working in Power BI, you are creating an analytical dataflow.
How Do You Use the Data?
Once your dataflow has been refreshed, you can access it from Power BI Desktop using Get Data → Dataflows. You choose the workspace, find your dataflow, and select the tables you want. It behaves like a database — you pick your tables, load them, and they come in already transformed.
This is the core value of dataflow: the ETL logic lives outside of Power BI Desktop. Any solution that needs that table simply connects to the dataflow. If you change the logic later, every solution using that dataflow benefits automatically.
Important: Dataflow Gen 1 Is Approaching End of Life
Microsoft has recently announced that Dataflow Gen 1 is getting close to end of life. This means no new updates and eventually no support. If you are currently using Gen 1 because of Pro or PPU licensing constraints, stay tuned — Microsoft will need to address what happens for users who do not have a Fabric or Premium capacity license.
Dataflow Gen 2
Dataflow Gen 2 is the newer, more powerful version. Let’s see what it brings over Gen 1.
Licensing Requirements
Dataflow Gen 2 requires a Fabric Capacity or Power BI Premium Capacity. These are actually the same thing these days. Pro and PPU alone are not enough. You need at least an F2 capacity — the minimum available Fabric capacity — or higher.
The Biggest Difference: Destination Options
The single most important difference between Gen 1 and Gen 2 is destination flexibility.
In Gen 1, your data always goes into Azure Data Lake Storage as CSV. In Gen 2, you choose where the data lands. The current destination options include:
- Fabric Lakehouse
- Fabric Warehouse
- Fabric Database
- KQL Database (for real-time streaming scenarios)
- Azure SQL Database
- OneLake (in various formats)
- SharePoint
More destinations are being added over time. The SharePoint destination in particular is unique and very useful for specific scenarios.
In Dataflow Gen 2, the destination is a choice — not a default.
You can set a default destination that applies to all tables at once, or you can set the destination per table individually. This gives you a lot of flexibility when different tables need to land in different places.
The UI Experience
The Power Query Online interface looks very similar between Gen 1 and Gen 2. You have the same editor, the same transformation steps, the same M scripting capabilities. The day-to-day data transformation experience does not feel dramatically different.
What is different is that Gen 2 adds some useful annotations in the editor — for example, indicators showing whether fast copy is available for a given step, or whether the query is folding back to the source. These are real performance signals that help you design better dataflows.
How Do You Access Gen 2 Data?
Because Gen 2 stores data in proper storage layers — a lakehouse or a warehouse, for example — you typically connect to that storage directly in Power BI Desktop. You would use Get Data → OneLake data hub or connect to the lakehouse or warehouse where the data landed.
You do not normally go through the Dataflow connector to access Gen 2 results. The data is in a proper storage database, and you connect to that storage directly. This creates a cleaner, more enterprise-ready architecture.
Dataflow Gen 2 CI/CD
Gen 2 CI/CD is the most current and most capable version of dataflow available today. If you are creating a new dataflow right now, this is the one to choose.
What CI/CD Adds
CI/CD stands for Continuous Integration / Continuous Deployment. It means your dataflow can be connected to GitHub or Azure DevOps, allowing you to commit changes, manage branches, and push updates through a proper development pipeline. This was not possible with Gen 2 without CI/CD.
But CI/CD does not just mean version control. It comes with a set of additional capabilities:
- Best performance: All the latest performance enhancements — query evaluation improvements, concurrency settings, partition compute — are available only in Gen 2 CI/CD.
- Parameter passing from outside: You can have a Fabric Pipeline pass parameters into your dataflow at runtime. This makes your entire ETL dynamic. For example, a pipeline could tell the dataflow to ingest only data for a specific date range, or to write to a specific folder based on a file name parameter. This feature is not available in Gen 2 without CI/CD.
- Folder organization: Saving a dataflow inside a folder in your workspace is a Gen 2 CI/CD feature.
- Save and run experience: Gen 2 CI/CD gives you a “Save, Close and Run” option in the editor. Gen 2 without CI/CD uses a “Publish” model instead.
▶️ See the save experience difference ~21:26
If you are creating a new dataflow, always choose Gen 2 CI/CD. It gives you the most features, the best performance, and it is future-proof.
Comparing All Three Versions
Let’s now bring it all together. Here is how all three versions compare across the key dimensions.
Licensing
| Version | Minimum License Required |
|---|---|
| Dataflow Gen 1 | Power BI Pro, PPU, Premium, or Fabric |
| Dataflow Gen 2 | Fabric Capacity or Power BI Premium |
| Dataflow Gen 2 CI/CD | Fabric Capacity or Power BI Premium |
Destination Options
| Version | Destination |
|---|---|
| Dataflow Gen 1 | Azure Data Lake Storage Gen 2 (CSV) or Dataverse (Power Platform) |
| Dataflow Gen 2 | Lakehouse, Warehouse, Azure SQL, KQL, SharePoint, and more |
| Dataflow Gen 2 CI/CD | Same as Gen 2, plus best-in-class performance configurations |
Features
| Feature | Gen 1 | Gen 2 | Gen 2 CI/CD |
|---|---|---|---|
| Power Query Online UI | ✓ | ✓ | ✓ |
| Multiple destinations | ✗ | ✓ | ✓ |
| Performance enhancements | ✗ | Partial | ✓ |
| Parameter passing from pipeline | ✗ | ✗ | ✓ |
| Git / DevOps integration | ✗ | ✗ | ✓ |
| Folder organization in workspace | ✗ | ✗ | ✓ |
The similarities across all three versions: they all separate the ETL layer from Power BI Desktop. They all use the Power Query Online editor. They all use M scripting.
The differences: where the data goes, what performance you get, and how much control you have over your pipeline.
How to Migrate from Gen 1 to Gen 2
If you already have dataflows in Gen 1 and want to move them to Gen 2 CI/CD, the process is straightforward. There are two ways to do it.
Option 1: Save As
Right-click on your Gen 1 dataflow in the workspace, choose Save As Dataflow Gen 2. This brings everything across — your queries, transformation steps, and M scripts. You just need to set up your connections again and configure your destinations.
This is the easiest and recommended migration path.
Option 2: Export and Import via Power Query Template
If the Save As option does not work for some reason, you can export the dataflow as a Power Query Template file (.pqt extension). This is a JSON file that captures all your queries, parameters, and functions.
To do this, go inside the dataflow editor and click Export Template. Give it a name and save it. Then create a new Dataflow Gen 2 CI/CD, and instead of selecting a data source, choose Import from a Power Query Template. Select the file you exported, and everything loads in — your queries, parameters, functions. You then set up your connections and destinations.
It is not recommended to recreate your transformations from scratch when migrating. Always use one of these two options — they save significant time and eliminate the risk of introducing differences in your logic.
Summary
In this article, you learned about the three different versions of dataflow in Power BI and Microsoft Fabric.
Dataflow Gen 1 is the original version. It works with Pro and PPU licensing but stores data only in Azure Data Lake Storage as CSV files. It is approaching end of life, so treat it as a short-term option if licensing constraints force you there.
Dataflow Gen 2 requires Fabric or Premium capacity and gives you the flexibility to choose your destination — lakehouse, warehouse, Azure SQL, SharePoint, and more. The UI is similar to Gen 1, but the architecture is better suited for enterprise solutions.
Dataflow Gen 2 CI/CD is the most advanced version. It includes all Gen 2 features, plus the best performance configurations, parameter passing from external pipelines, Git/DevOps integration, and workspace folder organization. This is the version you should create if you are starting anything new today.
If you already have Gen 1 dataflows, keep an eye on Microsoft’s announcements about the end-of-life timeline. And if you have Gen 2 without CI/CD, consider migrating — it is a simple move and the benefits are significant.
For a full demo of all three versions in action, watch the video here:
▶️ Different Versions of Dataflow in Power BI and Microsoft Fabric
Have questions about dataflows, Power BI, or Microsoft Fabric? Feel free to reach out. At RADACAD, we create videos, training, and consulting on Power BI and Microsoft Fabric topics.




