Objekten und Transformations

Objekte

Ein Objekt ist ein Element, das als Ziel oder Quelle einer Transformation verwendet werden kann. Beispiele von Objekten sind Datenbanktabellen, Web Services, Flat Files, Mailing Listen. Die meisten Transformationstypen benötigen ein Objekt als Ziel und mindestens ein Objekt (oft mehr) als Quelle.

Objekt anlegen

Ein Objekt wird durch das Drag&Drop des Objekticons auf das Rasterfeld des Arbeitsblattes angelegt. Der Doppelklick auf ein auf dem Raster liegendes Objekt öffnet den Edit Object Dialog. Hier werden die folgenden Objektinformationen erfasst.

  • ID (nur Anzeige)
  • Objekttyp: Auswahl des passenden Objekttyps aus dem Dropdown, die zur Verfügung stehenden Objekttypen sind installationsabhängig, der Standard Objekttyp für Transformationen ist Table or View

Die im Folgenden beschriebenen Felder entsprechen den Auswahlmöglichkeiten für Table Or View: Object

  • Dependency: Auswahl der passenden Abhängigkeit aus dem Dropdown
  • Connection: Auswahl der benötigten Datenbank Verbindung, es stehen die in der Configuration DB hinterlegten Datenbanken zur Verfügung
  • Schema: Auswahl des benötigten Datenbank Schemas, es stehen die in der Configuration DB hinterlegten Schemata für die in Connection gewählte Datenbank zur Verfügung
  • Table: Auswahl der benötigten Tabelle/View, es stehen die im gewählten Schema sichtbaren Tabellen und Views zur Verfügung, über eine Texteingabe kann die Suche beschleunigt werden
  • Partition: Angabe einer bestimmten Partition der gewählten Tabelle (optional)
  • Show Table Create Script: generiert SQL DDL Skripte als auch ein SQL Select für das gewählte Objekt und zeigt sie zu Kopierzwecken an
  • Refresh Objects: aktualisiert den datasqill Objektkatalog (und dadurch auch den Inhalt des Table Dropdowns)

Refresh Objects

Über die Schaltfläche Refresh Objects, werden die für datasqill sichtbaren Objekte aus den konfigurierten Schemata abgefragt und im datasqill Objektkatalog abgelegt bzw. aktualisiert. Dieser Refresh ist initial notwendig, sowie immer dann wenn auf den Datenbank Objekten transformationsrelevante Änderungen oder Neuanlagen stattgefunden haben.

DDL Skript

Über die Schaltfläche Show Table Create Script werden nach Auswahl eines Objektes SQL Skripte generiert und danach formatiert sowie Syntax-highlighted in einer "Create Table Script" Textbox angezeigt. Über Strg+c oder den Eintrag im Kontextmenü kann der Skriptinhalt kopiert werden. DDL Skript Die folgenden Skripte werden angezeigt:

  • einfaches Create Table
  • Create Table als versionierte Tabelle mit Generierungsstatement
  • Tabellenkommentierungsskript
  • einfaches Select From Table Skript

    Transformations

    Eine Transformation beinhaltet den SQL Transformationscode. Sie ermöglicht dessen Ausführung durch Nutzung der Funktionalität des dazu ausgewählten Moduls. Typische Beispiele für die Module sind Insert from Select oder Merge.

Folgendes Beispiel illustriert wie der SQL Code durch ein Modul zusammengebaut wird. Der Entwickler fügt folgenden SQL Code als Transformation ein.

SELECT SYSDATE AS zeitpunkt_der_reporterstellung
     , TO_CHAR(TRUNC(order_date,'MM'), 'YYYY.MM') AS monat_der_bestellungen
     , COUNT(*)  AS anzahl_der_bestellungen
     , SUM(order_total) AS umsatzsumme_der_bestellungen
     , ROUND(AVG(order_total),1) AS average_umsatz_pro_bestellung
  FROM oe.orders
 GROUP BY TRUNC(order_date,'MM')
 ORDER BY monat_der_bestellungen;

Das Modul Insert from Select würde folgenden SQL Code zur Laufzeit erzeugen:

INSERT INTO oe.order_report(
       zeitpunkt_der_reporterstellung
     , monat_der_bestellungen
     , anzahl_der_bestellungen
     , umsatzsumme_der_bestellungen
     , average_umsatz_pro_bestellung)
SELECT SYSDATE AS zeitpunkt_der_reporterstellung
     , TO_CHAR(TRUNC(order_date,'MM'), 'YYYY.MM') AS monat_der_bestellungen
     , COUNT(*)  AS anzahl_der_bestellungen
     , SUM(order_total) AS umsatzsumme_der_bestellungen
     , ROUND(AVG(order_total),1) AS average_umsatz_pro_bestellung
  FROM oe.orders
 GROUP BY TRUNC(order_date,'MM')
 ORDER BY monat_der_bestellungen

Transformation anlegen

Eine Transformation wird durch das Drag&Drop des Transformationsicons auf das Rasterfeld des Arbeitsblattes angelegt. Der Doppelklick auf eine auf dem Raster liegende Aktion öffnet den Edit Action Dialog. Hier werden sowohl die Aktionsparameter erfasst, die Transformations Basis Abfrage hinterlegt als auch die Validierung der Transformation durchgeführt. Im Parameterbereich auf der oberen linken Seite des Dialogs werden folgende Informationen erfasst:

  • ID (nur Anzeige)
  • Name: Bezeichnung der Transformation
  • Type: Auswahl des passenden Transformationstyps aus dem Dropdown, die zur Verfügung stehenden Typen sind installationsabhängig (siehe Module) Transformation anlegen

Die weiteren angezeigten Parameter sind durch den gewählten Aktionstyp definiert und werden über die Tooltip Anzeige beschrieben. Im Documentation Bereich kann analog zur Dokumentation eines Arbeitsblattes eine Dokumentation der Transformation hinterlegt werden. Der Parameter- und Dokumentationsbereich kann durch Doppelklick auf Action oder Validate Reiter aus- und eingeblendet werden, um den zur Verfügung stehenden Arbeitsbereich zu optimieren.

Module

Im Feld Type werden die in datasqill verfügbaren Aktionstypen angezeigt. Ein Aktionstyp entspricht einer Standardtransformation, die in datasqill über sogenannte Module implementiert werden. Die in Action hinterlegte Basis Abfrage wird dabei zur Laufzeit durch die im Modul hinterlegte Funktionalität automatisch generiert erweitert. So erweitert z.B. das Insert from Select Modul die in Action hinterlegte Select Basis Abfrage um den notwendigen Insert Anteil. Um im Client als Type zur Verfügung zu stehen, muss das entsprechende Modul umgebungsbezogen implementiert, installiert und in der aktuellen datasqill Transformation DB registriert sein. Die im Edit Action Dialog einstellbaren Parameter sind durch das Modul definiert. Die mit den Modulen registrierte Dokumentation wird im Client über Parameter Tooltips angezeigt.

SQL Code

Im Action Reiter des Edit Action Dialoges wird die Transformations Basis Abfrage in SQL hinterlegt. Der Editor bietet sowohl Syntax Highlighting, als auch die Möglichkeit des automatischen Formatierens über den Eintrag Reformat SQL im Kontextmenü. Für die Erstellung der Query stehen alle SQL Konstrukte zur Verfügung die durch Transformationsdatenbank unterstützt werden. In der Abfrage verwendete Objekte müssen Schema-qualifiziert angegeben werden.

Validate

Bei Auswahl des Reiters Validate wird die in Action hinterlegte Basis Abfrage mittels Validate Funktion des ausgewählten Moduls:

  • in die erweiterte Abfrage überführt
  • die Transformation auf Konsistenz in Abfrage und Worksheet Modell überprüft Action Validation

Der Bereich Resulting Action to be performed zeigt die SQL Abfrage an, so wie sie von dem Modul zusammengestellt und später bei einem wirklichen Lauf in der Datenbank ausgeführt wird. Wichtig zu verstehen ist, dass die resultierende SQL Abfrage nur zur Laufzeit gebaut wird und nicht in der generierten Form persistiert wird.

Der Bereich Result of Validation zeigt die Ergebnisse der Verwendungsprüfung für alle in Verbindung mit der Action referenzierten Objekte auf Korrektheit in der SQL Query und dem im Arbeitsblatt definierten Modell.