Forum Discussion

Felpan's avatar
Felpan
Frequent Visitor
9 months ago
Solved

Building an Incremental Loading Solution in Microsoft Fabric - Challenges with Custom SharePoint Nav

I'm building an incremental loading dataflow in Microsoft Fabric to process budget data from Excel files stored in SharePoint. The solution WORKS, but requires 5+ steps and manual notebook execution—...
  • Vinodh247's avatar
    9 months ago

    Yes incremental refresh in fabric dataflow gen2 requires a direct query folding compatible data source and SharePoint.Contents() breaks folding. Once folding is broken fabric cannot automatically track deltas or apply range filters which makes incr refresh unavailable.

     

    1. REST API based SharePoint access:
    you can implement incr refresh if you switch to the sharePoint REST API or Graph API via Web.Contents(). This approach allows you to control pagination and filtering (?$filter=Modified ge ...), making the source foldable-like and enabling fabric’s incremental refresh to work.

     

    2. Fabric native alternative:

    more maintainable architecture is:

    • Use a dataflow gen2 (staging) that calls the sharePoint REST API and lands metadata (file name, modified date, path) in Lakehouse in replace mode.

    • Use a 2nd dataflow or data Pipeline to perform incremental merge (using ModifiedDate as watermark) into a curated Lakehouse table.

    • Use notebook or data pipeline activity only for business logic, not deduplication. Fabric’s delta merge in Lakehouse (via Spark SQL MERGE INTO) can handle updates natively.

    In short I can advise the following, you have to decide which would be apt to your scenario:

    • Incremental refresh = not supported with SharePoint.Contents() or custom recursive functions

    • Switch to REST API + metadata staging + Lakehouse merge for a Fabric native automated, and scalable incremental load.