Daniel Fritzler BI Consultant
  • Über mich
  • Services
  • Blog
  • CV
  • Kontakt


Data Vault mit Oracle Data Integrator

... oder jedem anderen ETL-Tool


Die Einführung von Data Vault stellt IT-Architekten vor schwerwiegende Fragen. Wird das bisherige ETL-Tool eingesetzt oder wird ein neues Tool eingeführt? Findet ein Parallelbetrieb statt oder werden alle ETL-Prozesse auf die neue Software umgestellt? Sind doppelte Lizenzkosten vertretbar? Wie kann Prototyping stattfinden, wenn man sich langsam an Data Vault herantrauen möchte?


Ähnliche Fragestellungen hatte ich in meinem aktuellen Projekt. Kein Budget für ein weiteres ETL-Tool, keine Installationsberechtigungen und dennoch der Wunsch sich sukzessive auf Data Vault einzulassen. Ich beschreibe eine Lösung wie ein Code-Generator zusammen mit dem bereits eingesetzten ETL-Tool für Data-Vault-Automatisierung genutzt werden kann.




Modellierung mit datavault4dbt





Wenn kein Budget vorhanden ist, liegt der Einsatz von Open-Source-Tools sehr nahe. Die Wahl viel auf datavault4dbt. Das Pythonmodul ist ein SQL-Codegenerator, kann jedoch als vollwertiges ETL-Tool genutzt werden. Es ermöglicht die Data-Vault-Generierung, aber auch die Beladung, sowie das Scheduling. Mit Hilfe des zusätzlichen Moduls turbovault4dbt kann als Benutzeroberfläche auch Excel eingesetzt werden. In einer Tabelle definiert man dann, wie die Quelltabellen heißen und welche Spalten für welche Hubs, Links oder Satelliten verwendet werden sollen. Datavault4dbt erstellt daraus Create-, sowie Insert-Statements in SQL. Die Data Vault-Tabellen werden angelegt und sogleich beladen. Zudem werden Tests ausgeführt, sowie eine Datenmodelldokumentation generiert. Fertig ist der Data Vault!


Einbindung in Oracle Data Integrator


Es ist möglich sich die Data-Vault Strukturen sowohl als View, als auch als Tabelle generieren zu lassen. Hierdurch kann man sehr einfache 1:1 Mappings im Oracle-Data-Integrator erstellen. Die View kapselt die Logik wie die Daten aufgearbeitet werden sollen. Die Inhalte der View werden in die Tabelle geladen. Ein Delta-Abgleich wird in der View vorgenommen, sodass nur neue Daten geladen werden. Auf diese Weise ist es möglich die generierten Tabellen, Views und Skripte ohne datavault4dbt auf der Produktiv-Umgebung einzusetzen. Das Scheduling, Logging, Monitoring etc. findet, wie gewohnt, im bisherigen ETL-Tool statt. Der Betrieb kriegt von datavaul4dbt praktisch nichts mit, denn es handelt sich um gewöhnliche Oracle-Data-Integrator-Mappings.



Damit die Views tatsächlich das Delta ermitteln, ist eine modifizierte Version von datavault4dbt notwendig. Dieser Fork ist eine Entwicklung von mir und unter github.com/universe-designer/datavault4dbt verfügbar. And dieser Stelle seien auch die Projekte github.com/universe-designer/dv-starter , sowie github.com/universe-designer/turbovault4dbt erwähnt. In einem weiteren Schritt kann man auch diese einfachen Mappings vom Oracle-Data-Integrator generieren lassen. Denn auch der Oracle-Data-Integrator kann für Automatisierung genutz werden. Allerdings gibt es keine Module, welche die Data-Vault Regeln umsetzen.



Einbindung in ein anderes ETL-Tool


Die Beladung einer Tabelle aus einer View ist in jedem anderen ETL-Tool möglich. Im einfachsten Fall handelt es sich um ein schlichtes Merge-Statement. Somit ist dieses Verfahren sehr vielseitig einsetzbar. Es braucht lediglich die Installation von Python und datavault4dbt auf dem Entwickler-Rechner. Keinerlei neue Software ist auf der Produktivumgebung notwendig!



Fazit


Es konnte ein Weg gezeigt werden, wie Data-Vault-Automatisierung mit minimalstem Eingriff in die Infrastruktur möglich ist. Open-Source-Software zeigt sich hier wie ein Puzzle aus dem man für sich die relevanten Stücke entnehmen und passgenau einsetzen kann. Dies kann für viele Organisationen einen fließenden Übergang zu Data Vault ermöglichen.

Bildquelle: Foto von Nathalia Segato auf Unsplash

Datum: 26.06.2024

Kategorie: Data Warehouse, Datenmodellierung, Open Source, Data Vault, Oracle, ETL