| von Barbara Hofmann

Talend Data Integration vs. Informatica PowerCenter

Einschätzungen aus Sicht einer ETL-Entwicklerin

Gartner ordnet Talend und Informatica im aktuellen Magic Quadranten 2019 den Führern und Visionären unter den Herstellern für Data Integration Tools zu. Informatica liegt dabei weit vor den anderen Herstellern wie IBM, SAP, SAS, Oracle und auch Talend. Aber wie schneiden Informatica und Talend in der praktischen Anwendung eines ETL-Entwicklers ab und wie würde ein Entwickler diese beiden Tools bewerten?

Als ETL-Entwicklerin bei Woodmark bin ich mit einigen ETL-Tools, u.a. auch Talend und Informatica, in Berührung gekommen und möchte daher meine Eindrücke und Erfahrungen an ein paar Beispielen schildern.

Aufbau

Schon beim Aufbau unterscheiden sich die beiden Tools deutlich voneinander. Während Talend alle Funktionalitäten der Entwicklung in einem Tool zusammenbringt, gibt es bei Informatica drei (bzw. vier, wenn man den Repository Manager mitzählt), außer man verwendet den Informatica Developer, dann ist auch alles in einem.

In Talend gibt es also nur eine Oberfläche, in der man die Logik in Jobs implementiert und diese dort sofort auch ausführen und deren Lauf überprüfen kann.

Bei Informatica wird im ‚Mapping Designer‘ die Logik der gewünschten Datenintegration in sogenannten Mappings erstellt, im ‚Workflow Designer‘ können diese Mappings mittels einzelner Sessions zueinander in Abhängigkeiten geschaltet und ausführbar gemacht werden und über den ‚Workflow Monitor‘ kann man die einzelnen Läufe der Workflows und Sessions überprüfen.

Ein weiterer großer Unterschied sind die Komponenten (Talend) und Transformationen (Informatica). In Talend ist die große Anzahl der verschiedenen Komponenten schon fast erschlagend, während sie in Informatica recht überschaubar ist.

Z.B. gab es in Talend bis vor kurzem allein für jede gängige Datenbank (SQL Server, Oracle, DB2…) jeweils die gleichen 15 Komponenten. In Version 7 haben sie dies abgeschafft und es gibt nur noch 15 Komponenten, in denen man die gewünschte Datenbank auswählen muss. So gibt es z.B. für die Ladestrategie „Bulk Load“ drei Komponenten: tDBOutputBulk, in dem ein Textfile mit den zu ladenden Daten erzeugt wird, tDBBulkExec, um das Textfile von der Datenbank einlesen zu lassen und tDBOutputBulkExec, die beide vorherigen Komponenten zusammenfasst. Diese 15 Komponenten sind immer noch deutlich mehr als es in Informatica gibt. Dort sind es nur eine Input- und eine Output-Transformation, egal ob Quelle/Ziel eine Datenbank oder auch eine Datei ist.

Entwicklung \ Deployment

Zur Entwicklung in Talend sind neben SQL-Kenntnissen auch Java-Kenntnisse notwendig um in der Komponente tMap Felder transformieren zu können.

In Informatica reichen im Grunde SQL-Kenntnisse aus. Im Pendant zu tMap, der Expression Transformation, geschehen oben genannte Transformationslogiken mittels SQL-Syntax.

Besitzt man Java-Kenntnisse kann man diese sehr leicht in Talend einsetzen und Funktionalitäten, die außerhalb der bestehenden Komponenten gewünscht sind, selbst programmieren und einbinden. Dies geht entweder über die Komponente tJava in einem Job direkt oder über sogenannte Code Routinen, in denen man komplette Klassen und Funktionen schreiben kann. Diese lassen sich dann über alle Jobs, ohne eine spezielle Komponente einbinden zu müssen, verwenden.

In Informatica gibt es diese Möglichkeit ebenfalls, allerdings kann man dies nur mittels einer Transformation tun. D.h., dass man programmierte Funktionen nicht in einer Expression Transformation einsetzen kann. Daher ist die Verwendungsmöglichkeit etwas eingeschränkt.

Innerhalb BI-Applikationen ist es für Zeitreihenanalysen Standard eine Historisierung einzubinden. Talend bietet für die Historisierung nach „Slowly Changing Dimensions“ (SCD) eine eigene Komponente an, die alle SCD-Typen abdeckt. Leider gibt es für den Fall, dass eine Löschaufforderung des Quellsystems gesendet wird, keine Möglichkeit Datensätze als ungültig zu markieren. Dies muss dann individuell implementiert werden.

In Informatica gibt es gar keine vorgefertigte Lösung zum Thema Historisierung. Hier müssen alle Historisierungstypen selbst in einzelnen Datensträngen erstellt werden.

Das Deployment ist in Talend sehr komfortabel möglich, wenn man das Artefakt Repository Nexus im Einsatz hat. So muss ein zu deployender Job in das Nexus gepublished werden und kann dann auf allen anderen Umgebungen daraus verwendet werden. Allerdings muss man beachten, dass Hotfixes nicht mehr so leicht möglich sind, wenn auf der Entwicklungsumgebung bereits weiterentwickelt wurde.

In Informatica muss ein Workflow, Mapping oder eine Session am besten über den Repository Manager exportiert werden, damit alle dazugehörigen Objekte auch sicher mitgenommen werden. Diese importiert man dann nun in eine andere Umgebung. Dabei muss sichergestellt werden, dass alle Objekte aus dem Workflow ausgewählt wurden. Dieses Prozedere ist deutlich aufwendiger, aber dadurch sind Hotfixes immer noch leicht möglich.

Testen \ Fehlersuche

Dadurch, dass in Talend alles in einem Tool zusammengefasst ist, fällt einem das Testen deutlich leichter als in Informatica.

In Talend speichert man seine Änderung nur einmal im Job, startet ihn anschließend im Tab „Run“ unterhalb des Designers und kann dort auch gleich den Lauf samt Protokollierung und evtl. Fehlermeldungen kontrollieren. In Informatica muss das Mapping angepasst, die Session refreshed, der Workflow gestartet und am Ende der Lauf im Monitor überprüft werden. Es sind also deutlich mehr Schritte notwendig.

Dafür ist die Fehlersuche in Talend oft etwas langwieriger als in Informatica. Wie bereits erwähnt sind Java Kenntnisse notwendig um alle Funktionalitäten in Talend nutzen zu können. Diese Kenntnisse benötigt man spätestens bei der Fehlersuche, auch wenn man bei Joberstellung bislang darum herumgekommen ist. Die Jobs geben im Falle eines Fehlers eine Java-Fehlermeldung aus, die oftmals nicht sehr genau ist. So wird bei einer NullPointerException in einer tMap-Komponente diese zwar mit angegeben, aber man weiß dann trotzdem nicht in welchem Feld sie aufgetreten ist und muss jedes Feld einzeln überprüfen.

In Informatica hingegen wird das betroffene Feld immer mit ausgegeben und es kann zudem das Trace Level so angegeben werden, dass die einzelnen Datensätze, die in den einzelnen Schritten verarbeitet werden, mit ausgegeben werden. In Talend gibt es die Möglichkeit der Datensatzausgabe ebenfalls, allerdings werden die einzelnen Datensätze überlappend im Designer Fenster angezeigt, sodass es bei größeren Datensätzen nicht mehr lesbar und somit nicht brauchbar ist. Über die Komponente tLogRow können die Datensätze im Run-Fenster ausgegeben werden, die man aber wiederum extra in den Job an die passende Stelle einbauen muss.

Fazit

Wenn man mit beiden Tools länger arbeitet, merkt man, dass Informatica bereits 13 Jahre länger auf dem Markt ist und gewisse „Kinderkrankheiten“ bereits ausgemerzt sind. Diese sind bei Talend immer noch vertreten. Wenn man sie kennt, kann man gut damit auskommen, aber zuverlässiger ist es mit Informatica zu entwickeln.

Auf der anderen Seite finde ich das Testen, trotz manch schwer interpretierbarer Fehlermeldungen, angenehmer, da man nicht ständig zwischen drei Tools hin und her wechseln muss.

Welches der beiden Tools man bevorzugt ist letzten Endes sicherlich Geschmackssache, denn es hängt immer davon ab, auf was man beim Entwickeln besonderen Wert legt.

Zum Abschluss noch einmal alle Fakten kurz und übersichtlich:

 

Talend

Informatica

Aufbau

Alles in einem Tool

Aufgesplittet in 4 Tools

Auswahl aus einer Vielzahl an einzelnen Komponenten

Überschaubare Menge an Transformationen

Entwicklung \ Deployment

SQL und Java Kenntnisse notwendig

Nur SQL Kenntnisse notwendig

Leicht eigenen Code zu schreiben

Code nur in einer speziellen Transformation entwickelbar

Historisierung einfach mittels SCD-Komponente möglich

Historisierung muss selbst entwickelt werden

Testen \ Fehlersuche

Testen in einem Tool komfortabel möglich \ JavaErrorCodes teilweise zu undetailliert

Testen aufwendig \ Fehlersuche einfach

 

Über den Autor
Barbara Hofmann

Barbara ist als Senior Consultant Business Intelligence seit 2015 bei Woodmark Consulting und u.a. Expertin für Talend, Informatica PowerCenter, MS SQL Server, Exasol, DWH und ETL.

Zurück