Write to Flat File

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

Beschreibung

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.

Datenquellen

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.

Datenziel

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.

Attribute

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.

Erste Beispiele

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

write_flat_file_action

Die Spalte "dt" aus der Loop Query im Form einer Variable ${dt} kann man sowohl im Hauptquery als auch im Filename benutzen.

write_flat_file

Das Endfile wird dann z.B. für das Datum 01.05.2015 so heißen: exp_customer_2015-05-01.csv