Scheduling von Informatica PowerCenter-Mappings

Ein Scheduler für den Informatica ETL-Prozess

Als Kernelement des Data Warehousings realisieren ETL-Prozesse den Datenfluss zwischen operativen Systemen und dem Data Warehouse. Diese ETL-Prozesse bestehen dabei mitunter aus einer Vielzahl von ETL-Aktivitäten, zwischen denen komplexe Abhängigkeiten bestehen können. Zur Orchestrierung eines korrekten Ablaufs der einzelnen ETL-Aktivitäten (Scheduling) werden sogenannte Scheduling-Tools eingesetzt.

Scheduling-Tools im Allgemeinen

Diese Tools stellen die einzelnen ETL-Aktivitäten (Jobs) im Regelfall als Kanten eines gerichteten, azyklischen Graphens (DAG) dar. Der so modellierte Ablauf wird als Workflow bezeichnet. Die Darstellung eines komplexeren Workflows in Informatica PowerCenter Workflow Manager ist in der nebenstehenden Abbildung gezeigt.

Informatica PowerCenter Workflow Manager vs. externes Scheduling-Tool

Werden die einzelnen ETL-Aktivitäten mithilfe von Informatica PowerCenter umgesetzt, ist eine Umsetzung des Schedulings mithilfe von Informatica PowerCenter Workflow Manager naheliegend. Jedoch lassen sich die einzelnen ETL-Aktivitäten auch extern auslösen und überwachen, was den Einsatz von dedizierten Scheduling-Tools wie beispielsweise Control-M von BMC oder Automic Automation von Broadcom (ehemals UC4) ermöglicht. Dies bietet den Mehrwert, dass Workflows komfortabler gesteuert und übersichtlicher überwacht werden können.

Während in einigen unserer Kundenprojekte dedizierte Scheduling-Tools eingesetzt werden, greifen wir in anderen Projekten auf die Scheduling-Fähigkeiten von Informatica PowerCenter zurück. Für Projekte ohne externen Scheduler erwuchs die Idee, die umgesetzten Datenintegrationslösungen mithilfe eines Open Source Tools in ihrem Scheduling-Funktionsumfang zu erweitern. Die Suche nach einem geeigneten Tool bot für uns den Anreiz, die Vor- und Nachteile der Verlagerung des Schedulings von Informatica PowerCenter in ein externes Tool genauer zu untersuchen. Dies geschah in einer von uns ausgeschriebenen und betreuten Abschlussarbeit.

Scheduling-Tool ungleich Scheduling-Tool

Eine Erkenntnis, die bereits zu einem sehr frühen Ausarbeitungsstadium der Arbeit gewonnen werden konnte, ist, dass es für die hier als Scheduling-Tool bezeichneten Anwendungen a) viele Synonyme gibt und b) unter diesen Synonymen nicht zwangsläufig immer dasselbe verstanden wird.
Viele verschiedene Entwickler haben über die Zeit für ihre Scheduling-Anwendungen und ihre Features unterschiedliche Benennungen gefunden. Aus verschiedenen Quellen wurde daher in der Abschlussarbeit eine Übersicht abgeleitet, welche einen Überblick über die verschiedenen Arten von Scheduling-Tools sowie deren Features bietet. Die verschiedenen Arten entsprechen dabei den Generationen der Scheduling-Tools. Im Folgenden werden diese entlang ihrer Historie kurz vorgestellt.

BATCH PROCESSING TOOLS

Das Batch-Processing (die Stapelverarbeitung) geht auf die frühen Mainframe-Systeme zurück, denen die Rechenanweisungen als Stapel von Lochkarten übergeben wurden. Die Verarbeitung der Stapel erfolgte in einem nicht-interaktiven Prozess.

Zusätzliche Bedeutung gewann das Batch-Processing mit dem Aufkommen des Online-Processings, welches auf interaktive Weise durch Benutzeraktionen ausgelöste Prozesse verarbeitet. Werden rechenintensive Batch-Jobs auf einer Maschine ausgeführt, welche auch das Online-Processing übernimmt, so muss das Batch-Processing auf ein Zeitfenster gelegt werden, zu dem die Benutzeraktivität niedrig ist. Aus diesem Grund werden Batch-Jobs vorrangig nachts ausgeführt.

Mit Tools der Generation Batch-Prozessing lassen sich drei elementare Punkte bestimmen:

– Was für Jobs sollen ausgeführt werden?
– In welcher Reihenfolge sollen die Jobs ausgeführt werden?
– Wann soll der erste Job ausgeführt werden?

Als prominente Vertreter dieser Art von Scheduling-Tools sind die Cron-Tab in Kombination mit Shell-Skripten und der Windows Task Scheduler zu nennen.

JOB SCHEDULER

Die vorherige Generation der Batch-Processing-Tools ermöglicht lediglich eine sequentielle Abarbeitung von Jobs. Die Generation der Job Scheduler unterscheidet sich im Wesentlichen darin, dass sie die Erstellung komplexer Workflows ermöglicht. Dabei können für einen Job mehrere Vorgänger und/oder Nachfolger definiert, sowie dessen Ausführungsbedingungen konfiguriert werden. Daneben erweitert diese Generation der Scheduling-Tools die vorherige um Features zur Überwachung der Workflowausführung. Der folgende skizzierte Workflow kann somit mit einem Scheduling-Tool der Generation Job-Scheduler umgesetzt werden.

KONSOLIDIERTER JOB SCHEDULER

Durch den Einsatz von Batch-Processing-Tools und Job-Schedulern lassen sich unterschiedlichste Rechenaufträge auf einzelnen Rechnern automatisieren. Dabei findet jedoch bezüglich des Schedulings keine Synchronisation der Rechner untereinander statt. Jeder Rechner bildet sein eignes „Silo der Automation“.
Um Arbeitsabläufe orchestrieren zu können, welche über mehrere Rechner eines Unternehmens verteilt sind, ist es erforderlich, diese Silos der Automation aufzubrechen. Die Generation der konsolidierten Job-Scheduler setzt an diesem Punkt an.
Die generelle Vision besteht darin, eine zentrale Stelle für alle zu automatisierenden Prozesse eines Unternehmens zu schaffen. Daher bringen Scheduling-Tools dieser Generation eine zentrale GUI für das Monitoring und Managing von Workflows sowie einen zentralen Scheduler mit. Der Scheduler wird auf einem separaten Rechner betrieben und kommuniziert mit den im Unternehmen eingesetzten Rechnern, welche die Rolle der Arbeitsknoten einnehmen.

Stehen mehrere Arbeitsknoten vor, welche denselben Aufgabentyp verarbeiten können, so kann durch den konsolidierten Job-Scheduler eine Lastverteilung vorgenommen werden.

ITWAB (IT Workload Automation Broker)

Dadurch, dass nicht jeder Arbeitsknoten jeden Job ausführen kann, ist die Lastverteilung bei konsolidierten Job-Schedulern nur im begrenzten Maße möglich. Situationen, in denen Arbeitsknoten eines Typs voll ausgelastet sind, erzeugen höhere Wartezeiten, wobei üblicherweise die Rechenkapazität der übrigen Arbeitsknoten ungenutzt bleibt.

Gartner greift dieses Problem auf und stellt im Jahr 2005 das Konzept der IT Workload Automation Broker vor. Nach diesem werden verschiedene Aufgabentypen je einer Gruppe an Arbeitsknoten zugewiesen. Mithilfe von Virtualisierung und Cloud-Computing werden ausgelastete Gruppen dynamisch in ihrer Rechenleistung erweitert, insofern dies erforderlich wird.

Dadurch können die Flaschenhälse der Workflows abgeschwächt und somit Wartezeiten zu Lastspitzen reduziert werden. Sobald die Lastspitze abgearbeitet ist, kann die anschließend nicht länger für die Gruppe benötigte Rechenleistung zurück an die Cloud gegeben werden. Von dort aus kann sie anderen Gruppen zugewiesen werden oder in der Cloud verbleiben. Um Energie und Kosten zu sparen können bei überschüssiger Rechenleistung in der Cloud physische Rechner heruntergefahren werden.

Konsolidierter Job-Scheduler für Informatica PowerCenter

Die Scheduling-Fähigkeiten, welche Informatica PowerCenter über die Komponenten Workflow Manager und Monitor mitbringt, sind am ehesten der Generation der Job-Scheduler zuzuordnen.

Für das Steuern und Überwachen von in Informatica PowerCenter umgesetzten ETL-Aktivitäten eignet sich unserer Erfahrung nach ein Tool der Generation konsolidierter Job-Scheduler am besten. Darunter zählen bei entsprechender Verwendung auch die Anwendungen Control-M und Automic Automation.

Im Rahmen der Abschlussarbeit wurde daher die Suche nach einem Open-Source-Tool als externer Scheduler für Informatica auf Tools der Generation konsolidierter Job-Scheduler ausgerichtet. Nachdem entsprechende Tools gefunden waren, wurden die verschiedenen Scheduling-Lösungen für Informatica PowerCenter miteinander verglichen.

Die Erkenntnisse aus diesem Vergleich lesen Sie demnächst auf unserer Website.