Im ersten Teil des ODI Blogs wurde gezeigt, wie man mithilfe des Knowledge Modules IKM Oracle Slowly Changing Dimension eine Slowly Changing Dimension in ODI umsetzen kann.
Das Knowledge Module IKM Oracle Slowly Changing Dimension deckt schon viele Anwendungsfälle ab. So werden zum Beispiel neue Datensätze gegen die bereits bestehenden geprüft. Bei Änderungen kann automatisch ein neuer Datensatz erstellt (SCD2) oder der bestehende Datensatz überschrieben werden (SCD1).
Sollen jedoch technische Felder wie die ID des Ladejobs oder der Insert- bzw. Updatezeitpunkt gepflegt werden oder möchte man einen anderen SCD_END-Standardwert verwenden, kommt das KM an seine Grenzen.
Hier kommt der Vorteil von ODI zum Tragen, die Knowledge Modules beliebig anpassen zu können.
Anpassen des VALID_TO-Datums
Wird ein unbegrenzt gültiger Datensatz geschrieben, so wird das SCD_END-Datum auf den 01.01.2400 gesetzt. In vielen Umgebungen ist aber ein anderer Standardwert definiert (z. B. der 31.12.9999).
Um möglichst flexibel zu sein, setzen wir nicht einfach ein neues SCD_END-Datum, sondern führen eine neue Option in das Knowledge Module ein.
Dazu wird das Knowledge Module geöffnet und der Reiter Options ausgewählt.
Und über Plus legen wir eine neue Option an.
Diese wird als Type Text mit dem Namen SCD_END_DATE angelegt und mit dem gewünschten Datumswert belegt.
Danach wechseln wir in den Tasks-Reiter und klappen den Baum bei Execution Unit Main auf.
Geändert werden müssen folgende Tasks:
- Update existing rows
- Historize old rows
- Insert changing and new dimensions
Ersetzt wird jeweils der Wert:
01-01-2004
Durch:
<%=odiRef.getOption("SCD_END_DATE")%>
Zum Beispiel Änderung von:
nach:
Mit dieser Änderung kann das SCD_END-Datum beliebig gewählt und an die Bedürfnisse einer vorhandenen Architektur angepasst werden.
Es muss nur darauf geachtet werden, dass das Datum im korrekten Format angegeben wird, in diesem Fall also als 'mm-dd-yyyy'.
Lesen Sie im nächsten Teil dieses Blogs "Anpassen des Knowledge Modules IKM Oracle Slowly Changing Dimension - Teil 2", wie man auch im IKM Slowly Changing Dimension technische Felder wie Ladelauf-ID oder Insert- bzw. Updatezeitstempel korrekt behandeln lassen kann.