Ein großer Teil eines jeden Enterprise Datawarehouse sind ETL- oder ELT-Prozesse.
In beiden Abkürzungen stehen die Buchstaben für dieselben Wörter, nur die Reihenfolge, in der die einzelnen Vorgänge ausgeführt werden, ändert sich.
Um diese Prozesse aufzufrischen, "E" steht für Extraktion, "T" für Transformation und "L" ist für Laden.
Wir möchten jedoch nicht auf die Vorteile jedes einzelnen Verfahrens eingehen, sondern stattdessen ein leistungsstarkes Open-Source-Framework zur Ausführung der Prozesse vorstellen.
Warum ein Rahmenwerk verwenden?
Anstatt individuelle Lösungen für jedes Quellsystem zu entwickeln, bietet die Verwendung standardisierter Frameworks eine Vielzahl von Vorteilen. TDie wichtigsten davon haben wir bereits erwähnt: die Normung.
Ein weiterer Vorteil ist, dass Ihr System durch die Verwendung desselben Konzepts für die Extraktion von Daten aus verschiedenen Quellsystemen prüfbarer und zuverlässiger wird.
Und wenn man die unterschiedlichen Vorteile der verschiedenen Rahmenwerke berücksichtigt, ergeben sich noch weitere potenzielle Vorteile.
Was ist Singer?
Ein solches Framework, Singer, ist ein Open-Source-Framework für ETL-Prozesse. Singer beschreibt sein Ziel, "der Standard für das Schreiben von Skripten, die Daten bewegen" zu sein.
Der Rahmen umfasst die Verwendung von standardisierten Definitionen für Datenextraktions- und Ladeskripte sowie ein einheitliches Datenformat für den Datenaustausch zwischen einer Datenquelle und einem Ziel.
Wie funktioniert Singer?
Singer verwendet zwei verschiedene Arten von Drehbüchern. Wasserhähne werden verwendet, um Daten aus verschiedenen Quellen zu extrahieren und diese Daten in das standardisierte Singer-Datenaustauschformat umzuwandeln. Ziele verwenden diese aufbereiteten Daten, um sie in mehrere verschiedene Zielsysteme zu laden.
Hier kommt der Vorteil von Open-Source-Projekten zum Tragen. Jeder kann seine eigenen Taps und Targets in Python entwickeln, indem er den offiziellen Entwicklungsrichtlinien von Singer folgt. Sobald Ihr Modul einsatzbereit ist, können Sie es sogar beim Singer-Team einreichen und wenn es alle Anforderungen erfüllt, wird es auf der offiziellen Website erwähnt.
Dieses Verfahren führt dazu, dass mehr als 100 verschiedene Abzweigungen und 10 Ziele zur Verfügung stehen, die alle regelmäßig überprüft und gewartet werden. Darüber hinaus können Sie auf öffentlichen Repositories einen Tap oder ein Target für die meisten anderen Systeme finden. Obwohl diese Module noch nicht vom Singer Team eingereicht wurden, funktionieren die meisten von ihnen perfekt und werden regelmäßig gewartet. Und für den schlimmsten Fall, dass Sie keinen passenden Tap oder Target finden, nehmen Sie sich einfach eine Code-Vorlage und fangen Sie an, selbst zu programmieren!
Intern haben wir genau das getan, als wir keinen Salesforce-Tap finden konnten, der alle von uns benötigten Metadaten erfassen kann. Wir haben einfach den Salesforce-Tap von meltano genommen und ihn so bearbeitet, dass er die Antwort der API-Funktion .describe() erfasst.
Was sind die wichtigsten Vorteile der Verwendung von Singer?
- Eine breite Palette von unterstützten Systemen: Mit über hundert Taps und fast einem Dutzend Targets unterstützt Singer eine breite Palette von Systemen und wird durch Python-Skripte betrieben, die regelmäßig überprüft und gewartet werden. Der Vorteil ist, dass die gesamte Palette weiter wächst, da die von der Community erstellten Taps und Targets der Öffentlichkeit zur Verfügung gestellt werden, die alle auf beliebten Repositories wie github oder gitlab zu finden sind.
- Entkopplung von Quellsystemen und Datenbanken: Wenn Sie Singer als ETL-Werkzeug verwenden, müssen Sie zunächst alle Quellsysteme identifizieren, aus denen Sie Daten laden möchten. Nachdem Sie die entsprechenden Taps eingerichtet haben, finden Sie ein Target für Ihr gewünschtes Datenbanksystem. Da Sie jeden Tap mit jedem Target kombinieren können, muss die Verbindung zu Ihrer Datenbank nur einmal eingerichtet werden, und zwar nur bei der Konfiguration des Targets. Ihr Target kann nun mit all Ihren Taps kombiniert werden, so dass nur ein einziger Verbindungspunkt hergestellt wird. Dies hält den Wartungsaufwand gering und schafft eine höhere Transparenz Ihrer ETL-Prozesse.
- Standardisiertes Datenaustauschformat: Singer verwendet das JSON-Format für den Datenaustausch zwischen Zapfstellen und Zielen. Diese Standardisierung ermöglicht es dem gesamten System, so flexibel zu sein wie es ist.
- Inkrementelles Laden - der einfache Weg: Singer unterstützt das inkrementelle Laden von Daten, indem es den Zustand zwischen zwei Aufrufen speichert. Der Zeitstempel eines Aufrufs kann in einer state.json Datei gespeichert werden, die vom nächsten Aufruf aufgegriffen wird, um die Daten zu extrahieren, die nach diesem letzten Zeitstempel eingetroffen sind. Einige Datenquellen, wie MySQL, unterstützen sogar CDC, während die meisten anderen Quellsysteme nur Einfügungen und Aktualisierungen, aber keine Löschungen unterstützen.
- Offene Quelle: Natürlich ist der größte Vorteil von Singer, dass es Open Source ist. Singer ist unter der Apache License 2.0 veröffentlicht. Das bedeutet nicht nur, dass Sie oder Ihr Unternehmen es kostenlos nutzen können, sondern auch, dass Singer eine sehr aktive Gemeinschaft hat, die ständig neue Funktionen entwickelt. Dieser Aspekt macht Singer noch attraktiver für kleine Organisationen mit einem geringen Software-Budget.
Um das obige Wissen in einen besseren Kontext zu stellen, werden wir in unserem nächsten Newsletter erörtern, wie Sie mit Singer arbeiten können. Vergessen Sie also nicht, sich für unseren Newsletter anzumelden, falls Sie es noch nicht getan haben, und verpassen Sie nicht die Gelegenheit, Ihre ETL-Prozesse zu verbessern.
-von Tim Kirschke (Scalefree)
Updates und Support erhalten
Bitte senden Sie Anfragen und Funktionswünsche an [email protected].
Für Anfragen zu Data Vault-Schulungen und Schulungen vor Ort wenden Sie sich bitte an [email protected] oder registrieren Sie sich unter www.scalefree.com.
Zur Unterstützung bei der Erstellung von Visual Data Vault-Zeichnungen in Microsoft Visio wurde eine Schablone entwickelt, mit der Data Vault-Modelle gezeichnet werden können. Die Schablone ist erhältlich bei www.visualdatavault.com.