MDX


Non Empty Behavior is a very good optimization method you can use with your calculated measures. It allows you to define a list of measures that their emptiness defines the emptiness of your calculated measure. To understand this, look at the picture (taken from the MSDN):

This is the calculation expressions pane from the Calculations tab in the cube designer. From MSDN:

“The measures you specify in the Non-empty behavior list are used to resolve NON EMPTY queries in MDX. When you specify one or more measures in the Non-empty behavior list, Analysis Services treats the calculated member as empty if all the specified measures are empty. If the Non-empty behavior property is blank, Analysis Services must evaluate the calculated member itself to determine whether the member is empty.”

This is not new. NEB is quite old feature in SSAS. The new thing (at least for me) is that NEB can also be used in Panorama formulas! For example, M1+M2 /*NONEMPTY_BEHAVIOR={M1,M2}*/ will apply M1 & M2 as NEB. You can see more Panorama optimization methods here.

Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed

I knew for a long time that measures can have text and not only numbers, but last week I had a scenario where it was the perfect solution for my problem.

Let’s say that I work in number of jobs. In every job I got some tasks that I need to do. The fact table looks like this:

Job

Task

Tasks To Do

Tasks Completed

Developer

Develop BI System

1

1

Developer

Help Friends

1

0

Manager

Manage

1

1

Therapist

 

0

0

Summarizing the “Tasks To Do” column will get the total tasks that I need to do. Summarizing the “Tasks Completed” column will get the tasks that I did. Note that in the Therapist job I didn’t get any tasks.
In the OLAP cube, I created a calculated measure which is the percent of the completed tasks (for every job or for any other dimension). The problem is: What is the answer in case that there are no any tasks to do? Some will say 0% and some will say 100%. That’s why a text measure such as “There are no tasks” can be a perfect solution for this kind of problem. This is the calculation of the calculated measure:

(more…)

Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed

One of the beautiful features of Panorama NovaView is the ability to manually edit the MDX which expressing the view. In the NovaView desktop application, click on Tools -> Direct MDX. The only problem is that you have to learn MDX yourself…

Here are some useful tips when learning MDX. Even experienced MDX programmers may find interest in these:

  • If you were a code programmer in your past, you can relax: MDX don’t care about capitalization.
  • Don’t even try to skip an axis: It’s impossible and it is meaningless. Use the predefined names for the axis, such as: columns, rows, pages, etc.
  • You’re new to MDX and the whole OLAP gives you a headache? Try to imagine this as a hypercube. It can help you a lot.
  • When writing large queries, pay attention to the “readability” of your MDX. Use the Monospace fonts whenever possible.
  • Do NOT think of SQL when learning or working with MDX. Although the syntaxes may look alike, these languages are totally different when you get to know them.
  • .Members will give you all regular members. .AllMembers will also include calculated members.
  • An expression like [Time].Members won’t work if the Time dimension has multiple hierarchies.
  • The asterisk (*) can replace the CrossJoin function. It may improve readability of the code.
  • When using Order() function, you can specify a sorting criteria which is not shown in the result grid.
Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed

At Panorama we have a saying that “MDX is like chess – knowing the rules doesn’t mean you know hoe to play”.

Don’t believe it? Okay, let’s play!

If you don’t know much about MDX, these are the rules of your game:

(more…)

Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed

It is well known that MDX is the standard language for querying OLAP servers… Today MDX is become the de-facto standard for querying most OLAP servers, such as Microsoft Analysis-Services, SAP BW, Hyperion etc.

In that case you might probably think that supporting one OLAP platform’s MDX means you’ve covered them all…. Is that the case?

nope!

(more…)

Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed

Panorama software has been in the driving seat of MDX since it’s invention around the OLAP technology we sold to Microsoft back in 1996.
Since then we’ve taken MDX to the extreme. As such I wanted to share some of the reasons why MDX has revolutionized the world of BI…. I hope you enjoy this entry and please provide your comments.

So the invention of MDX (Multi Dimensional Expressions) is really the key cornerstones in the world of BI especially since its establishment  as a standard query language for OLAP servers. MDX has three powerful concepts embedded in it. These concepts together are what make MDX unique and allow users to ask complex multi dimensions questions.

(more…)

Share and Enjoy:
  • Technorati
  • del.icio.us
  • Digg
  • Suggest to Techmeme via Twitter
  • Facebook
  • Blogosphere News
  • Google Bookmarks
  • LinkedIn
  • FriendFeed