Moving from Dataflow Gen1 to Dataflow Gen2 in Microsoft Fabric - When and How
Moving from Dataflow Gen1 to Dataflow Gen2 in Microsoft Fabric - When and How
Microsoft has been gently nudging customers toward Dataflow Gen2 in Fabric for a while now. The nudging is going to get less gentle. New investment is going into Gen2, the feature gap is widening, and most of the interesting Fabric features (fast copy, pipeline orchestration, Copilot, lakehouse destinations) only exist in Gen2.
That said, Microsoft has not announced any deprecation of Gen1 dataflows. You can keep running them indefinitely. The question is not whether you can stay on Gen1. The question is whether you should.
This is what I tell clients when they ask us about it.
The Honest Answer About Whether You Need to Move
If your existing Gen1 dataflows are working fine, you do not have an immediate problem. There is no looming cliff. Microsoft is not pulling the rug out.
But here is what I see happening when organisations stay on Gen1 too long. Every new data integration requirement gets bolted onto an aging stack. The Gen1 dataflows become more brittle. The team that originally built them moves on. New hires want to work with Gen2 because that is what the documentation, the training, and the AI tools are oriented around. Six years later, someone is paying a consulting firm a small fortune to untangle dataflows that nobody on staff understands.
If you have a small Gen1 estate (a dozen dataflows or fewer), the migration is genuinely straightforward and worth doing in the next quarter or two. If you have a large estate, you probably want a phased plan. Either way, the worst answer is to keep building new Gen1 dataflows. Once you have committed to building new things in Gen2, the rest becomes a normal modernisation exercise.
What Gen2 Actually Gives You That Gen1 Does Not
The feature list is long but most of it is noise for typical workloads. Here is what I actually see clients benefit from.
Fast copy is the headline feature. For larger ingestion jobs (above about 10 GB), Gen2 can use the underlying pipeline Copy activity rather than the Power Query mashup engine. The performance difference is dramatic. We had a client where a 90-minute Gen1 refresh dropped to under 8 minutes after rebuilding the equivalent dataflow in Gen2 with fast copy enabled. That kind of improvement changes what is operationally feasible.
Data destinations are the second big win. In Gen1, your dataflow output goes into the dataflow itself, and you connect to it from a semantic model. In Gen2, you can land the output directly into a lakehouse, warehouse, eventhouse, or Azure SQL Database. This matters because it means a Gen2 dataflow can feed multiple consumers (a Power BI model, a notebook, a downstream pipeline, a custom application) rather than being a closed loop. We use this constantly when we are building integrated analytics stacks for clients on our Microsoft Data Factory consulting engagements.
Pipeline orchestration is the third one worth mentioning. You can drop a Gen2 dataflow into a Fabric data pipeline as an activity, alongside notebooks, copy activities, conditional logic, and so on. This is genuinely useful for any non-trivial integration. Gen1 dataflows can be triggered on a schedule, but they cannot really participate in an orchestrated workflow.
Copilot for Data Factory is the one I am most ambivalent about. Yes, it generates Power Query code from natural language prompts. Yes, that is useful for boilerplate. But I would not be making a migration decision based on Copilot. It is a nice-to-have, not a reason to move.
What Gen2 Does Not Give You (Yet)
This is the part Microsoft does not emphasise. There are still gaps where Gen1 has functionality that Gen2 lacks or handles differently.
DirectQuery to dataflows is the big one. In Gen1, you can connect Power BI directly to a dataflow in DirectQuery mode and skip the import into a semantic model. Gen2 does not support this. If you have report designs that depend on this pattern, you need a different approach in Gen2 (typically landing the output in a warehouse and DirectQuerying that).
AutoML is gone. The automated machine learning feature that some Gen1 users built workflows around has been deprecated. If you were using it, you need a different approach (typically Fabric Data Science with notebooks).
Some of the operational tooling around Gen1 dataflows is more mature simply because the feature has been around longer. Refresh history, monitoring, and alerting in Gen2 are functional but feel less polished. This is improving but it is real friction during migration.
And honestly, Gen2 has its own quirks. We have hit edge cases where a Power Query transformation that worked in Gen1 behaves slightly differently in Gen2, usually around how some connectors handle null values or data type inference. None of these are showstoppers but they will catch you out if you assume a one-to-one mapping.
How Migration Actually Goes In Practice
There is no automated migration tool that takes a Gen1 dataflow and produces an equivalent Gen2 dataflow. You have to recreate them. The good news is that the Power Query M code is largely portable. You can copy the M from your Gen1 dataflow, paste it into a new Gen2 dataflow, and most of the time it will work.
What does not migrate automatically:
- Refresh schedules (you set these up again in Gen2)
- Dataflow-level row-level security configurations
- Computed entity dependencies (if you had Gen1 computed entities, you have to redesign these)
- Linked entities across dataflows (you redesign the same dependency in Gen2)
- Any connections to Gen1-specific features like DirectQuery to dataflows
For a small estate, we typically do the migration in three phases. First, build the Gen2 equivalents alongside the existing Gen1 dataflows, with output going to a staging destination. Second, validate that the outputs match by sampling rows and comparing aggregates. Third, cut over the downstream consumers (semantic models, reports, downstream pipelines) and decommission the Gen1 dataflows.
For larger estates, this becomes a real project. We have done a few of these now and the pattern that works is to prioritise the dataflows that are causing operational pain (slow refreshes, frequent failures, complex transformations). Move those first because they get the biggest benefit from Gen2 features like fast copy. The simple, well-behaved Gen1 dataflows can stay where they are for now.
A Word On Cost
This is the question every CFO eventually asks. Are Gen2 dataflows cheaper or more expensive than Gen1?
Honest answer: it depends, and the answer is not obvious.
Gen1 dataflows run on Power BI Premium capacity or Premium Per User licenses. Gen2 dataflows run on Fabric capacity, billed by capacity unit consumption. If you are already on a Fabric capacity for other reasons (Power BI Premium has been replaced by Fabric F-SKUs anyway), Gen2 dataflows are essentially free at the margin until you saturate the capacity.
But if you are running a small Power BI Pro environment with no premium capacity, Gen2 dataflows require you to provision a Fabric capacity for them to live in. That is a real cost increase.
For most mid-market and enterprise clients we work with, this is a non-issue. They already have Fabric capacity. For smaller clients on Pro-only licensing, the answer is different and we usually recommend staying on Gen1 (or Power BI Pro dataflows specifically) until they have a broader reason to move to Fabric capacity.
What I Would Actually Do
If I had to give a one-line recommendation, it would be this. Stop building new Gen1 dataflows. Build everything new in Gen2 from now on. Plan a migration of existing Gen1 dataflows over the next 12 to 18 months, prioritised by which ones are causing operational pain. Do not panic about Gen1 going away because Microsoft has not said it is going away.
For organisations running larger data estates, the migration is genuinely worth doing for the operational benefits (fast copy alone can save you hours of refresh time per day). For smaller estates with simple dataflows that run fine, there is no immediate urgency.
If you want help working out which category you are in, or you are planning a migration and want someone who has done this before to sanity-check the plan, our team does this kind of work regularly. You can get in touch here or read more about our data and AI services.
Reference: Migrate from Dataflow Gen1 to Dataflow Gen2 on Microsoft Learn