Das Modul "Write to Excel" wird über eine SQL-Abfrage gesteuert, die der datasqill Entwickler definiert. Das Modul liest Daten mithilfe dieser Abfrage aus den Quelltabellen und schreibt sie in ein Excel File.
Name | Bedeutung |
---|---|
Modul | Write to Excel |
Modulklasse | DsModWriteExcel |
Typ | Java |
Zweck | Basierend auf der angegebenen SQL-Abfrage sollen die Daten in ein Excel File geschrieben werden |
Transformationscode | SQL Abfrage |
Quellen | Quelltabellen in einer Datenbank, Excel Template File |
Ziele | Excel File |
Folgendes Beispiel zeigt, wie man mithilfe des Moduls einen Export to Flat File aufbauen kann.
Zunächst die SQL-Abfrage definieren:
SELECT c_custkey AS key
, c_name
FROM staging.customer
Als zweitens muss man das Excel Template vorbereiten:
Die farblich markierten Variablen haben folgende Bedeutung:
Name | Quelle | Bedeutung | Optional |
---|---|---|---|
${load_date} | Loop Query | Die Spalten aus der Loop Query können in Excel benutzt werden | J |
${TemplateRow} | - | Diese Variable stellt fest, ab welcher Zelle werden die Daten hinzugefügt | N |
${key}, ${c_name}, ${c_firstname} | Main Query | Diese Variablen entsprechen den Spaltennamen aus SQL-Abfrage | N |
Wie im Beispiel zu erkennen ist, können die Spaltennamen des Excels mit oder ohne Aliasse in einer SQL-Abfrage eingegeben werden.
Die Beschriftung für die Spalten könnte frei definiert werden.
Die Quellen des Moduls sind:
Excel Template File sowie alle in der SQL-Abfrage verwendeten Quelltabellen müssen über die datasqill GUI im grafischen Datenmodell mit dem Eingang des Moduls verbunden werden.
Das Ziel des Moduls ist ein einzelnes Excel File zu erstellen. Für den Zielordner dieses Files muss der datasqill Laufzeit-Benutzer Schreibrechte besitzen. Das Ziel Excel File muss mithilfe der datasqill GUI im grafischen Datenmodell mit dem Ausgang der Transformation verbunden werden.
Im Auslieferungszustand bietet das Modul folgende Attribute in der GUI für den datasqill Entwickler an:
Name | Typ | Bedeutung |
---|---|---|
Empty Directory | Boolean | Das Modul löscht alle Files in dem Zielordner vor dem Schreiben, wenn dieses Attribute auf 'Y' gesetzt ist |
Excel Sheet | Char | Der Name des Excel Blattes, das geschrieben wird |
Loop Query | SQL | Schleifenabfrage, um die Ergebnisse in der Hauptabfrage oder im Filenamen zu verwenden |
Suppress Empty Sheet | BOOLEAN | Wenn aktiv, dann wird die Excel Liste ohne Daten nicht generiert |
Für das Beispiel wird folgendes Excel Template verwendet: Beispiel Excel Template
Das Beispiel zeigt, wie man ein Excel File generiert und mithilfe einer Loop Query ein Zeitstempel für den Filenamen setzt (die Queries sind für Postgres DB geschrieben)
Loop Query:
SELECT TO_CHAR(CURRENT_DATE, 'YYYY-MM-DD') load_date
Hauptabfrage:
SELECT c_custkey AS key
, c_name
, c_firstname
FROM stage.customer
Die Spalte "load_date" aus der Loop Query im Form einer Variable ${load_date} kann man sowohl im Ziel Excel File als auch im Filename benutzen.
Das Endfile wird dann z.B. für das Datum 09.11.2021 so heißen: Excel_with_data_2021-11-09.xlsx