<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue in Data Engineering</title>
    <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5158756#M16017</link>
    <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You are right when you switch to&amp;nbsp;Append&amp;nbsp;mode, the built-in Incremental Refresh toggle becomes unavailable. This is by design. But you don't need it.&lt;/P&gt;&lt;P&gt;The approach I described earlier (incrementally amass data) replaces the built-in IR entirely. Here is the complete step-by-step for Dataflow Gen2 only:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 1&lt;/STRONG&gt; : Disable the built-in Incremental Refresh&lt;/P&gt;&lt;P&gt;Right-click your main query → Incremental Refresh → turn it off. You will not need it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 2&lt;/STRONG&gt; : Create a watermark query (get the max date already loaded)&lt;/P&gt;&lt;P&gt;Inside the same dataflow, click&amp;nbsp;Get Data&amp;nbsp;→ connect to your&amp;nbsp;Lakehouse&amp;nbsp;→ select the destination table (the one you are writing to).&lt;/P&gt;&lt;P&gt;Once loaded:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Select only the&amp;nbsp;CreatedDate&amp;nbsp;column&lt;/LI&gt;&lt;LI&gt;Go to&amp;nbsp;Transform&amp;nbsp;→&amp;nbsp;Statistics&amp;nbsp;→&amp;nbsp;Maximum&lt;/LI&gt;&lt;LI&gt;This gives you a single value: the last CreatedDate already in your table&lt;/LI&gt;&lt;LI&gt;Rename this query to&amp;nbsp;LastLoadedDate&lt;/LI&gt;&lt;LI&gt;Right-click it →&amp;nbsp;Enable load&amp;nbsp;→&amp;nbsp;OFF&amp;nbsp;(it's just a helper, not a destination)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Step 3&lt;/STRONG&gt; : Filter your source query using the watermark&lt;/P&gt;&lt;P&gt;Go back to your main source query. Add a filter step:&lt;/P&gt;&lt;P&gt;= Table.SelectRows(PreviousStep, each [CreatedDate] &amp;gt; LastLoadedDate)&lt;/P&gt;&lt;P&gt;Or via the UI:&amp;nbsp;Filter Rows&amp;nbsp;→&amp;nbsp;CreatedDate is after&amp;nbsp;→ reference&amp;nbsp;LastLoadedDate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 4&lt;/STRONG&gt; :&amp;nbsp; Set destination to Append&lt;/P&gt;&lt;P&gt;In Data Destination settings → change write method to&amp;nbsp;Append.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 5&lt;/STRONG&gt; :&amp;nbsp; Run&lt;/P&gt;&lt;P&gt;Each refresh will:&lt;/P&gt;&lt;P&gt;Read the current max date from your Lakehouse&lt;BR /&gt;Load only records newer than that date&lt;BR /&gt;Append them no duplicates, no data loss&lt;BR /&gt;On the very first run after setup, make sure your Lakehouse table already has the historical data (which you said it does).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;References&lt;/STRONG&gt; :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/tutorial-setup-incremental-refresh-with-dataflows-gen2" target="_blank"&gt;https://learn.microsoft.com/en-us/fabric/data-factory/tutorial-setup-incremental-refresh-with-dataflows-gen2&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh" target="_blank"&gt;https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;Hope this helps!&lt;/P&gt;</description>
    <pubDate>Sun, 26 Apr 2026 17:45:35 GMT</pubDate>
    <dc:creator>Tamanchu</dc:creator>
    <dc:date>2026-04-26T17:45:35Z</dc:date>
    <item>
      <title>Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156044#M15950</link>
      <description>&lt;P&gt;Hi All,&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a transaction table in a Dataflow Gen 2 on which I'm trying to enable incremental refresh. I first did a full refresh, then I set up the incremental refresh, but when I run it, it creates duplicate records for the date range of the incremental refresh.&lt;BR /&gt;&lt;BR /&gt;My transaction table has Single CreatedDate Columns: Neither of these values ever change after the record is created. Daily basis we get new data but I don't want to reload all the data just I need to load only new data arrived.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;I have set up the incremental refresh as follows:&lt;/P&gt;&lt;P&gt;- Column to filter by: CreatedDate&lt;/P&gt;&lt;P&gt;- Extract data from the past: 1 days&lt;/P&gt;&lt;P&gt;- Bucket size: days&lt;/P&gt;&lt;P&gt;- Only extract new data when the max value in this column changes: CreatedDate&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;I&amp;nbsp;&lt;/SPAN&gt;am writing the data to a Lakehouse, and the method is "Replace".&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;but I can't figure out how to get this to work without duplicating records. I assume that perhaps the issue is with Bucket where our data is getting duplicated for last day data if refresh is run mutliple times.&lt;BR /&gt;&lt;BR /&gt;Below Configuration we are using for Incremental Refresh.&lt;BR /&gt;&lt;BR /&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="image.png" style="width: 678px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1334518iF231A391B846582B/image-size/large?v=v2&amp;amp;px=999" role="button" title="image.png" alt="image.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 15:20:10 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156044#M15950</guid>
      <dc:creator>Naveen96</dc:creator>
      <dc:date>2026-04-22T15:20:10Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156157#M15954</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;The issue is that &lt;STRONG&gt;Replace mode and Incremental Refresh are fundamentally incompatible&lt;/STRONG&gt; in Dataflow Gen 2.&lt;/P&gt;&lt;P&gt;Here's what's happening under the hood :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Incremental refresh only pulls data matching your filter window (1 day in your case)&lt;/LI&gt;&lt;LI&gt;Replace mode wipes the entire destination table on every run, then writes whatever the dataflow just loaded&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Result : each refresh → delete everything → write only the last 1 day → either data loss or, depending on timing and retries, duplicates.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Fix : switch to Append mode&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;In your Data Destination settings, change the write method from &lt;STRONG&gt;Replace&lt;/STRONG&gt; to &lt;STRONG&gt;Append&lt;/STRONG&gt;. Incremental refresh is designed to work with Append it loads only new records and appends them to what's already in the Lakehouse table.&lt;/P&gt;&lt;P&gt;Make sure your incremental refresh filter (&lt;STRONG&gt;CreatedDate&lt;/STRONG&gt; &amp;gt; last max value) is tight enough to avoid re-loading already-written records.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;If you occasionally need a full reload&lt;/STRONG&gt;, do it manually by temporarily disabling incremental refresh and running a one-off Replace refresh then switch back to Append + incremental.&lt;/P&gt;&lt;P&gt;Reference: &lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh" target="_blank"&gt;https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope this unblocks you!&lt;/P&gt;</description>
      <pubDate>Wed, 22 Apr 2026 23:37:54 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156157#M15954</guid>
      <dc:creator>Tamanchu</dc:creator>
      <dc:date>2026-04-22T23:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156215#M15956</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P data-start="0" data-end="31"&gt;Thanks for reaching out to Microsoft Fabric Community.&lt;/P&gt;
&lt;P data-start="33" data-end="187"&gt;The duplication is not caused by the bucket itself. With your current setup (past 1 day and daily bucket), each refresh reprocesses the same 1 day window.&lt;/P&gt;
&lt;P data-start="33" data-end="187"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="189" data-end="485"&gt;Also, since CreatedDate is used for both filtering and change detection, the entire bucket gets refreshed whenever the max value changes. This can lead to duplicated data, especially if the same bucket is evaluated multiple times or data shifts between buckets.&lt;/P&gt;
&lt;P data-start="189" data-end="485"&gt;Reference:&amp;nbsp;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh#i-got-a-warning-that-i-used-the-same-column-for-detecting-changes-and-filtering-what-does-this-mean" target="_blank"&gt;Incremental refresh in Dataflow Gen2 - Microsoft Fabric | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P data-start="189" data-end="485"&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh#the-only-supported-update-method-in-the-data-destination-is-replace" target="_blank"&gt;Incremental refresh in Dataflow Gen2 - Microsoft Fabric | Microsoft Learn&lt;/A&gt;&lt;/P&gt;
&lt;P data-start="189" data-end="485"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="487" data-end="753" data-is-last-node="" data-is-only-node=""&gt;To avoid this, use a different column for change detection if available (for example, a LastModifiedDate) and keep CreatedDate only for filtering. If such a column is not available, adjust the incremental range so the same time window is not reprocessed across runs.&lt;/P&gt;
&lt;P data-start="487" data-end="753" data-is-last-node="" data-is-only-node=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="487" data-end="753" data-is-last-node="" data-is-only-node=""&gt;Hope this helps. Please reach out for further assistance.&lt;BR /&gt;Thank you.&lt;/P&gt;
&lt;P data-start="487" data-end="753" data-is-last-node="" data-is-only-node=""&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 23 Apr 2026 05:00:06 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5156215#M15956</guid>
      <dc:creator>v-veshwara-msft</dc:creator>
      <dc:date>2026-04-23T05:00:06Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157955#M16000</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/1357760"&gt;@Tamanchu&lt;/a&gt;,&lt;BR /&gt;&lt;BR /&gt;I have tried to Change the Write Method from Replace to Append but Append is not allowing to use Incremental Refresh in Dataflow Gen2. Does you have any Step-by-Step Guide to achive this in Dataflow Gen2 as I Can you other but I am strictly restricted to DataFlow gen2.&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2026 14:39:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157955#M16000</guid>
      <dc:creator>Naveen96</dc:creator>
      <dc:date>2026-04-24T14:39:34Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157961#M16001</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/882993"&gt;@v-veshwara-msft&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In my Case I don't have other Different Columns like LastModifiedDate. did you have Step by step guide to&amp;nbsp;&lt;SPAN&gt;adjust the incremental range so the same time window is not reprocessed across runs in dataflow gen2.&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2026 14:42:25 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157961#M16001</guid>
      <dc:creator>Naveen96</dc:creator>
      <dc:date>2026-04-24T14:42:25Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157999#M16005</link>
      <description>&lt;P class=""&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;,&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;I think that you don't actually need the built-in incremental refresh feature at all. Microsoft has an official pattern called "incrementally amass data" that does exactly what you want, entirely within Dataflow Gen2, using Append mode. Here is how to set it up for your scenario&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 1: Make sure your full load is done&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;You mentioned you already did a full refresh with Replace. That is your baseline. If your Lakehouse table already has all the historical data, you're good to move to step 2.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 2: Disable the built-in incremental refresh&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Open your dataflow, right click the query and turn off incremental refresh. You won't need it anymore.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 3: Create a helper query to get the max CreatedDate from your Lakehouse&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Still inside the same dataflow, click Get Data and connect to your Lakehouse. Select the transaction table that already has your data. Rename this new query to something like MaxCreatedDate. Then right click the CreatedDate column in the data preview and select Drill Down. After that, go to the ribbon and click List Tools, then Statistics, then Maximum. This gives you a single value: the most recent CreatedDate in your Lakehouse. Finally, right click this query and select Disable Staging (this is important because it's a helper query, not a data load).&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 4: Add a filter to your main source query&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Go back to your main query (the one that pulls from your transaction source). Add a filter step on CreatedDate with the operation set to "is greater than" and the value set to the parameter MaxCreatedDate (your helper query). When prompted to allow combining data from the source and the Lakehouse, confirm it.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 5: Change the data destination to Append&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Edit your data destination settings and switch the update method from Replace to Append. This works perfectly fine here because you are not using the built-in incremental refresh toggle anymore.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;Step 6: Publish and run&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Each time the dataflow runs, it reads the max CreatedDate from your Lakehouse, pulls only records with a CreatedDate greater than that value from your source, and appends them. No duplicates, no full reloads.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;How to do a full reload if you ever need one&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;Since you're restricted to Dataflow Gen2, just edit the dataflow, remove the filter step you added in Step 4, change the destination back to Replace, publish and run it once. After that, re-edit the dataflow to add the filter back and switch to Append again.&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;One thing to keep in mind&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;This pattern works best if you run the dataflow once a day after all your daily data has landed. The filter uses "greater than" so it picks up records with a CreatedDate strictly newer than what's already in the Lakehouse. If your CreatedDate is a date without a time component and you run the dataflow multiple times on the same day, records from that same day that arrive after the first run would be missed. If that is a concern and your table has a unique auto-incrementing ID column, you could use that column instead of CreatedDate for the filter, which is actually what Microsoft uses in their tutorial.&lt;/P&gt;&lt;P class=""&gt;&lt;STRONG&gt;(test on a dev environment first of course!)&lt;/STRONG&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;The full tutorial from Microsoft is here: &lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/tutorial-setup-incremental-refresh-with-dataflows-gen2" target="_blank" rel="noopener"&gt;Pattern to incrementally amass data with Dataflow Gen2&lt;/A&gt;&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Hope this helps!&lt;/P&gt;&lt;P class=""&gt;&amp;nbsp;&lt;/P&gt;&lt;P class=""&gt;Best regards,&lt;/P&gt;&lt;P class=""&gt;Carlos&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2026 15:18:47 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5157999#M16005</guid>
      <dc:creator>carlosmartins</dc:creator>
      <dc:date>2026-04-24T15:18:47Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5158756#M16017</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You are right when you switch to&amp;nbsp;Append&amp;nbsp;mode, the built-in Incremental Refresh toggle becomes unavailable. This is by design. But you don't need it.&lt;/P&gt;&lt;P&gt;The approach I described earlier (incrementally amass data) replaces the built-in IR entirely. Here is the complete step-by-step for Dataflow Gen2 only:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 1&lt;/STRONG&gt; : Disable the built-in Incremental Refresh&lt;/P&gt;&lt;P&gt;Right-click your main query → Incremental Refresh → turn it off. You will not need it.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 2&lt;/STRONG&gt; : Create a watermark query (get the max date already loaded)&lt;/P&gt;&lt;P&gt;Inside the same dataflow, click&amp;nbsp;Get Data&amp;nbsp;→ connect to your&amp;nbsp;Lakehouse&amp;nbsp;→ select the destination table (the one you are writing to).&lt;/P&gt;&lt;P&gt;Once loaded:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Select only the&amp;nbsp;CreatedDate&amp;nbsp;column&lt;/LI&gt;&lt;LI&gt;Go to&amp;nbsp;Transform&amp;nbsp;→&amp;nbsp;Statistics&amp;nbsp;→&amp;nbsp;Maximum&lt;/LI&gt;&lt;LI&gt;This gives you a single value: the last CreatedDate already in your table&lt;/LI&gt;&lt;LI&gt;Rename this query to&amp;nbsp;LastLoadedDate&lt;/LI&gt;&lt;LI&gt;Right-click it →&amp;nbsp;Enable load&amp;nbsp;→&amp;nbsp;OFF&amp;nbsp;(it's just a helper, not a destination)&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;&lt;STRONG&gt;Step 3&lt;/STRONG&gt; : Filter your source query using the watermark&lt;/P&gt;&lt;P&gt;Go back to your main source query. Add a filter step:&lt;/P&gt;&lt;P&gt;= Table.SelectRows(PreviousStep, each [CreatedDate] &amp;gt; LastLoadedDate)&lt;/P&gt;&lt;P&gt;Or via the UI:&amp;nbsp;Filter Rows&amp;nbsp;→&amp;nbsp;CreatedDate is after&amp;nbsp;→ reference&amp;nbsp;LastLoadedDate.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 4&lt;/STRONG&gt; :&amp;nbsp; Set destination to Append&lt;/P&gt;&lt;P&gt;In Data Destination settings → change write method to&amp;nbsp;Append.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Step 5&lt;/STRONG&gt; :&amp;nbsp; Run&lt;/P&gt;&lt;P&gt;Each refresh will:&lt;/P&gt;&lt;P&gt;Read the current max date from your Lakehouse&lt;BR /&gt;Load only records newer than that date&lt;BR /&gt;Append them no duplicates, no data loss&lt;BR /&gt;On the very first run after setup, make sure your Lakehouse table already has the historical data (which you said it does).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;References&lt;/STRONG&gt; :&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/tutorial-setup-incremental-refresh-with-dataflows-gen2" target="_blank"&gt;https://learn.microsoft.com/en-us/fabric/data-factory/tutorial-setup-incremental-refresh-with-dataflows-gen2&lt;/A&gt;&lt;/LI&gt;&lt;LI&gt;&lt;A href="https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh" target="_blank"&gt;https://learn.microsoft.com/en-us/fabric/data-factory/dataflow-gen2-incremental-refresh&lt;/A&gt;&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;BR /&gt;Hope this helps!&lt;/P&gt;</description>
      <pubDate>Sun, 26 Apr 2026 17:45:35 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5158756#M16017</guid>
      <dc:creator>Tamanchu</dc:creator>
      <dc:date>2026-04-26T17:45:35Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5159198#M16030</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P data-start="31" data-end="54"&gt;Thanks for the update.&lt;/P&gt;
&lt;P data-start="56" data-end="278"&gt;I was able to reproduce the same behavior in my environment. Initially, I performed a full refresh which loaded all the data into the Lakehouse. After that, I enabled incremental refresh with a rolling window (past 1 day).&lt;/P&gt;
&lt;P data-start="280" data-end="433"&gt;On teh next run, the same 1 day bucket was processed again, and since that data was already loaded during the full refresh, it resulted in duplicates.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="vveshwaramsft_0-1777287500879.png" style="width: 400px;"&gt;&lt;img src="https://community.fabric.microsoft.com/t5/image/serverpage/image-id/1334943iF85BCA886BCB5496/image-size/medium?v=v2&amp;amp;px=400" role="button" title="vveshwaramsft_0-1777287500879.png" alt="vveshwaramsft_0-1777287500879.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="435" data-end="696" data-is-last-node="" data-is-only-node=""&gt;So this is not caused by the bucket itself, but by doing a full refresh first and then enabling incremental refresh with an overlapping window.&lt;/P&gt;
&lt;P data-start="435" data-end="696" data-is-last-node="" data-is-only-node=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="435" data-end="696" data-is-last-node="" data-is-only-node=""&gt;&lt;STRONG&gt;To avoid this, incremental refresh needs to be enabled from the beginning so that the data is loaded without overlap.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P data-start="435" data-end="696" data-is-last-node="" data-is-only-node=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="625" data-end="896"&gt;Also to clarify, when incremental refresh is enabled from the beginning, it does not load full historical data automatically. It only loads data based on the configured range, and the bucket size (for example, Day) just defines how that data is partitioned and refreshed.&lt;/P&gt;
&lt;P data-start="625" data-end="896"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="898" data-end="1324"&gt;So if your requirement is to have both historical data and incremental loads, you can configure it in one go using incremental refresh itself. Set “Extract data from the past” to cover your required history (for example, 1 year or more), keep the appropriate bucket size (for example, Day), and run the dataflow. The first run will load that historical range, and subsequent runs will continue incrementally within that range.&lt;/P&gt;
&lt;P data-start="898" data-end="1324"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="1326" data-end="1498" data-is-last-node="" data-is-only-node=""&gt;The duplication happens specifically when a full refresh is done first and then incremental refresh is enabled with a rolling window that overlaps with already loaded data.&lt;/P&gt;
&lt;P data-start="1326" data-end="1498" data-is-last-node="" data-is-only-node=""&gt;&amp;nbsp;&lt;/P&gt;
&lt;P data-start="1326" data-end="1498" data-is-last-node="" data-is-only-node=""&gt;Hope this helps. Please reach out for further assistance.&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 27 Apr 2026 11:53:50 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5159198#M16030</guid>
      <dc:creator>v-veshwara-msft</dc:creator>
      <dc:date>2026-04-27T11:53:50Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5176231#M16085</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;Just wanted to check if the response provided was helpful. If further assistance is needed, please reach out.&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Thu, 30 Apr 2026 12:18:18 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5176231#M16085</guid>
      <dc:creator>v-veshwara-msft</dc:creator>
      <dc:date>2026-04-30T12:18:18Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5176895#M16092</link>
      <description>&lt;P&gt;Thanks,&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/882993"&gt;@v-veshwara-msft&lt;/a&gt;&amp;nbsp;it was helpful.&lt;/P&gt;</description>
      <pubDate>Sat, 02 May 2026 18:25:45 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5176895#M16092</guid>
      <dc:creator>Naveen96</dc:creator>
      <dc:date>2026-05-02T18:25:45Z</dc:date>
    </item>
    <item>
      <title>Re: Incremental Refresh on Dataflow Gen 2 when we are using Replace at Data Destination in Lakehosue</title>
      <link>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5177142#M16100</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.fabric.microsoft.com/t5/user/viewprofilepage/user-id/926160"&gt;@Naveen96&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;Thanks for the update. Could you please consider marking the helpful reply as Accepted solution as that would help others find the solution quickly.&lt;BR /&gt;&lt;BR /&gt;If you need any further assistance, please reach out.&lt;BR /&gt;Thank you.&lt;/P&gt;</description>
      <pubDate>Mon, 04 May 2026 04:08:34 GMT</pubDate>
      <guid>https://community.fabric.microsoft.com/t5/Data-Engineering/Incremental-Refresh-on-Dataflow-Gen-2-when-we-are-using-Replace/m-p/5177142#M16100</guid>
      <dc:creator>v-veshwara-msft</dc:creator>
      <dc:date>2026-05-04T04:08:34Z</dc:date>
    </item>
  </channel>
</rss>

