
Ask Slashdot: Changing Career From OLTP To OLAP Dev 129
First time accepted submitter xby2_arch writes "After spending over 12 years writing OLTP applications (Java EE/JDBC/ORMs), I decided to dabble in the OLAP world. I had decent DB skills, considering most of my previous projects had involved data modeling and coding using Stored Procs, etc. Yet I hadn't designed or implemented any dimensional databases. Luckily for me, I had enough relevant domain knowledge to land a developer job in a data warehousing project. The work was enjoyable enough that it motivated me to spend that extra time and effort I needed to cope with the different dynamics of coding in the OLAP realm. In my past life, data volumes weren't the primary concern (instead, transaction volumes were), here, everything was about data. ETL/Integrations present another set of problems you generally skirt in a typical web/app-tier developer role. All in all, it turned out to be a non-trivial, yet worthwhile transition. I am certain that there are plenty of seasoned developers out there who plan to make a similar move (or have made already), who see data as the next chapter in their careers evolving toward becoming Enterprise Architects. I want to hear what's holding them back, or what helped them move forward. What should be considered a prerequisite to make this switch, and what are the risks, etc.?"
Welcome to Slashdot (Score:5, Funny)
Please stand by while the trolls try to figure out how to respond to your question.
In the meantime, you should expect about 50 posts by PHP developers asking what a stored proc is, and suggesting you move to RoR if you want an ORM.
Re:Welcome to Slashdot (Score:5, Funny)
The OP should quit his job.
Re: (Score:1)
Re: (Score:2)
Why?
Those positions usually pay quite well...
Re: (Score:2)
Re: (Score:1)
So we can post stupid answers and not lose karma...duh.
ooooh (Score:2)
50 posts by PHP developers asking what a stored proc is
we feel offended. as if a thousand developers cried in agony because someone who is in a different field thinks that his field is more elite than ours. oh the humanity !
hear ye ! hear ye ! person in random field thinks those in another field are less important and knowledgeable - and their work too.
Re: (Score:1)
The irony is that in 15 years, if you keep learning and advancing in the art of software development, you will be making the exact same post as the GP.
nope. (Score:4, Insightful)
i grew over it.
Re: (Score:2)
Re: (Score:2)
Actually i matured 5 years or so ago, after spending some 10 years in the delusion of thinking that the fields i was in were more 'elite' than the others
Commendable.
human resources ......... they constitute a total fantasy land in themselves.
Oh, so there are still /some/ people who aren't quite as elite as us ;)
Re: (Score:2)
Actually i matured 5 years or so ago, after spending some 10 years in the delusion of thinking that the fields i was in were more 'elite' than the others
Commendable.
human resources ......... they constitute a total fantasy land in themselves.
Oh, so there are still /some/ people who aren't quite as elite as us ;)
He's working on it, but the HR people don't make it easy...
Re: (Score:2)
Re: (Score:2)
And yet, PHPs raison d'etre is that real frameworks were too hard to figure out.
And ever after, as people struggled to deploy real applications on it, it has evolved towards being a real platform. Now that they're half-way there, it's now half as complex to learn as a real framework. Quelle surprise.
Re: (Score:2)
And yet, PHPs raison d'etre is that real frameworks were too hard to figure out
wrong. the main reason php came into being was the need for a framework that was fast to develop on, and non proprietary. asp was there otherwise. cgi was also there, but it was not flexible.
... if you are not counting what runs on these sites as 'real applications', then you are probably referring to non web related or niche applications that do ot
'people struggled to deploy real applications on it' ? you probably are joking. or you havent at all delved into what php has become. flickr, facebook, yahoo
Re:Define, please? (Score:5, Informative)
https://en.wikipedia.org/wiki/OLTP [wikipedia.org]
https://en.wikipedia.org/wiki/OLAP [wikipedia.org]
It might have been nice if the editors had included these links in the summary, but it is not as though you do not know how to use Wikipedia.
Re:Define, please? (Score:4, Insightful)
While it's a fair point that Wikipedia is an obvious starting point, I would have to say that the article on OLAP seems to suggest that OLTP is a synonym for OLAP, and the article on OLAP is short but dense. I'm left with an impression that there's a distinction being made between two approaches for constructing end-user interfaces to databases, but what the distinction between OLTP and OLAP is still unclear to me, and I don't have any idea why the distinction would be so significant as to constitute a career transition.
Re:Define, please? (Score:4, Informative)
A=Analytical: the problems of creating useful reports from vast amounts of mainly read-only data.
T=Transactional: the problems of highly concurrent read-write transactions.
Wikipedia simply states that the terms are derived from each other, the techniques they embody are very different.
If you only have a small amount of data and a small number of transactions then you don't care about the difference, but once you have a large number of one or other (or worse both) then it is a very significant distinction.
Re:Define, please? (Score:5, Informative)
If it's on the main page the target audience is pretty general, so you really shouldn't have to check Wikipedia. You should ALWAYS tell people what acronyms mean before using them exclusively. And if you have time enough to be an arrogant *&$# while posting links to Wikipedia you could also take the time to spell out what the acronyms mean. At the very least give the long form, e.g. Online Transaction Processing (OLTP) [wikipedia.org], Online Analytical Processing (OLAP) [wikipedia.org]. See it's not that fucking hard.
And since I am taking the time to rant (and because any technical article in Wikipedia gets hijacked by propellor heads who like to inject as much as of their industry specific double speak so that they sound important and a layman can't get at least an understandable overview in the summary):
OLTP - Online Transaction Processing. An application/database designed for larger, equal, or nearly equal volumes of database inserts, updates, and deletes, as there are reads. The database is generally more (and often highly) normalized, meaning that there is less data duplication across tables and/or within tables.
OLAP - Online Analytical Processing. Essentially a data warehouse designed for larger volumes of reads than there will be inserts, updates, or deletes (often relatively very, very few deletes). Less normalized meaning that there may be duplicated data across and/or within tables in order to increase query speed at the cost of possible consistency issues due to the data duplication.
Re:Define, please? (Score:4, Informative)
OLTP - Online Transaction Processing. An application/database designed for larger, equal, or nearly equal volumes of database inserts, updates, and deletes, as there are reads. The database is generally more (and often highly) normalized, meaning that there is less data duplication across tables and/or within tables.
OLAP - Online Analytical Processing. Essentially a data warehouse designed for larger volumes of reads than there will be inserts, updates, or deletes (often relatively very, very few deletes). Less normalized meaning that there may be duplicated data across and/or within tables in order to increase query speed at the cost of possible consistency issues due to the data duplication.
Mark this informative comment the hell up!
And smash my Karma if you want to, but the (four letter) acronyms really didn't help the article much.
Re: (Score:3)
Well explained. I'dd only add something about where each of them fits. Roughly, to the best of my experience, Online Transactional Processing is for supporting business activity such as when customers place orders. The order is recorded first in the OLTP database for being processed by shipment systems etc. When the order is completed it is often deleted from the OLTP database that should be kept small and nimble to be able to keep up with incoming orders in a fast and responsive way. The OLTP database, as
Re: (Score:2)
Another way of explaining this is that with OLTP, you often just have the latest version of the objects, say your current products, with OLAP you often store everything. In a sense, old stuff (say old orders) isn't interesting with OLTP, since you're focused on the selling new stuff, with OLAP it is since there you're focusing on understand the operations of the company itself and the customer base (so we sold x widgets last year, but only y this year, why is that?).
Re: (Score:2)
"OTOH, if you don't know what the acronyms mean..."
Is that supposed to be some kind of joke?
Re: (Score:1)
Woosh.
He's pointing out that the 4 letter acronym OTOH (On The Other Hand) wasn't spelled out.
Re: (Score:2)
Re: (Score:1)
Re: (Score:1)
Re:Define, please? (Score:5, Informative)
Re:Define, please? (Score:4, Informative)
The difference between them is database tuning and SQL tuning. All the rest (such as path to architect: yeah, the more different systems you know, the more chance you will have to design new ones) is hype.
That's like saying web coding is the same as application coding and the main difference is just languages used. There is a huge difference in the goals and methodology of OLTP and OLAP. DB and SQL tuning is a small part of the larger scheme of things. Take for instance your example of tickets; you can get an OLTP to show how many seats from US to EMEA by seller. It may not be very easy especially as you add conditions (by quarter, by day of week of travelled, by day of week sold, etc). In OLAP these questions become important and you have to design your DB structure to accommodate them and other queries. It also matters how this information is reported by tool as not all tools can take advantage of DB features. After all that then DB and SQL tuning comes into play.
Re: (Score:2)
I think that was that he ment by tuning. Just the small matter of programming you know..
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
The cubes etc... were done by middleware or client software, underneath it everything was relational. The tables were remodelled versions of the production systems: big item table, huge item_detail table,
Re: (Score:1)
I think that was that he ment by tuning. Just the small matter of programming you know..
Absolutely.
Re: (Score:2)
As a DBA myself... (Score:5, Funny)
Utilizing our synergistic functionalities, we were then focused towards mesh visionary markets and envisioneering collaborative initiatives with our partners. The net result was the incubation of plug-and-play experiences to transform vertical vortals and utilize cutting-edge deliverables.
Plus, I have a large cock. That helped a lot.
Re:As a DBA myself... (Score:4, Funny)
That was so awesome I'm going to have a sex change just so I can marry you.
Re: (Score:3)
The first step to a solution is always a robust solutioneering methodology.
Re: (Score:2)
Re:As a DBA myself... (Score:5, Funny)
Re: (Score:1)
You don't need DBAs for the cloud!! You just fire up a couple more instances and blammo!
Re: (Score:2)
Re: (Score:1)
The first thing we did to strategize mission-critical web-readiness to expedite wireless users ....
Superb.
Re: (Score:2)
Sure, you have one large cock to service wireless users with, but you haven't described how you will scale it to handle multiple access points.
Re: (Score:3)
Re: (Score:2)
Re: (Score:2)
Eh? (Score:5, Interesting)
So... you're saying you've already made the switch from OLTP to OLAP and you'd like to take this opportunity to gloat about it, but you'd still like to hear from other developers what they think the prerequisites are for making such a move and what has held them back from doing all the cool stuff you're doing? Or am I missing the question?
Re:Eh? (Score:5, Insightful)
My guess is its a subtle attempt at a philosophical statement that OLTP and OLAP are such wildly different problem domains that it may as well be like trying to horizontally jump from being a fluffer to being a farmer, despite them starting with the same letter and occasionally being confused, at least on /.
Personally I disagree with that viewpoint. You're still in the realm of high performance computing, blah blah blah. They have different enough needs that maybe they need to be separate groups underneath separate supervisors, or at a big enough firm, maybe separate depts, etc, but I'm not seeing a huge fundamental difference. Consider yourself lucky to be at a firm that separates those roles at all. In the last decimal place the problem solving techniques are going to be different, but I'm sure 99.9999% of it is the same, which is probably how a OLTP guy got a OLAP job without the HR filter of "must have 9245 years experience with this specific version of software" filter which theoretically caused this whole discussion. I'm sure a guy who can figure out OLTP can probably figure out OLAP rather quickly and vice versa.
Admittedly I've spent probably a hundred times more career effort on OLAP tasks than OLTP tasks, but very few firms have the luxury of full time personnel for those jobs, so I've spent most of my time doing other stuff.
If anything, I'd say take some more risks. You fail at a OLTP task and customers and sales and marketing scream and data might be lost or corrupted permanently. You fail at a OLAP task and, eh, the TPS reports are released a little later today, we'll survive... Admittedly OLAP stuff is usually a lot more complicated that OLTP, which means you're used to poor / no documentation, maybe you should be worried about doing more documentation of OLAP stuff.
Maybe another way to describe it, is fail once at OLTP and you get fired, fail repeatedly badly enough at OLAP and the company goes out of business before they figure out to fire you?
Re: (Score:2)
Step backwards, and gloat (Score:3)
So... you're saying you've already made the switch from OLTP to OLAP and you'd like to take this opportunity to gloat about it, but you'd still like to hear from other developers what they think the prerequisites are for making such a move and what has held them back from doing all the cool stuff you're doing? Or am I missing the question?
You forgot to mention that he thinks that moving from being a code monkey to a data monkey is suppose to land him an architecture role. I would have thought his original job would see him better qualified. At best this is a step sideways but in reality it is probably a step backwards....and if he doesn't realise this it's probably just as well for all involved.
But then even slashdot's heyday ask slashdot was about clueless time wasters asking how to do their job or apply for one they weren't qualified for a
Re: (Score:2)
Since when does programming qualify one to design a house?
Re: (Score:2)
a data monkey is suppose to land him an architecture role.
The only way to enterprise architecture that I know of is to have Ivy league diploma, then you need about 5yr of experience as an analyst while you conspire to get the current architect promoted away while making you and people in your team (but not as good as you evidently) looking good.
Where I am competition is about as cutthroat as for most other management roles. But yes, 1 architect per 30-50 devs is sufficient, so it's quite specialized. I think job security would be the biggest issue for that kind of job...it's hard to fall back to developer because you go stale, and it's hard to find another architect role if you lose your current job.
Re: (Score:1)
If he's new, he can still beneifit from advice (Score:2)
I mean the switch isn't so binary. He recently switched, he wants to hear other experiences to help him, and he generally thinks it would be a good Slashdot discussion.
No barrier at all (Score:5, Insightful)
Moving from one specialized type of programming to a closely related type of specialized programming is pretty straightforward. Apply for such a position and you wont suffer compared with other candidates. Or, if your current employer needs something new done, do that new thing. You're not talking about a major career change here. Programming is programming. Even moving from something like standalone application GUI programming for windows in C# to back-end web service programming in C++ on Unix isn't that big a deal. If you can program, you'll pick up the new tech/language/idioms as needed and notice the striking similarity in the work you actually end up doing.
Need advice (Score:5, Funny)
Re: (Score:3)
Go.
For it.
Re: (Score:2)
Go.
For it.
Will that still work with WinRT? I'd hate to end up having to duplicate a lot of work.
Re: (Score:2)
Well, considering the rather dire straights Microsoft is in (most of their earnings tied to dieing platform), you might want to consider Java. Databases don't seem likely to go away any time soon.
Re: (Score:2)
Given the way Oracle are buggering up Java, I'd be sorely tempted to find out what IBM consider their strategic language of choice.
It may indeed be Java, but I know at least one dev house is switching to Ruby, HTML5/Javascript is guaranteed income these days and C or C++ will continue to get you jobs for some time to come.
Or do what I did and get promoted. I get to draw pictures on whiteboards and let other people do the hard work :)
Re: (Score:2)
Re: (Score:2)
I'm thinking of making the leap from C# 3.0 to C# 4.0. Does anyone have any advice?
Have you considered Java 7 as an appropriate alternative? You're much more likely to get a job as an Enterprise Architect if you make the switch.
Ha ha (Score:2)
I love the fact that you made that joke, and people still needed to blast you for mentioning MS. And they actually claim Oracle-controlled, lawsuit hell Java is in a better position.
Changed Job (Score:2, Insightful)
So you changed job from one thing to a highly related thing. Great, but why tell us about it?
You totally lost it on '...evolving toward becoming Enterprise Architects', Seems you have been hanging around the buzzword management types for far too long.
Re: (Score:1)
To paraphrase Syndrome:
"When everyone is an Enterprise Architect, no one will be."
I'm sick of this grade-inflation/feel-good mentality where everyone is somehow an "Architect".
Re: (Score:2)
You totally lost it on '...evolving toward becoming Enterprise Architects', Seems you have been hanging around the buzzword management types for far too long.
Duh. That's a necessary part of the evolution he mentioned...
Changing career? (Score:3)
Re: (Score:3)
Reminds me of the cartoon of a dull-looking man talking to a woman at a party - text below was "You may not think it to look at me, but in my time I've been a bank clerk, bank teller and bank customer liaison officer".
Great thing about that, you didn't even have to tell us that it was a New Yorker cartoon ;-)
Dilbert (Score:1)
Whats a "career"? (Score:5, Interesting)
... the next chapter in their careers evolving toward ...
Whats a "career"? We don't have those around here in "IT related fields". I suppose if you live in silicon valley there is a chance of upward mobility, or maybe TLA .gov jobs, but for everyone else, its just luck that got us in a good spot in a downsizing economy in a downsizing company and downsizing department where they haven't axed us yet.
"Career" in general would be a more entertaining "ask /." topic. Work in the above plus the "ha ha noobs don't realize than even the concept of my job didn't exist when I was their age" and plenty of ageism whining and funny stories about nepotism and stuff like that.
Ralph Kimball and Pentaho Mondrian (Score:5, Informative)
The prerequisites to making the switch is first and most importantly having an appropriate business case for OLAP. The second prerequisite is that you've tried doing analytics in a traditional RDMS, perhaps jumped on to the NoSQL bandwagon, and you've failed at it (i.e. success for a little while but then your data eventually brings your queries down to its knees). Don't worry, failure isn't necessarily wrong, it's just you and your team needed the experience before you could make the next leap.
The risks are a knowledge jump in to an OLAP mindset from a traditional SQL mindset. Invest in you and your fellow developer's knowledge. Push back on management and sales when they want more immediate results and let them know that it will take 3-5 months to replace your current system. Do your proper technology evaluations. Learn FoodMart [microsoft.com] and Adventureworks [codeplex.com] and let them guide you down the path of good fact and dimension design. Don't snub your nose at Microsoft as they absorbed the company in the 80's that basically pioneered this stuff and made billions, but also don't take their stuff too literally as there are several products out there and some that do things better.
Read The Data Warehouse Toolkit [amazon.com] thoroughly and practice using Mondrian [pentaho.com] which is an open source Java OLAP engine that can sit on top of PostgreSQL, MySQL, and others. Find a good ETL tool rather than trying to write your own at first and don't be afraid to force your internal users to use this tool to create their facts. Don't worry if you don't get it the first time, but keep trying and keep discussing with your fellow developers as it takes a team to work out all the kinks. Later on you'll probably end up seeing how you did things wrong, but hopefully you can get most things right in the beginning.
Re: (Score:1)
Dishwasha, I agree, that is the way forward (and I'm glad you've actually engaged with the question instead of deriding it as others have done).
Re: (Score:2)
So close to the truth.
Some of us skipped the whole management piece though :)
OLAP (Score:3, Insightful)
From my limited experience, the OLAP community is small and/or behind walled gardens, the tools are poor and closed source, and potential employers are only interested if you have experience in *their* BI tools (Pentaho, Microstrategy, Cognos, etc). Microsoft appears to be the only one trying to establish a theoretical basis for BI, but their efforts are starting to show age despite their being so much more that can be done in the field. Finally, you will be misunderstood by the majority of Rails/PHP/Web developers: The same one who think Key-Value stores and NoSQL are the height of modern technology.
That said, BI can be technically satisfying. If you get down to the SQL/MDX you will appreciate what a database can do; which allows questions to be phrased succinctly. I have seen too much code written in procedural languages (Javascript being the worst of them) that are many lines long and run atrociously slow, that can be restated in SQL (or MDX) simply, and run a 1000x faster. I love that fact there are no loops!
From a business perspective, you have much more exposure to management and other departments: You will have improved visibility in the company, and your worth will be inflated - as you will be the one that satisfies management's appetite for more information to help make decisions.
Different Disciplines (Score:3)
Your previous experience as a developer/DBA is largely irrelevant. Data analysis is a completely different discipline (and depending on tools, may even be a different language than SQL).
Basic building cubes is something you could learn in 5 minutes. Advanced stats, how to look for patterns, what to look for, etc. is much more involved. Most of the people I know who are good data analysts have advanced degrees in mathematics.
BTW, why do you think the career path is dev -> data analyst -> enterprise architect? Completely irrelevant. Plenty of data analysts who couldn't write code. Plenty of EAs who couldn't construct an OLAP cube - they're focused on infrastructure, apps, etc. EA really has nothing to do with data analysis, other than designing systems to support it. In many companies, EA is not some priesthood at the top of the food chain - often they're a virtual team made of different disciplines.
To the OP (Score:2)
As for becoming an "architect", this is how I became one: I took all the ( little ) experience I had, I designed some stuff, made sure the code monkeys could and would actually code it ( me knowing their life as I had always been one ), got some $$$ incentives for them so they would build what I had thought up. I defended it in hard fighting with
Be prepared to slow down (Score:1)
An hero, plox! (Score:2)
This is one of the things described as "If you can see a difference, you are not qualified to work with either".
Face it. You have spent 12 years mucking around with one single application that happens to be easy to shoehorn into multiple systems. You do not understand underlying theory. You can not solve a simple problem -- how to organize data to perform complex queries that can yield some analytical information. This is not something you can "learn" from a vendor manual to some expensive chunk of unreadab
from a large DB OLAP and OLTP DBA (Score:2, Informative)
Development is development. There are differences, but its still development. I am a DBA and a database developer. I have worked on very large OLAP and OLTP systems. Here are the main differences. My experience is primarily with oracle.
1. You need to really learn SQL well to handle OLAP well. You often get very complex requirements. Processing large amounts of records always performs exponentially better using straight sql if possible. You want to use as little procedure code as possible. Don't write loops,