(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisbon

How to create a Dataflow Gen2 in Microsoft Fabric

João Barros 09 de July de 2026 4 min read

Dataflow Gen2 is the simplest way to prepare data in Microsoft Fabric without writing code: it uses the visual Power Query editor to connect to a source, clean the data, and save it to a destination such as a Lakehouse. Unlike a Spark notebook, it requires no programming, and unlike a plain pipeline, it includes rich point-and-click transformations. It is ideal for building a reusable, schedulable ingestion in just a few minutes.

Prerequisites

  • An active Fabric capacity (a free trial works) and permissions to create items.
  • A workspace attached to that capacity.
  • A Lakehouse already created in the workspace to receive the data.
  • An accessible data source — in this example, a public CSV file available via URL.

Step 1: Create the Dataflow Gen2 in your workspace

Open your workspace in Fabric. Click + New item and choose Dataflow Gen2. When it opens, you will see the Power Query editor, with a ribbon at the top and the Queries pane on the left. Give the dataflow a clear name, for example df_sales_bronze, so you can find it easily later. A good name saves a lot of time as the workspace grows.

Step 2: Connect to the data source

In the editor, click Get data and choose the source type. For a CSV hosted at a URL, select Web and paste the file address. Power Query shows a preview of the first rows, which lets you confirm the connection is correct before continuing. If the first row contains column names but appears as data, apply Use first row as headers to promote the header.

Step 3: Transform the data in Power Query

Now clean the data with the visual transformations. Every action you take is recorded as an applied step, in the pane on the right, so you can always go back or reorder steps. Common operations include:

  • Removing unnecessary columns with Remove columns.
  • Fixing each column's type (date, number, text) in the header.
  • Filtering out invalid, duplicate, or empty rows.
  • Renaming columns to consistent, readable names.

If you need something more specific, the Advanced editor button shows the M code generated behind each step. For example, to keep only sales with a positive value:

= Table.SelectRows(Source, each [Total] > 0)

Step 4: Set the Lakehouse as the destination

This is the step that sets Dataflow Gen2 apart from a simple query: the data destination. In the bottom-right corner of the query, click the + icon next to Data destination and choose Lakehouse. Select the workspace, the target Lakehouse, and the table name — for example sales.

Also choose the update method: Replace overwrites the table on each run, while Append adds rows to the existing ones. For a bronze staging table, Replace is usually the most predictable, because it guarantees a result identical to the source on every run.

Tip: keep heavy transformations for later layers (silver/gold). In the bronze layer, the goal is simply to bring the data in reliably.

Step 5: Publish and run the dataflow

Click Publish. Fabric saves the dataflow and starts the first run (refresh). Progress appears in the workspace item list, with a status indicator. When the status turns to completed successfully, the data has already been written to the Lakehouse table.

Verify the result

Open the Lakehouse in the workspace and expand the Tables folder. You should see the sales table created by the dataflow. Click it to preview the rows. For extra confirmation, use the Lakehouse SQL analytics endpoint and run a quick query:

SELECT COUNT(*) AS total_rows FROM sales;

If the row count matches what you expected, the pipeline is working correctly.

Conclusion

You have built a low-code ingestion pipeline that connects to a source, transforms the data, and loads it into a Lakehouse — all without leaving Fabric. The natural next step is to schedule the refresh of the dataflow (in the item settings, under Schedule) to keep the table fresh, and to connect a Power BI report on top, taking advantage of Direct Lake. Which data source in your company would make the most sense to automate first?