This
IKM integrates data into an Oracle target table using an event queue to process
incremental changes. This IKM is used when working with data that is versioned
over time (similar to a slowly changing dimension). In full load all records
are inserted. The event queue tracks the natural keys that are changing, and
the earliest date a change occurred. For each natural key, any existing target
records on or after the earliest change are deleted and the new records
inserted.
If
there are effective from and to dates, these are maintained automatically in
both full and incremental loads.
Data
can be controlled by isolating invalid data in the error table, but recycling
data is not supported.
Prerequisites for
using this IKM are the following:
·
The
event queue table must be defined using the Event Queue Table option.
o
It
must have the column EARLIEST_CHANGE_DATE (DATE datatype)
o
It
must follow the standard naming convention ending with _EQ_TMP
·
Join
between target table and event queue must be defined using the Event Queue Join
option.
·
Target
table must have SCD behavior set for:
o
Natural
key
o
Starting/ending
timestamp
·
Interface
must only select the source data that is changing, as controlled by the event
queue, which lists the natural keys that are changing and the earliest date of
any change.
o
Either
the data is selected from temporary or staging tables which only contain
incremental data
Or
o
Use
the nested IKM BIAPPS Oracle Event Queue Delete Append to include a join to the
event queue in incremental load
·
If
the "Synchronize Deletions from Journal" process is executed, the deleted
rows on the target are committed.
·
Event
Queue Table. The name
of the event queue table that holds the incremental changes. This option is
mandatory.
Prerequisites
for this option are the following:
o
Event
queue table must contain EARLIEST_CHANGE_DATE column (DATE datatype)
o
Oracle
BI Applications naming standard for table ends with _EQ_TMP
·
Event Queue Join. Assuming the alias T for Target Table and Q for Event Queue
Table, define the equi-join between the Target Table and the Event Queue Table.
This is used in the Event Queue Update and Event Queue Delete steps and in rare
cases may be omitted if neither of those steps are required. The filter on
EARLIEST_CHANGE_DATE should not be included in the join option.
·
Event Queue Delete. Whether or not to delete records in the target that are
being processed in incremental load. In most cases this should be enabled, but
in rare cases where more than one interface loads the target table then it only
needs to be enabled on the first one.
·
Event Queue
Update.
Whether or not to correct
effective dates on records in the target that are affected by the incremental
load. In most cases this should be enabled, but in rare cases where more than
one interface loads the target table then it only needs to be enabled on the
last one.
·
High Data Value. The default value to use for the maximum
ending timestamp. In most cases the default value of #HI_DATE is fine, but for
some persisted staging tables that reflect the OLTP might use a different value
e.g. #ORA_HI_DATE.
·
Unspecified
Record.
If the target table is a
dimension, set this to TRUE to automatically insert an "Unspecified"
record. This is referenced by facts in case no other dimension record matches.
The default column values are determined by model naming standards using the
user-defined function GET_UNSPEC_VALUE.
·
Hints - This IKM
allows the passing of hints into the generated SQL. For more information, see
the article titled "Oracle Business Intelligence Applications Version
11.1.1.7.1 Performance Recommendations (Doc ID 1539322.1)" on My Oracle
Support.
·
Alter Session
List - Applies a list of alter session
commands to the session used by the KM. Commands should be separated by a
semi-colon and without the "ALTER SESSION" prefix. Each command
should be prefixed SRC or TGT depending on whether it should be executed on the
source connection (relevant if using an LKM) or the target connection. For
example:
· SRC set TRACEFILE_IDENTIFIER='ODI_TRACE'; SRC set events '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8'; TGT set TRACEFILE_IDENTIFIER='ODI_TRACE_TGT';
No comments:
Post a Comment