Das Modul "Write to Flat File" 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 einen Flat File.
Name | Bedeutung |
---|---|
Modul | Write Flat Files |
Modulklasse | DsModWriteFlatFile |
Typ | Java |
Zweck | Basierend auf der angegebenen SQL-Abfrage sollen die Daten in einen Flat File geschrieben werden |
Transformationscode | SQL Abfrage |
Quellen | Quelltabellen in einer Datenbank |
Ziele | Flat File |
Folgendes Beispiel zeigt wie man mithilfe des Moduls einen Export to Flat File aufbauen kann. Zunächst die verwendete SQL-Abfrage:
SELECT c_custkey AS key
, c_name
FROM staging.customer
Wie im Beispiel zu erkennen, können die Spaltennamen des FlatFiles mit Aliase oder ohne Aliase in einer SQL-Abfrage eingegeben werden.
Die Quellen des Moduls sind Tabellen, die über die vom datasqill Entwickler definierte Abfrage gelesen werden. Für diese Tabellen muss der datasqill Laufzeit-Benutzer Leserechte besitzen. 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 Flat File. Für den Zielordner dieses Files muss der datasqill Laufzeit-Benutzer Schreibrechte besitzen. Das Ziel Flat File muss mithilfe der datasqill GUI im grafischen Datenmodell mit dem Ausgang des Moduls 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 Beschreiben, wenn dieses Attribute auf 'Y' gesetzt ist. |
Delimiter | Char | Delimiter ist ein Trennzeichen für die Attributwerte |
Double Quote | BOOLEAN | Kapselung den Attributwerten in Anführungszeichen |
Header | BOOLEAN | Wenn aktiv, dann wird der Header geschrieben |
GZIP File | BOOLEAN | Wenn aktiv, dann wird das generierte File zu einem ZIP-Archive hinzugefügt |
Suppress Empty File | BOOLEAN | Wenn aktiv und SQL-Abfrage liefert keine Ergebnisse, dann wird kein File generiert |
With BOM | BOOLEAN | Wenn aktiv, dann wird ein generiertes File eine "UTF-8 with BOM" Encoding haben, sonst(default) "UTF-8 without BOM". BOM ist Byte Order Mark. |
Loop Query | SQL | Schleifenabfrage, um die Ergebnisse in der Hauptabfrage oder im Filename zu verwenden. |
Das Beispiel zeigt, wie man ein Flat 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') dt
Hauptabfrage:
SELECT c_custkey AS key
, c_name
FROM stage.customer
Die Spalte "dt" aus der Loop Query im Form einer Variable ${dt} kann man sowohl im Hauptquery als auch im Filename benutzen.
Das Endfile wird dann z.B. für das Datum 01.05.2015 so heißen: exp_customer_2015-05-01.csv