Überschreiben des Dateiformats

Wenn Sie einen Auftrag mit dem Job Executor oder der Administrationsumgebung ausführen, können Sie das Dateilayout (bzw. das Schema) der Datei überschreiben, die im „Read from File“- und „Write to File“-Schritt des Datenflusses angegeben ist.

Um dies im Job Executor zu tun, geben Sie Folgendes am Ende des Befehlszeilenbefehls des Job Executor an:

StageName:schema=Protocol:Schemadatei

Verwenden Sie in der Administrationsumgebung das Argument --l im Befehl job execute:

–-lStageName:schema=Protocol:Schemadatei

Dabei gilt Folgendes:

StageName

Die Schrittbeschriftung unter dem Symbol des Schrittes im Datenfluss im Enterprise Designer. Hat der Schritt beispielsweise die Beschriftung „Read from File“, würden Sie Read from File als Schrittnamen angeben.

Um einen Schritt innerhalb eines eingebetteten Datenflusses oder Unterflusses anzugeben, stellen Sie dem Schrittnamen als Präfix den Namen des eingebetteten Datenflusses oder Unterflusses voran, gefolgt von einem Punkt und schließlich dem Schrittnamen:

EmbeddedOrSubflowName.StageName

Beispiel: Um einen Schritt mit Namen „Write to File“ in einem Unterfluss mit Namen „Unterfluss1“ anzugeben, würden Sie Folgendes angeben:

Unterfluss1.Write to File

Um einen Schritt in einem eingebetteten Datenfluss anzugeben, der sich innerhalb eines anderen eingebetteten Datenflusses befindet, fügen Sie den übergeordneten Datenfluss hinzu und verwenden Sie jeweils einen Punkt als Trennzeichen. Beispiel: Wenn sich „Eingebetteter Datenfluss 2“ innerhalb von „Eingebetteter Datenfluss 1“ befindet und Sie den „Write to File“-Schritt im „Eingebetteten Datenfluss 2“ angeben möchten, würden Sie Folgendes angeben:

Eingebetteter Datenfluss 1.Eingebetteter Datenfluss 2.Write to File

Protokoll
Ein Kommunikationsprotokoll. Zur Auswahl stehen:
file
Verwendet das Protokoll file, wenn die Datei auf demselben Computer ist wie der Spectrum Technology Platform-Server. Geben Sie beispielsweise unter Windows Folgendes an:

„file:C:/MeineDatei.txt“

Geben Sie unter UNIX oder Linux Folgendes an:

„file:/testfiles/MeineDatei.txt“

esclient
Verwendet das Protokoll „esclient“, wenn sich die Datei auf dem Computer befindet, auf dem Sie den Auftrag ausführen, wenn es sich dabei um einen anderen Computer handelt als den, auf dem der Spectrum Technology Platform-Server ausgeführt wird. Verwenden Sie das folgende Format:

esclient:Computername/Pad zur Datei

Beispiel:

esclient:MeinComputer/Testdateien/MeineDatei.txt

Anmerkung: Wenn Sie den Auftrag auf dem Server selbst ausführen, können Sie entweder das Protokoll file oder esclient verwenden, erzielen aber wahrscheinlich mit file eine bessere Leistung.
Falls der Hostname des Spectrum Technology Platform-Servers nicht aufgelöst werden kann, können Sie den Fehler „Fehler beim Zugriff auf Datei“ erhalten. Um dieses Problem zu beheben, öffnen Sie diese Datei auf dem Server: SpectrumLocation/server/app/conf/spectrum-container.properties. Legen Sie für die Eigenschaft spectrum.runtime.hostname die IP-Adresse des Servers fest.
esfile
Verwenden Sie das Protokoll „esfile“, wenn sich die Datei auf einem Dateiserver befindet. Der Dateiserver muss in der Management Console als Ressource definiert sein. Verwenden Sie das folgende Format:

esfile://Dateiserver/Pfad zur Datei

Beispiel:

esfile://MeinServer/Testdateien/MeineDatei.txt

Dabei ist „MeinServer“ eine in der Management Console definierte FTP-Dateiserverressource.
webhdfs
Verwenden Sie das Protokoll „webhdfs“, wenn sich die Datei auf einem Hadoop Distributed File Server befindet. Der HDFS-Dateiserver muss in der Management Console als Ressource definiert sein. Verwenden Sie das folgende Format:

webhdfs://Dateiserver/Pfad zur Datei

Beispiel:

webhdfs://MeinServer/Testdateien/MeineDatei.txt

Dabei ist „MeinServer“ eine in der Management Console definierte HDFS-Dateiserverressource.
SchemaFile

Der vollständige Pfad zu der Datei, die das gewünschte Layout definiert.

Anmerkung: Sie müssen in Dateipfaden Schrägstriche (/) angeben, keine umgekehrten Schrägstriche.

Um eine Schemadatei zu erstellen, definieren Sie das in „Read from File“ oder „Write to File“ gewünschte Layout und klicken Sie dann auf die Schaltfläche Exportieren, um eine XML-Datei zu erstellen, die das Layout definiert.

Anmerkung: Sie dürfen den Datentyp eines Feldes in einer Schemadatei nicht überschreiben, wenn Sie den Job Executor verwenden. Der Wert im Element <Typ>, das ein untergeordnetes Element des Elementes <Feldschema> ist, muss dem im „Read from File“- oder „Write to File“-Schritt des Datenflusses angegebenen Typ des Feldes entsprechen.

Beispiel für das Überschreiben eines Dateiformats

In diesem Beispiel wird ein Auftrag namens „TestJob“ ausgeführt. Anstatt die Ausgabe in die Datei zu schreiben, die im „Write to File“-Schritt angegeben ist, wird sie in die Datei outputoverride.txt geschrieben. Anstelle des Dateischemas, das im „Write to File“-Schritt im Fluss angegeben ist, wird im Auftrag das in output-data.xml angegebene Schema verwendet.

job execute --j TestJob --l "Write to File=file:/Users/me/outputoverride.txt,Write to File:schema=file:/Users/me/output-data.xml"