SQLUSA

Data Warehouse Architecture with OLAP Cubes

Score:

For a full understanding of this product, try to read the entire review.  I’m sorry for the length, but I couldn’t make it any smaller.  I actually feel very bad for having to write this review.  The SQLUSA people have been very nice to me and have given me everything I’ve asked for.  They’ve sent me updates of the training as it’s become available, and have been very responsive to my every need.  And I actually struggled for months as to whether I should even post this review or not.  However, it goes against what I’m trying to do here if I just post good reviews, because you deserve to see what this is all about before you spend your money.

That said, there are two ways I can write this up.  I can say that I think this training lacks substance and polish and really needs to be redone before it can become extremely useful to the SQL community.  The 2nd way I can write this up is to say that is simply the most pathetic excuse for a training series I’ve ever seen in my life.  That’s not an exaggeration either.  I know for a fact I’ve never seen a training series of any kind that was done as poorly as this one with practically no value whatsoever.

So what’s wrong with it?  Well, there are several things.  I’ll just bullet point them because it’s easier.

·         His examples typically fail – it’s very clear to see that the examples are meant to work, but quite often they don’t.  I remember one time he was trying to load data and couldn’t get past a PK violation.  He tried to fix the data by hand, but that didn’t work either, so he just dropped the constraint.  Seriously man, edit that kind of stuff out and get your examples working before you record them. 

·         He doesn’t edit out getting lost in the computer – One time he was going to edit the SQL services and he got lost.  He actually went to My Computer\Manage instead of the Control Panel.  It was very clear that he forgot where the Services configuration window was.  There’s nothing wrong with that in itself because we all zone out from time to time, but that part should be edited out after you figure out where you’re going and you should at least seem like you know what you’re doing on film.

·         He doesn’t edit out when his examples fail even after 2-3x – Many of his examples fail more than once as he tries different things to fix them.  Sometimes he can, and other times he can’t and has to go to drastic measures to get rid of the error.  The PK violation above is a perfect example.

·         He doesn’t edit out the phone ring – One time you can hear his phone ring.  He doesn’t stop it or edit it out.  I actually thought for a couple seconds there that he was going to answer it. 

·         We’re paying him to surf the internet – This is probably the most pathetic of all.  He spends so much time surfing the web for different topics it’s just ridiculous.  He runs searches on Yahoo and then makes us watch him sift through the results and go from one site or another.  And most of the time it isn’t even all that relevant to the discussion.  He also searches through BOL many times and just reads directly from the articles.

·         His lessons are quite often very repetitive with nothing new being thrown in, and often times not even on the subject matter.

·         His lessons won’t scale.  He quite often shows how to do something by hand when doing it that way in production wouldn’t even be possible.  His backup section is a perfect example.  He shows us how to backup a database in Enterprise Manager which is almost never done in production.  Anyone using this training will already know how to backup a DB anyway.

·         He consistently passes up opportunities to really teach something.  He often times just barely touches on something that could be really important and then never mentions it again, while at the same time harping on the extreme basics that are of little consequence. 

Now that I’ve said all that, you should know that a good deal of the time is spent surfing the web for one topic or another.  Typically, he goes to a website and says, “I know I’m scrolling through too fast, but if you really want to read it, then pause the recording and read it.”  What?!?  I thought I was paying several hundred dollars to teach me OLAP, not to have you tell me to read things on my own from the internet.  As I said above, he also spends a lot of time searching through BOL and scrolling through the articles.  I can read BOL myself and I don’t need to pay this guy that much money to watch him do it.  In fact, there are some units where pretty much the entire time was spent surfing the web.

There are also many pregnant pauses.  There are times he’s trying to figure out what to do or say next and he just sits there doing nothing.  Sometimes that time is spent circling the pointer on the screen or centering a window on the desktop.  I really can’t get over how much time was wasted. 

Many of the topics were also very basic for the discussion.  Many times he goes over SQL basics when the topic is OLAP.  Someone wanting to learn OLAP already knows SQL.  Nobody starts in databases from day one learning OLAP.  So it’s usually fairly experienced DBAs or developers picking up this skill, so teaching such extreme basics is just pointless and a complete waste of time.

 

Who is this training really for?

I wouldn’t recommend this training to anyone.  I would advocate just picking up the product and trying to just figure out OLAP on your own before spending your money on this.  Seriously, don’t waste your money.

Presentation Style

The style is quite often confused and lacks direction.  A lot of the time it doesn’t seem that he knows what he’s going to talk about until he begins, and even then his thoughts are unorganized.  His accent is also hard to get around.  I’m very used to hearing non-native English speakers.  I’ve spent quite a bit of time overseas and have studied foreign languages for several years, and I found his pronunciation of many words to be very distracting because every single time he said them, I had to figure out what he was saying.  It really takes away from the presentation.  He should have hired an actor or grabbed a colleague to read a script or something.  For example, the way he pronounces “analysis” as “ana-LEE-sus” made me stop and think every single time.

The following section just contains my notes as I took each unit.  They’re completely unedited, and contain my reactions at the time to the material being presented.

 

CD1

Intro—starts out with a very brief overview of looking at data in the designer.  Nothing really revealed, just watching him explain that the data is there and doesn’t have to be compiled.  Then he surfs the web for warehousing.  We get to watch him run a search and then quickly scroll through a couple articles while he says how interesting they are.  But he also states that he’s not going slow enough for us to read it, but that we can go back on our own time and read them.  Then he goes to another site and shows us a diagram of a DW scenario.  Like someone who doesn’t know warehousing is supposed to get anything out of that…

Cverview—continues with the same diagram the last section ended on.  Talks about what ETL is, and gives a very brief, incomplete description of DW.  Briefly discusses the items in a fact table, but not enough to get an ideal of how to build one.  Then he surfs the web again.

Structure—Starts out browsing a dimension without really saying what a dimension is, or how to build one.  I think this is premature in the discussion.  He goes back to the DW load diagram which still means nothing to us at all.  He talks about how Informatica is in the mix, but seriously… who really cares?  We’re here to learn OLAP not his load.  He then takes us to the Cognos website to look at the screenshots from PowerPlay.  I really don’t see the relevance.

DataMarts—starts out in BOL in the section on datamarts.  He gives a brief description of marts.  He’s actually reading to us from BOL and giving comments on what it says.  He then shows a very simple example of a DTS package that loads a mart.  He doesn’t show how to create the package, just the finished package.  He then goes back to surfing, this time for datamarts… you gotta love Yahoo.  He spends a lot of time looking through datamart stuff on a site, and then goes and queries for different info on the California community college site.  He’s amazed that all the info is available on the web, and runs more queries just to see the results.  I wonder if there’s a point to this.

BI—Starts out surfing microsoft’s site for a definition of BI.  He finds something comparing SQL2K with Yukon.  So he goes over the list and recites to us what we can plainly see for ourselves.  Again he scrolls through some items very quickly and says we can pause if we want to read it.  He then runs a search on BI on Google.  He clicks on InformationBuilders.com and shows us a chart of a BI scenario.  He moves the mouse around a lot to show us how well the links light up when he hovers over them.  He then spends a little time on some other sites.

OLTP—Again we start out in BOL.  He actually just reads directly from BOL in places.  Went to EM to show diagram of OLTP system.  He goes into how the transaction is entered into the DB, and then after some discussion decides that it doesn’t matter how it gets in the DB as long as it does.  He’s talking about the DB like we’re actually trying to learn how this business works.  It’s completely irrelevant to the courseware.  He then gets into the specifics of a table and talks about why people want fast processing and that OLTP isn’t good for fast OLAP processing.

Reporting—Starts out by showing us that he can run a select * query from a couple views and then tediously goes over the results stating the obvious at every turn.  He actually stops now and then to point out the name of a supplier that he finds interesting.  Come on man, get on with it.  He then mentions that SPs can be used to return complex results for reporting, and runs an SP for us.  From the results he gets, he sits there and contemplates the price of the different items.  Marmalade is expensive, foie must mean goose liver, etc. 

OLAP—Starts out in BOL again.  Gives basic definition of OLAP.  Then he takes us on a magical journey through BOL articles and reads a little from them.  The then takes us to AOL.com to search for an OLAP definition.  Seriously, shouldn’t you be telling us this stuff and not teaching us how to search the web.  Why did I buy this course if I can find everything for free on the web?  We search a couple more sites for OLAP articles and then end.

Mining—Starts out in the model editor and dissects some of the results from the model.  He talks a little about cubes in models, and then goes right back to BOL.  Now, this is what I’m talking about right here.  He opens up BOL and finds and article on Data Mining Dimensions and just scrolls to the bottom.  He doesn’t read it or anything, he just scrolls to the bottom and goes to the next article… but not before telling us what the article’s about when it’s clearly posted in the title.  Oh great, now he’s going back to search on MSN.  He goes to a couple sites and ends the unit just kind of playing around on the web like this.

RE-Modeling --  He starts out in EM in the diagram editor.  He tries describing some elements of modeling, but I really don’t think he does that good of a job.  He stumbles too much, and he doesn’t choose his words carefully.  I’m not entirely sure what exactly we’re supposed to be learning here.  He’s jumping around too much to have a solid topic, and he’s not coming close to explaining anything enough to actually teach something.  So I’m assuming that he’s talking to someone who already knows a bit about this and this is just a primer.

Dimensional Modeling – Starts out in the cube editor.  He starts out talking about a few of the measures in his model.  He talks about shared dimensions next, and I think this is the 1st bit of actual lucid information given in the course.  He does go into some high-level details on his dimensions and what makes a good dimension. 

Model Architecture – He starts in the cube editor and moves around quite a bit, so it’s difficult to gain a real understanding of what you’re supposed to learn here.  I think we’re supposed to get a grasp of how to arrange tables into facts and dimensions, but I’m not entirely sure.  However, he doesn’t actually teach you how to do dimensional modeling. 

Enterprise Requirements --  Here he starts out with a thesis statement of what are the requirements for an enterprise warehouse.  Then he goes right into the cube editor again and just browses data like he has done a lot in the past couple units.  He really doesn’t do much more than browse data and talk about how the cubes would be bigger in a real enterprise.  He has done nothing at all to answer the original question.  Oh Christ, now we’re back to the internet again.  And it’s amazing to me that he goes to a website, scrolls down to the end of an article and then just abruptly ends the unit.  What was the point?

Data Source Analysis – At least he’s consistent.  He starts out in BOL again.  There’s a lot of whitespace here.  He just sits and thinks a lot trying to figure out what to say next.  And he’s still just reading selected lines out of BOL.  Again, can you tell me why I would spend so much money to watch you read directly from BOL and surf the web?  OK, the unit is over now and I don’t think he had one single original thought the entire time.  He read a couple articles from BOL and just pointed out very obvious things. 

Exec Perspective – I don’t know what I would do if I couldn’t watch him scroll through this website.  Here we’re supposed to be learning how to get our managers to buy-in on the warehouse project.  He’s staying very high-level and again, just scrolling through the site.  This whole unit is just a waste of time.  All he does is scroll different websites.  I’ll tell you what, just give me a list of the sites you want me to visit and let’s be done with it. 

Project Team – I like that fact that he never tires of surfing the web.  I’ve become very attached to watching him scroll through different websites.  If we ever actually dig into the product I’m going to have a hole in my heart.  He did have an original thought in this unit though.  He noticed that analyst was missing from the project team on the site he was on and said that it needed to be inserted.  I agree, but all of this could have been said much quicker.  Now he’s on another site just scrolling through another article.  Oh good, he switched sites… I was getting tired of that last one. 

 

CD2

Warehouse Design – Here we start out in BOL again.  He’s talking about the entire load process again.  We’re moving up in the world.  Now we’re scrolling through MSDN.  OK, now we’re just scanning documents on MSDN to see if he can find something interesting.  This is the most poorly planned course I’ve ever seen.  The only thing I’ve gotten out of this unit is that he knows how to read MSDN. 

Fact Table --   We start out in the cube editor talking about measures in a fact table.  So far he’s actually saying something.  He goes through a few fact tables, and while it’s not phenomenal, he’s at least on track in this unit.  He does finish by going back to BOL though, and just scrolling through a document there.

Identifying Measures --  We start out in the cube editor looking at the same fact table and the same measure we saw in the last chapter.  We then move into the HR fact table.  We then browse the HR cube and go through some of the data briefly.  He doesn’t really say anything earth shattering here, but at least we seem to stay on course, and actually looking at measures and fact tables instead of surfing the web. 

Designing Dimension Tables – So far we’re just looking at some dim tables in different cubes.  Next we begin to build a sales cube from Pubs.  What we did was build a single dim table.  It was very simple and that’s ok, but it was quite unsatisfying because we build it and populated it, and then the unit just abruptly ended.  It seems like there would have been more to say.

Arch a Hier --  We added a hierarchy to the dim table we just created. Then we created another dim table and populated it.  Still very simple, but at this level it probably needs to be. 

Populating – Starts by creating a fact table for the cube we’re building.  We then take the import script we already have and add code for the new fact table.  We then run the script and fix the error that popped up and then run it again to load the data.

ETL --  I’m glad to see we’re getting away from learning something again and starting with a Yahoo search.  Of course, he just browses the list and scrolls up and down the list of sites for a few seconds, and then goes to the Cognos site scrolls around an article and moves his mouse around to point at different obvious things.  Why are we doing this again?  Of course what would a trip to the web be without another trip to BOL for some more direct reading?  But again, he’s just scrolling down through different documents in BOL.  He then goes to build a simple DTS script that imports from a text file.  He makes a simple mistake in the data, and I’m not sure if it was on purpose or not.

Stored Procedures for Importing Data – We start out in BOL again just scrolling through documents.  He then writes a simple SP that does a bulk insert.  There are a couple other things being shown, but nothing really important.

Using Microsoft DTS for Data Transfer – Again with the BOL.  Then we go back to the DTS package we did a couple units ago.  He goes through the tasks and doesn’t really do anything with them, it’s just an overview discussion.  It really goes on way too long.  It gets old after a while, and while you typically use DTS to load a warehouse, this course is on OLAP, not DTS, so we should leave that discussion for a different course.  Now we’re back in BOL again. 

Advanced DTS – He spends the entire time creating send mail tasks in the previous package.  I wouldn’t exactly call send mail an advanced DTS method.  I don’t understand what makes this advanced.  Anyway, all he does is 3 send mail tasks, so if you already know how to do this, you can skip this unit. 

Population Strategies --  He starts out in BOL again.  Then it’s back to Yahoo for a search.  And of course, where would we be without actually scrolling through some articles?  We then go back to EM and create a new DB.  Then we go modify a couple jobs and set the warehouse load.  In all it’s pretty basic and no reason to waste your time on. 

Data Warehouse Maintenance – Back to DTS to show a few things about copying DB objects, etc.  Then back to schedule the job and the DTS wizard, and Profiler.  Again, I really don’t think this is the place for this kind of stuff.  Learning how to diagnose through Profiler is part of production work, and well outside the scope of OLAP.

DW Backup and Restoration – He starts out by doing a backup and restore from EM.  Personally, that’s such a basic skill there’s no need to even learn it.  You’re not going to manage your warehouse backups by hand like this anyway.  He then shows how to use the Maintenance Wizard, which is the least effective way to run backup routines.  Personally, for a high-end warehouse, this is the last thing that should be covered, and we should actually be learning how to backup cubes because this is again, just normal backup/restore which falls outside the scope of OLAP.

Changing Measures and Dimensions – We start out talking about why dims would need to be changed while looking at his outline.  For some reason, we then diagram the warehouse DB.  He then assigns PKs for the tables.  We didn’t actually change any dims or measures here… this was just pathetic.  When are we going to get back to the course material? 

Non-Standard and Parent-Child Dimension – This unit has lost me so far as it only discusses simple modeling concepts.  He does create a new table for holding the dimension though so we’ll see how it actually turns out.  He never actually creates the dim in OLAP though. 

Data Warehouse Security --  This isn’t warehouse security, it’s simple SQL security.  Nothing here has anything to do with OLAP. 

 

CD 3

OLAP Concepts and Database Setup – Begins with another search for OLAP on MSN this time.  He just scrolls through another article on basic OLAP definitions.  Then he just goes back to the stop and reads some of the section on where OLAP started.  Seriously, when are we going to do something with OLAP for ourselves.  He stays on this article for the entire 11mins and just scrolls through different things.  This unit was completely worthless.

Design of Fact and Dimension Tables – Here you start out in the diagram designer in SQL.  The discussion is on setting PKs for fact/dim tables.  He walks through some of the actual data in his tables and briefly discusses some of the hierarchies.  There isn’t a lot of new information here though, and then it’s right back to the web to look at someone’s fact table online.  It ends there.  There’s not a lot of useful stuff here.

Analysis Services Architecture – Here he starts out showing us the OLAP service in Windows and goes through all the tabs on the service properties.  It’s a bit basic for this type of training, but whatever.  He then goes into the OLAP manager and gives us a basic tour of the menus in there.  I thought we already did this, but apparently, this is worth saying again.  And of course, he jumps right on the web from there and goes to the MS website for a minute.  After that, he goes to the OLAP folder on the disk and shows us where all the files are kept.  He doesn’t really go into much explanation about how the files relate to each other, he just mostly shows them to us.  He then goes to the OLAP readme.txt file and just scrolls through it.  There’s a little bit of basic info here, but nothing really all that important.

The Foodmart 2000 Sample Data Warehouse – This is just what it sounds like.  He’s going through the foodmart DB and showing us different dims, etc.  He does show how to get metadata on individual  dims, and that’s useful.  He goes on showing us different dims for a while and then ends the unit. 

Populating Fact and Dimension Tables --  Here he starts out in the diagram designer again and then jumps straight to a query window.  This is a joke… he can’t get an insert to go properly because of FK relationships, so he just deletes the relationships.  This definitely should have been edited out.  It’s like he’s making stuff up as he goes along and has no idea how the schema is built.  It’s just a joke and I’m honestly embarrassed for him.  The rest of the unit is spent on basic SQL imports. 

Cube Measures, Dimensions, and Hierarchies – Starts out in the cube editor this time.  He’s really just exploring different cubes in foodmart.  We’re on our 3rd cube now, and so far no real solid advice on anything.  This is really boring, again, he’s just browsing through different cubes and isn’t really teaching anything.  In one cube he does mention that one of the elements didn’t qualify itself to be in its own dimension, but he doesn’t say why or how you determine that for yourself.  Those are things we buy courses like this for, and so far the course isn’t delivering any actual instruction.  Next, he goes to BOL and scrolls through a doc outlining how to create an action.  He then reads the definition out of BOL and then scrolls through more stuff.  He then goes into the OLAP designer and opens up the action wizard.  He only shows us the first screen and then cancels the wizard, and he does the same thing for named sets.  At this point, we still have no idea when or why we would ever create either of these things.  He does discuss, very briefly, why you would partition the data, and then ends the unit very abruptly. 

Aggregations, the GROUP BY Query – This entire unit is spent in the query editor.  Ordinarily I would applaud him for this kind of dedication to the subject material, but I would expect that someone learning OLAP isn’t doing so as their first introduction to SQL, so a tutorial on the basics of SQL itself is completely out of place.  This has nothing to do with OLAP and while it can be mentioned, or even employed in a course like this, it has no business being taught. 

Using the Analysis Manager – Starts out in the manager window and goes through the menus briefly.  He shows us then how to create a new DB in OLAP and connects it to a data source.  And again, he shows us around the edit cube window, and a couple other basic things we’ve already seen.  How many times do we have to see the exact same basics? 

Creating the Data Source – Here he starts out showing us both of his data sources in the OLAP manager.  He then goes to the ODBC manager to show us how to manage ODBC connections.  I find it notable that he gets lost on his first try and actually goes to My Computer\Manage to try to find it.  When he doesn’t find it there, he sits for a few seconds, centers the window on the screen, and then finally goes to Administrative Tools where he finds the ODBC manager.  I really don’t see anything wrong with brainfarting from time to time, but this is the kind of thing that should be edited out of a training course.  After a very basic walkthrough of the high-level options of the ODBC connection, he goes through and creates a new data source in OLAP.  He tirelessly goes though every ODBC driver on the computer, which really isn’t necessary, and really quite boring.  He then goes into BOL and shows us the doc on creating connections.  If you’ve ever created a single ODBC this unit is worthless.  I would expect that someone learning OLAP already knows the extreme basics of DBs. 

The Dimension Wizard – He at least starts out in the dimension wizard.  You can actually hear his phone ring in the background on this one.  Come on man… turn off your phone when you’re recording.  He goes through creating a dimension and does give a little advice as to the choices he makes on one screen, but for the most part, he passes up the chance to really explain the options.  Instead, he scrolls through BOL again.  I really can’t say this enough… I can go through BOL on my own, what I need is someone to teach me based off of his own experience and so far I’ve seen nothing to even hint at that kind of help here.  He then creates another dim and it’s pretty much the same thing as the last, so nothing new here.  He creates a few dims in all, but they’re all so repetitive there’s nothing really to show after the first one.  A great opportunity to show the many options and intricacies here is lost. 

Creating Shared Dimensions – He starts out in the dimension wizard again, so good start.  He then starts inserting different levels, but offers no advice as to what and why you’re doing it.  He does create a couple more dimensions, but there’s nothing really explained, so if you had to create a shared dimension, you wouldn’t really be that much further along than you were before.  You would however be able to get through the wizard, which I suppose is probably the goal here. 

The Cube Wizard – He starts out in the cube wizard and begins explaining the first screen… no, not really explaining… reading.  He goes through the rest of the wizard with a little explanation, but nothing really significant.

Creating a Cube with Star Schema –He starts out where the last unit left off with designing the storage for the cube.  He goes through the different options in the wizard and doesn’t really offer any sound advice as to what you should choose.  He just reads the screens.  What I’m looking for is advice on how to know which option is best.  Then he browses the data again for a couple minutes.  I would like to point out though that this had nothing to do with creating a cube with the star schema.  This entire unit was designing the storage for the cube started in the last unit.  This entire unit belongs with the last one, or at the very least, change to name to having something to do with storage.

Snow Flake Schema – He starts out in the cube wizard and starts choosing tables to put in the cube.  He finishes the wizard, and browses the data.  Then he browses the metadata a little too.  Then, believe it or not, he browses the data again.  There’s nothing extremely useful in this unit. 

Processing Dimensions and Cubes – We start out watching his cube process.  No real advice on anything given, he just narrates along the way.  He then goes through and points out all the obvious content of the processing wizard like the fact that it’s selecting distinct values.  He basically just reads the different steps to us.  It’s really not important since there’s really nothing you can do about it but run it.  He then goes through the exact same thing with another cube.  He processes it, and then bores us by reading the steps it went through.  Yeah dude, we get it.  He barely mentions having to refresh the data source, but doesn’t really give any real discussion on it.  It really left me wondering what needs to be done on a regular basis, and how you manage that.  Again, a perfect opportunity to really teach us something has been passed by.  He was trying to show us something that should have failed the process step, and it processed correctly both times.  Seriously man, work out your examples first.  He tried something else and finally got it to fail. 

CD 4

Creating Calculated Measures – He starts out in the cube editor and briefly discusses the calculations he’s already got.  He then briefly scrolls through a couple BOL docs and then goes back to OLAP and creates a measure.  He then browses the data again.  It stays on track this time at least, and although it really doesn’t go into any real depth, there’s really nothing wrong with it.  You should know the basics of creating calculated members when you’re done.  However, one thing I do think he should have covered is how to design the cube so that you’re able to decide when to use calculated measures and when they should be processed with the cube instead.  This advice isn’t offered at all. 

Editing Star Schema Dimension – He starts out browsing through the metadata again.  He then goes straight to BOL and reads a few things to us on dimensions.  3mins into it and we’re finally editing the dimension.  That doesn’t sound like much, but the whole unit is only 10mins, so that’s 30% wasted so far.  He gets lost in the menus and it really looks like he can’t find what he’s looking for so he decides to count the dim members instead.  He goes to reprocess and it fails, and it’s honestly hard to tell if he meant for it to or not.  Something tells me though that it was a surprise for him as well.  Evidently the change he made broke it.  He gets it fixed and the reprocesses the whole database.  Then he browses data again.