Why this comparison matters in 2026
Teams leaving Tableau for Microsoft Fabric often ask whether Tableau Prep maps to “Power BI dataflows.” The accurate modern target is Dataflow Gen2 in Fabric Data Factory—not the older Power BI–only Dataflow Gen1 storage model.
Both Prep and Dataflow Gen2 are low-code tools for ingest, clean, reshape, and load. They are not interchangeable UIs. Prep is built around flows that publish extracts or published data sources into Tableau. Dataflow Gen2 is built around Power Query queries that land data in Fabric and external destinations, then feed lakehouses, warehouses, semantic models, notebooks, and pipelines.
Microsoft’s guidance is clear: if you are starting fresh in Fabric, prefer Dataflow Gen2 for enhanced destinations, monitoring, pipeline integration, and compute—not Gen1. (Dataflow Gen1 vs Gen2)
What Tableau Prep is (today)
Per Tableau Prep Help, Prep covers:
- Connect to files, databases, and published sources
- Clean and shape (types, filters, pivots, aggregates, joins, unions)
- Optional R / Python script steps in a flow
- Output extracts and published data sources
- Author in Prep Builder and, since 2020.4, on the web
Prep Conductor vs web authoring
Tableau’s licensing nuance matters for migration planning (Publish a flow, Keep flow data fresh):
| Capability | Requirement (Tableau docs) |
|---|---|
| Publish flows; run manually on Server/Cloud | Available without Data Management (since 2020.4.1) |
| Create/edit flows on the web | Creator role; Data Management not required for authoring |
| Schedule flows to keep outputs fresh | Tableau Prep Conductor (Data Management), enabled on the site |
Scheduled Prep work usually means: publish the flow → configure output steps → create a flow task with full or incremental refresh (Schedule flow tasks).
Prep outputs commonly become published Tableau data sources or extract files that many workbooks consume. That output contract—not the Prep canvas itself—is what Power BI / Fabric reports must replace.
What Fabric Dataflow Gen2 is
Dataflow Gen2 is Fabric’s cloud Power Query experience for:
- Connecting to a wide set of sources
- Transforming with 300+ Power Query operations
- Loading to multiple destinations (not only internal dataflow storage)
- Autosave, background publish, Monitoring Hub refresh history
- Orchestration via Fabric pipelines
- High-performance Fabric SQL compute (with system staging Lakehouse/Warehouse items you can ignore)
- Optional Copilot assistance for transforms
Gen2 vs Gen1 (why Gen1 is the wrong default)
| Capability | Dataflow Gen2 | Dataflow Gen1 (classic Power BI dataflow) |
|---|---|---|
| Power Query authoring | Yes | Yes |
| Multiple output destinations | Yes | No (primarily internal storage) |
| Autosave / background publish | Yes | Limited |
| Pipeline activity integration | First-class | Limited |
| High-scale Fabric compute / staging | Yes | No |
| DirectQuery via dataflow connector | — | Gen1 supported this pattern |
| CI/CD + Git for new items | Default for new Gen2 (as of Fabric’s 2026 Gen2 CI/CD default) | N/A |
Microsoft also notes that as of April 2026, new Dataflow Gen2 items are created with CI/CD and Git integration by default; classic Gen2-without-CI/CD is no longer offered for new items. Existing classic Gen2 items continue to work; use Save As to move forward. (Gen1 vs Gen2 overview)
Where Gen2 can land data
Supported destinations include (Dataflow Gen2 destinations):
- Fabric Lakehouse tables or files
- Fabric Warehouse, SQL database, KQL database
- Azure SQL, Azure Data Explorer, ADLS Gen2
- Snowflake, PostgreSQL, SharePoint files
For each query you can create a new table or map to an existing table, with replace or append update methods. Automatic managed mapping (schema evolves on republish) is available for some destinations such as Lakehouse and Azure SQL—useful when Prep-style “output schema drifts” were common.
Licensing: Dataflow Gen2 needs Fabric capacity, Fabric trial, or Power BI Premium capacity. (Overview)
Side-by-side: Prep flow vs Dataflow Gen2
| Concern | Tableau Prep + Conductor | Fabric Dataflow Gen2 |
|---|---|---|
| Authoring metaphor | Visual flow steps (clean, join, pivot, aggregate, script) | Power Query queries + diagram/view; M under the hood |
| Primary audience product | Tableau Server / Cloud analytics | Fabric / Power BI / lakehouse analytics |
| Typical output | Hyper extract, published data source, file/DB output | Lakehouse table/file, Warehouse, Azure SQL, Snowflake, etc. |
| Scheduling | Prep Conductor flow tasks (full/incremental) | Dataflow refresh + optional pipeline orchestration |
| Shared reuse | Published data source consumed by workbooks | Destination tables consumed by semantic models, notebooks, reports |
| Script / advanced logic | R/Python steps in flow | Notebooks, pipelines, Spark—or Copilot-assisted M |
| Monitoring | Flow health / run history on Server/Cloud | Monitoring Hub + Gen2 refresh history |
| Versioning | Flow versions on Server/Cloud | Gen2 with Git / CI/CD (current default for new items) |
Conceptual mapping (not 1:1)
| Prep concept | Closest Gen2 / Fabric pattern |
|---|---|
| Input step | Power Query get-data / connection |
| Clean / pivot / aggregate / join / union steps | Power Query applied steps |
| Output → published data source | Gen2 destination → Lakehouse/Warehouse table + shared semantic model |
| Output → extract file | Lakehouse files or Warehouse table (prefer tables for analytics) |
| Prep Conductor schedule | Dataflow refresh schedule and/or pipeline trigger |
| Incremental flow refresh | Gen2 incremental patterns / destination append + upstream incremental load |
| R/Python in flow | Fabric notebook activity in a pipeline after (or instead of) Gen2 |
| Many workbooks on one Prep output | Many reports on one Lakehouse/Warehouse table + one semantic model |
There is no official converter that turns a .tflx into a Dataflow Gen2 artifact. Migration is rebuild against the business rules and output contract, not a canvas screenshot copy.
How to migrate Prep → Dataflow Gen2
1. Inventory Prep like a data product
For each flow, capture:
- Inputs (DB, files, published sources) and auth method
- Transform intent (not only step names)—grain, keys, business rules
- Outputs (published source name, extract path, columns, refresh type)
- Consumers (workbooks, other flows)
- Schedule / SLA via Conductor
- Script steps (R/Python) that will not belong in Gen2 alone
Tableau’s publish and schedule docs are the source of truth for what is actually productionized versus desktop-only (Publish a flow).
2. Choose Gen2 vs “push upstream”
| Choose Dataflow Gen2 when… | Choose Warehouse / Lakehouse SQL, dbt, or notebooks when… |
|---|---|
| Citizen-friendly cleans and reshapes | Very large volumes or complex window logic |
| Output should land in Fabric items Gen2 supports | Logic already belongs in enterprise ELT |
| You want Power Query reuse + pipeline triggers | Prep was only a thin wrapper over SQL that should stay SQL |
| Schema evolves often and managed mapping helps | Strict governed contracts owned by a platform team |
Many programs use both: Gen2 for departmental prep; curated SQL/dbt for platform marts.
3. Rebuild in Dataflow Gen2
- Create a Dataflow Gen2 item in the Fabric workspace (CI/CD-enabled Gen2 for new work).
- Recreate queries in Power Query; validate row counts and key columns against Prep output for a fixed business date.
- Set a destination (start with Lakehouse tables or Warehouse for analytics). Prefer replace until parity is proven; then consider append/incremental.
- Publish the dataflow; confirm refresh in Monitoring Hub.
- Point the semantic model at the new tables—do not leave reports bound to leftover Tableau extracts.
- Optionally wrap the dataflow in a pipeline (copy → Gen2 → notebook → refresh semantic model) for multi-step jobs. (Pipelines with dataflows)
4. Cut over Conductor schedules
- Run Gen2 on the same cadence as the Prep flow task.
- Rebind or republish Power BI reports to Fabric models fed by Gen2 destinations.
- Disable Prep Conductor tasks only after consumers are off the Tableau published source.
- Archive the Prep flow; keep documentation of business rules that lived only in the canvas.
Gen1 Power BI dataflows: when they still appear
You may still see workspace dataflows (Gen1) in Power BI. For Fabric-era migrations, treat Gen1 as legacy unless you have a hard dependency (for example an existing DirectQuery-via-dataflow pattern). Microsoft’s feature table and “starting fresh → Gen2” recommendation are the current baseline. If you must move Gen1 → Gen2, Microsoft documents export/import templates, copy/paste queries, and Save As. (Migrate to Gen2)
Common pitfalls
- Rebuilding Prep into report-local Power Query inside every PBIX—recreates Prep sprawl
- Targeting Gen1 because “we always used Power BI dataflows”
- Ignoring Prep output contracts (published source field list) and only copying visible clean steps
- Leaving file inputs on network paths Tableau could reach but Fabric gateways/capacities cannot
- Expecting Gen2 to replace R/Python Prep scripts without a notebook plan
- Turning off Conductor before semantic models refresh from Gen2 destinations
Checklist
- [ ] Prep flows inventoried with inputs, outputs, consumers, Conductor schedules
- [ ] Destination pattern chosen: Dataflow Gen2 vs warehouse/dbt vs notebook
- [ ] Gen2 queries rebuilt; row/grain parity validated vs Prep
- [ ] Destinations set (Lakehouse/Warehouse/etc.); refresh monitored
- [ ] Semantic models and reports rebound to Fabric tables
- [ ] Prep Conductor tasks disabled after cutover
- [ ] Gen1 avoided for net-new work unless a documented exception exists
Official references
- Microsoft: Differences between Dataflow Gen1 and Dataflow Gen2
- Microsoft: Dataflow Gen2 data destinations and managed settings
- Tableau: Tableau Prep Help (welcome)
- Tableau: Publish a flow to Tableau Server or Cloud
- Tableau: Keep flow data fresh (Prep Conductor)
- Tableau: Schedule flow tasks