Reflections on Talend

Reflections on Talend

I just finished a project using Talend ODI to push around mountains of XML and am pleased to say it is well-suited to this kind of grunt work. The learning curve was steeper than I had expected, and it has some annoyances, but I’ll definitely use it again.

Compared to scripts, Talend makes it much easier to implement major workflow changes. Move the components, or change how they are connected, and you’re done. If the stock components don’t do what you want, you can implement your own fairly easily. Runtime parameters are grouped into contexts, so moving from testing to production is fairly painless: just execute with a different context in each environment.

On the down side, error handling is messy. A component can be triggered on an error, but not all components handle errors the same way. I ended up with a rat’s nest of components and conditions to handle error checking, some of which could have been handled by Talend itself. I also found the way errors in a sub-job bubbled up to its parent confusing.

A serious limitation is Talend has no built-in mechanism to include resources like XSL and property files within a job. These artefacts must reside outside, an external dependency with no standard retrieval mechanism. Yes, only a poor carpenter blames his tools, but I had some oopsies because of bungling the deployment of collateral.

Finally, the differences between iteration and flow connections between components was confusing. As far as I can tell, an iteration connection is used when components must execute in sequence, whereas flow connections are used when they must execute one after the other.