Der Oracle Data Integrator (ODI) bietet eine eingebaute Lösung, um Daten mit der SCD-Methodik (Slowly Changing Dimension) zu historisieren. Bei näherer Betrachtung und der praktischen Beladung einer Integrationsmenge in eine Zieltabelle mithilfe des Integration Knowledge Modules (IKM) SCD fällt auf, dass der ODI gewisse "Default Values" für das Gültigkeitsende des Datensatzes verwendet.
Table of Contents
Dies kann im folgenden Szenario veranschaulicht werden:
Aus der Staging-Tabelle STAGE_TEST_SCD werden Daten in die Dimensionstabelle DIM_TEST_SCD geschrieben.
Ausgangssituation
Um die Ausgangssituation leichter nachzuvollziehen, wird in den folgenden Testcases beschrieben, wie die Funktionen dargestellt werden können.
Testcase 1: Initiale Beladung von 3 Datensätzen zum 05.05.2017
In der Staging-Tabelle sind drei Datensätze angekommen, die in die leere Tabelle DIM_TEST_SCD per IKM SCD geschrieben werden sollen.
Wie im Ergebnis zu sehen ist, wird die Gültigkeit des Datensatzes vom IKM serienmäßig auf den 01.01.2400 gesetzt, um eine unendliche Gültigkeit darzustellen.
Testcase 2: Beladung von 3 Datensätzen zum 06.05.2017
Nun liefert die Staging-Tabelle Änderungen. Der Datensatz mit NK = 1 bleibt unverändert (ATTR), bei NK = 2 wurde ATTR auf "C" geändert, NK = 3 wird nicht mehr geliefert, und NK = 4 ist neu hinzugekommen.
Im Falle einer Änderung wird der ursprüngliche Satz in seiner Gültigkeit terminiert und ein neuer Datensatz mit unendlicher Gültigkeit eingefügt. Wie in diesem Beispiel zu sehen ist, wird im Falle der Terminierung die Gültigkeit des Datensatzes auf den gleichen Wert gesetzt wie der Gültigkeitsbeginn beim Einfügen eines Datensatzes.
Anpassung der Gültigkeit des Datensatzes
Wie aus den Beispielen deutlich geworden ist, fügt das IKM SCD serienmäßig für die unendliche Gültigkeit den 01.01.2400 und für die Terminierung eines Datensatzes das Ladedatum ein. In vielen Situationen kann es jedoch gewünscht sein, dass für die unendliche Gültigkeit ein eigens definierter Wert eingefügt oder im Falle der Terminierung die Gültigkeit des Datensatzes auf "Ladedatum - 1" gesetzt wird.
Damit die Gültigkeit des Datensatzes auf die gewünschten Werte gesetzt wird, sind kleinere Anpassungen im IKM SCD durchzuführen. Für unser Beispiel nehmen wir an, dass das Datum für die unendliche Gültigkeit auf den 31.12.9999 und das Datum bei einem zu terminierenden Satz auf "Ladedatum - 1" gesetzt wird. Im ODI können die IKM im Designer-Tab unter dem entsprechenden Projektfolder durch einen Doppelklick geöffnet und editiert werden. Unter dem Reiter "Tasks" lassen sich die folgenden Tasks identifizieren, die für die gewünschten Änderungen angepasst werden müssen:
Bei den Tasks in den grünen Kästchen wird die Gültigkeit des Datensatzes jeweils angepasst. Dafür werden im Bereich "Target Command" die Pünktchen neben dem dargestellten Codeausschnitt angeklickt.
Oben wurde eine exemplarische Anpassung an dem Task "Flag rows for update" durchgeführt.
Damit auch die Gültigkeit des Datensatzes bei einer Terminierung auf den gewünschten Wert gesetzt wird, muss im Task "Historize old rows" die Gültigkeit um einen Tag reduziert werden:
Im Anschluss an die Anpassungen kann das IKM SCD gespeichert und die Testcases wiederholt werden. Nach Ausführen des ODI-Mappings in Testcase 2 ergeben sich nun folgende Konstellationen:
Wie gewünscht wurde die Gültigkeit des Datensatzes auf den 31.12.9999 und im Falle einer Terminierung auf das "Ladedatum - 1 gesetzt".
Wer ist b.telligent?
Du willst den IoT Core durch eine Multi-Cloud-Lösung ersetzen und die Vorteile weiterer IoT-Services von Azure oder Amazon Web Services nutzen? Dann melde Dich bei uns und wir unterstützen Dich bei der Umsetzung mit unserer Expertise und dem b.telligent Partnernetzwerk.
Exasol ist ein führender Hersteller von analytischen Datenbanksystemen. Das Kernprodukt ist eine auf In-Memory-Technologie basierende Software für die professionelle, parallele und schnelle Datenanalyse. Normalerweise werden SQL-Statements in einem SQL-Skript sequenziell abgearbeitet. Wie können aber mehrere Statements gleichzeitig ausgeführt werden? Dies zeigen wir anhand eines einfachen Skripts in diesem Blogbeitrag.
Viele Unternehmen mit SAP-Quellsystemen kennen diese Herausforderung: Sie wollen ihre Daten in einen Azure Data Lake integrieren, um sie dort mit Daten aus anderen Quellsystemen und Applikationen für Reporting und Advanced Analytics weiterzuverarbeiten. Auch die neuen SAP-Informationen zur Nutzung des SAP-ODP-Frameworks führten bei b.telligent Kunden zu Fragen. In diesem Blogbeitrag stellen wir drei gute Ansätze zur Datenintegration (in die Microsoft Azure Cloud) vor, die wir bei b.telligent empfehlen und die von der SAP unterstützt werden.
In Teil 1 fassen wir die Anforderungen der Kunden zusammen.
Viele Unternehmen entscheiden sich im Rahmen ihrer aktuellen Modernisierung- und Digitalisierungsinitiativen, ihr Datawarehouse (DWH) oder auch ihre Datenplattform in die Cloud zu heben. Dieser Beitrag diskutiert aus fachlicher/organisatorischer Sicht, welche Aspekte dafür besonders wichtig sind und welche Strategien dabei helfen, etwaige Risiken zu minimieren. Eine Migration sollte nicht als rein technische Übung verstanden werden. "Weiche" Faktoren und Fachlichkeit haben einen deutlich höheren Einfluss.