Lesen von XML-Dateien direkt von der Festplatte in einem parallelen DataStage-Job

Antwort

Die XML-Eingabestufe muss eine einzelne Spalte als Eingabe verwenden. Es ist möglich, die XML-Eingabestufe so zu konfigurieren, dass entweder der gesamte Inhalt eines XML-Dokuments oder ein Dateipfad (oder URL-Pfad) akzeptiert wird, aus dem der tatsächliche Dokumentinhalt gelesen werden kann. Die Konfiguration der XML-Eingabestufe, um den Dateipfad zu akzeptieren, ist die beste Option für parallele Jobs. Die XML-Eingabestufe öffnet dann die Datei als Eingabestream und liest die Datei direkt von der Festplatte, ohne sie in irgendeiner Weise zu ändern. Diese Methode ist schneller, verbraucht weniger Ressourcen und ist weitaus weniger fehleranfällig als die Verwendung einer sequentiellen Dateistufe.

Die path-Methode erfordert eine Möglichkeit, den vollständigen Pfad zur Datei (oder zu den Dateien) zu generieren, der dann an die XML-Eingabestufe übergeben wird. Die externe Quellstufe leistet hervorragende Arbeit und bietet diese Fähigkeit. Die externe Quellstufe berappt und führt jedes ausführbare Programm aus und leitet dann die Standardausgabe dieses Programms in den Job um. Um eine Liste der Dateipfade zu erhalten, können wir die externe Quellstufe das Programm ‚find‘ ausführen lassen, das üblicherweise in einem Unix- oder Linux-Betriebssystem enthalten ist. Auf der Windows-Plattform wird dieses Programm auch als Teil des MKS-Toolkits bereitgestellt, das automatisch von der DataStage-Installation installiert wird.

Hier ist ein Beispiel, wie das find-Programm den vollständigen Pfad zu XML-Dokumenten als Ausgabe erzeugen kann:

find /data/input -name „*.xml“ -print

Wenn Sie das Programm mit diesen Argumenten ausführen, wird eine Liste der vollständigen Pfade zu jeder Datei erstellt, die mit dem endet .xml-Erweiterung im Verzeichnis /data/input oder einem seiner Unterverzeichnisse. Die Ausgabe hat einen Dateipfad pro Zeile, der mit einem neuen Zeilenzeichen beendet wird.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht.