This step can be used in conjunction with the Merge Rows (diff) transformation step. The Merge Rows (diff) transformation step appends a Flag column to each row, with a value of "identical", "changed", "new" or "deleted". This flag column is then used by the Synchronize after merge transformation step to carry out updates/inserts/deletes on a connection table.
This diagram shows a typical transformation:
Note that the input data streams must be sorted before being passed into the Merge Rows (diff) transformation step. Make sure the sort column(s) are of same or equal data type. Both input tables must have the same number of columns.
|Step name||Name of the step; this name has to be unique in a single transformation.|
|Connection||The database connection to which data is written|
|Target schema||The name of the Schema for the table to which data is written. This is important for data sources that allow for table names with periods in them.|
|Target table||Name of the table in which you want to do the insert/update/delete.|
|Commit size||The number of rows to change before running a commit.|
|Use batch update|
|Tablename is defined in a field|
|Key Lookup table|| Allows you to specify a list of field values and comparators. You can use the following comparators: =, <>, <, <=, >, >=, LIKE, BETWEEN, IS NULL, IS NOT NULL
|Update Fields|| Allows you to specify all fields in the table you want to insert/update including the keys. Avoid updates on certain fields (e.g. primary keys or non-null constrained fields) by specifying N in the update column.
Note: Click Get Update fields to retrieve a list of update fields from the input stream(s).
|SQL button||Click SQL to generate the SQL to create the table and indexes for correct operation.|
|Option||Description||Default value from the Merge Rows (diff) transformation step|
|Operation fieldname||This is a required field. This field is used by the step to obtain an operation flag for the current row.||"flagfield"|
|Insert when value equal||Specify the value of the Operation fieldname which signifies that an Insert should be carried out.||"new"|
|Update when value equal||Specify the value of the Operation fieldname which signifies that an Update should be carried out.||"changed"|
|Delete when value equal||Specify the value of the Operation fieldname which signifies that a Delete should be carried out.||"deleted"|
|Perform lookup||Performs a lookup when deleting or updating. If the lookup field is not found, then an exception is thrown. This option can be used as an extra check if you wish to check updates/deletes prior to their execution.||Not applicable|
All fields of this step support metadata injection. You can use this step with ETL Metadata Injection to pass metadata to your transformation at runtime.