Einsatz von Java für komfortables OWB Scripting zur

Werbung
Einsatz von Java für komfortables OWB Scripting
zur Qualitätssicherung und Effizienzsteigerung
Reinhard Mense
ARETO Consulting GmbH
Bergisch Gladbach
Schlüsselworte:
Oracle Warehouse Builder, OWB Scripting, OWB Java API, OMB Plus, OWB Experts,
Projektstandards, Qualitätssicherung
Einleitung
In Zeiten knapper werdender Budgets ist eine effiziente Entwicklung von Data WarehouseSystemen von hoher Bedeutung. OWB Scripting kann bei Routine-Tätigkeiten, wie z. B. der
Durchführung von Massenupdates im Design-Repository oder dem Deployment, die Effizienz
der Entwicklung mit dem Oracle Warehouse Builder (OWB) steigern. Ein umfassender
Einsatz des OWB Scripting erweist sich jedoch oft als aufwendig und umständlich, so dass es
sinnvoll ist, Optimierungsansätze zu verfolgen. Im Folgenden wird gezeigt, wie durch die
Verwendung der Java API des OWB das OWB Scripting deutlich komfortabler gestaltet
werden kann.
Bevor die technischen Details beschrieben werden, soll der Nutzen am praktischen Einsatz
bei einem Kunden erläutert werden. Im letzten Abschnitt dieses Manuskripts werden weitere
Einsatzmöglichkeiten aufgezeigt.
Einsatz in der Praxis
Ein Kunde aus dem Verlagswesen betreibt ein Data Warehouse (DWH) für die Auswertung
von Zugriffen auf Online-Shops und Online-Portalen und registrierte eine zunehmende
Laufzeit des ETL-Prozesses. Es bestand die Gefahr, dass das zur Verfügung stehende
Zeitfenster für die Beladung des DWH nicht mehr ausreicht. Ein Review des Systems zeigte,
dass die nächtlich zu verarbeitenden Datenmenge die ursprünglichen Erwartungen übersteigt
und die ETL-Prozesse für die Verarbeitung dieser Datenmengen nicht mehr geeignet sind. Als
Hauptursache für die stetige Verlangsamung der ETL-Prozesse wurde festgestellt, dass die ca.
40 Fakttabellen nicht partitioniert waren. Damit die Partitionierung der Fakttabellen effektiv
genutzt werden konnte, mussten auch die zugehörigen ca. 40 Mappings angepasst werden.
Der Aufwand für eine manuelle Änderung wurde auf eine Stunde pro Mapping und Tabelle
geschätzt. Zusätzlich wäre bei einer manuellen Änderung jedes einzelne Mapping explizit zu
testen. Dieser Testaufwand wurde im Schnitt mit ebenfalls einer Stunde beziffert. Somit ergab
sich ein geschätzter Gesamtaufwand von 80 Stunden, also etwa zehn Arbeitstagen.
Mit Hilfe eines für die Durchführung von Massenupdates und die Erzeugung von OMB
Skripten bereits entwickelten Java Programms, konnten die notwendigen Änderungen
größtenteils automatisiert durchgeführt werden. Der Aufwand wurde somit erheblich
reduziert. Statt der kalkulierten zehn Tage, wurden insgesamt nur zwei Tage für die
Umstellung benötigt. Der Aufwand für die Durchführung der Änderungen wurde auf einen
Tag reduziert. Der Testaufwand konnte durch die Automatisierung ebenfalls deutlich, auf nur
einen Tag, reduziert werden. Der drohende Engpass bei der nächtlichen Beladung wurde
somit rechtzeitig vermieden.
OWB Scripting mit OMB Plus und OWB Experts
OWB Scripting ermöglicht das Lesen und Verändern der Objekte im OWB Repository mit
Hilfe der Skript-Sprache OMB Plus. OMB Plus ist eine Erweiterung der Programmiersprache
Tcl, deren Syntax zwar simpel ist, aber auch häufig als ungewöhnlich empfunden wird. OMB
Plus erweitert Tcl um OMB-Befehle (B steht hier für Batch) die den Zugriff auf das OWB
Repository ermöglichen.
Neben den OMB-Befehlen stellt OMB Plus auch noch OMU-Befehle (U steht hier für User
Interface) zur Verfügung. Mit Hilfe der OMU-Befehle können Dialog-Komponenten des
OWB Client für einzelne OWB Objekte aufgerufen werden. So kann z. B. für eine bestimmte
Tabelle der Editor (OMUALTER TABLE) oder der Property-Dialog (OMUPROPERTIES
TABLE) aufgerufen werden. Da es sich bei den Dialogen um die Standarddialoge des OWB
Client handelt, können diese nicht den Bedürfnissen angepasst werden und sind somit nicht
für die Verarbeitung von Massenupdates geeignet.
Die Ausführung der OMB Plus Skripte kann auf zwei Wegen geschehen: in der OMB Plus
Konsole und innerhalb von OWB Experts. OWB Experts ermöglichen den kontextsensitiven
Aufruf von OMB Plus Skripten direkt aus dem OWB Client. So kann beispielsweise ein
Skript für eine bestimmte Tabelle oder ein bestimmtes Mapping aufgerufen werden.
OWB Experts erlauben mit der UI-Komponente "Custom Dialog" eigene Dialoge zu erstellen,
so dass man nicht nur auf die Standarddialoge des OWB Client beschränkt ist. Die
Möglichkeiten der "Custom Dialoge" sind jedoch stark eingeschränkt und damit eher für
einfache Dialoge geeignet. Tabellarische Darstellungen oder Menüs sind dabei nicht möglich.
Bei Auswahl eines Buttons wird außerdem der "Custom Dialog" stets geschlossen, so dass
geschachtelte Dialoge nicht erstellt werden können.
Abb. 1:Nachteile und Grenzen von OMB Plus Skripten und OWB Experts
Aufgrund dieser Restriktionen sind OMB Plus Skripte und OWB Experts ohne Nutzung der
Java API nur bedingt geeignet für die Entwicklung komplexer und komfortabler GUIOberflächen. Mit der Bereitstellung der Java API des OWB hat Oracle eine Möglichkeit
geschaffen, die Nachteile und Restriktionen aufzuheben.
Java API des OWB
Durch die Nutzung der Java API des OWB können die Möglichkeiten von Java ausgeschöpft
und so komplexe und komfortable GUI-Oberflächen für den Zugriff auf das OWB Repository
erstellt werden.
Der OWB nutzt eine große Zahl von JAR-Dateien und stellt mit ihnen eine Vielzahl von
Klassen und Methoden für den Zugriff auf das OWB Repository zur Verfügung. Der Zugriff
kann über zwei Wege erfolgen: der indirekte Zugriff per OMB Plus-Skript und der direkte
Zugriff.
Im Folgenden werden die beiden Zugriffsarten erläutert und die wichtigsten Klassen und
Methoden exemplarisch vorgestellt.
Indirekter Zugriff auf das OWB Repository per OMB Plus-Skripte
Beim indirekten Zugriff auf das OWB Repository wird mit Java ein OMB Plus Skript erzeugt.
Das erzeugte OMB Skript wird an eine Instanz der Klasse OMBEngine übergeben
(Abbildung 2) und von dieser mit der Methode executeStr ausgeführt. Die Verbindung zum
OWB Repository muss dabei vom erzeugten OMB Plus Skript hergestellt werden.
Abb. 2: Indirekter Zugriff mit Java auf das OWB Repository per OMP Plus-Skript
Der in Abbildung 3 dargestellte Programmcode, ermittelt z. B. alle Property-Namen für
Tabellen im OWB-Repository.
Abb. 3: Beispiel-Code für die Ausführung eines OMB Plus-Skripts mit Java
Direkter Zugriff auf das OWB Repository
Beim direkten Zugriff auf das OWB Repository wird für die Kommunikation mit dem OWB
Repository eine Instanz der Klasse RepositoryManager verwendet (Abbildung 4). Damit der
Repository Manager auf das OWB Repository zugreifen kann, muss für diesen zunächst mit
der Methode openConnection eine Verbindung zum Repository hergestellt und anschließend
mit der Methode setWorkingProject das gewünschte Projekt ausgewählt werden.
Abb. 4: Direkter Zugriff mit Java auf das OWB Repository
Abb. 5: Beispiel-Code für den Aufbau der Verbindung zum OWB Repository und die Festlegung des OWB
Projekts
Wurde das Projekt ausgewählt, kann mit den Klassen und Methoden der OWB Java API auf
alle Objekte des Projekts zugegriffen werden. Die beiden folgenden Abbildungen zeigen
exemplarisch die Funktionsweise für das Auslesen von Objektdaten (Abbildung 6) und das
Ändern von Eigenschaften einer Tabelle (Abbildung 7).
Abb. 6: Beispiel-Code für das Auslesen von Objektdaten
Abb. 7: Beispiel-Code für das Ändern von Eigenschaften einer Tabelle
Integration in den OWB Client
OMB Plus Skripte und OWB Experts können direkt im OWB Client ausgeführt werden. Um
ein erstelltes Java-Programm ebenfalls direkt im OWB Client auszuführen, ist es innerhalb
eines OWB Experts aufzurufen. Dies geschieht über ein Java Task, der im OWB Expert
eingefügt wird, wobei das erstellte Java-Programm als JAR-Datei vorliegen muss. Name und
Speicherort der JAR-Datei werden dem Java Task im Parameter CLASS_URL mitgeteilt. Die
Methode, die gestartet werden soll, wird mit Hilfe der Parameter CLASS_NAME und
METHOD_NAME angegeben. Außerdem können mit Hilfe der ARGUMENT_LIST
zusätzliche Parameter an die aufzurufende Methode übergeben werden. Die Parameter können
genutzt werden, um z. B. den aktuellen Kontext, von dem der OWB Expert aufgerufen wurde,
an das Java-Programm weiterzugeben. Somit wird es möglich, neben kontextbezogenen OWB
Experts auch kontextbezogene Java-Programme zu erstellen.
Einsatzmöglichkeiten
Der Einsatz der Java API beim OWB Scripting, erlaubt die Erstellung komplexer und
komfortabler Oberflächen. Zudem wird das OWB Scripting flexibler und die Nutzung
erleichtert, so dass auch Entwickler ohne OMB Plus-Kenntnisse die Vorteile nutzen können.
Massenupdates/Massenkonfiguration
OWB Scripting ist ideal für die Durchführung von Massenupdates geeignet. In vielen
Projekten werden kleine OMB Plus Skripte für diesen Zweck entwickelt. Diese werden
jedoch oft speziell für eine konkrete Problemstellung erstellt und sind deshalb nicht flexibel
einsetzbar. So entsteht nicht selten eine undurchschaubare Ansammlung von Skripten, deren
Wiederverwendbarkeit eingeschränkt ist.
Wird die Funktionalität dieser Skripte stattdessen mit einer benutzerfreundlichen Oberfläche
allen Entwicklern zur Verfügung gestellt, kann die Effizienz bei der Entwicklung von DWHSystemen gesteigert werden. Abbildung 8 zeigt als Beispiel eine solche Oberfläche, wie sie
beim Kunden zum Einsatz kam.
Abb. 8: Beispiel für ein Java-Programm für die Massenupdate-Funktion
Durchsetzung von Projektstandards und Qualitätssicherung
In jedem Projekt ist es sinnvoll Projektstandards zu definieren. So können z. B. für die
jeweiligen OWB-Objekttypen (Tabellen, Mappings, etc.), abhängig vom Modul, oder
Objektnamen Konfigurationsparameter festgelegt werden. In Verbindung mit einer einfach zu
nutzenden Massenupdate-Funktionalität, können diese effektiv durchgesetzt werden. Z. B.
kann auf Knopfdruck ein Abgleich der aktuellen Property-Werte mit den gemäß
Projektstandard empfohlenen Werten stattfinden. Vom Standard abweichende Werte können
hervorgehoben und auf Wunsch automatisch angepasst werden. Die Qualitätssicherung wird
wesentlich erleichtert.
Werden die erstellten Java-Programme mit Hilfe der OWB Experts kontextbezogen
aufgerufen, kann schon beim Erstellen eines Objekts im OWB durch Aufrufen des
entsprechenden OWB Experts die Konfiguration des Objekts automatisch vorgenommen
werden. Auf diesem Weg wird die Einhaltung der Projektstandards sichergestellt. Mit OWB
11g Release 2 können OWB Experts auch innerhalb des Mapping Editors aufgerufen werden,
so dass Projektstandards auch für die einzelnen Operatoren eines Mappings definiert werden
können.
In neuen Projekten kann von Beginn an die Einhaltung von Projektstandards erreicht werden.
Bei bestehenden Projekten kann die Qualitätssicherung unterstützt oder ein Projekt-Review
vereinfacht werden.
Ausblick
Ein weiteres Einsatzszenario könnte die automatische Erzeugung von Mappings auf Basis von
Mapping Templates sein. Denkbar ist auch die Erstellung einer komfortablen Oberfläche für
die Generierung von OMB Skripten für den Transport und das Deployment von OWB
Objekten in unterschiedliche Systemumgebungen.
Kontaktadresse:
Reinhard Mense
ARETO Consulting GmbH
Friedrich Ebert Straße 8
D-51429 Bergisch Gladbach
Telefon:
Fax:
E-Mail
Internet:
+49(0)2204-300878
+49(0)2204-300879
[email protected]
www.areto-consulting.de
Herunterladen