Inserts, updates and (optionally) deletes data in database target.
Before the Merge is executed, all data from the destination is read into memory.
A delta table is generated that stores information if a records was inserted, updated, deleted or hasn't been touched (existed).
By default, identity columns (a.k.a auto increment or serial columns) are ignored
when writing into the destination. If set to true, the DbMerge will try to keep existing identity values if possible.
The cache mode used for reading data from the destination table.
By default, all data is read into memory before the actual merge is executed (Full mode).
If set to partial, only data is read into memory that is needed for the current merge comparison.
This will keep the memory consumption of the DbMerge much smaller.
Column mapping to map property to column names.
E.g. if the value of property "Id" should be written into the database column "Key",
then you can simply add a column mapping: DbColumnName: "Id" -> PropertyName: "Key".
By default, the CompareColumns are used to determine if a row needs to be updated.
You can override the matching behavior using your own compare function which takes the current row and the
row from the destination table as input and returns true if the row needs to be updated, and false if not.
You still need to define the CompareColumns to specify which columns should be retrieved from the destination table.
The table definition of the destination table. By default, the table definition is read from the database.
Provide a table definition if the definition of the target can't be read automatically or you want the DbMerge
only to use the columns in the provided definition.
By default, the DbMerge expects the IdColumns to be unique.
If another record with the same id values arrives, this record is then identified as a duplicate.
It won't be written into the destination table - the delta output will contain this record, and the
ChangeAction is set to Duplicate
Please note that this may have an impact on the overall memory consumption, as already processed id values need to be stored internally during processing.
Defines the max amount of rows stored in the partial cache if the eviction policy is set to a different value than FullRefresh.
Only applies if the CacheMode is set to Partial.
Defines the type of target data which affects how deletions or insertions are handled.
Full means that source contains all data, NoDeletions that source contains all data but no deletions are executed,
Delta means that source has only delta information and deletions are deferred from a particular property and
OnlyUpdates means that only updates are applied to the destination.
Property names that describe which columns are actually updated (if an update of the row is necessary).
Can be left empty, then all non id columns will be updated.
By default, the deletion of records are performed with a bulk delete.
This performs well if the number of records to delete is small compared to the total amount
of records.
If this property is set to true, all records are deleted before the merge operation,
using a TRUNCATE. Subsequently, all records are reinserted again.
In order to make this work, the MergeMode needs to be set to Full
and the CacheMode set to Full as well.
If an error occurs in the component, by default the component will throw an exception and stop execution.
If you use the error linking, any erroneous records will be caught and redirected.