Drillthrough in AS2005

I mentioned this thread from the microsoft.public.sqlserver.olap ng on ‘Limitations of AS2005’ the other day, and it looks like it has pretty much finished. It turned into an interesting discussion on drillthrough in AS2005. Something I hadn’t realised was that in AS2005 any values you wish to see returned by drillthrough must already be defined in the cube – which, when you consider how you use drillthrough in AS2K seems a bit bizarre. However if you read the thread you’ll see what Mosha and Deepak have say on the subject, namely that for fields you only want to access via drillthrough you should create a hidden, ROLAP Fact dimension. It should be hidden because it probably wouldn’t make any sense at all to your users if they saw it, and it should be ROLAP so that it has no impact on the performance of the rest of your cube until it is queried in the drillthrough. Certainly a different way of handling the issue compared to AS2K, maybe not as intuitive and maybe it will take a little bit longer to set up, but to me quite an elegant way of solving the problem. It also fits in well with the thinking that the UDM should model everything in your data warehouse that you want to query on.

OLAP Jokes

With the cricket rained off we had nothing to waste our time with today at work, so Jon decided to challenge the rest of the team to come up with some OLAP jokes for my blog. Naturally Colin and I were up for the challenge and 50 (yes, 50) jokes later here are some of the best – although I thought a few were too risque to post and they were, of course, the funniest. If you aren’t a fan of puerile humour then now’s the time to stop reading…

Q: What does a calculated member have in common with a eunuch?

A: They both can’t have children


Q: Why couldn’t the hierarchy become a tightrope-walker?

A: It was unbalanced


Q: Why did [Year-Quarter-Month] beat Measures at an arm wrestle?

A: Because it was a strong hierarchy


Q: What does tired cube do?

A: Has a KPI


Q: Why did the dimension go to prison?

A: Because it was degenerate


A cube walks into a bar, pops himself on a bar stool and says "Whisky please".

"Double?" says the barman

"No thanks replies the cube "Just a measure"


A girl goes speed dating and after a run of duff prospects a dimension sits down opposite her and they engage in sprightly conversation. After the event is over, her friend asks "Did you get that dimension’s number? You two really seemed to hit it off"

"No" replies the girl "He was really deep at times – had a lot of levels – but you know parent-child dimensions, just too much of a mummy’s boy"


Q: Was the cube straight or gay?

A; Neither, it was BI.


Have you heard that the [Date Shipped] dimension is playing Hamlet at the National Theatre? It’s a role-playing dimension!


Q: What kind of a dimension is [Dictionary]?

A: A reference dimension


Q: What do pre-menstrual BI developers suffer from?



Q: How did the police catch the serial-killer query?

A: They used a Profiler


Did you know that Disney want to turn the Adventure Works cube into a multi-million dollar blockbuster movie? They’ve already optioned the MDX Script.


Q: What on earth was the cube trying to do when it set fire to its wallet?

A: It must have been trying to warm its cache.


Q: What’s the angriest MDX function?

A: Crossjoin


Q: What’s a dentist’s favourite MDX function?

A: Extract


Q: Why did the dimension take all day to take off its suit and put on a pair of jeans?

A: It was a slowly-changing dimension


Q: Why did the dimension keep itself to itself?

A: It was a private dimension.


Q: Why wasn’t the Level allowed in the fascist cube?

A: It was disabled


Q: What’s the porn director’s favourite MDX function?
A: BottomCount


Q: Why did the YTD calculation always finish last?

A: It always lagged too far back.


Q: Why were the other hierarchies frightened of Year-Week-Quarter?

A: It was unnatural


Q: Did you hear about the badger whose home wasn’t allowed in the subcube?

A: It was an arbitrary shaped set.


Q: Why was the MDX expression never able to get a date?

A: It was rank.


Q: What MDX function makes Previous Year Growth and Market Share blush?
A: StripCalculatedMembers


Q: How did the BI developer send his backed-up database to a colleague on the other side of London?

A: In a .cab file


Q: What do cellsets use to cut down trees?

A: Axes


Q: What did the cube leave on the floor when it fell over in the toilet?

A: A minidump


Q: What function would you use to retrieve [Product].[All].[Dried Fruit].[Raisins]?

A: CurrentMember


Q: Why did the cube have nothing to do after the meeting?

A: It had no actions


Q: Whilst walking through the MDX Script mountain range, why did the assignment not mind reports of a FREEZE on the peaks?

A: He was in a lower pass


UPDATE: if you think you can do better then leave your jokes in a comment. We tried to think of a prize for the best one but baulked at the idea of giving away something worth having and paying for the postage.



AS2005 Processing Architecture

Marco Russo points to this very interesting paper on "Analysis Services 2005 Processing Architecture" by TK Anand, which I hadn’t seen before; he also has a good discussion of how this all relates to slowly changing dimensions. Particularly fascinating for me was the section on push-mode processing – I can think of a whole bunch of interesting applications for this functionality when it comes to creating cubes from non-standard data sources and you don’t want to use SQLIS.
If I could make a criticism of such a good white paper it’s that it makes no mention of local cubes. As I noted a while ago here, in AS2005 you can create local cubes using this functionality – indeed, if you run a CREATE GLOBAL CUBE statement to create a local cube and run a Profiler trace, you can see it translated into the equivalent XMLA batch command which defines and then populates the local cube. I’m covering this topic in MDX Solutions 2nd Edition but I can tell there’s a bit more research to do to see exactly how much of what’s in the paper is relevant to local cubes.

Editing an AS2005 database ‘live’

Here’s an interesting bit of functionality I didn’t know existed in the BI Development Studio (following on from Mosha’s reply to my post on this interesting ng thread) – as well as making changes to an AS2005 database in VS in the default ‘project’ mode, where the changes you make are only propagated to the server when you click Deploy, you can also edit the database directly on the server by using ‘online’ mode and get a very similar experience to what you had with Analysis Manager in AS2K. To do this, instead of opening the project file in VS, go to File->Open->Analysis Services Database, type in your server name and select the server. Now when you make your changes they are implemented on the server when you click ‘Save’.
%d bloggers like this: