Zeitgemäße Datenversorgung von Anwendungen mit Talend

Datenlogistik Open

Steffen Lang und Wilhelm Kuhn

Jetzt muss noch geklärt werden, wie eine Talend-Installation in größere Anwendungslandschaften eingebunden werden kann. Dabei gilt es, vier verschiedene Aspekte zu beachten: Entwicklung, Konfiguration, Ausführung und Kontrolle.

Talend Open Studio

Talend Open Studio (TOS) ist ein Open-Source-Produkt von Talend [4], einer französischen Firma mit internationalen Tochtergesellschaften. TOS ermöglicht es, Lösungen für verschiedenste Problemstellungen aus den Bereichen ETL und Datenintegration zu generieren. Das Studio basiert auf bekannten Projekten der Eclipse Foundation (der Rich Client Platform als Basis, dem Graphical Modeling Framework zur Entwicklung und JET zur Codegenerierung) und ermöglicht daher vielen Anwendern durch die vertraute Bedienung einen schnellen Einstieg. Im Kern erzeugt ein vorlagenbasierter Codegenerator wahlweise Java- oder Perl-Code – dieser Artikel bezieht sich auf die Java-Variante.

TOS präsentiert sich als Entwicklungsumgebung, in der ausführbare Programme, sog. Jobs, über eine grafische Oberfläche modelliert werden. Nach der Modellierung eines Jobs generiert das Studio Java-Code, der auch unabhängig vom TOS ausgeführt werden kann. So gibt es zur Laufzeit eines Jobs keine Abhängigkeiten mehr zu Talend, und die Integration in andere Anwendungen fällt leicht. Jobs können aus unterschiedlichen Komponenten bestehen, deren Ausführungsreihenfolge mittels verschiedener Verknüpfungen festgelegt wird. Talend liefert eine Auswahl vorgefertigter Komponenten für häufig wiederkehrende Aufgaben mit. Darunter befinden sich z. B. Komponenten für Datenbankoperationen oder das Einlesen strukturierter Textdateien. Eine ausführliche Übersicht der Komponenten ist im Internet einsehbar [5]. Für individuelle Anforderungen existieren außerdem Komponenten, welche die Ausführung beliebigen Java-Codes oder den Aufruf anderer Programme ermöglichen. Darüber hinaus ist es auf einfache Weise möglich, eigene Komponenten zu entwickeln. Solche selbstentwickelten Komponenten können über einen Marktplatz ausgetauscht werden.

Ergänzend zum frei verfügbaren TOS gibt es die kostenpflichtige Talend Integration Suite (TIS), die erweiterte Funktionalitäten und Support bietet. Zu den Unterschieden der kostenpflichtigen gegenüber der freien Version zählen die Integration eines Versionsverwaltungssystems (Subversion) zur Jobverwaltung sowie eine zeitgesteuerte Ausführungsumgebung für Jobs, diee über eine Weboberfläche administriert wird. Die Kernanwendungen von TOS und TIS sind jedoch identisch.

Entwicklung

Während der Entwicklung werden innerhalb der Entwicklungsumgebung in einem grafischen Editor Jobs entworfen. Dazu verwendet jeder Entwickler eine lokale Installation des Talend Open Studio. Die Jobs werden aus Komponenten oder existierenden Jobs (Subjobs) zusammengesetzt und durch Daten- oder Kontrollflüsse verbunden. Für erste Tests können die Jobs ohne ein Deployment direkt im Studio ausgeführt werden. Die Verwaltung der verschiedenen Versionen eines Jobs wird entweder im TOS durchgeführt oder an ein externes Versionsverwaltungssystem, z. B. Subversion (SVN), delegiert. In der kommerziellen Version (TIS) ist SVN direkt integriert, wodurch auch das verteilte Arbeiten von Entwicklergruppen unterstützt wird. In der offenen Version muss dies z.B. über Export und Import von Modulen durch die Entwickler explizit organisiert werden, oder ein externer SVN-Client wird verwendet. Am Ende der Entwicklung generiert TOS ausführbare Java-Programme. Deren Deployment wird durch eine Exportfunktion unterstützt, welche die Java-Klassen und abhängige Artefakte in Java-Archiven bündelt. Zusätzlich werden Shell-Skripte für den Aufruf erstellt. Im TOS ist diese Funktion nur über interaktive Dialoge verfügbar, die kommerzielle Funktion bietet zusätzlich Automatisierungsfunktionen für das Deployment.

Konfiguration

Jobs werden immer mit einer bestimmten Konfiguration ausgeführt, die durch den „Kontext“ des Jobs bestimmt wird. Der Kontext ist eine Menge von Variablen, die der Job erwartet und auf die er zur Laufzeit zugreift. Für deren Bereitstellung gibt es mehrere Möglichkeiten: Zum einen können die Variablen direkt im Job mit Default-Werten vorbelegt werden. Zusätzlich gibt es die Möglichkeit, Kontexte innerhalb der Entwicklungsumgebung in einem Repository zentral zu verwalten und thematisch zu gliedern. Dabei können jeweils alternative Belegungen anhand der Ausführungsumgebung definiert werden. Beim Deployment des Jobs werden diese Belegungen mit verteilt, die Auswahl der Belegungsalternative erfolgt dann beim Aufruf. Weiterhin kann man Kontexte extern z. B. als CSV-Datei oder in Datenbanktabellen zur Verfügung stellen. Dadurch werden die Jobs von der Kontextverwaltung entlastet und Konfigurationsanpassungen sind ohne ein erneutes Deployment möglich. Und schließlich gibt es noch die Möglichkeit, beim Aufruf Werte für die Kontextparameter zu übergeben, um bestehende Belegungen dynamisch zu überschreiben.

Ausführung

Die Jobs liegen in der Zielumgebung als Java-Archive vor. Das erlaubt eine sehr flexible Einbindung in verschiedenste Ausführungsarchitekturen, da die einzige Voraussetzung die Existenz einer Java VM ist. Außerdem stehen unterschiedliche Möglichkeiten zur Auswahl, um die Jobs zu starten. Sie können über Skripte manuell aufgerufen, in weitere Java-Programme direkt eingebunden oder über Job-Scheduling-Systeme (z. B. Tivoli Workload Scheduler, CA Autosys oder Oracle Grid Engine) gesteuert werden. Die Steuerung über Job-Scheduler ermöglicht eine große Flexibilität im Hinblick auf zeit- oder ereignisgesteuerte Ausführungen und die Integration in übergeordnete Prozessketten.

Kontrolle

Während und nach der Ausführung müssen die Ergebnisse der Jobs kontrolliert werden. Talend unterstützt diese Kontrolle durch verschiedene Mechanismen. Zunächst ist es möglich, den aufrufenden Prozess durch unterschiedliche Fehlercodes detailliert über Ausnahmesituationen zu informieren. Für die Überwachung während der Laufzeit kann mittels einer konfigurierbaren Logging-Komponente das Geschehen standardmäßig auf die Konsole, in Dateien oder Datenbanken ausgegeben werden. Über so genannte „Catcher“ können zu protokollierende Ereignisse aber auch flexibel verarbeitet und umgeleitet werden. Die Ereignisprotokollierung ist unabdingbar für eine spätere Nachvollziehbarkeit der Ausführungen. Weitere Komponenten bieten zusätzlich die Möglichkeit, Ausführungsstatistiken und Durchsatzwerte zu ermitteln und zu protokollieren.

Abb. 5: Architektur einer Talend-Installation

In Abbildung 5 ist ein Beispiel für die Architektur einer Talend-Installation dargestellt. Zwei Entwickler arbeiten in jeweils lokal installierten TOS, die über ein Subversion Repository synchron gehalten werden. Die entwickelten Jobs werden direkt in die Ausführungsumgebung ausgerollt. Dort liegen auch Konfigurationsdateien, aus denen die Jobs zu Beginn der Ausführung die Kontexte einlesen. Ein separater Scheduler, der auch noch weitere Anwendungen steuern kann, stößt diese Ausführungen an. Zur Nachvollziehbarkeit findet während der Ausführung eine Ereignisprotokollierung in einer Datenbank statt, wodurch Auswertungen leicht per SQL möglich sind.

Bewertung

Wie gut erfüllt eine Lösung mit Talend Open Studio nun die vorhandenen Anforderungen (Kasten „Anforderungen der Datenlogistik“)? Durch die Vielzahl an Komponenten werden die funktionalen Anforderungen sehr gut abgedeckt. Talend Open Studio bietet als ETL-Tool gerade in den Bereichen Transformation sowie Ein- und Ausgabe viele Funktionen. Und bei fehlenden Funktionalitäten hat der Entwickler jederzeit die Möglichkeit, beliebigen Java-Code in die Jobs zu integrieren oder ohne großen Aufwand eigene Komponenten zu erstellen. Die Erfüllung der nichtfunktionalen Anforderungen ist naturgemäß schwerer zu bewerten. Zur Effizienz der Verarbeitung tragen Parallelisierungsmöglichkeiten bei und die Tatsache, dass die Jobs als kompilierter Java-Code vorliegen und nicht erst von einer eigenen Ausführungsumgebung interpretiert werden müssen. Dadurch wird auch die Integration der Jobs erleichtert – sie laufen überall, wo eine Java VM vorhanden ist. Änderungen an existierenden und die Entwicklung neuer Jobs sind durch den grafischen Editor und die Verwendung von Kontexten einfach möglich. Dadurch bleibt die Lösung jederzeit flexibel für geänderte Anforderungen. Talend verwendet für viele Funktionen bewährte Bibliotheken, z. B. von der Apache Software Foundation, wodurch eine hohe Zuverlässigkeit gewährt ist. Die Nachvollziehbarkeit der Ausführung liegt in der Verantwortung der Entwickler, da TOS von sich aus kaum Logmeldungen erzeugt. Letztlich ähnelt das Benutzererlebnis dem von Eclipse. Wer sich also in der Eclipse IDE wohl fühlt, wird das auch im TOS tun.

Fazit

Datenlogistik, die Kommunikation und Datenaustausch zwischen verschiedenen Anwendungen automatisiert durchführt, ist heutzutage aus kaum einer Anwendungslandschaft wegzudenken. Talend Open Studio ermöglicht es, flexible Lösungen für Anforderungen der Datenlogistik kostengünstig umzusetzen. Die Flexibilität wird erreicht durch eine Vielzahl an Funktionskomponenten und eine leichte Konfigurierbarkeit der Jobs. Da diese zur Ausführung nur eine Java VM voraussetzen, ist auch die Integration in andere Anwendungen einfach möglich. TOS beruht auf Java und der Eclipse IDE und ermöglicht daher Entwicklern mit Erfahrung in diesen Technologien einen leichten Einstieg. Wer Wert auf zusätzliche Features wie eine direkte SVN-Integration oder Support vom Hersteller legt, dem steht die kostenpflichtige Variante Talend Integration Suite in unterschiedlichen Editionen zur Verfügung.

Steffen Lang arbeitet als IT Consultant bei der syngenio AG. Zu seinen Spezialgebieten zählen die Anwendungs- und Datenintegration.

Dr. Wilhelm Kuhn ist Managing Consultant im Bereich IT-Consulting der syngenio AG. Die Autoren sind über wilhelm.kuhn[at]syngenio.de und steffen.lang[at]syngenio.de erreichbar.

Geschrieben von
Steffen Lang und Wilhelm Kuhn
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.