Wrangling Data Flows vs Mapping Data Flows in ADF

Azure Data Factory has two visual ways to transform data: mapping data flows, built as a graph, and wrangling with Power Query. Both run on Spark. This guide compares authoring, connectors, supported functions and limits, shows what each is good at, and explains how the choice carries into Microsoft Fabric.

GloryTecks Team

Training & Placement Faculty

6 May 2026 7 min read

Last updated: 2 October 2026

Share:

Azure Data Factory offers two ways to transform data without writing Spark code, and their names do not help. Mapping data flows are built as a graph of transformations. Wrangling data flows, which the product now presents as the Power Query activity, are built in the same Power Query editor that Excel and Power BI users know. This guide compares the two and says which suits which job.

What each one is

Mapping data flows are visually designed transformations that run as pipeline activities on Spark clusters the service manages (Microsoft Learn: mapping data flows). You place a source, add transformations such as Join, Aggregate and Conditional split, and end in one or more sinks. Mapping data flows in ADF introduces them.

Wrangling uses Power Query. Data Factory integrates with Power Query Online and makes Power Query M functions available as a pipeline activity (Microsoft Learn: data wrangling). You see your data in a grid, apply steps from a ribbon, and each step becomes a line of M.

The same engine underneath

The important fact is easy to miss: both run on Spark. Data Factory translates the M that the Power Query editor generates into data flow script, and runs that on the data flow Spark environment. Wrangling is, in effect, a different front end for the same engine.

Two consequences follow. A Power Query activity starts a cluster like any data flow, so it is not a lightweight option for tiny jobs. And only the M that can be translated to Spark is allowed, which is the source of most of its limits.

The differences that matter

Mapping data flowPower Query wrangling
AuthoringA graph of transformations, each with a settings panelA data grid with applied steps
LanguageData flow expression languagePower Query M
You seeThe shape of the stream at each stepThe data itself, at once
SourcesA long list of Azure, database and file connectorsFive connectors
SinksSeveral per flowOne
Update, upsert and delete in a databaseYes, with Alter rowNot part of the documented feature set
Row-level error handlingAssert and error-row outputNot supported
Function coverageThe full expression languageA subset of M

What Power Query wrangling supports

Sources. Microsoft lists five connectors: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure SQL Database and Azure Synapse Analytics. For the three storage connectors the formats are CSV, Parquet and Excel.

Functions. The supported list is organised by task (Microsoft Learn: wrangling functions):

  • Columns: select, remove, rename, reorder.
  • Rows: Table.SelectRows with comparisons on numbers, text and dates, text containment, and combinations with and, or and not.
  • New and changed columns: Table.AddColumn, Table.TransformColumns, Table.ReplaceValue, with arithmetic, text and date functions and if expressions.
  • Joins: inner, left outer, right outer and full outer.
  • Grouping: Table.Group with sum, count, average, min, max, standard deviation, first and last.
  • Sorting, and keeping or removing a number of rows from the top.

A script that stays inside that list:

powerquery
let
    Source = Orders,
    Recent = Table.SelectRows(Source, each [OrderDate] >= #date(2024, 1, 1)),
    WithName = Table.AddColumn(Recent, "Customer", each [FirstName] & " " & [LastName]),
    Totals = Table.Group(WithName, {"Country"}, {{"Revenue", each List.Sum([Total]), type number}})
in
    Totals

This is written from Microsoft's supported list and has not been run in Data Factory.

Where wrangling stops

The editor lets you click steps that the Spark translation cannot run. Microsoft says so directly: not all M functions are supported for wrangling, despite being available during authoring. The error names the cause, either that the Power Query Spark runtime does not support the function, or that the logic "requires dynamic access to rows of data, which cannot be scaled out".

The documented gaps:

Function or featureStatus
Table.PromoteHeadersNot supported; set first row as header in the dataset
Table.CombineColumnsNot supported directly; add a column that concatenates
Table.TransformColumnTypesSupported in most cases; not for text to currency, time or percentage, or with a locale
Table.NestedJoinThe joined column must be expanded, or validation fails
Table.RemoveLastNNot supported
Table.RowCountNot supported; add a column of 1 and sum it
Table.TransposeNot supported
Row-level error handlingNot supported

Three structural limits apply as well:

  • One sink. A Power Query activity needs at least one source and allows only one sink, chosen when you add the activity to a pipeline (Microsoft Learn: wrangling tutorial).
  • One query to work in. Source datasets appear as queries, and all transformations must be made on the query named UserQuery. Renaming, adding and deleting queries is not supported.
  • A single output file needs a setting. The output is partitioned as Spark writes it. For one file, the sink's partition option has to be set to single partition.

The pattern is consistent: anything that depends on the position of a row, last rows, row counts, transposing, is hard to do when data is spread across a cluster.

Status: check this before starting new work

Microsoft's comparison of Azure Data Factory with Fabric Data Factory lists the Power Query activity, which it also calls the wrangling dataflow, as deprecated on the Azure Data Factory side (Microsoft Learn: differences between Data Factory in Fabric and Azure). The Data Factory pages for the feature itself carried no such notice when this article was written.

The safe reading is this. Pipelines that already use the Power Query activity are still documented. It is not something to choose for new pipelines in Azure Data Factory. New Power Query work belongs in Dataflow Gen2 in Fabric, which is where Microsoft maps it.

Which to use

SituationBetter choice
Exploring an unfamiliar dataset and shaping it as you lookPower Query, bearing its status in mind
The team knows Power Query from Excel or Power BIPower Query, or Dataflow Gen2 if Fabric is available
A known target table with a defined mappingMapping data flow
Updates, upserts or deletes in a databaseMapping data flow
Slowly changing dimensions, deduplication, window calculationsMapping data flow
Several outputs from one readMapping data flow
Bad rows must be caught and routedMapping data flow
A source outside the five connectorsMapping data flow, or copy the data into the lake first

Microsoft frames wrangling as suited to exploration and less formal analytics, where you are not mapping to a known target, and names data engineers and "citizen data integrators" as its users. That is a fair summary. Power Query is the faster way to understand and tidy data. A mapping data flow is the more complete way to load a warehouse. The transformation reference shows how much more there is on that side.

How the choice carries into Microsoft Fabric

Microsoft describes Data Factory in Fabric as the next generation of Azure Data Factory. There, the standard dataflow, Dataflow Gen2, is authored in the Power Query Online interface, and Microsoft publishes a guide that maps each mapping data flow transformation to its Power Query equivalent (Microsoft Learn: Fabric guide for mapping data flow users): Join becomes Merge queries, Aggregate becomes Group by, Derived column becomes Custom column.

Two points from that guide matter for planning:

  • Four transformations have no Dataflow Gen2 equivalent: Assert, Alter Row, Stringify and Window.
  • Mapping data flow transforms can also run in Fabric, as a feature the guide describes as in preview, with a migration experience for eligible pipelines.

So Power Query skill is not a dead end, quite the opposite, and a library of mapping data flows is not stranded. If you are learning from the start, the Power Query material in the Power Query tutorial and M language basics applies in both places.

Mistakes to avoid

  • Assuming every Power Query step will run. Validate early, by running the activity in a pipeline debug run, before building twenty steps on an unsupported one.
  • Using wrangling for a tiny file because it feels light. It starts a Spark cluster. Data flow debug and performance explains the start-up cost.
  • Editing the dataset queries. Changes outside UserQuery are not kept.
  • Expecting database merges. Microsoft's wrangling documentation describes writing the result to a sink, with nothing equivalent to Alter row.

Are wrangling data flows and Power Query in ADF the same thing?

Yes. Wrangling is done with the Power Query activity, which uses the Power Query Online editor inside Data Factory.

Do wrangling data flows run on Spark?

Yes. Data Factory translates the M script into data flow script and runs it on the data flow Spark environment.

Can I use any Power Query M function in ADF?

No. Only a documented subset is supported, and some functions that the editor offers fail at validation or run time.

Which should a beginner learn first?

Mapping data flows cover more of what a warehouse load needs. Power Query is quicker for exploration and is the authoring experience for Dataflow Gen2 in Microsoft Fabric.

Azure Data Factory and data transformation tools are covered in the Data Engineering course.

Sources

GloryTecks Team

Training & Placement Faculty

The GloryTecks faculty team mentors learners across Data Science, AI and Data Engineering, with a focus on real-time projects and placement readiness in Hyderabad.

Want to master Azure Data Factory?

Join GloryTecks’ expert-led Data Engineering training in Hyderabad with real-time projects and 100% placement support.

Explore course