Das ist wahre Begeisterung: Nachdem ich den Plan für mein eigenes
DWE-Tutorial niedergeschrieben hatte, konnte ich bis 4 Uhr morgens nicht mehr die Finger davon lassen. Die erste Etappe habe ich auch tatsächlich erfolgreich beendet. Der Rest ist dann OLAP.
Zugegeben: Es ist nicht immer alles glatt verlaufen. Aber das sind die typischen Probleme in der Kennenlernphase einer neuen Software. Immerhin habe ich keine Dokumentation zu Rate ziehen müssen und auch nicht wollen. Fast alles erklärt die Software selbst. Eigentlich überraschend.
Ok, ich habe ein, zwei mal im offiziellen DWE Tutorial nachgeschaut.
Hier in Überschriften das Protokoll dieses famosen Projektstarts:
- Anlegen einer leere Datenbank mit DB2-Bordmitteln
- Anlegen eines "Data-Warehouse-Projekts" im Design Studio (ich mag das DWE Design Studio, denn das Design Studio basiert auf Eclipse)
- Importieren der Metadaten der unter 1. angelegten Datenbank
Anlegen eines "Datenfluss" zum Importieren der Daten aus MS Access- Definieren eines "Dateiimport"-ObjektesOperators
- Erstellen des Modells für die Zieltabelle
- Definieren eines "Massenladeziel"-ObjektesOperators zum Befüllen der Zieltabelle mit den importierten Daten
- Prüfen des Datenflusses
- Erstellen der neuen Tabelle (siehe 6.) in der Datenbank
- Ausführen des Datenflusses
Nachdem 10. erfolgreich war, wurde ich mutig und habe noch zwei weitere, ein wenig längere Datenflüsse gebaut.
Hier noch einige Details zu den Überschriften:
zu 1. Datenbank anlegen
Nach einigem Probieren erschien es mir einfacher, dies außerhalb des Design Studio zu erledigen.
zu 2., 3. und 4.
Das geht alles per rechten Mausklick! Der Rest ist selbstredend.
zu 3. Metadaten der Datenbank importieren
Hier sollte unter Eigenschaften des Datenflusses die "SQL-Ausführungsdatenbank" und das "SQL-Ausführungsschema" festgelegt werden. Die Datenbank muss eine existierende DB2-Datenbank sein. In dieser Datenbank wird der SQL-Code des Datenflusses ausgeführt.
zu 5. Dateiimport-ObjektOperator definieren
Wie man das heute wohl so macht - ein Objekt einen Operator aus einer Palette auf die "Arbeitsfläche" ziehen und einige Eigenschaften des Objekts Operators definieren.
Das Definieren der Felder der zu importierenden Datei ist immer ein wenig nervend.
Als Feldbegrenzer habe ich TAB gewählt, da es aus irgendeinem Grund mit dem ";" nicht funktionierte - möglicherweise mein Fehler oder unvollständiger NLS.
Da ich wahrscheinlich noch nicht den richtigen JDBC-Treiber zum Direktzugriff auf Access installiert habe, importiere ich hier eine aus Access exportierte CSV-Datei. Später werde ich mich um eine JDBC-ODBC-Bridge kümmern.
zu 6. Modell für die Zieltabelle erstellen
Das ist ganz einfach, wenn man herausgefunden hat, wie es geht.
Mit der rechten Maustaste auf den "Ausgabe"-Port des Dateiimport-ObjektesOperators klicken und in der "Merkmalsicht" unter "Virtuelle Tabelle" "In Modell speichern" wählen. Schon ist die Zieltabelle für den Import modelliert.
Aus irgendeinem Grund verwende ich zur Benamsung von Datenbank-Schemata und -Tabellen nur Großbuchstaben.
zu 7. Massenziel-ObjektOperator definieren
Wie gehabt.
Es macht stets Spaß, die "Ports" zu verbinden. Im Fall des "Massenladeziel"-ObjektesOperators den Eingabe-Port mit dem Ausgabe-Port von "Dateiimport" verbinden und "Nach Namen verbinden" wählen - denn so sind hier die Felder von Quelle und Ziel definiert.
Dieser kleine Datenfluss importiert meine CSV-Datei komplett in eine Datenbanktabelle.
zu 8. Datenfluss prüfen
Sollte man stets tun.
zu 9. Tabelle in Datenbank erstellen
Per rechtem Mausklick auf die Datenbank (in der Modellansicht) "Vergleichen mit" und "ursprünglicher Quelle" wählen. Im Fenster "Struktureller Vergleich" das Schema mit der neuen Tabelle in der zweiten Spalte auswählen und neben "Merkmalsvergleich" "von links nach rechts" klicken. Danach weiter rechts "rechte Delta-DLL generieren" und DLL auf dem Server ausführen.
Das klingt kompliziert, ist es aber nicht, wenn man das ein-, zweimal gemacht hat.
Die Datenbank in nun fertig für die Ausführung des Datenflusses.
Ich mag Handbücher, die meine Fragen bereits antizipiert haben. Eigentlich vermeide ich die Konsultation von solchen Dokumenten, aber manchmal geht es nicht ohne. 2,5 GB bringen entsprechend viel Dokus und Tutorials mit sich - soweit ich gesehen habe
Aufgenommen: Aug 17, 00:40
Noch ein Wort zum Dateiimport-Operator des SQL-Warehousing-Tools der DB2 Datawarehouse Edition: Das Semikolon scheint als Trenner zwischen Feldern nicht vorgesehen zu sein. Einige Formate lassen sich definieren: Datum, Zeit und Zeitstempel. Unter de
Aufgenommen: Aug 21, 00:09
Noch ein Wort zum Dateiimport-Operator des SQL-Warehousing-Tools der DB2 Datawarehouse Edition: Das Semikolon scheint als Trenner zwischen Feldern nicht vorgesehen zu sein. Einige Formate lassen sich definieren: Datum, Zeit und Zeitstempel. Unter de
Aufgenommen: Aug 21, 00:17
Namen sind angeblich nur Schall und Rauch. Das sollte dann auch für Namen in Datenbanken gelten. Ob eine Tabelle nun "Umsatz" heißt oder "xxx" ist der Datenbank egal. Ich mache aber immer wieder die Erfahrung, dass es zwar egal ist, welchen Namen das
Aufgenommen: Aug 22, 22:51
Wie bekomme ich bloß meine Daten aus MS Access in mein Data Warehouse? Fürs erste habe ich sie mühsam in eine CSV-Datei exportiert, um sie mit dem Dateiimportoperator in die dafür vorgesehen DB2-Datenbank zu importieren. Um das ganze aber wenige
Aufgenommen: Aug 24, 23:26
Wie bekomme ich bloß meine Daten aus MS Access in mein Data Warehouse? Fürs erste habe ich sie mühsam in eine CSV-Datei exportiert, um sie mit dem Dateiimportoperator in die dafür vorgesehen DB2-Datenbank zu importieren. Um das ganze aber wenige
Aufgenommen: Aug 24, 23:26
Natürlich wollte ich meine DB2 sobald wie möglich auf die neue Version 9.1 upgraden. Das alleine sollte kein Problem sein. Die Data Warehouse Edition (DWE), die ich vor kurzem installierte, wird zur Zeit noch standardmäßig mit DB2 Version 8.2 ausge
Aufgenommen: Sep 10, 01:51
Dies wird die lange Antwort zu dieser kurzen Frage. Lang, da die Liste der Neuerungen und Änderungen recht umfangreich ist mit 34 Einträgen. Wie obiger Titel vermuten lässt, wird sich die Antwort wohl auf mehrere Blogeintäge verteilen. Die meisten
Aufgenommen: Jan 03, 17:23