Forum Discussion
Upsert Copy data activity in Fabric Pipelines when the destination is Lakehouse
When upsert in copy data activity will be GA if the destination is lakehouse?
For some destinations(warehouse or SQL Server) I dont see preview next to upsert. Is the feature only GA for certain connections ?
Hi fabanalytics,
At the moment, there isn’t any official timeline for when the Preview label will be removed. Based on the Microsoft Fabric Roadmap, the feature is already listed as Shipped (GA), but the UI and documentation are still not fully aligned, which is why you continue to see it as Preview. For now, it’s best to continue as you are doing and validate thoroughly and proceed with caution for production, until we see an official update confirming full alignment across UI and docs.Thank you for using the Microsoft Fabric Community Forum.
10 Replies
- NandanHegde
Super User
fabanalytics The Upsert functionality across some sources like SQL server, databases etc has been from beginning hence it is GA; whereas for the lakehouse it was introduced couple of month back hence it is still in preview.
MSFT product team can provide a timeline by when it can be GA - rizalard0684
Resolver III
If you check fabric roadmap (Click data factory -> All), it is written:
"Customers will be able to upsert (insert and update) data to a broader range of destination stores, including Fabric Lakehouse table, Salesforce, Salesforce Service Cloud, Dataverse, Dynamics 365, Dynamics CRM, and Azure Cosmos DB for NoSQL."
Next to it said "shipped" with as GA in Q3 2025, which is odd.MSFT team can you confirm why in the roadmap it's already shipped but it's still said "preview"?
- fabanalyticsFrequent Visitor
I spoke with a couple of Microsoft folks about this duing Fabcon. They said that the feature is in GA. I am very hesitant to consider using in production since it's got "preview" next to it.
- v-kpoloju-msft
Community Support
Hi fabanalytics,
Thank you for reaching out to the Microsoft Fabric Community Forum. Also, thanks to rizalard0684, NandanHegde, for those inputs on this thread.
The feature is considered GA from a platform perspective (as reflected in the roadmap and what you heard at FabCon), but the “Preview” label in the UI for Lakehouse hasn’t been updated yet since this support was introduced more recently than SQL/Warehouse. From a practical standpoint, you can use it, but for production it’s best to treat it as recently released. Validate your results (especially inserts vs updates) and test with your workload before fully relying on it.Hope that clarifies. Let us know if you have any doubts regarding this. We will be happy to help.
Thank you for using the Microsoft Fabric Community Forum.
- CZ_GuildBuildNew Member
For upsert scenarios in Fabric Pipelines, you have a few approaches depending on your target:
1. Copy Activity + Data Flow (for SQL targets) Use the Copy activity with "Upsert" sink type when writing to Azure SQL DB or Synapse. You'll need:
- A staging table or direct match on the unique key
- The copy activity's upsert configuration under sink settings
2. Dataflow Gen2 with Merge If you're working with Lakehouse or Warehouse, Dataflow Gen2's Merge transformation can handle upserts before writing:
Source → Merge (match on key) → Sink
3. Notebook with Spark For full flexibility, a Spark notebook gives you direct control:
from delta.tables import DeltaTable deltaTable = DeltaTable.forPath(spark, "/path/to/delta") deltaTable.alias("target").merge( updatesDF.alias("source"), "target.key = source.key" ).whenMatchedUpdateAll().whenNotMatchedInsertAll().execute()
Common gotcha: Make sure your unique key is indexed in the target. Fabric can struggle with upserts on large tables without proper indexing.
What's your target sink - Lakehouse, SQL DB, or something else?
- fabanalyticsFrequent Visitor
Currently our approach is copy activity + Notebook for deltas.
Lakehouse is the sink.