Page 1 of 1

FORMAL difference between server and parallel jobs?

Posted: Fri Feb 25, 2005 8:40 am
by StefL
I've stumbled across a problem that seems minor but keeps bugging me, and it also keeps me wondering about the formal difference between parallel and server jobs. I realise a parallel job gives greater possibility of distributing the execution, but having previously worked with Informatica I find it somewhat hard to logically cope with some of the limitations that come with server jobs in comparison to parallel.

Right now a simple thing that's getting me stuck is to set the radix character (decimal separator) to comma (,) when reading Oracle data and writing it to a sequential file (csv). It should be a piece of cake but I find no way of controlling it in a server job except by resetting the NLS locale which still doesn's solve it entirely.
In a parallel job decimal separator is one parameter free to be set in the file stage, but defining a parallel job DEMANDS manual specification of virtually everything.

I realise this is a 'big' question but would be grateful if someone could briefly outline the 'technical' differences between parallel and server (I've looked in the documentation and help but found no explanation of the kind I look for) as well as suggest a feasible solution to my more direct problem described above.

Posted: Fri Feb 25, 2005 9:09 am
by ArndW
StefL,

I'll take a short stab at answering part of your question. First off, both Server and Px might now share the Ascential name but they evolved quite separately from each other, so it is not surprising that they handle certain things differently. In particular, the DataStage Server engine is an equal opportunity data handler and usually doesn't really what sort of data is in any column, at least until it is asked to manipulate it. Thus, in the case of importing and passing through numeric data with NLS-type conventions the job doesn't know if a "." or "," is being used as a thousands separator or as a decimal point. Once you do try to manipulate the data (meaning doing more than just passing it straight through without a derivation) then suddenly it needs to know and will use whatever the NLS settings are (if activated) or the default conventions.

So, if you do not wish to have decimal output from a Server job to be different from the input format you will have to explicitly modify or convert it. The ICONV and OCONV functions have been discussed in enough detail and I'm sure you have used them before, in addition I've seen posting here in DSXChange which describe a simple string-based manipulation to change the formatting around.

I'm not sure if I addressed or answered your query correctly - please tell me what you think...

Posted: Fri Feb 25, 2005 9:19 am
by kcbland
The FORMAL difference is that Server is the ETL tool used by over 2000 customers. Parallel is a separate tool that was purchased a few years back and "folded" into the suite. Parallel and Server are COMPLETELY separate ETL tools under the covers, with some limited overlap capability.

Imagine two houses side-by-side. To make a bigger house, you take off the roofs of both houses and build a single larger roof to span both. You build a wall connecting the sides of both houses to make it appear from the street that it is a single large house. Upon entering the house, you discover there's two kitchens and there's a walkway that connects two radically different interior designed portions of the house.

Parallel writes C code that uses a C compiler and uses a custom script process (OSH) that is interpreted at runtime and is built for high-performance high-volume data loading of highly cleansed data. Server writes a version of BASIC programs using an internal compiler and is built for highly-nimble transformation of very dirty non-conforming data.

Comparing anything between the two jobs is irrelevant, they do not share the same technology. The way something works in one is completely different than the way it works in the other. Good luck!

Posted: Fri Feb 25, 2005 9:23 am
by manteena
Simply
Server DS = (Visual) Basic
PX = C++
Think about the differences between Right Hand Sides same differences exits at the Left Hand Side.

Thanks for the answers

Posted: Fri Feb 25, 2005 9:28 am
by StefL
Thanks Kenneth!
That indeed did some clarification to me. In all work I've been doing so far server has been the choice and I've never been able to fit parallel into the picture. I just happened to stumble across a very minor functionality I figured could be useful but got lost in the details of parallel when trying to use it...

And Arnd - I guess you're right I need to configure the data format even as I read it from an Oracle database. I kept thinking it was irrelevant which format is used as long as it isn't explicitly printed out but probably the picture isn't quite that simple - the output settings of the database might affect what the DS job actually sees.

/Stef

With greetings from a very snowy and sunny Stockholm 8)

Posted: Fri Feb 25, 2005 9:28 am
by ArndW
manteena wrote:Simply
Server DS = (Visual) Basic
PX = C++
Think about the differences between Right Hand Sides same differences exits at the Left Hand Side.
Server DataStage is written in Uv/Basic which relies on the UniVerse or DataStage server engine - it is quite different from Visual Basic!

Re: Thanks for the answers

Posted: Fri Feb 25, 2005 9:39 am
by ArndW
StefL wrote:...With greetings from a very snowy and sunny Stockholm 8)
Are you working on the DHL project there? In that case we almost worked together, but I chose a more southerly clime :lol: (I'm in a city on the Cote d'Azur between Nice & Cannes)

Posted: Fri Feb 25, 2005 4:10 pm
by ray.wurlod
You might find this piece (in the FAQ forum) on DataStage architecture interesting.