Uebungen

Werbung
OWB Workbook
Workshop Hamburg, Oktober 2010
OWB Release 11.2
Version 1
Inhalt
OWB Workbook ................................................................................. 1
Der Übungsrechner........................................................................ 3
Installation ...................................................................................... 3
Orientierung in der neuen Umgebung ........................................... 3
Übersicht über das Workshop-Szenario ........................................ 4
Einlesen Textdateien und Arbeiten mit External-Tables................ 5
Erstes Mapping und erste neue Tabelle ........................................ 6
Einen Blick in die Datenbank und Umgang mit DB-Schemen ....... 7
Control Center Manager ................................................................ 7
Importieren von Tabellen-Definitionen aus einem DatenbankSchema .......................................................................................... 8
Umgang mit bestehenden Datenbank-Prozeduren und
Aufrufparametern ........................................................................... 9
Der Tabelleneditor ....................................................................... 10
Metadaten-Browser...................................................................... 11
Joiner ........................................................................................... 11
Interaktives Generieren und Testen ............................................ 11
Einbauen von Funktionen ............................................................ 12
Group By und Order by ................................................................ 12
Splitter und Schreiben in eine Textdatei ...................................... 13
Verwendung von Distinct und Sequence .................................... 13
Aufbau eines künstlichen Schlüssels für eine Dimensions-Tabelle
..................................................................................................... 13
Komplexeres Mapping mit Zwischenschritten, Lookups, Truncate
..................................................................................................... 14
Expressions und CASE Blöcke.................................................... 15
Aufbau einer multidimensional verwendbaren Zeit-Dimension ... 17
Aufbau einer Dimension über den Wizzard ................................. 18
Aufbau eines Star Schemas ........................................................ 18
Metadatenauswertungen ............................................................. 18
Aufbau der Workflow/Prozess-Umgebung................................... 19
MDL-Dateien ................................................................................ 20
OMBPlus ...................................................................................... 20
Sonstige Punkte / Themen .......................................................... 20
Das Kennenlernen eines Tools kann eine zeitaufwendige
Angelegenheit sein. Ziel muss es daher sein, in möglichst kurzer Zeit
das nötige Rüstzeug für die praktische Anwendung zu erlernen.
Konzentration auf die in der Praxis benötigten wichtigsten Features ist
daher angebracht. Die Praxis des Oracle Warehouse Builders ist das
Erstellen eines Data Warehouse Systems. Die hier vorliegenden
Übungen zeigen daher einen kleinen Ausschnitt in wesentliche
Schritte in diesem Entwicklungsprozess. Es sind






Umgang mit Textdateien
Arbeiten mit Datenbanktabellen
Arbeiten mit Funktionen und Prozeduren in der Datenbank
Nutzen der wesentlichen Operatoren in einem ETL-Prozesse,
wie Joiner, Expressions, Lookups, Splitter, Distinct und Group By
Das Zusammenfassen von Mappings in einem komplexeren
Prozesse
Monitoring
OWB verfügt über noch viele andere Funktionen, die allerdings in der
Regel seltener genutzt werden. Hat man einmal ein Grundverständnis
von OWB erworben, so kann man sich diese Spezialthemen leicht
auch ohne aufwendige Schulung über die Dokumentation selbst
erarbeiten, wenn man sie benötigt.
In dieser Weise gelingt hoffentlich eine schnelle Einarbeitung.
OWB hat sich in der Praxis als das einfache und passende
Werkzeug für die Entwicklung von Oracle-basierten WarehouseSystemen gezeigt. Deswegen geht die Anzahl der Installationen in
die Tausende und ist kaum feststellbar.
3/20
Der Übungsrechner
Login User:
Passw.
edu
Ora#2010
Datenbank:
Datenbank und Listener sind bereits hochgefahren
SID
ORCL
Rechnername: localhost
DB Port
1521
Installation
1. Vor der Installation die Spracheneinstellungen des Rechners
ändern:
-> Regional and Language Options
2. Installieren Sie OWB auf Ihrem Rechner.
Orientierung in der neuen Umgebung
3. Orientieren Sie sich in der neuen Oberfläche
a. Klicken Sie sich durch die einzelnen Fenster durch.
b. Schieben Sie unter den Umgebungseigenschaften das
Undo Behaviour auf den Wert 20
c. Machen das „Property Inspector“ - Fenster sichtbar.
Kann man in diesem Fenster schon etwas sehen?
Machen Sie etwas sichtbar.
d. Wie viele User sind in Ihrer Umgebung registriert?
e. Wie lautet die eine Location, die Sie bereits jetzt nach
der Installation haben?
f. Machen Sie die „Start Page“ unsichtbar und wieder
sichtbar.
4/20
Übersicht über das Workshop-Szenario
4. Die Workshop-Übungen dienen dem Kennenlernen der
einzelnen Funktionen. Um den Aufwand der Vorbereitung gering
zu halten, werden Prozeduren genutzt, die im Verlauf der
Übungen Testdaten erzeugen, mit denen Sie arbeiten. Andere
Daten werden als Text-Datei genutzt, um das Arbeiten mit
External-Tables kennenzulernen.
Um eine kleine Vorstellung von einem realen Arbeiten mit OWB
zu erhalten, wurden zwei Bereiche/DB-User (OLTP , DWH)
gewählt. In der Praxis wird es sicher mehr Bereiche geben, aber
diese Übungen sollten einfach gehalten werden. Wenn alle
Übungen abgeschlossen sind, sollten Tabellen entstanden sein,
wie sie in einem Star-Schema nutzbar sind.
Tabellen und Textdateien für den Workshop. Die kursiv
dargestellten Objekte entstehen im Verlauf des Workshops. Die
übrigen sind bereits vorhanden oder werden als Textdaten
erzeugt.
5/20
Einlesen Textdateien und Arbeiten mit ExternalTables
5. Richten Sie ein Modul zum Einlesen von Textdateien ein.
6. Lesen Sie die Datei ORTE.CSV ein.
Achten Sie auf die erste Zeile in der Textdatei. Sie sollte als
Spaltenüberschriften genutzt werden.
7. Richten Sie ein Oracle-Modul mit dem Namen DWH ein.
Dieses Modul sollte auf das Datenbank-Schema DWH zeigen.
8. Suchen Sie unter dem Reiter „Locations“ die neu entstandene
Location und testen Sie den Zugriff.
9. Erzeugen Sie in dem neuen Modul „DWH“ die External Table mit
dem Namen „EX_Orte“. Verwenden Sie dabei die zuvor erstellte
Definition der Text-Datei.
10. Deployen Sie die External Table aus dem Project - Tree heraus.
Beobachten Sie dabei die entsprechenden Meldungen in dem
Log-Output-Fenster. Es sollten nur grüne Häkchen zu sehen
sein.
11. Wieviele Objekte wurden tatsächlich in die Datenbank generiert?
12. Betrachten Sie sich die Daten der Text-Datei über die External
Table in dem Data-Browser.
6/20
Erstes Mapping und erste neue Tabelle
13. Erstellen Sie in dem Modul DWH ein neues Mapping mit dem
Namen MP_ORTE.
a. Benutzen Sie in diesem neuen Mapping die zuvor
erstellte External Table als Vorlage für eine neu zu
erstellende Tabelle TB_Orte.
b. Überführen Sie die neue erstelle Tabelle TB_Orte in das
Modul DWH.
c. Betrachten Sie sich die neue Tabelle in dem ModulTree.
d. Deployen Sie die neue Tabelle und das neue Mapping.
e. Starten Sie das Mapping aus dem Projekt-Tree heraus
und beobachten Sie wie viele Sätze gelesen und
geschrieben werden.
f. Überprüfen Sie über den Data Browser ob auch
tatsächlich alle Sätze in der neuen Tabelle
angekommen sind.
7/20
Einen Blick in die Datenbank und Umgang mit
DB-Schemen
14. Definieren Sie sich mit SQL Plus einen neuen DB-User mit dem
Namen DWH2:
Auf Kommando-Ebene: SQLPLUS
sys/sys as sysdba
create user OLTP identified by OLTP;
grant dba to OLTP;
15. Richten Sie in OWB ein Modul OLTP ein, das auf das neue
Schema zeigt.
16. Wiederholen Sie für diesen DB-User OLTP die Übungen 9-13 in
dem Modul OLTP. (Erstellen External table und Deploy).
a. Welcher Fehler tritt bereits bei dem Deploy-Versuch der
External-Table auf?
b. Kann der Fehler ignoriert werden?
c. Welchen Fehler stellen Sie am Ende bei dem Versuch
des Deploy auf das Mapping fest?
17. Lösen Sie das Problem, indem Sie den neuen User OLTP für
die Verwendung des OWB-Repositories registrieren.
18. Speichern Sie Ihre OWB Metadaten ab.
Control Center Manager
19. Starten Sie den Control Center Manager und suchen Sie die
zuvor gestarteten Jobs.
20. Entscheiden Sie mit welcher Deployment-Oberfläche Sie eher
arbeiten möchten.
8/20
Importieren von Tabellen-Definitionen aus
einem Datenbank-Schema
21. Tabellendaten laden:
a. Starten Sie SQLPLUS für das Schema DWH
b. Rufen Sie aus SQLPLUS heraus die Prozedur
„01_DWH_Kursdaten.sql“ auf.
SQL> start pfad\01_DWH_Kursdaten.sql
22. Importieren Sie alle Tabellen-Definitionen aus dem Schema
DWH, die sich noch nicht in dem OWB-Projekt befinden.
23. Wiederholen Sie den Vorgang für das Schema OLTP
a. Starten Sie SQLPLUS für das Schema OLTP
b. Rufen Sie aus SQLPLUS heraus die Prozedur
„01_OLTP_Kursdaten.sql“ auf.
SQL> start pfad\01_OLTP_Kursdaten.sql
24. Speichern Sie Ihre OWB Metadaten ab.
25. Überprüfen Sie über den Data Viewer, ob sich in den Tabellen
bereits Daten befinden. Die Tabellen Kunde, Tage, Bestellung
und Bestellpositionen müssten leer sein.
9/20
Umgang mit bestehenden DatenbankProzeduren und Aufrufparametern
26. Importieren Sie in beiden Modulen (DWH, OLTP) alle
Prozeduren und Funktionen, die sich jetzt in den Schemen DWH
und OLTP befinden in Ihr OWB-Projekt.
27. Füllen der Kunden-Tabelle:
a. Erstellen Sie in dem Modul OLTP ein neues Mapping
MP_GEN_Kunde.
b. Fügen Sie einen Transformation - Operator in das
Mapping ein und wählen Sie dabei die Prozedur
KUNDE_GEN.
c. Fügen Sie jetzt einen Mapping-Input-Operator ein und
definieren Sie in diesem Operator ein „Output-Attribut“
mit dem Namen ANZAHL.
d. Verbinden Sie dieses Feld mit dem Aufruf-Feld der
Prozedur ANZ_KUNDE.
e. Legen Sie jetzt für den Aufrufparameter ANZAHL den
Default-Wert 1000 fest.
f. Deployen Sie das Mapping und starten es.
g. Überprüfen Sie, ob sich jetzt Daten in der Tabelle
KUNDE befinden.
28. Wiederholen Sie den Vorgang für die Tabelle TAGE, allerdings
in dem Modul DWH. Beachten, Sie dass Sie nun 2 Parameter
vom Typ DATE benötigen und wählen Sie für
STARTDATE '01-JAN-90', ' und
ENDDATE '31-DEC-15‘
29. Überprüfen Sie, ob sich jetzt Daten in der Tabelle TAGE
befinden und ob die Formate stimmen.
30. Wiederholen Sie den Vorgang für die Tabellen BESTELLUNG
und BESTELLPOSITIONEN. Rufen Sie hierzu die Prozedur
BESTELLUNGEN_GEN mit dem Aufrufwert von 1000 auf.
Dieses ist in dem Modul OLTP durchzuführen.
10/20
Der Tabelleneditor
31. Wechseln Sie in das Modul DWH.
32. Erzeugen Sie mit dem Tabellen-Editor die Tabelle Artikel mit
folgender Struktur.
Artikelnummer
Artikelname
Artikelpreisnetto
Verpackungspreis
Lieferantennummer
Artikelgruppennummer
Artikelgruppe
Artikelspartennummer
Artikelsparte
33.
34.
35.
36.
Wählen Sie die passenden Feldtypen.
Definieren Sie einen Primary Key für das Feld Artikelnummer.
Überführen Sie die neue Struktur in die Datenbank.
Wiederholen Sie den Deploy-Prozess.
a. Welche Fehlermeldung stellen Sie fest?
b. Wiederholen Sie den Deploy-Vorgang noch einmal. Was
stellen Sie fest?
11/20
Metadaten-Browser
37. Starten Sie den OWB-Browser Listener.
a. Z. B.:
D:\ora\product\11.2.0\dbhome_1\owb\bin\win32\startOw
bbInst.bat
38. Starten Sie den OWB Browser.
39. Suchen Sie alle Jobs, die Sie bisher gestartet haben.
Joiner
40. Überführen Sie die Text-Dateien Artikel, Artikelgruppe und
Artikelsparte mit Hilfe eines Joiners in die zuvor erstellte Tabelle
Artikel.
41. Beachten Sie eventuelle Warnungen bei der Generierung.
42. Versuchen Sie trotz der Warnungen das Mapping zu starten.
43. Suchen Sie nach möglichen Fehlerursachen über den
Metadaten-Browser.
Interaktives Generieren und Testen
44. Erzeugen Sie in dem zuvor erstellten Mapping eine
Intermediate-Generierung. Für unterschiedliche Group-Bereiche
in den Operatoren.
45. Versuchen Sie einzelne sinnvolle Code-Fragmente in SQLPlus
laufen zu lassen.
12/20
Einbauen von Funktionen
46. Kopieren Sie das zuvor erstellte Mapping und speichern Sie es
unter einem neuen Namen.
47. Füllen Sie das Feld VERPACKUNGSPREIS über die Funktion
RAN_M_M mit einem Zufallswert zwischen 2 und 10.
48. Testen Sie das neue Mapping.
Group By und Order by
49. Erzeugen Sie eine Auswertetabelle, die die Menge aller Kunden
pro Segment aufnehmen kann. Die Liste sollte nach Segmenten
aufsteigend sortiert sein.
Der folgende Befehl dient als Orientierung.
select segment,count(*) from kunde group by segment order by
segment;
13/20
Splitter und Schreiben in eine Textdatei
50. Erzeugen Sie 2 Zieltabellen für die Kunden-Segmente kleiner 10
und größer gleich 10.
51. Schreiben Sie diese Tabellen dann weiter in jeweils eine
Textdatei.
Verwendung von Distinct und Sequence
52. Erstellen Sie eine Referenztabelle aus dem Feld
BERUFSGRUPPE der Tabelle KUNDE.
a. Achtung: die Tabelle Kunde befindet sich in dem Modul
OLTP. Die neue Tabelle BERUFSGRUPPE wird jedoch
in dem Modul DWH liegen.
b. Die Referenztabelle besteht aus 2 Spalten
BERUFSGRUPPE und BERUFSGRUPPENNR
c. Das Feld BERUFSGRUPPE nimmt alle distinct-Werte
aus dem Feld BERUFSGRUPPE von KUNDE auf.
d. In dem Feld BERUFSGRUPPENNR sollte mit Hilfe einer
Sequence eine laufende Nummer generiert werden.
Hierzu sollten Sie ein Sequence-Objekt anlegen, das
auch deployed werden sollte.
Aufbau eines künstlichen Schlüssels für eine
Dimensions-Tabelle
53. Erstellen Sie eine Dimensionstabelle D_Artikel als Ableitung von
der bereits bestehenden Tabelle Artikel. Die neue Tabelle
D_Artikel soll einen neuen künstlichen Schlüssel in Form einer
laufenden Nummer erhalten. Verwenden Sie dazu eine
Sequenz.
54. Überprüfen Sie nach dem Überführen aller Objekte in die
Datenbank, dass zu jedem Originalschlüssel aus der
Bestellpositionstabelle ein neuer Schlüssel zu finden ist.
14/20
Komplexeres Mapping mit Zwischenschritten,
Lookups, Truncate
55. Erstellen Sie in mehreren Schritten eine Tabelle D_KUNDE, die
Sie später als Dimensionstabelle nutzen können.
Kundennummer
Kundenname
Wohnort
Wohnortnummer
Segment
Berufsgruppe
Berufsgruppennummer
a. Leiten Sie Wohnort und Wohnortnummer aus der
Tabelle Bestellung (ORTNR) und der Tabelle ORTE
ORT) ab.
b. Ergänzen Sie die neue Tabelle um die Informationen
BERUFSGRUPPE und BERUFSGRUPPENNUMMER
indem Sie die zuvor erstellte Tabelle BERUFSGRUPPE
verwenden.
c. Lösen Sie die Aufgabe in 2 Schritten und verwenden Sie
als „Zwischenablage“ eine temporäre Tabelle
TMP_KUNDE.
d. Wie verhindern Sie, dass sich in der Zwischentabelle
nach mehrfachen Testläufen Daten ansammeln.
56. Betrachten sie die übrigen Möglichkeiten des Lookup-Operators
a. Was ist, wenn mehrere Lookup-Werte gefunden
werden?
b. Was ist, wenn kein Lookup-Wert für einen Schlüssel
vorhanden ist?
15/20
Expressions und CASE Blöcke
57. Erstellen Sie in dem Module DWH eine Tabelle F_UMSATZ, die
Sie später auch als Faktentabelle nutzen können.
Ortnr
Kundennr
Bestellnr
Artikelnr
Positionsnr
Zeitnr
Datum
Einzelpreis
Menge
Steuersatz
Gesamtsumme_Pos
a. Führen Sie die OLTP-Tabellen BESTELLUNG und
BESTELLPOSITIONEN über einen Joiner zusammen.
b. Übernehmen Sie Ortnr, Kundennr, Bestellnr, Datum,
Menge
c. Übernehmen Sie den neuen künstlichen Schlüssel in
der Tabelle D_Artikel als Artikelnummer für die
Faktentabelle. Die Artikelnummer aus der
Bestellpositionstabelle muss über einen Lookup in die
D_Artikel-Tabelle ausgetauscht werden.
58. Die Aufgabe ist komplex. Führen Sie daher einen
Zwischenschritt ein. Deployen Sie die neue Tabelle und das
Mapping.
a. Welchen Fehler stellen Sie bei dem Deployen des
Mappings fest?
b. Wenn Sie 3 mal die Meldung:
“ORA-06550: PACKAGE BODY, line 21, column 18:
PL/SQL: ORA-00942: table or view does not exist”
finden, so liegt die Ursache in dem fehlenden
Zugriffsrecht auf Tabellen in dem Schema OLTP.
c. Öffnen Sie über SQLPLUS das Schema OLTP und
geben Sie den Zugriff auf die Tabellen frei.
GRANT SELECT ANY TABLE TO PUBLIC;
d. Wiederholen Sie dann die Überführung des Mappings in
die Datenbank.
16/20
59. Es ist eine gute Praxis die Entwicklung eines Mappings in
mehreren Zwischenversionen durchzuführen. Kopieren Sie
daher das zuvor begonnene Mapping und entwickeln Sie es
unter einem anderen Namen weiter.
a. Bevor Sie mit der Weiterentwicklung beginnen,
überführen Sie das kopierte Mapping in die Datenbank
und testen Sie dieses, damit Sie von einem sicheren
Stand aus weiterentwickeln können.
b. Leiten Sie den Einzelpreis aus der Artikel-Tabelle ab
c. Leiten Sie den Steuersatz über die ArtikelgruppenNummer ab
(Artikelgruppennr 1 -> Steuersatz = 7,
Artikelgruppennr 2 -> Steuersatz = 12,
Artikelgruppennr 3 -> Steuersatz = 19)
CASE feldname (oder Ausdruck)
WHEN ’Wert_X’ THEN ’Returnvalue_X’
WHEN ’Wert_Y’ THEN ’Returnvalue_Y’
ELSE ’Kein Wert’
END
d. Berechnen Sie die Gesamtsumme_Pos aus den Werten
Menge und Einzelpreis als Multiplikation.
60. Überführen Sie die Zeitnummer aus der Zeit-Tabelle in die
Tabelle F_UMSATZ. Nutzen Sie hierzu das Datum der Tabelle
Bestellung.
17/20
Aufbau einer multidimensional verwendbaren
Zeit-Dimension
61. Erstellen Sie eine Zeitdimension über den entsprechenden
Wizzard.
62. Erstellen Sie das Binding zur Dimension.
63. Überführen Sie die Strukturen in die Datenbank.
64. Überführen Sie auch das entstandene Mapping in die
Datenbank.
65. Betrachten Sie sich die entstandenen Daten über den Data
Viewer.
66. Entstanden ist eine sehr umfangreiche Zeitdimension. Eine
solche Dimension wird üblicherweise in einer MOLAPDatenbank bzw. in der Oracle OLAP-Option verwendet. Für
unser Beispiel ist sie überdimensioniert. Es fehlt auch ein
laufender Zähler für die einzelnen Tage, den man als kompakten
Schlüssel in dem Starschema nutzen könnte. Aus dieser
Dimension kann man jedoch eine angepasste Variante nach
eigenem Geschmack ableiten.
a. Um eine Dimension für ein Starschema zu erhalten
nutzen Sie entweder die vorher entstandene
Zeitdimension oder die Zeittabelle.
18/20
Aufbau einer Dimension über den Wizzard
67. Erstellen Sie eine Artikeldimension über den Wizzard.
a. Orientieren Sie sich bei der Festlegung der Spalten an
der bereits bestehenden Tabelle D_Artikel.
b. Führen Sie das Binding durch und Deployen Sie alle
Objekte in die Datenbank.
Aufbau eines Star Schemas
68. In der Übung ist jetzt ein kleines Starschema entstanden.
Informationen wie Zeit und Ort lagen bereits als Testdaten vor.
a. Vervollständigen Sie die Definitionen und die
Dateninhalte, um ein vollständiges Starschema zu
erhalten.
Metadatenauswertungen
69. Analysieren Sie alle Abhängigkeiten der Textdatein „Orte.csv“
70. Betrachten Sie auch den umgekehrten Weg von der Tabelle
D_Artikel aus startend.
71. Gelingt es Ihnen auch die Daten einzelner Spalten zu verfolgen?
19/20
Aufbau der Workflow/Prozess-Umgebung
72. Installieren Sie das Workflow-Schema in Ihrer Umgebung
a. D:\ora\product\11.2.0\dbhome_1\owb\wf\install\wfinstall.
bat
b.
73. Definieren Sie sich für Ihre Übungen ein Workflow-Modul
a. Registrieren Sie dazu das Workflow-Schema
OWF_MGR für das OWB-Repository
74. Erstellen Sie sich zunächst einen einfachen Prozess, indem Sie
z. B. das Mapping zur Erstellung der Artikel-Tabelle in den
Prozess aufnehmen.
75. Deployen Sie das neu erstellte Prozess-Package.
76. Starten Sie den Prozess und und testen Sie das Ergebnis.
77. Monitoring:
a. öffnen Sie den Metadaten-Browser, um den Lauf des
Workflow-Prozesses zu kontrollieren.
78. Bauen Sie nach und nach alle relevanten Mappings in Ihren
Prozess ein
a. Achten Sie darauf, dass diejenigen Mappings, die
unabhängig von einander sind, also deren Ergebisse
nicht aufeinander aufbauen, parallel ablaufen.
20/20
MDL-Dateien
79. Erstellen Sie eine Sicherung aller Metadaten, die Sie im Verlauf
des Übungsprojektes erstellt haben.
80. Nutzen Sie die erstelle Metadatendatei, um ein versehentlich
gelöschtes Mapping wieder zurückzuholen.
OMBPlus
81. Erstellen sie sich mit Hilfe eines OMB-Scriptes einen Listenartigen Bericht, mit allen Modulen, Tabellen und den dazu
gehörenden Spalten.
Sonstige Punkte / Themen
Collection
Debugger
Update / Delete / Insert...
Language Name
- Andere Sparachen nutzen
Zurückholen der ursprünglichen Positionionen von Fenstern etc.
Debugger
Target Loading Order
Herunterladen