Wiederverwendung von Transformationen im Jitterbit Integration Studio
Einführung
Da eine Transformation als Operation Schritt in mehreren Operationen gleichzeitig referenziert werden kann, ist es wichtig, die Auswirkungen und die Komplexität hinter der Wiederverwendung von Transformationen zu verstehen.
Der Prozess, der mit der Referenzierung einer Transformation verbunden ist, hängt davon ab, ob das Schema in einer Transformation ("transformationseigen") definiert ist oder von einer Aktivität ("aktivitätseigen") geerbt wird:
- Transformationseigene Schemata: Wenn ein Schema direkt in einer Transformation definiert ist, gehört es der Transformation und die Referenzierung der Transformation ist unkompliziert, wie in Komponentenwiederverwendung beschrieben.
- Aktivitätseigene Schemata: Im Gegensatz zu transformationseigenen Schemata steuert die Reihenfolge, in der die Schritte einer Operation konfiguriert sind, wie die Schemata über Transformationen hinweg propagiert werden, wenn Sie eine Transformation referenzieren, die mindestens ein Schema von einer Aktivität erbt, und bestimmt, welche Nachrichten in der Benutzeroberfläche angezeigt werden. Diese Nachrichten helfen Ihnen, zu entscheiden, welche Schemata verwendet werden sollen, und erleichtern die Erstellung einer neuen Transformation, wenn dies angemessen ist. Nach der Referenzierung einer Transformation müssen Sie möglicherweise die Schemata in der ursprünglichen oder referenzierten Transformation aktualisieren, um Validierungsfehler zu beheben, wie auf dieser Seite beschrieben.
Da diese Seite ergänzend zu Komponentenwiederverwendung ist, wiederholt sie nicht die Informationen, die auf dieser Seite enthalten sind. Siehe Komponentenwiederverwendung für die Definitionen der Terminologie zur Wiederverwendung von Komponenten und wie man Komponenten (einschließlich Transformationen) kopiert, ausschneidet und einfügt.
Wenn Sie eine Transformation referenzieren, ist es hilfreich, sich daran zu erinnern, dass sowohl die ursprüngliche Transformation als auch die neu referenzierte Transformation auf dasselbe Element verweisen. Änderungen an einer der beiden Transformationen wirken sich auf alle Instanzen der referenzierten Transformation aus, einschließlich Änderungen, wie Schemata definiert sind. Wenn eine Transformation ein Schema von einer benachbarten Aktivität erbt und Sie dann eine Referenz zu dieser Transformation in einer anderen Operation erstellen, enthält die neu referenzierte Transformation eine Referenz zum ursprünglichen Schema, obwohl die Aktivität nicht benachbart zur referenzierten Transformation ist.
Wenn dies geschieht, müssen Sie die Änderungen durch Aktualisieren der Schemata und Beheben von Validierungsfehlern korrigieren.
Anwendungsfall
Der beabsichtigte Anwendungsfall für die Wiederverwendung einer Transformation, die von aktivitätsbesessenen Schemata erbt, ist gegeben, wenn Sie mehrere Quellen haben, bei denen Sie ähnliche Zuordnungen zum gleichen Ziel verwenden möchten.
Zum Beispiel können Sie Quelldaten haben, die über aktivitätsbesessene Schemata sowohl in Endpunkt A als auch in Endpunkt B bereitgestellt werden. Wenn die Struktur der Quelldaten ähnlich ist, möchten Sie möglicherweise die Transformationszuordnungen wiederverwenden, bevor Sie das Ziel von Endpunkt C erreichen. In diesem Fall können Sie zunächst die Operation mit Endpunkt A als Quelle erstellen und dann die Transformation kopieren, um sie in einer anderen Operation mit Endpunkt B als Quelle wiederzuverwenden.
Obwohl es auch möglich ist, eine Transformation, die ein aktivitätsbesessenes Zielschema erbt, wiederzuverwenden, werden alle ursprünglichen Transformationszuordnungen von einer neuen Kopie der Transformation entfernt, die erstellt wird, wenn das Zielschema aktualisiert wird.
Beste Praktiken
Wir empfehlen, diese besten Praktiken zu befolgen, wenn Sie Transformationen wiederverwenden, die mindestens ein Schema von einer Aktivität erben.
Aktivitäten hinzufügen, bevor Sie eine Transformation hinzufügen
Wenn Sie beabsichtigen, eine Transformation mit aktivitätsbesessenen Schemata in einer Operation wiederzuverwenden, fügen Sie immer zuerst die Aktivitäten zur Operation hinzu, bevor Sie die Transformation zur Operation hinzufügen. Die empfohlene Reihenfolge wird durch Szenarien a und b weiter unten auf dieser Seite veranschaulicht.
Wenn Sie diese beste Praxis nicht befolgen und stattdessen zuerst eine referenzierte Transformation zu einer Operation hinzufügen und dann eine benachbarte Aktivität hinzufügen, die ein Schema bereitstellt, führt dies dazu, dass alle Instanzen der referenzierten Transformation automatisch mit dem neuen Schema aktualisiert werden. Dies kann dazu führen, dass zuvor gültige referenzierte Transformationen ungültig werden und Zuordnungen möglicherweise nicht mehr angezeigt werden.
Um sich von dieser Situation zu erholen, öffnen Sie bei jeder betroffenen referenzierten Transformation die Transformation und verwenden Sie den Link, der im Kopf der Transformation erscheint, um das Schema zu aktualisieren und eine unabhängige Kopie der Transformation mit ihren ursprünglichen Schemata zu erstellen. Die Zuordnungen erscheinen wieder, wenn die ursprünglichen Schemata ersetzt wurden.
Mapping-Fehler beheben
Nachdem Sie ein nicht übereinstimmendes, aktivitätsbesitzendes Schema in einer referenzierten Transformation aktualisiert haben, kann es sein, dass die unabhängige Kopie der Transformation, die erstellt wurde, Zuordnungen beibehalten hat, die aufgrund nicht vorhandener Felder aus der vorherigen referenzierten Transformation jetzt ungültig sind. Bestehende Zuordnungen, die auf einen Quell- oder Zielknoten oder ein Feld verweisen, das nicht mehr existiert, sind in der unabhängigen Kopie der Transformation nicht mehr sichtbar, da sie nicht mehr gültig sind.
Diese Fehler werden in einer geöffneten Transformation nicht angezeigt, können jedoch im Projektbereich identifiziert werden.
Um diese Mapping-Fehler zu beheben, empfehlen wir, alle ungültigen Zuordnungen über die Aktionsmenüoption des Zielstammknotens Alle ungültigen Zuordnungen entfernen zu löschen.
Szenarien
Diese Szenarien werden verwendet, um den Prozess zu beschreiben und zu demonstrieren, wie eine Transformation referenziert wird, die ein Schema von einer Aktivität erbt. Transformationen können in einer Operation referenziert werden, indem sie per Drag-and-Drop hinzugefügt oder durch Einfügen einer kopierten oder ausgeschnittenen Operation eingefügt werden (siehe Komponentenreferenz erstellen in Komponentenwiederverwendung).
Jedes Szenario bezieht sich auf die Platzierung von Transformationen und Aktivitäten auf der Entwurfsgrafik als Schritte einer Operation.
Alle diese Szenarien basieren auf einer ursprünglichen Operation, die eine Transformation verwendet, bei der sowohl das Anfrage- als auch das Antwortschema von ursprünglich benachbarten Aktivitäten geerbt werden.
Hinweis
Das Verhalten in diesen Szenarien gilt auch für die relevante Schema-Seite, wenn nur ein Schema von der Transformation geerbt wird.
In der ursprünglichen Operation (Ursprüngliche Operation) stellt eine Amazon Redshift-Abfrageaktivität (Abfrage Konten) ein Anfrage-Schema bereit, und eine Amazon Redshift-Upsert-Aktivität (Upsert Konten) stellt ein Antwortschema für die Transformation (Transformation) bereit:
Die Reihenfolge, in der die Schritte einer Operation hinzugefügt werden, steuert, wie die Schemata über Transformationen propagiert werden, und bestimmt, welche Nachrichten in der Benutzeroberfläche angezeigt werden. Die folgende Tabelle fasst die möglichen Szenarien und die Schritte zusammen, in denen eine Operation mit einem Transformationsverweis konfiguriert werden könnte. Jedes Szenario wird in einem folgenden Abschnitt beschrieben, wie in der Tabelle verlinkt.
Szenario | Zusammenfassung | Schritte |
---|---|---|
Szenario A | Eine referenzierte Transformation wird neben einer Aktivität mit einem definierten Schema hinzugefügt |
|
Szenario B | Eine referenzierte Transformation wird neben einer Aktivität ohne definiertes Schema hinzugefügt |
|
Szenario C | Eine Aktivität mit einem definierten Schema wird neben einer referenzierten Transformation hinzugefügt |
|
Szenario D | Eine Aktivität ohne definiertes Schema wird neben einer referenzierten Transformation hinzugefügt |
|
Szenario A: Referenzierte Transformation neben einer Aktivität mit einem definierten Schema hinzugefügt
In Szenario A werden zunächst zwei neue Amazon Redshift-Aktivitäten zu einem neuen Vorgang hinzugefügt und vollständig konfiguriert (durch Abschluss ihrer Datenschema-Schritte): Query Companies und Upsert Persons. Dann wird die Transformation aus Original Operation als Referenz zwischen den beiden Aktivitäten hinzugefügt.
Die neu hinzugefügte Transformationsreferenz ist gültig, ohne Validierungsfehler. Der Vorgang selbst ist jedoch ungültig:
Der Validierungsfehler des Vorgangs zeigt an, dass die Schemas der Transformation nicht mit den von den angrenzenden Aktivitäten bereitgestellten Schema-Strukturen übereinstimmen:
Dialogtext
Validierungsfehler
operationName
Das Zielschema der Transformation stimmt nicht mit der von der Aktivität activityName
bereitgestellten Schema-Struktur überein. Öffnen Sie die Transformation transformationName
im Vorgang operationName
und aktualisieren Sie das Zielschema.
Das Quellschema der Transformation stimmt nicht mit der von der Aktivität activityName
bereitgestellten Schema-Struktur überein. Öffnen Sie die Transformation transformationName
im Vorgang operationName
und aktualisieren Sie das Quellschema.
Validierungsfehler beheben
Um das Validierungsproblem des Vorgangs zu beheben, öffnen Sie die Transformation. Eine Nachricht, die auf eine Nichtübereinstimmung hinweist, wird im Kopfbereich der Transformation angezeigt. Klicken Sie auf den Link in der Nachricht, um das relevante Schema zu aktualisieren:
Hinweis
Es wird jeweils nur eine Nachricht angezeigt. Wenn beide Schemas nicht übereinstimmen, verwenden Sie den Link in der Nachricht, um zunächst eines der Schemas zu aktualisieren und eine Kopie der Transformation zu erstellen (siehe unten). Nach der Erstellung einer Kopie der Transformation wird eine weitere Nachricht angezeigt, mit der Sie die andere Schema-Seite aktualisieren können.
Beim Klicken auf den Link zum Aktualisieren des Schemas wird ein Dialog angezeigt, der Sie auffordert, eine Kopie der Transformation als neue, unabhängige Komponente zu erstellen:
Dialogtext
Verwenden Sie das Aktivitätseingabeschema
Diese Transformation wird in mehr als einer Operation verwendet. Zuerst wird eine Kopie der Transformation erstellt und mit dem Schema aus der Aktivität aktualisiert. Möchten Sie fortfahren?
Ein Klick auf Weiter trennt diese Transformation von anderen Stellen, an denen sie referenziert wird, und erstellt sowie öffnet eine neue Transformationskomponente, die Schemas verwendet, die gemäß der Standardpriorität definiert sind. Das heißt, die neue Transformation verwendet zuerst ein Schema, das von einer Aktivität neben der neuen Transformation geerbt wird. Wenn keine benachbarte Aktivität vorhanden ist oder wenn in der Aktivität kein Schema definiert ist, verwendet die Transformation ein in der neuen Transformation definiertes Schema. Die neue Transformation ist nicht mehr durch Referenz mit der vorherigen Transformation oder mit irgendwelchen von den benachbarten Aktivitäten der vorherigen Transformation geerbten Schemas verbunden.
Wenn beide Schemas nicht übereinstimmen oder wenn die Transformation von keiner anderen Operation mehr referenziert wird, wird die neu erstellte Transformation mit einer anderen Nachricht erstellt, die auf eine Schemaabweichung auf der anderen Seite der Transformation hinweist. Klicken Sie erneut auf den Link in der Nachricht, um das relevante Schema zu aktualisieren:
Ein Dialog zeigt an, dass das aktuelle Schema aus der Transformation entfernt wird und die Transformation dann das Schema von einer Aktivität erbt, die neben dieser Transformation liegt:
Dialogtext
Verwenden Sie das Aktivitätenausgabeschema
Sind Sie sicher? Diese Aktion entfernt dauerhaft das Quellschema und verwendet das von der Aktivität bereitgestellte Ausgabeschema.
Ein Klick auf Weiter aktualisiert das Schema in der aktuellen Transformation:
Die Transformation kann dann aufgrund der Schemaänderungen auf der Aktivitätsseite ungültig sein (zum Beispiel, wenn Felder umbenannt oder nicht mehr vorhanden sind):
Ziel-Felder nach Wunsch zuordnen, um die Transformation zu konfigurieren.
Hinweis
Wenn weiterhin Validierungsfehler bei der Transformation bestehen, kann es sein, dass vorhandene Zuordnungen aus der zuvor referenzierten Transformation von der Transformationskopie beibehalten werden, was die Transformation ungültig macht. Um das zu beheben, siehe den Abschnitt Transformation mappings weiter unten auf dieser Seite.
Scenario B: Referenzierte Transformation neben einer Aktivität ohne definiertes Schema hinzugefügt
In Szenario B werden zunächst zwei neue Variable-Aktivitäten zu einer neuen Operation hinzugefügt: Von Variable lesen und In Variable schreiben. Jede Variable-Aktivität ist vollständig konfiguriert mit der Option, kein Datenschema bereitzustellen. Dann wird die Transformation aus Original Operation als Referenz zwischen den beiden Aktivitäten hinzugefügt.
Alle Operation-Schritte und die Operation selbst sind gültig:
In diesem Szenario kann die ursprüngliche Transformation (Transformation) ohne Probleme referenziert werden. Die Transformation verwendet weiterhin Schemas, die in den Aktivitäten der Original Operation definiert sind.
Wenn Sie die Transformation öffnen, können Sie sehen, woher die Schemas stammen, und können jede Amazon Redshift-Aktivität über das Aktionsmenü des Schemas auswählen, um Aktivität bearbeiten zu wählen. Mit Schema aktualisieren wird das Schema aus den Aktivitäten der Original Operation aktualisiert:
Scenario C: Aktivität mit einem definierten Schema neben einer referenzierten Transformation hinzugefügt
In Szenario C wird die ursprüngliche Transformation (Transformation) zunächst als Referenz zu einer neuen Operation hinzugefügt.
Zwei neue Amazon Redshift-Aktivitäten werden dann auf beiden Seiten der Transformation zur Operation hinzugefügt: Mitarbeiter abfragen und Benutzerdaten aktualisieren:
Wenn Sie das Datenschema jeder Aktivität konfigurieren, erbt die angrenzende Transformation, die zuvor ihre Schemata von den Aktivitäten im Original Operation geerbt hat, nun ihre Schemata direkt von den Aktivitäten, die angrenzend zur Transformation sind. Dies betrifft alle Stellen, an denen die Transformation referenziert wird, und kann dazu führen, dass andere Operationen ungültig werden.
Beim Öffnen jeder Aktivität zur Konfiguration wird ein Dialog angezeigt, der alle anderen Operationen auflistet, die die Transformation referenzieren und betroffen sein werden:
Dialogtext
Transformation Updates
Die Konfiguration der Aktivität aktualisiert die Quell- und/oder Zielstruktur der folgenden Transformationen.
Zielstruktur zugeordnet zu:
-
Operation 1
-
Operation 2
Dieser Dialog ist informativ, da ein Klick auf Weiter die Transformation noch nicht aktualisiert. Stattdessen bringt ein Klick auf Weiter Sie zurück zum Konfigurationsbildschirm der Aktivität. Das Abbrechen dieses Dialogs mit der Esc
-Taste hat das gleiche Ergebnis wie ein Klick auf Weiter. Wenn Sie den Konfigurationsbildschirm der Aktivität schließen, ohne das Datenschema zu konfigurieren, bleibt die angrenzende Transformation unbeeinflusst, da die Aktivität ohne ein Datenschema unkonfiguriert bleibt.
Sobald Sie die Aktivität mit einem Datenschema konfigurieren, sind die aufgelisteten Operationen betroffen.
Warning
Die Aktion, die Aktivitäten mit definierten Schemata auf beiden Seiten der referenzierten Transformation hinzuzufügen, betrifft alle Stellen, an denen die Transformation referenziert wird, und kann dazu führen, dass andere Operationen ungültig werden.
Die neu hinzugefügte Transformationsreferenz ist ungültig:
Die Operation mit den Aktivitäten, die nun Schemata an die Transformation bereitstellen, ist ungültig, da die Transformation ungültig ist. In der Transformation gibt es jedoch keinen Hinweis auf Validierungsfehler der Transformation:
Validierungsfehler beheben
In diesem Szenario ist die Transformation aufgrund von Schemaänderungen auf der Aktivitätsseite ungültig (zum Beispiel, wenn Felder umbenannt oder nicht mehr vorhanden sind). Um das Problem zu lösen, siehe den Abschnitt Transformationszuordnungen weiter unten auf dieser Seite.
Darüber hinaus können auch andere Operationen, die die Transformation verwenden, ungültig geworden sein. Zum Beispiel wird die Ursprüngliche Operation automatisch ungültig, da ihre Transformation automatisch so geändert wurde, dass sie jetzt auf die Schemata der Aktivitäten in Szenario C verweist:
Um Fehler bei anderen Operationen zu korrigieren, öffne die Transformation in jeder Operation und klicke auf den Link, um das Schema zu aktualisieren, der in der Nachricht im Transformationsheader erscheint (wie in Szenario A, oben beschrieben).
Szenario D: Aktivität ohne definiertes Schema neben einer referenzierten Transformation hinzugefügt
In Szenario D wird die ursprüngliche Transformation (Transformation) zunächst als Referenz zu einer neuen Operation hinzugefügt.
Zwei neue Temporäre Speicheraktivitäten werden dann auf beiden Seiten der Transformation zur Operation hinzugefügt: Von Temp Storage lesen und In Temp Storage schreiben:
Beim Öffnen jeder Aktivität zur Konfiguration impliziert ein Dialog fälschlicherweise, dass andere Operationen von der Konfiguration der Aktivität betroffen sein werden:
Dialogtext
Transformation Updates
Die Konfiguration der Aktivität wird die Quell- und/oder Zielstruktur der folgenden Transformationen aktualisieren.
Zielstruktur zugeordnet zu:
-
Operation 1
-
Operation 2
Tatsächlich bleibt die angrenzende Transformation unberührt, wenn du in der Aktivitätskonfiguration kein Schema angibst. Die angrenzende Transformation wird weiterhin ihre Schemata von den Aktivitäten in der Ursprünglichen Operation erben.
Warnung
Wenn Sie die Aktivität später zu einem anderen Zeitpunkt so konfigurieren, dass ein Schema in der Aktivitätskonfiguration bereitgestellt wird, sind die angrenzende Transformation und alle anderen Operationen, in denen sie referenziert wird, betroffen, obwohl dieser Dialog nicht erneut angezeigt wird.
Nachdem jede Aktivität vollständig konfiguriert wurde, ohne ein Datenschema bereitzustellen, sind alle Operationen und die Operation selbst gültig:
In diesem Szenario kann die ursprüngliche Transformation (Transformation) ohne Probleme referenziert werden. Die Transformation verwendet weiterhin Schemata, die in den Aktivitäten der Ursprünglichen Operation definiert sind.
Wenn Sie die Transformation öffnen, können Sie sehen, woher die Schemata stammen, und können jede Amazon Redshift-Aktivität mit den Aktionen des Schemas öffnen, um Aktivität bearbeiten auszuwählen. Mit Schema aktualisieren wird das Schema aus den Aktivitäten der Ursprünglichen Operation aktualisiert:
Transformation mappings
Unabhängig davon, wo die Schemata einer Transformation definiert sind, gehören die Transformation-Mappings zur Transformation. Wenn sich das Zielschema ändert, sodass Zielfelder mit Mappings nicht mehr vorhanden sind, und diese Felder später wieder hinzugefügt werden, erscheinen die Transformation-Mappings erneut.
Mappings, die in einer Transformation verbleiben, nachdem sich ihr Zielschema geändert hat, führen zu Gültigkeitsfehlern der Transformation, wenn die zugeordneten Felder nicht mehr in einem Schema vorhanden sind.
Dies kann auftreten, wenn eine Transformation mit Mappings, die einmal ihre Schemata von angrenzenden Aktivitäten geerbt hat, später in einer anderen Operation mit unterschiedlichen angrenzenden Aktivitäten referenziert wird, die Schemata bereitstellen, wie in den Szenarien von Szenario B und Szenario D oben beschrieben.
In diesem Fall beschreibt ein Transformationsvalidierungsfehler die fehlenden Felder, obwohl keine Validierungsfehler in der Transformation selbst angezeigt werden.
Dialogtext
Validierungsfehler
transformationName
Die Zuordnung verweist auf ein nicht vorhandenes Ziel-Feld "targetName
"
Um das zu beheben, können Sie alle ungültigen Zuordnungen über die Menüoption Alle ungültigen Zuordnungen entfernen im Aktionsmenü des Zielstammknotens entfernen (siehe Aktionen des Zielknotens).