Starfish ETL has built-in methods for maintaining relationships between different systems. Put simply, you will be storing an ID from your Origin, and the new corresponding ID from your destination for the record.
For example, if you are migrating Company records from one system to another, and later in the process you’ll also be importing Contacts that will be related to these companies you’ll need a method to select which company the contact belongs to. One method would simply be to store the Old (Origin) primary company ID somewhere inside of the new company table on your destination. Then you could use a SmartLookup and pull down the ID by a filter clause. This is perfectly acceptable; however you'll take a performance hit because for each row you’ll have to perform another lookup operation. Using Xref functions, these ID relationships are stored in memory, thus making the lookup operation instantaneous – speeding up your process. The idea will be to write out the ID relationships for accounts while that job is running. Then, when the Contacts job runs it can initialize and read from this list to quickly & easily relate to the correct Company.
To write to an initialized Xref list, you may use the Post-Process Operation “Xref Write”. Select the list from the Xref List drop-down. Then supply a value or variable to use as the Origin/Old ID, and one for the Destination/New ID. If you are writing to a list for the first time it may not be in the drop down, simply type the name of the list into the Xref List box.
Alternatively, you can use the XrefWrite() Scripted function to write to an Xref list.
To read from an Xref list, you may use the “Xref Read” function field in your mapping.
Alternatively, you can use the XrefRead() Scripted function to read from an Xref List.