Skip to main content

Before and after

One Talend job from the public Packt project used in Get started, and the Hop pipeline the importer made from it, without any edit. The job reads a list of countries and their currencies, and writes the countries that use the euro to one file and the rest to another.

The Talend job​

Talend job Filtering3: tFileInputDelimited_1 feeds tReplicate_1, which feeds tFilterRow_1 and tFilterRow_2, each writing to a tFileOutputDelimited

Drawn from Filtering3_0.1.item, the file the importer reads: the components, their positions and their links are exactly what the export holds. It is not a screenshot of Talend Studio.

The Hop pipeline​

Hop pipeline Filtering3: Text file input, a Dummy copying rows to two Filter rows transforms, each writing to a Text file output

Drawn by Apache Hop from the generated Filtering3_0_1.hpl: this is what you see when you open it in Hop GUI.

Component by component​

TalendHopWhat carried across
tFileInputDelimited_1Text file inputFile name, ; separator, the two columns country and currency and their types (as a static schema definition in metadata/)
tReplicate_1Dummy, copying rowsEvery row goes to both outputs: the copy icon on the two hops
tFilterRow_1Filter rowscurrency == "EUR" becomes currency = EUR; matching rows go to the output on the true hop
tFilterRow_2Filter rowscurrency != "EUR" becomes currency <> EUR
tFileOutputDelimited_1, _2Text file outputFile name and extension, separator, no header

Every component is reported AUTO, nothing is flagged, and the names are kept, so the report, the pipeline and the original job all talk about tFilterRow_1.

Does it do the same thing?​

We ran the generated pipeline on Hop 2.19 with the project's currencies.csv, changing only the file paths (the job reads from C:/Talend/…). It writes 16 rows to eur-currencies.csv, all EUR, and the other 10 to not-eurcurrencies.csv: what the Talend job writes. On your own jobs, check this with a parallel run.

What this example does not show​

This is one of the simplest jobs in the project, picked because it converts completely. The report for the whole project shows what does not: every tMap is flagged for its expressions, tFileList loops need rebuilding, and one tDenormalize has no equivalent. That is where the work in a Talend migration is, and the report lists every case.