Ein Scheduler für den Informatica ETL-Prozess
Auf der Suche nach einem geeigneten Open-Source-Tool für das Scheduling von in Informatica PowerCenter umgesetzten ETL-Prozessen haben wir eine Abschlussarbeit ausgeschriebenen und betreut. In dieser wurden die Vor- und Nachteile der Verlagerung des Schedulings von Informatica PowerCenter in ein externes Tool genauer untersucht. Die vollständige Problemstellung sowie eine genauere Unterscheidung von Scheduling-Tools lesen Sie im vorherigen Blog-Eintrag.
In diesem Eintrag präsentieren wir Ihnen die fünf wesentlichen Erkenntnisse der Untersuchungen.
Erkenntnis 1: Externer Scheduler gleich Mehraufwand
Zunächst ist festzuhalten, dass die Verlagerung des Schedulings von Informatica PowerCenter in ein externes Tool immer einen zusätzlichen Aufwand bedeutet.
ETL-Aktivitäten, welche in Informatica PowerCenter Designer als sogenannte Mappings implementiert sind, müssen für ihre Ausführung durch den Integration Service konfiguriert werden. Diese Konfiguration erfolgt zwangsläufig im Informatica PowerCenter Workflow Manager. Darin werden Workflows erstellt, welche sogenannte Session-Tasks enthalten. Diese Tasks referenzieren ein Mapping und beinhalten die Konfigurationen für dessen Ausführung.
Wird das Scheduling mithilfe von Informatica PowerCenter umgesetzt, kann die Ausführungslogik direkt im Workflow Manager implementiert werden. So lassen sich beispielsweise drei Sessions in einem Workflow sequenziell schedulen (siehe schematische Darstellung rechts).
Um ein entsprechendes Scheduling mit einem externen Scheduling-Tool zu realisieren, müssen die Sessions als einzelne Workflows abgelegt werden. Die erstellten Workflows werden dann vom externen Scheduler getriggert. Für den oben gezeigten Workflow ergäbe sich das Bild in der Darstellung links.
Neben dem zusätzlichen Aufwand, welcher sich aus der Erstellung eines Workflows für jede ETL-Aktivität ergibt, kommt ein initialer Aufwand für die Einrichtung der Kommunikation zwischen Scheduler und Informatica Integration Service hinzu.
Erkenntnis 2: Externer Scheduler gleich Mehrwert
Dem Mehraufwand gegenüber steht der Mehrwert, welcher für die Datenintegrationslösung durch den Einsatz eines externen Scheduling-Tools gewonnen wird. Im Wesentlichen betrifft dieser Mehrwert die Übersichtlichkeit über die aktuelle Ausführungssituation (also das Monitoring) und die Möglichkeit, in die Ausführung einzugreifen (Steuerung). Für eine verbesserte Übersicht über die aktuelle Ausführungssituation stellen externe Scheduler häufig eine DAG-Darstellung (directed acyclic graph) der aktuell ausgeführten Workflows dar, in der die Knoten (Jobs) entsprechend ihres Ausführungsstatus eingefärbt sind.
BMC bewerben in ihrem „Product Datasheet: BMC Control-M for Informatica“ ihr Scheduling-Tool. Darin heben sie hervor, dass der Einsatz ihres Schedulers gegenüber dem Informatica-Scheduler Verbesserungen bei Benachrichtigungen, Auditierung, Reporting sowie im Umgang mit Service Level Agreements mit sich bringt. Diese Aussagen konnten in der Arbeit objektiv bestätigt werden. Sie treffen dabei nicht nur auf den externen Scheduler von BMC zu.
Erkenntnis 3: Scheduling-Fähigkeiten von Informatica besser als rudimentär
Dadurch, dass Informatica PowerCenter kein reines Scheduling-Tool ist, sondern lediglich über Scheduling-Fähigkeiten für die Umsetzung von ETL-Jobs verfügt, bestand eine Annahme darin, dass externe Scheduling-Tools in der Regel besser geeignet sind, um komplexe Arbeitsabläufe zu orchestrieren. Tatsächlich stellte sich diese Annahme als unzutreffend heraus.
Auf der Suche nach Scheduling-Tools konnten viele Tools gefunden werden, welche sich lediglich der ersten Generation von Scheduling-Tools, den Batch-Processing-Tools, zuordnen ließen. Diese Tools stellten oftmals lediglich eine im Interface aufgewertete und um Funktionalitäten erweiterte Version der Cron-Tab dar. Um über dieses Level hinauszukommen, muss ein Scheduling-Tool die Fähigkeit besitzen, mit komplexen Abhängigkeiten umgehen zu können. Das bedeutet, dass ein Job in einem Workflow mehrere Vorgänger und/oder Nachfolger haben kann.
Im Falle mehrerer Nachfolger können zum einen entweder alle nachfolgenden Jobs ausgeführt werden, was parallellaufende Aufgaben erzeugt (AND in rechter Abbildung). Zum anderen lassen sich bedingte Ausführungen umsetzen, wobei der im Folgenden auszuführende Pfad des Workflows durch eine exklusiv-oder Frage entscheiden wird (OR in rechter Abbildung).
Die Ausführung eines Jobs mit mehreren Vorgängern lässt sich von den Ausführungsstatus dieser Vorgänger-Jobs abhängig machen. Dabei ist es zum einen möglich, den Job erst auszuführen, wenn alle Vorgänger ausgeführt wurden (AND in linker Abbildung). Zum anderen kann die Ausführung auch so konfiguriert werden, dass bereits ein ausgeführter Vorgänger die Ausführung des betreffenden Jobs auslöst (OR in linker Abbildung).
Die Möglichkeit mit allen vier Varianten komfortabel umgehen zu können, war nur in den wenigsten der untersuchten Scheduling-Tools (kommerzielle sowie Open Source) gegeben. Informatica PowerCenter ist eines der wenigen Tools, welches sich für die Umsetzung solcher komplexen Abhängigkeiten voll und ganz eignet. Darüber hinaus bietet der Informatica PowerCenter Workflow Manager bezüglich der Erstellung von Workflows als DAGs, mit relativ kompakten Icons als Knoten und Beschriftungen für Ausführungsbedingungen an den Kanten, eine sehr solide und übersichtliche Lösung.
Erkenntnis 4: Performance externer Scheduling-Lösungen vs. Informatica PowerCenter
Bei der Untersuchung und dem Vergleich von Scheduling-Lösungen wurden auch Performance-Aspekte betrachtet. Die Performance eines Schedulers äußert sich darin, wie schnell er einer Ressource den nächsten Arbeitsauftrag zuweist, nachdem diese gemeldet hat, dass sie freigeworden ist. Diese Zeitspanne wird im Wesentlichen von zwei Faktoren bedingt: Der benötigten Zeit für die Netzwerkkommunikation (im Falle von konsolidieren Job Schedulern oder ITWAB) sowie der Geschwindigkeit des zentralen Schedulers selbst.
Eine Netzwerkkommunikation lässt sich zunächst immer über SSH einrichten. Wird ein externer Scheduler mit SSH-Kommunikation eingesetzt, ergibt sich gegenüber der reinen Informatica-Lösung ein kleiner Zeitverlust durch den Verbindungsaufbau. Einige Scheduling-Tools stellen einen Agenten bereit, welcher auf dem zu kontaktierenden Informatica-Server ausgeführt wird und der die Kommunikation mit dem Scheduling-Server regelt. Gegebenenfalls lässt sich durch einen solchen Agenten der beschriebene Zeitverlust geringhalten.
Weitaus gewichtiger als die benötigte Zeit für die Kommunikation ist die Zeit, die der zentraler Scheduler benötigt, um den nächsten auszuführenden Job zu ermitteln. Diese hängt stark von der Implementierung des Schedulers ab. Durch die weiter oben beschriebene Workflow-Kapselung ist dabei keine schnellere Lösung als das Scheduling mit Informatica PowerCenter möglich. Die in der Abschlussarbeit durchgeführten Tests haben deutlich gemacht, dass der Einsatz von externen Scheduling-Tools in der Regel einen signifikanten Performanceverlust mit sich bringt. Jedoch wurden auch Scheduling-Tools gefunden, welche nahe an die Ausführungszeiten von Informatica herankamen.
Erkenntnis 5: DAG-Tools
Im Rahmen der Arbeit sind neben konsolidierten Job Schedulern weitere Tools untersucht worden. Darunter befanden sich sogenannte DAG-Tools, welche vielerorts für das Pipelining in Hadoop-Umgebungen verwendet werden. Als Vertreter dieser Tools seien hier Airflow, Azkaban und Luigi genannt. In der Arbeit wurde gezeigt, dass derartige Tools ebenfalls für das Scheduling von in Informatica umgesetzten ETL-Aktivitäten genutzt werden können.
Informatica PowerCenter oder externer Scheduler – auch eine Frage der Granularität
Zusammenfassend lässt sich also sagen, dass durch die Ablösung des Informatica-Schedulings durch einen externen Scheduler Verbesserungen besonders im Bereich Monitoring und Steuerung möglich sind. Dem gegenüber stehen der Mehraufwand für Workflow-Erstwellung und die drohenden Performanceverluste.
Die Entscheidung für oder gegen ein externen Scheduler muss allerdings keine Entweder-oder-Entscheidung sein. Über Abstufungen in der Granularität der zu schedulenden Elemente können die Geschwindigkeit des Informatica Schedulers mit dem Mehrwert der Übersichtlichkeit eines externen Scheduler kombiniert werden. Der richtige Mix ist hierbei entscheidend.