title: How to configure a Synapse Mapping Data Flow for INSERT/UPDATE/DELETE when the destination table does not yet exist
body: <p>I am trying to build a generic Mapping Data Flow for some basic cleansing on tables in my Data Lake. I need it to be able to work both on an ongoing basis after data already exists in my cleansed tables as well as when new tables are added (it would detect them automatically and create and populate the destination).  Both the Source and Destination tables with be Delta tables.</p>
  <p>The approach I have taken is to have Sources configured to both my actual source and to the target and use either JOIN transformations or EXISTS transformations to identify the new, updated and removed rows.</p>
  <p>This works fine for INSERTS and UPDATES, however my issues is dealing with DELETES when there is no data currently in the destination.  Obviously there will be nothing to DELETE - that is as expected.   However, because I reference the key column that <code>will</code> exist once data is loaded to the table I get an error on an initial run that states:</p>
  <p><code>ERROR Dataflow AppManager: name=BatchJobListener.failed, opId=xxx, message=Job 'xxx failed due to reason: DF-SINK-007 at Sink 'cleansedTableWithDeletes': Sink results in 0 output columns. Please ensure at least one column is mapped.</code></p>
  <p>The overall process looks as follows:</p>
  <p><a href="https://i.stack.imgur.com/f2SpI.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/f2SpI.png" alt="Data Flow" /></a></p>
  <p>Has anyone developed a pattern that works for a generic flow (this one is parameter driven and ensures schema drift is accommodated) or a way for the Data Flow to think that there IS a column in the destination that it can refer to and get past this issue?</p>