Page 1 of 1

Build-op

Posted: Mon Jul 02, 2007 11:44 am
by nsm
Hi All,

I rcently started working on PX and wanted to learn when should I go for creating Build-ops..Where can I find the help on Build-ops.

Tried finding in the helh pdf docs but no luck.

Thanks
nsm.

Posted: Mon Jul 02, 2007 3:30 pm
by ray.wurlod
It's a bit hard to write a help manual for a stage in which you write the code!

What have you gleaned from the Parallel Job Advanced Developer's Guide?
Try asking for specific advice - the answer to this particular question can only be "any time you like" - but try not to "re-invent the wheel" by re-creating the functionality of some existing stage.

Posted: Mon Jul 02, 2007 3:32 pm
by bcarlson
Here's my 2 cents - and I apologize now for being long winded. I have my opinions, but I'll try to be fair to both sides...

I, personally, prefer buildops. But then again, I come from a background in C/C++ - not a big fan of Basic languages. Besides, my shop made the transition into DataStage PX from Torrent, not from DataStage server. Torrent is the predecessor to PX and only had buildops, no Transformer stage. We had 100's of jobs that used buildops, so we kept using them when we switched to PX and continue to use them exclusively today. And initially, buildops performed significantly better than the Transformer. That is no longer the case - transformers should perform just as well as a buildop. Lately, we have chosen to stick with buildops for the sake of consistency.

Another thing to keep in mind is that transformers are compiled by DataStage into buildops. So anything a transformer can do, a buildop can do. However, there are things a buildop can do that a transformer cannot do - simply because the buildop has the wealth of C/C++ programming at its fingertips. The next logical question should be - how often do you create a buildop that does things a transformer can't do? Good question - not sure if we have really run into that here.

One of the downsides to using buildops is that the metadata of the transformations themselves are hidden from DataStage. If you use MetaStage for your metadata, you may not like that. We do not use MetaStage, so this has not been an issue for us. Our transformation documentation is completely independent of DataStage.

Another downside is that the vast majority of DataStage developers seem to be coming from the DataStage server arena and may not have had any exposure to buildops. However, anyone that has been introduced to C/C++ at any time (even just the ability to read it) should have no problem learning how to do it. For that matter, we have COBOL programmers that picked it up almost instantly.

From what I hear in interviews and read in postings, the most common approach seems to be to use Transformer for everything except the most complex transformatons - then use the buildop. If you are coming from a server background, this will probably be the easiest approach, since you already have familiarity with the transformer stage. Also think about your metadata and whether you use DataStage to gather your metadata info - easy to track with a transformer, not so easy with a buildop.

So, there is 2 cents. Hope this helps! Anyone else, feel free to pipe in here!

Brad.

Posted: Mon Jul 02, 2007 8:34 pm
by vmcburney
Not coming from a C++ background I try to do things in the Transformer first or via the use of lookups for more dynamic business rules. I can see the value of buildops for modular and reusable complex functions but haven't had that need yet. If you want a step through of creating buildops have a look at my post on The Top 7 Online DataStage Tutorials for the link to the buildop tutorial.