Active
and Connected Transformation
Till now,
we have only inserted rows in our target tables. What if we want to update,
delete or reject rows coming from source based on some condition?
Example: If
Address of a CUSTOMER changes, we can update the old address or keep both old
and new address. One row is for old and one for new. This way we maintain the
historical data.
Update
Strategy is used with Lookup Transformation. In DWH, we create a Lookup on
target table to determine whether a row already exists or not. Then we insert,
update, delete or reject the source record as per business need.
In Power
Center, we set the update strategy at two different levels:
1. Within a
session
2. Within a
Mapping
1. Update
Strategy within a session:
When we
configure a session, we can instruct the IS to either treat all rows in the
same way or use instructions coded into the session mapping to flag rows for
different database operations.
Session
Configuration:
Edit
Session -> Properties -> Treat Source Rows as: (Insert, Update, Delete,
and Data Driven). Insert is default. Specifying Operations for Individual
Target Tables:
You can
set the following update strategy options:
Insert: Select
this option to insert a row into a target table.
Delete: Select
this option to delete a row from a table.
Update: We
have the following options in this situation:
- Update as Update. Update
each row flagged for update if it exists in the target table.
- Update as Insert. Inset
each row flagged for update.
- Update else Insert. Update the
row if it exists. Otherwise, insert it.
Truncate
table: Select this option to truncate the target table before
loading data.
2.
Flagging Rows within a Mapping
Within a
mapping, we use the Update Strategy transformation to flag rows for insert,
delete, update, or reject.
Operation
|
Constant
|
Numeric Value
|
INSERT
|
DD_INSERT
|
0
|
UPDATE
|
DD_UPDATE
|
1
|
DELETE
|
DD_DELETE
|
2
|
REJECT
|
DD_REJECT
|
3
|
Update
Strategy Expressions:
Frequently,
the update strategy expression uses the IIF or DECODE function from the
transformation language to test each row to see if it meets a particular
condition.
IIF( (
ENTRY_DATE > APPLY_DATE), DD_REJECT, DD_UPDATE )
Or
IIF( (
ENTRY_DATE > APPLY_DATE), 3, 2 )
- The above expression is written in
Properties Tab of Update Strategy T/f.
- DD means DATA DRIVEN
Forwarding
Rejected Rows:
We can
configure the Update Strategy transformation to either pass rejected rows to
the next transformation or drop them.
Steps:
1. Create
Update Strategy Transformation
2. Pass all
ports needed to it.
3. Set the
Expression in Properties Tab.
4. Connect
to other transformations or target.
Performance
tuning:
1. Use
Update Strategy transformation as less as possible in the mapping.
2. Do not
use update strategy transformation if we just want to insert into target table,
instead use direct mapping, direct filtering etc.
3. For
updating or deleting rows from the target table we can use Update Strategy
transformation itself.
No comments:
Post a Comment