Verwenden von Iterationen mit einem eingebetteten Datenfluss

Iterationseinstellungen geben an, wie ein eingebetteter Datenfluss eingehende Datensätze verarbeiten soll. Standardmäßig verarbeiten eingebettete Datenflüsse genau wie jeder andere Schritt im Datenfluss jeden Datensatz einzeln. Wenn Sie jedoch Iterationen verwenden, können Sie Datensatzgruppen zusammen verarbeiten. Dies kann für Vorgänge wie Vergleiche oder Berechnungen basierend auf Datensatzgruppen statt auf dem gesamten Satz an Eingabedaten nützlich sein. Sie können auch Iterationen verwenden, um Schrittoptionen basierend auf den Daten in jedem Datensatz festzulegen.

Es gibt zwei Arten von Iterationen: nach Datensatz oder nach Gruppe. Bei Iterationen nach Datensatz verarbeitet ein eingebetteter Datenfluss jeweils einen Datensatz gleichzeitig und das Ergebnis wird an den nächsten, auf den eingebetteten Datenfluss folgenden Schritt gesendet. Die Iteration nach Datensatz ist nützlich, wenn Sie Schrittoptionen mithilfe von Feldwerten von Datensatz zu Datensatz festlegen möchten.

Bei Iterationen nach Gruppe werden Datensätze nach einem Schlüsselfeld gruppiert und der eingebettete Datenfluss verarbeitet jede Gruppe. Alle Datensätze in einer Gruppe werden in einer Iteration verarbeitet, anschließend wird die Gruppe in den nächsten, auf den eingebetteten Unterfluss folgenden Schritt geschrieben. Verwenden Sie Iterationen nach Gruppe, um Gruppen von verbundenen Datensätzen zu verarbeiten und um Schrittoptionen festzulegen, die bei der Verarbeitung der Gruppe von Datensätzen verwendet werden sollen. Sie möchten Datensätze beispielsweise nach Kunden-ID gruppieren, um eine Analyse des Datensatzes jedes Kunden durchzuführen, damit Sie ermitteln können, welches Geschäft von welchem Kunden am häufigsten besucht wird.

Sie sollten die Auswirkungen auf die Leistung berücksichtigen, wenn Sie Iterationen verwenden. Beim Start jeder neuen Iteration entsteht ein Mehraufwand während der Initialisierung des eingebetteten Datenflusses. Dieser Mehraufwand kann bedeutsame Auswirkungen haben, insbesondere bei eingebetteten Datenflüssen innerhalb anderer eingebetteter Datenflüsse. Wenn beispielsweise ein eingebetteter Datenfluss 1.000 Mal durchlaufen wird und innerhalb eines anderen Datenflusses enthalten ist, der ebenfalls 1.000 Male durchlaufen wird, würde die Gesamtsumme der Iterationen 1.000.000 betragen. Die Iterationen nach Datensatz haben größere Auswirkungen auf die Leistung, da jeder Datensatz eine neue Iteration auslöst.

  1. Erstellen Sie einen eingebetteten Datenfluss mit dem Schritt oder den Schritten, den/die Sie für Iterationen verwenden.
    Anmerkung: Es gibt einige Einschränkungen im Hinblick auf Elemente, die in eingebetteten Datenflüssen mit aktivierten Iterationen eingeschlossen werden können:
    • Der „Stream Combiner“-Schritt darf nicht der erste Schritt in einem eingebetteten Datenfluss sein, bei dem Iterationen aktiviert sind.
    • Der eingebettete Datenfluss darf keine Datenladung enthalten, die in eine Datei auf dem Client schreibt. Datenladungen innerhalb eines eingebetteten Datenflusses müssen in eine Datei auf dem Spectrum™ Technology Platform-Server oder auf einem Dateiserver geschrieben werden.
  2. Klicken Sie doppelt auf das Symbol des eingebetteten Datenflusses.
  3. Aktivieren Sie das Kästchen Iteration aktivieren.
  4. Wenn mehr als ein Eingangskanal mit dem eingebetteten Datenfluss verbunden ist, müssen Sie über das Feld Port den Port auswählen, dessen Datensätze Sie zum Durchlaufen der Iterationen verwenden möchten.

    Sie haben beispielsweise die beiden Eingangsports A und B und möchten immer Iterationen durchführen, wenn sich ein Schlüsselfeld ändert. Wenn Sie Port B für die Iterationen auswählen, wird der eingebettete Datenfluss jedes Mal eine neue Iteration starten, wenn ein Schlüsselfeld in den Datensätzen aus Port B geändert wird. Alle Datensätze aus dem anderen Port (Port A) werden in den eingebetteten Datenfluss gelesen, zwischengespeichert und für jede Iteration verwendet.

  5. Wählen Sie den Iterationstyp aus, den Sie ausführen möchten.
    Immer durchlaufen, wenn sich ein Schlüsselfeld ändert
    Bei diesem Iterationstyp verarbeitet der eingebettete Datenfluss Gruppen von Datensätzen mit demselben Wert in einem oder mehreren Feldern. Wenn der eingebettete Datenfluss die Verarbeitung der Gruppe von Datensätzen fertigstellt, wird der eingebettete Datenfluss zurückgesetzt und eine neue Gruppe von Datensätzen wird verarbeitet. Verwenden Sie diesen Iterationstyp, um eingebettete Datenflüsse zu erstellen, die Gruppen von Datensätzen verarbeiten und anschließend jede Datensatzgruppe einzeln ausgeben.
    Tipp: Wenn Sie diesen Iterationstypen auswählen, können Sie die Leistung verbessern, indem Sie vor dem eingebetteten Datenfluss einen Sorter-Schritt platzieren und die Datensätze nach Schlüsselfeld sortieren.
    Pro Datensatz durchlaufen
    Bei dieser Art Iteration verarbeitet der Datenfluss jeweils einen Datensatz. Nach jedem Abschluss der Verarbeitung eines eingebetteten Datenflusses für einen Datensatz wird das Ergebnis an die Ausgabe gesendet und ein neuer Datensatz wird verarbeitet. Eingebettete Datenflüsse, die pro Datensatz durchlaufen, verarbeiten jeden Datensatz wie eine neue Datenflussausführung.
  6. Sollten Sie Immer durchlaufen, wenn sich ein Schlüsselfeld ändert auswählen, müssen Sie Beim Vergleichen von Werten Groß-/Kleinschreibung ignorieren aktivieren, wenn Sie bei der Auswertung von Schlüsselfeldwerten zur Bestimmung von Datensatzgruppen Unterschiede in der Schreibweise ignorieren möchten.
  7. Geben Sie ein oder mehrere Schlüsselfelder an.
    1. Klicken Sie auf Hinzufügen.
    2. Wählen Sie das Feld aus, das Sie als Schlüsselfeld verwenden möchten.
    3. Wenn Sie anhand des Feldwertes eine Schrittoption innerhalb des eingebetteten Datenflusses festlegen möchten, müssen Sie den Namen der festzulegenden Option angeben.
    4. Klicken Sie auf OK.
    5. Fügen Sie bei Bedarf weitere Schlüsselfelder hinzu.

      Wenn Sie mehr als ein Schlüsselfeld haben und die Option Immer durchlaufen, wenn sich ein Schlüsselfeld ändert auswählen, müssen die Datensätze denselben Wert in allen Schlüsselfeldern enthalten, um gruppiert zu werden.