0 / 0
Zurück zur englischen Version der Dokumentation

Ändern Sie Apply stage in DataStage

Letzte Aktualisierung: 12. März 2025
DataStage Stage "Change Apply"

Die Stage 'Change Apply' ist eine verarbeitende Stage. Sie verwendet das Änderungsdataset, das die Änderungen in den Vorher- und Nachher-Datasets aus der Stage "Change Capture" enthält, und wendet die codierten Änderungsoperationen auf ein Vorher-Dataset an, um ein Nachher-Dataset zu berechnen.

Die Vorher-Eingabe für die Stage 'Change Apply' muss die gleichen Spalten aufweisen wie die Vorher-Eingabe für die Stage 'Change Capture', und es muss eine automatische Konvertierung zwischen den Typen der entsprechenden Spalten vorhanden sein. Darüber hinaus sind die Ergebnisse nur garantiert, wenn die Inhalte der Vorher-Eingabe der Stage 'Change Apply' mit der Vorher-Eingabe, die der Stage 'Change Capture' zugeführt wurde, identisch (in Wert- und Datensatzreihenfolge in jeder Partition) ist und wenn die Schlüssel eindeutig sind.

Hinweis: Die Änderungseingabe für Change Apply muss unverändert von Change Capture ausgegeben worden sein. Da die Beibehaltung der Partitionierung in der Änderungsausgabe von "Change Capture" festgelegt ist, werden Sie zur Laufzeit gewarnt, wenn die Stage "Change Apply" nicht dieselbe Anzahl von Partitionen wie die Stage "Change Capture" hat. Außerdem werden beide Eingaben von 'Change Apply' mit der Partitionierungsmethode 'Same' als partitioniert gekennzeichnet.

Die Stage 'Change Apply' liest einen Datensatz aus dem Änderungsdataset und aus dem Vorher-Dataset, vergleicht deren Schlüsselspaltenwerte und führt eine entsprechende Aktion aus:

  • Wenn die Vorher-Schlüssel in der angegebenen Sortierreihenfolge vor den Änderungsschlüssel vorkommen, wird der Vorher-Datensatz in die Ausgabe kopiert. Der Änderungsdatensatz wird für den nächsten Vergleich behalten.
  • Wenn die Vorher-Schlüssel mit den Änderungsschlüsseln übereinstimmen, hängt das Verhalten von dem Code in der Spalte 'change_code' des Änderungsdatensatzes ab:
    • Insert: Der Änderungsdatensatz wird in die Ausgabe kopiert, die Stage behält denselben Vorher-Datensatz für den nächsten Vergleich. Falls die Schlüsselspalten nicht eindeutig sind und mehr als ein aufeinander folgendes 'Insert' mit demselben Schlüssel vorhanden ist, wendet die Stage 'Change Apply' alle nachfolgenden 'Inserts' vor vorhandenen Datensätzen an. Diese Datensatzreihenfolge kann sich von dem Nachherdataset unterscheiden, das an die Stage 'Change Capture' übergeben wurde.
    • Delete: Die Wertspalten des Vorher-Datensatzes und des Änderungsdatensatzes werden verglichen. Wenn die Wertspalten gleich sind oder wenn die Option 'Check Value Columns on Delete' auf 'Falsch' gesetzt ist, werden sowohl der Änderungsdatensatz als auch der Vorher-Datensatz verworfen und kein Datensatz an die Ausgabe übergeben. Sind die Wertspalten nicht gleich, wird der Vorher-Datensatz in die Ausgabe kopiert und die Stage behält denselben Änderungsdatensatz für den nächsten Vergleich. Wenn die Schlüsselspalten nicht eindeutig sind, stellen die Wertspalten sicher, dass der richtige Datensatz gelöscht wird. Wenn mehrere Datensätze mit denselben Schlüsseln über übereinstimmende Wertspalten verfügen, wird der zuerst gefundene Datensatz gelöscht. Dieser Löschvorgang kann zu einer anderen Datensatzreihenfolge führen als im Nachher-Dataset, das an die Stage 'Change Capture' übergeben wird. Es wird eine Warnung ausgegeben und sowohl der Änderungsdatensatz als auch der Vorher-Datensatz werden verworfen. Das heißt, dass kein Ausgabedatensatz erstellt wird.
    • Edit: Der Änderungsdatensatz wird in die Ausgabe kopiert und der Vorher-Datensatz wird verworfen. Wenn Schlüsselspalten nicht eindeutig sind, wird der erste Vorher-Datensatz, der mit übereinstimmenden Schlüsseln gefunden wird, bearbeitet. Dies kann ein anderer Datensatz als derjenige sein, der in dem Nachher-Dataset editiert wurde, das an die Stage 'Change Capture' übergeben wurde. Es wird eine Warnung ausgegeben und der Änderungsdatensatz wird in die Ausgabe kopiert. Die Stage behält jedoch denselben Datensatz für den nächsten Vergleich.
    • Copy: Der Änderungsdatensatz wird verworfen. Der Vorher-Datensatz wird in die Ausgabe kopiert.
  • Wenn die Vorher-Schlüssel nach den Änderungsschlüsseln vorkommen, hängt das Verhalten ebenfalls von der Spalte 'change_code' ab:
    • Einfügetaste. Der Datensatz Ändern wird in die Ausgabe kopiert und die Stage behält denselben Vorher-Datensatz für den nächsten Vergleich bei. (Dies stimmt mit dem Fall überein, dass die Schlüssel gleich sind.)
    • Löschen. Es wird eine Warnung ausgegeben und der Datensatz Ändern wird gelöscht, während der Datensatz Vorher für den nächsten Vergleich beibehalten wird.
    • Bearbeiten oder Kopieren. Es wird eine Warnung ausgegeben und der Änderungsdatensatz wird in die Ausgabe kopiert, während der Vorher Datensatz für den nächsten Vergleich behalten wird.
      Hinweis: Wenn die Vorher-Eingabe von Change Apply mit der Vorher -Eingabe von Change Capture identisch ist und entweder die Schlüssel eindeutig sind oder Kopierdatensätze verwendet werden, ist die Ausgabe von Change Apply mit der Nachher -Eingabe von Change Capture identisch. Wenn die vorherige Eingabe von "Change Apply" jedoch nicht identisch ist (unterschiedliche Datensatzinhalte oder -reihenfolge) oder die Schlüssel nicht eindeutig sind und keine Kopierdatensätze verwendet werden, wird dies nicht erkannt und die oben beschriebenen Regeln werden trotzdem angewendet. Dies führt zu einem Ergebnis, das nützlich oder nicht sinnvoll sein kann.

Das Eigenschaftsfenster enthält drei Registerkarten:

Registerkarte 'Stage'
Diese Registerkarte ist immer vorhanden und wird verwendet, um allgemeine Informationen zur Stage anzugeben.
Registerkarte 'Eingabe'
Auf dieser Registerkarte geben Sie die Details zu dem einzelnen Eingabesatz an, aus dem Sie Datensätze auswählen.
Registerkarte 'Ausgabe'
Auf dieser Registerkarte geben Sie Details zu den verarbeiteten Daten an, die von der Stage ausgegeben werden.