0 / 0

Übergabe mehrerer Zeilen aus einer XML- oder JSON-Datei an die Hierarchische Stufe (DataStage)

Letzte Aktualisierung: 12. März 2025
Mehrere Zeilen aus einer XML- oder JSON-Datei an die Stage 'Hierarchical' in DataStage übergeben

Sie können mehrere Zeilen aus einer XML-oder JSON-Datei als einzelnen Datensatz an die Hierarchical-Stage übergeben. Diese Methode ist erforderlich, wenn sich die XML- oder JSON-Datei in einem Dateispeicherconnector befindet.

Wenn Sie einen DataStage®-Flow erstellen, um eine XML- oder JSON-Datei zu parsen, die sich in einem Dateispeicher-Connector befindet (wie IBM Cloud® Object Storage, Amazon S3, oder Google Cloud Storage) befindet, an die Hierarchical Data Stage übergeben, müssen Sie einen ganzen XML- oder JSON-String als einen Datensatz übergeben. Normalerweise enthält eine XML- oder JSON-Datei mehrere Zeilen.

Um mehrere XML- oder JSON-Zeilen als einen Datensatz zu parsen, können Sie eine von zwei Methoden verwenden:

Dateiformateigenschaften für die XML- oder JSON-Datei angeben

Legen Sie das Dateiformat des Connectors als begrenzt fest und legen Sie die Werte für Feldbegrenzer und Zeilenbegrenzer fest, sodass der Connector das Dateiformat als eine Zeile und eine Spalte liest.

Unterschiedliche Connectors haben unterschiedliche Einstellungen. Die richtigen Werte finden Sie in der Dokumentation zum Connector.

Das folgende Beispiel zeigt die Connectoreinstellungen für die Übergabe einer XML-Datei im DOS-Format, die sich in Amazon S3befindet:
Tabelle 1.
Einstellung Wert
Dateiformat Begrenzt
Datensatzdefinition Keine
Feldbegrenzer ~
Hinweis: Der Feldbegrenzer kann ~ oder ein beliebiges anderes Zeichen sein, das noch nicht in der XML-oder JSON-Datei vorhanden ist, wodurch die gesamte Zeile als Feldbegrenzer festgelegt wird.
Zeilenbegrenzer < CRLF>
Alle anderen Einstellungen Übernehmen Sie den Standardwert.

Verwenden der Transformer-Stage zum Zusammenführen aller Zeilen in einer Zeile

  1. Öffnen Sie die Registerkarte Stage des Connectors und öffnen Sie dann den Abschnitt Erweitert. Setzen Sie als Nächstes den Ausführungsmodus auf "Sequenziell" und klicken Sie auf Speichern.
  2. Konfigurieren Sie die Transformer-Stage, um alle Zeilen in einer Zeile zusammenzuführen.

    Im folgenden Beispiel richten Sie einen DataStage -Flow für einen Amazon S3 -Connector für eine Quelle ein, der eine Verbindung zu einer Stage 'Transformer' herstellt, die eine Verbindung zu einer Stage 'Hierarchical' herstellt, die eine Verbindung zu einer sequenziellen Datei als Ziel herstellt.

    Klicken Sie in der Transformer-Stage auf die Registerkarte Ausgabe, öffnen Sie den Abschnitt Spalten und klicken Sie anschließend auf Bearbeiten. Definieren Sie die Spaltenliste so, dass sie nur eine Spalte enthält.

    1. Geben Sie die folgenden Einstellungen an:
      Tabelle 2.
      Einstellung Wert
      Dateiformat Begrenzt
      Datensatzdefinition Keine
      Feldbegrenzer ~
      Zeilenbegrenzer < CR>
    2. Klicken Sie auf die Registerkarte Ausgabe, öffnen Sie den Abschnitt Spalten und klicken Sie dann auf Bearbeiten. Setzen Sie dann die Spaltenliste so, dass sie nur eine Spalte enthält.

      Sie können den Spaltennamen auf einen Wert wie COLUMN_1 und den Typ VARCHAR setzen. Legen Sie den Längenwert so fest, dass er größer als die maximale Länge der Zeilen in der XML-Datei ist.

    3. Klicken Sie auf Anwenden und zurückkehren.
    4. Öffnen Sie die Transformer-Stage und klicken Sie anschließend auf Stagevariable hinzufügen +. Nennen Sie die neue Variable "kombiniert".
    5. Klicken Sie auf das Taschenrechnersymbol, um das Erstellungsprogramm für Ausdrücke zu öffnen. Setzen Sie als Nächstes die Ableitung auf if combined="" then Link_1.COLUMN_1 else combined:Link_1.COLUMN_1, wobei Link_1 der Name des Links ist, der den Connector und die Transformer-Stage verbindet. Klicken Sie anschließend auf Anwenden und zurückkehren.
    6. Öffnen Sie die Transformer-Registerkarte Stage und öffnen Sie dann den Abschnitt Erweitert. Setzen Sie als Nächstes den Ausführungsmodus auf "Sequenziell" und klicken Sie auf Speichern.
    7. Öffnen Sie die Registerkarte Ausgabe und fügen Sie die Einschränkungseinstellung LastRow() hinzu.
    8. Setzen Sie im Abschnitt Ausgabe die Ableitung auf combined, den Namen der zuvor erstellten Stagevariablen. Ändern Sie den Spaltennamen in outputString und setzen Sie die Länge auf eine große Zahl, die die Länge der gesamten Dateizeichenfolge überschreitet.
    9. Klicken Sie auf Speichern und zurückkehren.