
Inkrementelles Laden von Daten ist mit der Oracle Analytics Cloud eine durchaus überschaubare Sache. Die Analytics Cloud bietet die Möglichkeit, Datenflüsse zu erstellen und inkrementelle Data Loads auf einer Zieltabelle durchzuführen. Datenflüsse können mit den inkrementellen Daten arbeiten, die in der Quelle zwischen dem aktuellen Lauf und dem vorherigen Lauf verfügbar sind.
In diesem Blogbeitrag führen wir genau das vor: wie incremental Data Loads auf einer Datenbanktabelle ausgeführt werden. Das folgende Video führt Sie durch den Konfigurationsprozess und zeigt, wie Sie eine Methode zur Fortsetzung der Datenverarbeitung aus der letzten verarbeiteten Zeile definieren können. Der Rest des Blogs hilft Ihnen mit Schritt-für-Schritt-Anleitungen.
Beachten Sie folgende Punkte, bevor Sie diese Sequenz durchführen:
1. Inkrementelle Beladungen können nur mit solchen Datensätzen durchgeführt werden, bei denen die Quell- und Zieltabelle datenbankbasiert sind.
2. Wenn es in einem Datenfluss mehrere Datenquellen gibt, kann nur eine der Quellen für ein inkrementelles Update eingestellt werden.
Der erste Schritt besteht darin, ausgehend von einer Quelltabelle eine Spalte zu identifizieren, die als Spaltenschlüssel zu verwenden ist. In diesem Beispiel habe ich eine Revenue-Fact-Tabelle mit Monatsschlüssel als neuen Datenidentifikator.

Als nächstes wird die Oracle Analytics Datenquelle erstellt, die auf diese Tabelle verweist. Achten Sie bei der Erstellung der Datenquelle darauf, dass Sie die neue Identifikatorspalte markieren, indem Sie auf den dritten Knoten im Prozessablauf klicken. Das ist entscheidend, da diese Spalte definiert, wie das System neue Zeilen in der Datenquelle identifizieren kann.

Damit ist unsere Datenquelle geschaffen. Jetzt definieren wir einen Datenfluss, indem wir die Revenue-Fact-Tabelle aus der Quellverbindung importieren. Wichtig dabei ist, das Kontrollkästchen "Add new data only" zu aktivieren, um sicherzustellen, dass die Quelltabelle für die inkrementelle Datenbeladung markiert ist.

Um den Datenfluss etwas funktionaler zu gestalten, nehmen wir noch dazu die Umrechnung von Währungswerten. Wir erstellen eine Tabellenkalkulation, die die Wechselkurse für jeden zu konvertierenden Monat enthält, und fügen sie auf der Grundlage der Schlüsselspalte „Monat“ ein. Dann fügen wir eine neue Kalkulation hinzu, um die Einnahmen umzurechnen.
Abschließend wählen wir den Schritt "Save Data" und geben einen Namen für den resultierenden Datensatz an. Stellen Sie sicher, dass Sie die Zielverbindung als Datenbank auswählen und den Tabellennamen angeben, unter dem der resultierende Satz gespeichert werden soll. Im Dropdown-Menü "When Run" stehen zwei Optionen zur Auswahl:
1. "Replace existing data" bewirkt, dass der Datenfluss die Zieltabelle entleert und alle Datensätze neu lädt.
2. "Add new data to existing data" erhält die bestehenden Datensätze weiter und lädt nur die neuen Datensätze in die Quelltabelle. Neue Datensätze werden durch die Spalte identifiziert, die wir im obigen Quelldatensatz definiert haben.
Jetzt setzen wir die Option "When Run" auf "Add new data to existing data" und speichern den Datenfluss.

Nun starten wir den Datenfluss zum ersten Mal. Wenn das abgeschlossen ist, können wir in unserer zugrunde liegenden Datenbank sehen, dass die Zieltabelle erstellt ist. Da dies der erste Lauf des Datenflusses war, wurden alle Sätze der Quelltabelle in die Zieltabelle eingefügt.

Im konkreten Beispiel hier löschen wir jetzt die Datensätze vom Dez. 2018 (201812) aus unserer neu erstellten Zieltabelle. Danach hat unsere Quelltabelle nach wie vor alle Monatswerte (Januar bis Dezember), unsere Zieltabelle hat dagegen jetzt nur noch 11 Monate; der Dezember fehlt. Beachten Sie, dass wir die Daten in unserer Quelltabelle nicht geändert haben, so dass es seit unserem letzten Durchlauf des Datenflusses keine neuen Datensätze mehr gibt.
Wenn wir den Datenfluss zum zweiten Mal ausführen, wird die Zieltabelle also überhaupt nicht inkrementiert. Der Datenfluss wurde so eingestellt, dass nur neue Daten übertragen werden, aber es gibt keine neuen Daten in der Quelle, so dass nichts in der Zieltabelle geändert wird. Wir können überprüfen, ob die Zieltabelle noch nicht mit den gelöschten Monatsdaten geladen ist. Wäre der Datenfluss auf Volllast gesetzt worden, wären alle Daten im Ziel.

Um diesen Test abzuschließen, laden wir unsere Quelltabelle manuell mit drei weiteren Monaten Daten. Das bedeutet einiges an incremental data loads. Wir wiederholen den Datenfluss noch einmal und sehen, dass die Zieltabelle um die drei neuen Monate der Daten aus der Quelltabelle erhöht wurde. Beachten Sie jedoch, dass für den Monat, in dem die Datensätze gelöscht wurden, noch Daten in der Zieltabelle fehlen:

Das bringt uns zurück zum Hinweis am Anfang dieses Blogs: Wenn wir zur Datenflussdefinition zurückkehren und die Option Run in der Zieltabelle auf "Replace existing data" einstellen, werden beim Ausführen des Datenflusses alle Daten geladen, einschließlich der gelöschten Monatsdaten.
Stimmt etwas nicht, haben Sie einen Schritt verpasst? Überprüfen Sie die Sequenz im obigen Video. Nachdem Sie nun incremental data load kennen, besuchen Sie unsere Website und erfahren Sie mehr über die Oracle Analytics Cloud.
Kontakt:
Ein spannendes Thema, über das ich gerne mit Ihnen spreche, per E-Mail, LinkedIn, Xing oder Twitter. Cesar Ortiz, Principal Solution Engineer.