BICsuite!focus Parallelisierung von Prozessen mit der BICsuite Dynamic Submit Funktion



Ähnliche Dokumente
BICsuite!focus Das BICsuite Scheduling System im Data Warehouse Umfeld

SF-RB. Modul Provisionsabrechnung & Planung Reiseagentenprovisionsabrechnung & Planung. SF-Software Touristiksoftware

schedulix!focus Job Scheduling als Alternative zur Ablaufsteuerung mit Shell Scripten

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Installationsanleitung dateiagent Pro

ABACONNECT VERWENDUNG VON APACHE TCPMON UTILITY MIT ABACONNECT WEBSERVICES

Content Management System mit INTREXX 2002.

LEAN MANUFACTURING. Teil 7 Lean und Six Sigma. Ein Quick Guide für den schnellen Einstieg in die Möglichkeiten der Lean Philosophie.

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

3. Stored Procedures und PL/SQL

Avira Management Console Optimierung für großes Netzwerk. Kurzanleitung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Produktinfo Zahlungsvorschlagsliste

Lizenzierung von System Center 2012

Einzel- s und unpersönliche Massen-Mails versenden

BEDIENUNG ABADISCOVER

Dokumentenverwaltung. Copyright 2012 cobra computer s brainware GmbH

LEAN MANUFACTURING. Teil 2 Lean Konzepte. Ein Quick Guide für den schnellen Einstieg in die Möglichkeiten der Lean Philosophie.

An integrated total solution for automatic job scheduling without user interaction

Die Lernumgebung des Projekts Informationskompetenz

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Task: Nmap Skripte ausführen

Dokumente verwalten. Copyright 2013 cobra computer s brainware GmbH

Projektcontrolling in der Praxis

Car-Net über WLAN Aufbau einer Internet-Verbindung über WLAN zur Nutzung von Car-Net

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Monitoring-Service Anleitung

Kleines Handbuch zur Fotogalerie der Pixel AG

Vergleich: Positionen der Word 2003-Befehle in Word

Professionelle Seminare im Bereich MS-Office

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation. 7 Key Features.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Layoutmodelle. Steffen Schwientek Große Klostergasse Friedberg schwientek@web.de Web :schlaukopp.org

Car-Net über WLAN Aufbau einer Internet-Verbindung über WLAN zur Nutzung von Car-Net

DIE SCHRITTE ZUR KORREKTEN LIZENZIERUNG

ISA Server 2004 Protokollierung - Von Marc Grote. Die Informationen in diesem Artikel beziehen sich auf:

INSTALLATION ABACUS ABAWEBCLIENT

Anwendungsbeispiele. Neuerungen in den s. Webling ist ein Produkt der Firma:

Nachricht der Kundenbetreuung

SIX SIGMA TEIL 2: DIE DEFINE PHASE DMAIC MARTIN ZANDER. Green Belt Level

Datenübernahme easyjob 3.0 zu easyjob 4.0

Projektmanagement in Outlook integriert

AZK 1- Freistil. Der Dialog "Arbeitszeitkonten" Grundsätzliches zum Dialog "Arbeitszeitkonten"

Das Leitbild vom Verein WIR

GRS SIGNUM Product-Lifecycle-Management

Microsoft Windows XP SP2 und windream

Prozessbewertung und -verbesserung nach ITIL im Kontext des betrieblichen Informationsmanagements. von Stephanie Wilke am

HTBVIEWER INBETRIEBNAHME

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Sicherheitseinstellungen... 2 Pop-up-Fenster erlauben... 3

Objektorientierte Programmierung für Anfänger am Beispiel PHP

LineQuest-Leitfaden LineQuest Dialog-Portal. Generieren der LineQuest-Auswertungsdatei

Update-Anleitung. Copyright 2010 cobra computer s brainware GmbH

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Kurzexposé Safari Studie Schwachstellenanalyse und Best. Practices in der Krankenhausdokumentation. Safari Studie Schwachstellenanalyse und Best

Proseminar Technische Informatik A survey of virtualization technologies

Infopark CMS Fiona. Fiona Release Notes

How-to: Webserver NAT. Securepoint Security System Version 2007nx


In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Kostenstellen verwalten. Tipps & Tricks

white sheep GmbH Unternehmensberatung Schnittstellen Framework

1. Einführung. 2. Archivierung alter Datensätze

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

OUTLOOK (EXPRESS) KONFIGURATION POP3

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

(1) Mit dem Administrator Modul werden die Datenbank, Gruppen, Benutzer, Projekte und sonstige Aufgaben verwaltet.

Die integrierte Zeiterfassung. Das innovative Softwarekonzept

Kapitel I: Registrierung im Portal

Grundlagen für den erfolgreichen Einstieg in das Business Process Management SHD Professional Service

«Eine Person ist funktional gesund, wenn sie möglichst kompetent mit einem möglichst gesunden Körper an möglichst normalisierten Lebensbereichen

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Konfigurationsanleitung Konfiguration unter Outlook Express 6.0

Online Newsletter III

Projektmanagement in Outlook integriert InLoox 5.x Installationshilfe für Windows Terminalserver

Leichte-Sprache-Bilder

1. Einführung. 2. Weitere Konten anlegen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Java Enterprise Architekturen Willkommen in der Realität

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Analyse zum Thema: Laufzeit von Support-Leistungen für ausgewählte Server OS

Avira Server Security Produktupdates. Best Practice

IT-SICHERHEIT IM UNTERNEHMEN Mehr Sicherheit für Ihre Entscheidung

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Translation Memory Leistungsstarke Technologie, die Zeit und Geld spart

LAS PROGRAMM- ANPASSUNGEN

Gesetzliche Aufbewahrungspflicht für s

Menüband. Änderungen, Irrtümer und Druckfehler vorbehalten. Bearbeitet von Harald Borges. Stand April

EasyWk DAS Schwimmwettkampfprogramm

Feiertage in Marvin hinterlegen

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Browserkonfiguration für Internet Explorer 6.0

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

Individuelle Formulare

Transkript:

independit Integrative Technologies GmbH Bergstraße 6 D 86529 Schrobenhausen BICsuite!focus Parallelisierung von Prozessen mit der BICsuite Dynamic Submit Funktion Dieter Stubler Ronald Jeninga July 30, 2013

Copyright 2013 independit GmbH Rechtlicher Hinweis Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung des Artikels, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung der independit GmbH in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren), auch nicht für Zwecke der Unterrichtsgestaltung, reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden.

Parallelisierung von Prozessen mit der BICsuite Dynamic Submit Funktion Einführung Typisch für Data Warehouse Umgebungen ist die Verarbeitung großer Datenmengen. Abhängig von den zur Verfügung stehenden Hardware Ressourcen ist früher oder später der Zeitpunkt erreicht, an dem sich ein Verarbeitungsschritt nicht mehr durch Ausführung auf einem Prozessor bzw. als ein Prozess abbilden läßt. Die Ursachen dafür sind: Zeitliche Anforderungen erfordern die Nutzung von mehreren Prozessoren Systemressourcen (Memory, Plattenplatz, Temp Tablespace, Rollback Segmente,...) stehen nur begrenzt zur Verfügung. Auftretende Fehler erfordern häufige Wiederholung der Verarbeitung Parallelisierung durch RDBMS Parallel Processing Moderne Datenbanksysteme erlauben paralleles Query Processing. Durch den Einsatz dieses Features können Abfragen und teilweise auch Datenmanipulationen auf grosse Datenmengen datenbankintern parallelisiert und auf mehreren Prozessoren ausgeführt werden. Vorteile dieser Lösung sind: Kein bzw. geringer Entwicklungsaufwand Overhead durch Parallelisierung gering Nachteile dagegen sind: Kontrolle des Parallelitätsgrades ist nur eingeschränkt bzw. aufwändig möglich Anpassung der Anzahl zu einer Zeit auszuführende parallelen Teilprozesse zur Laufzeit im allgemeinen nicht möglich Bei Auftreten eines Fehlers geht die bereits geleistete Arbeit vollständig verloren Erforderliche Datenbank Systemressourcen (Temp Tablespace, Rollback Segmente,...) müssen für die komplette Operation ausreichend zur Verfügung stehen In Systemen in welchen Ressourcenkontrolle sehr wichtig ist, sind datenbankintern parallelisierte Prozesse problematisch, da ihr Ressourcenverbrauch oft nicht deterministisch ist 1

Einfluß der Parallelisierung auf das Restsystem ist nur schwer vorhersehbar bzw. planbar RDBMS Parallel Processing eignet sich deshalb in erster Linie zur Beschleunigung von Operationen durch den Einsatz mehrerer Prozessoren für eine Verarbeitung. Stehen Systemressourcen nicht im Überfluss zur Verfügung machen sich die Nachteile stärker bemerkbar. Dies gilt besonders für, trotz Parallelisierung, langlaufender Verarbeitungen. Parallelisierung auf Anwendungsebene Alternativ zur RDBMS internen Parallelisierung ist es meist möglich eine Verarbeitung schon anwendungsseitig in parallel ausführbare Teilaufgaben zu zerlegen und diese dann parallel auszuführen. Vorteile dieser Lösung sind: Die volle Kontrolle des Parallelitätsgrades ist möglich. Anzahl zu einer Zeit aktiven Parallelprozesse ist dynamisch regelbar. Fehler in einem Parallelprozess invalidieren nicht die Arbeit anderer erfolgreich gelaufener Parallelprozesse. Die Auswirkungen von Fehlern auf die Gesamtlaufzeit wird dadurch reduziert. Systemressourcen müssen nur für die gleichzeitig laufenden Parallelprozesse zur Verfügung stehen Ressourcenverbrauch ist besser planbar und der Einfluß auf das Restsystem dynamisch beeinflussbar. Nachteile dagegen sind: Die Implementierung ist ohne Unterstützung eines geeigneten Scheduling Systems sehr aufwändig Der Overhead für Ergebniszusammenführung typischerweise ist höher als bei RDBMS interner Paralleliserung Die Gegenüberstellung der Vor- und Nachteile der anwendungsbasierten Parallelisierung macht deutlich, dass vor allem für sehr aufwändige und lang laufenden Verarbeitungsprozesse in Umgebungen mit eingeschränkter Ressourcenverfügbarkeit die anwendungsbasierte Parallelisierung einer RDBMS internen Parallelisierung vorzuziehen ist. Gerade in Data Warehouse Umgebungen sind Verarbeitungen mit oben genannten Eigenschaften sehr häufig anzutreffen. 2

Implementierung Die Implementierung von anwendungsbasierter Parallalelisierung erfordert immer folgenden 3(4) Teilaufgaben: 1. Zerlegung einer Verarbeitung in parallel verarbeitbare Teilprozesse 2. Realisierung des Teilprozesses 3. Steuerung der parallelen Ausführung der Teilprozesse 4. Optional die Zusammenführung der Teilergebnisse zu einem Gesamtergebnis Beispiel: In einem Data Warehouse existiert ein SQL Script welches über eine sehr große partitionierte Datenbanktabelle ein Aggregat erzeugt und dieses in einer Ergebnistabelle ablegt. Da die Verarbeitung inzwischen den zur Verfügung stehenden TEMP Bereich der Datenbank sprengt, soll diese parallelisiert werden. Die Realisierung von 1. besteht im wesentlichen daraus, eine Liste der Partitionen zu erzeugen und für jede dieser Partitionen einen Teilprozess anzustoßen. Für 2. ziehen wir das ursprüngliche SQL Script heran. Wir ändern dieses so, daß die Aggregation nicht auf die ganze Tabelle, sondern nur auf eine, als Parameter übergebene, Partition der Tabelle erfolgt. Das Ergebnis legen wir in einem Zwischenaggregat ab. Nach Ausführung aller parallelen Teilprozesse muss für 4. das Zwischenaggregat nochmals aggregiert werden und in die Ergebnistabelle geschrieben werden. Auch für diese Aufgabe liefert das ursprüngliche SQL Script eine gute Vorlage. Die obigen Realisierungsmaßnahmen sind typischerweise in wenigen Stunden realisierbar. Das Sorgenkind der Realiserung stellt Punkt 3. dar. Will man alle Vorteile der anwendungsbasierten Parallelisierung erzielen, so muss ein Steuerungsmechanismus implementiert werden, der mindestens folgende Funktionen bietet: Ausführung und Fehlererkennung der parallelen Teilprozesse Steuerung der Anzahl gleichzeitig laufender Parallelprozesse (zur Laufzeit) Überwachung und Wiederanlauf von Teilprozessen nach einem Fehler. Muß hier individuelle Entwicklung (Scripting,...) betrieben werden, ist erhebliches Know How erforderlich und eine effiziente, stabile und auch wartbare Lösung mit vertretbarem Kostenaufwand kaum zu erreichen. Lassen sich die parallelen Teilprozesse nicht in das eingesetzte Scheduling System einbinden, so entziehen sich diese einer wirksamen Kontrolle und Steuerung im Betrieb des Data Warehouse Gesamtsystems. 3

Das BICsuite Scheduling System dagegen, bietet alle Funktionen um den Punkt 3. der Implementierung (siehe oben) vollständig abzudecken. Damit sind für die Realisierung der schwierigsten Aufgabe in diesem Kontext keinerlei Entwicklungsaufwände notwendig. Das größte Hindernis für die Parallelisierung von Prozessen auf Anwendungsebene ist damit entschärft. Implementierung im BICsuite Scheduling System mit Dynamic Submits Das BICsuite Scheduling System erlaubt es einem Job über das BICsuite API, hierarchisch untergeordnete Child Jobs mit unterschiedlichen Parametern zu erzeugen. Diese sind dann im Scheduling System wie alle anderen Jobs eines Ablaufes sichtbar. Alle Funktionen (Monitoring, Operation, Ressourcenmanagement,...) des BICsuite Scheduling Systems stehen uneingeschränkt auch für diese dynamisch erzeugten Job Instanzen zur Verfügung. Zurück zum Beispiel: Abbildung 1 zeigt die Definition des parallelisierten Ablaufes Im BICsuite Scheduling System. Figure 1: Definition der Aggregation im BICsuite Scheduling System Wird der Batch AGGREGATE mit einem Submit zur Ausführung gebracht, werden dabei die beiden statischen Child Jobs SUBMIT PARTITIONS und AGGREGATE TOTAL erzeugt und der Job SUBMIT PARTITIONS kann anlaufen. Durch die Abhängigkeit (Pfeil im Bild) von SUBMIT PARTITIONS wird AGGREGATE TOTAL erst ausgeführt nachdem der SUBMIT PARTITIONS Job inklusive aller seiner Child Jobs abgeschlossen ist. Das dem SUBMIT PARTITIONS Job zugrunde liegende Programm stellt die Realisierung von Punkt 1. unserer Teilaufgaben zur Parallelierung dar. Es ermittelt die Partitions der Datenbanktabelle und erzeugt über das BICsuite API (z.b.: commandline command submit ) für jede Partition einen Child Job. Das für den Job SUBMIT PARTITIONS auszuführende Kommando kann in einer UNIX Umgebung wie folgt definiert werden: 4

sh -c "for P in P1 P2 P3 P4 P5 P6 P7 do submit --host $SDMSHOST --port $SDMSPORT --jid $JOBID \\ --key $KEY --job PARTITION --tag \$P PARTITION \$P if [ \$?!= 0]; then exit 1; fi done" Im Monitoring des Scheduling Systems stellt sich ein laufender AGGREGATE Batch nun wie in Abbildung 2 dar. Figure 2: Monitoring Window einer laufenden Aggregation Jeder einzelne der AGGREGATE PARTITION Jobs ist nun über das BICsuite Scheduling überwachbar und kann im Fehlerfall einzeln wiederholt (Rerun) werden. Durch wenige Handgriffe kann durch Definition einer Ressource und Requirements für diese Ressource am Job AGGREGATE PARTITION geregelt werden, wieviele der AGGREGATE PARTITION Jobs zu einer Zeit vom System ausgeführt werden sollen. Diese Anzahl läßt sich auch während der Laufzeit anpassen. Abbildung 2 zeigt den Ablauf mit einer aktuellen Einstellung von maximal drei parallelen AG- GREGATE PARTITION Jobs. Zusätzlich können die AGGREGATE PARTITION Jobs durch Requirements für Ressourcen zur Abbildung von zur Verfügung stehenden Systemressourcen in das Ressourcen Management des übrigen Data Warehouse Betriebs eingebunden werden. Schlußbemerkung Das BICsuite Scheduling System ermöglicht mit seiner Dynamic Submit Funktionalität eine schnelle, kostengünstige, stabile und wartbare Realisierung von anwendungsbasierter Parallelisierung. Die parallelen Teilprozesse werden in den Ablauf eingebunden, und werden damit im Scheduling system sichtbar. Die Übersicht und Kontrolle über jeden dieser Teilprozesse ist damit zu jeder Zeit gegeben. 5