Transformation im Jitterbit Integration Studio
Einführung
Harmony unterstützt diese Methoden zur Verarbeitung einer Transformation:
Eine Streaming-Transformation ist die bevorzugte Methode, wenn die von einer Transformation verwendete Speichermenge begrenzt werden muss. In Fällen, in denen Sie keine Streaming-Transformation verwenden können, kann chunking anwendbar sein. Aus der Perspektive einer Transformation entspricht eine SOAP Webdienstantwort/-anforderung einer XML-Quelle/einem XML-Ziel, wenn Einschränkungen bei der Verarbeitung berücksichtigt werden.
Auf dieser Seite wird auch erläutert, wie Harmony mit der Verarbeitung bereits verarbeiteter Dateien umgeht.
Bekanntes Problem
Dieses Problem tritt bekanntermaßen bei Transformations auf:
- Die Verwendung eines flachen Schema als Eingabe kann zu leeren zugeordneten Feldern führen
- Zusammenfassung: Unter bestimmten Umständen werden bei Verwendung eines flachen Schema die Zielfelder nicht richtig zugeordnet, was dazu führt, dass sie leer sind.
- Zusätzliche Informationen: Dies tritt bei gespiegelten Schemas oder JSON-Schemas nicht auf.
- Workaround: Fügen Sie am Anfang der Operation ein Script hinzu, das Streaming-Transformations deaktiviert, indem Sie
$jitterbit.transformation.auto_streaming = false;
.
Streaming-Transformation
Eine Streaming- Transformation lädt jeweils einen Datensatz in den Speicher, führt die Transformation des Datensatzes durch und schreibt das Ziel auf die Festplatte. Dadurch wird die während der Transformation verwendete Speichermenge auf das reduziert, was zur Transformation dieses einen Datensatzes erforderlich ist.
Streaming wird automatisch auf Transformations angewendet, bei denen Quelle und Ziel beide flache Strukturen sind (z. B. eine einzelne Datenbanktabelle oder eine einzelne CSV-Datei) und diese Anforderungen sind erfüllt:
-
Streaming wurde nicht explizit durch die Einstellung deaktiviert
AutoStreaming=0
imjitterbit.conf
Datei für einen privaten Agenten. -
Streaming wurde nicht explizit durch Festlegen der Jitterbit-Variable deaktiviert
jitterbit.transformation.auto_streaming
Zu0
oderfalse
. -
Es werden keine instanzauflösenden Funktionen verwendet, wie z. B.
FindByPos
,FindValue
, oderSum
. -
Diese Wörterbuch- und Array-Funktionen sind nicht vorhanden:
GetSourceInstanceMap
,GetSourceAttrNames
,GetSourceElementNames
,GetSourceInstanceElementMap
,GetSourceInstanceArray
,GetSourceInstanceElementArray
. -
Die XML-Funktion
GetXMLString
ist nicht vorhanden. -
Es gibt keine Mehrfachzuordnungen im Ziel.
-
Die Transformation hat keine Bedingung im Ziel definiert.
Es sind keine weiteren Maßnahmen erforderlich. Streaming wird bei der Verarbeitung der Transformation automatisch verwendet.
Beispiele
Zu den Transformations, die automatisch Streaming verwenden, gehören diese Datenstrukturen:
- CSV zu CSV
- Von Einzeltabelle zu Einzeltabelle
- Einzelne Tabelle in CSV
- CSV in einzelne Tabelle
Chunking
In einer Situation, in der eine Streaming Transformation weder anwendbar noch möglich ist, können Sie möglicherweise Chunking verwenden, damit die Transformation weniger Speicher benötigt. Bei sehr großen XML-Quellen und-Zielen ist chunking möglicherweise die einzige Option. (Wenn die Speichernutzung kein Problem darstellt, ist eine Streaming Transformation immer die bevorzugte Wahl.)
Die Chunking-Konfiguration erfolgt auf Operation in den Operation, sodass Sie die gleiche Transformation sowohl im Chunked- als auch im Nicht-Chunked-Modus verwenden können.
Auf die Option Einstellungen für Vorgänge kann von diesen Orten aus zugegriffen werden:
- Die Tab Workflows im Projektbereich (siehe Aktionsmenü Komponentenaktionen im Projektbereich Tab Workflows).
- Die Tab Komponenten des Projektbereichs (siehe Aktionsmenü im Projektbereich Tab Komponenten).
- Die Design-Canvas (siehe Aktionsmenü „Komponentenaktionen“ in Entwurfsfläche).
Sobald der Bildschirm mit den Operation geöffnet ist, wählen Sie die Tab Optionen.
Verwenden Sie eine möglichst große Blockgröße und stellen Sie sicher, dass die Daten für einen Block in den verfügbaren Speicher passen.
Anweisungen und Best Practices zur Verwendung von chunking finden Sie unter Operationsoptionen.
Wiederholte Dateiübertragungen
Harmony stellt sicher, dass Textdateien nur ein einziges Mal übertragen werden. Wenn ein Operation gestartet wird, aber bevor eine Datei verschoben wird, prüft Harmony die Übertragungsverlaufsliste der Quelldateien, um festzustellen, ob die gleichen Quellinformationen bereits verwendet wurden. Um eindeutige Dateiübertragungen sicherzustellen, werden drei Kriterien verwendet:
- Dateiname
- Änderungsdatum
- Vorgangs-ID
Wenn alle diese Kriterien für eine beliebige Quelltextdatei gleich sind, geht das System davon aus, dass die Datei verarbeitet wurde, und überspringt die Übertragung dieser bestimmten Datei.