Tableau Migration Extracts Dataflows

Tableau Extracts to Power BI Dataflows: What Maps Where, and When a Dataflow Is Worth It

July 28, 2026

The mapping most migration plans assume here is wrong. A Tableau extract is a cache belonging to one workbook, and its Power BI counterpart is Import mode inside a semantic model, not a dataflow. A dataflow is reusable preparation logic that many models can share. Its closest Tableau relatives are a published data source or a Tableau Prep flow. So the real question is not how to turn extracts into dataflows, it is which of your extracts were doing a job that deserves one.

What each Tableau artefact actually maps to

TableauPower BINotes
Extract used by one workbookImport-mode semantic modelNo dataflow needed, see Hyper files to Power BI
The same extract logic repeated in many workbooksDataflowThe case dataflows exist for
Published data sourceShared semantic modelReuses the model, not just the tables
Tableau Prep flowDataflowPreparation as its own scheduled artefact
Extract refresh scheduleDataflow refresh plus model refreshTwo schedules to sequence, not one
Extract filters and aggregationPower Query steps in the dataflowWritten once, inherited everywhere
Analysts connecting straight to productionDataflow as the only exposed layerA documented reason to use them

When a dataflow earns its place

Microsoft lists the scenarios dataflows are designed for, and they map neatly onto problems Tableau estates usually have: reusable transformation logic that many semantic models and reports share, a single curated source of truth, persistence into your own Azure Data Lake Gen2 storage, and stronger security around the underlying sources by exposing dataflows to report creators instead of database credentials.

A practical rule follows from that. If one workbook owned the extract, import into the model and move on. If the same joins, filters and cleanup were pasted into five workbooks because that was the only way to share them in Tableau, that repetition is the dataflow. Migrations that skip this step reproduce the copy-paste estate in a new tool, which is the one outcome nobody is paying for.

Gen1 or Gen2

Power BI Dataflow Gen1 is now in a legacy state and, in Microsoft's words, "won't receive new feature investment". Dataflow Gen2 is the recommended path for customers with Fabric access, and it requires a Fabric capacity, a Fabric trial capacity, or a Power BI Premium capacity. Pro and PPU customers can keep using Gen1.

CapabilityGen1Gen2
Authoring in Power QueryYesYes
Output destinations beyond internal storageNoYes, including Lakehouse, Warehouse, Azure SQL and Snowflake
DirectQuery through the dataflow connectorYesNo
Runs inside pipelinesNoYes
Licensing floorProFabric or Premium capacity

The DirectQuery row is the one that catches migrations out. A Tableau live connection that you planned to reproduce as DirectQuery over a dataflow works on Gen1 and not on Gen2, so that pairing has to be settled before anyone starts building.

Computed tables, and the line where Premium starts

Computed tables perform in-storage computation: transformations run against data already sitting in dataflow storage rather than going back to the source database. That is what makes a layered design possible, where a raw table is loaded once and enriched tables are derived from it, and it is also where the licensing line sits, since in-storage computation needs a Premium subscription.

It maps onto something Tableau users already do by hand. An extract that pulls a wide table and a second extract that aggregates the same data is exactly a raw table plus a computed table, built twice because Tableau had nowhere to keep the intermediate result.

You now have two refresh schedules

An extract had one schedule. A dataflow feeding a semantic model has two, and the model's refresh has to run after the dataflow that supplies it, or reports show yesterday's numbers while everything reports success. Gen1 leaves that sequencing to you, spaced far enough apart that the first finishes before the second starts. Gen2 runs inside pipelines, so the dependency can be expressed rather than estimated, which is the stronger reason to prefer it for anything a business actually depends on.

Dataflow or shared semantic model?

Both are reuse, at different layers, and the choice is not either-or. A dataflow reuses tables: the query logic, the cleanup, the source credentials. A semantic model reuses the model: relationships, measures, formatting and row-level security. A Tableau published data source carried both at once, which is why it splits into two decisions during migration rather than one.

For most estates the answer is layered. Dataflows where several models share preparation, shared semantic models where several reports share business logic, and neither where a single report owns its data end to end.

What Antares does with extracts

The Analyzer inventories every data source in every workbook and records whether each is live or extract-backed, together with what it connects to. Read across workbooks, that inventory answers the question this page opens with: which preparation logic repeats, and therefore which extracts are dataflow candidates rather than one-off imports.

Moving the rows themselves is out of scope by design. Analysis and conversion read metadata only, never business data, and the data platform decisions stay with the people who own the platform. Run the free Analyzer to see which sources repeat across your own workbooks.

Related reading: Hyper files to Power BI and data sources to semantic models. Primary sources: Microsoft's dataflow configuration guide and the Gen1 versus Gen2 comparison.

← Back to Complete Migration Guide

Related Migration Resources

Frequently asked questions

Is a Power BI dataflow the equivalent of a Tableau extract?

No. An extract is a cache belonging to one workbook, and its counterpart is Import mode inside a semantic model. A dataflow is reusable preparation logic that many models share, which puts it closer to a Tableau published data source or a Tableau Prep flow.

When should a Tableau extract become a dataflow?

When the same joins, filters and cleanup were repeated across several workbooks because that was the only way to share them. One workbook owning an extract needs no dataflow. Microsoft also documents dataflows for exposing curated data instead of source credentials.

Should I use Dataflow Gen1 or Gen2?

Gen2 for new work: Gen1 is in a legacy state and will not receive new feature investment. Gen2 needs a Fabric or Power BI Premium capacity, supports output destinations such as Lakehouse and Warehouse, and runs inside pipelines. One catch: DirectQuery through the dataflow connector works on Gen1 only.

What replaces the extract refresh schedule?

Two schedules instead of one. The dataflow refreshes, then the semantic model that reads it refreshes, and the second must run after the first. Gen1 leaves the spacing to you; Gen2 can express the dependency inside a pipeline.

Let's talk migration.

Get your free Migration Readiness Score, or talk to our team about end-to-end delivery.