…brew your own Business Intelligence

Blog

SSAS Memory Configurations for Common Architectures

Earlier this week I was working with a client to configure the server-level memory configuration properties for one of their SSAS servers and the discussion drummed up enough thoughts to prompt this blog post. Below are the primary SSAS server-level memory configuration properties (along with the descriptions from TechNet BoL) […]

Read more

MDX: Scope and Precedence for Calculated Members and Sets

With calculated members and calculated sets, there are 3 primary levels of scope: Global: calculated members and sets defined at this level (in the MDXScript of the SSAS cube) are available to all queries Session: calculated members and sets defined at this level (as a standalone statement executed after connecting […]

Read more

A Closer Look at the Coverage Fact Table

One of the more interesting types of fact tables is the factless fact table for conditions – also known as Coverage Fact table by Kimball purists. I was recently reminded of this type of fact table while reading Star Schema: A Complete Reference in which Chris Adamson (b | t) describes […]

Read more

Types of Fact Tables

In a presentation I’ve been delivering lately, Bus Matrix – the Foundation of your Dimensional Data Model, I briefly cover the hierarchy of an enterprise and how it can be conceptually broken down and mapped into a dimensional model. A single enterprise typically contains many business areas (e.g. Sales, Manufacturing, Finance) […]

Read more

The Best Book On Dimensional Modeling

The Data Warehouse Toolkit by Ralph Kimball has been read cover to cover by most Data Warehousing and Business Intelligence industry professionals. It is perhaps the most popular text on dimensional modeling known to mankind. However, it is not the best book on dimensional modeling. These may seem like pretty bold […]

Read more

MDX: ParallelPeriod Is Not Calendar Aware (Part 2)

In the last post, we explored the ParallelPeriod function in a bit of detail and then used a contrived example to highlight a particular edge case that needs to be explicitly handled when the number of children differs between the 2 periods. Specifically, we looked at a prior month calculation […]

Read more

MDX: ParallelPeriod Is Not Calendar Aware

ParallelPeriod is one of the more commonly used MDX functions out there. It’s primary use is in “prior period” calculations such as Prior Year sales (which in turn can be used to calculate Year-over-Year Change in sales) as well as Rolling Averages: Create Member CurrentCube.[Measures].[Internet Sales Amount - Prior Year] […]

Read more

Filtering a Pivot Table by a Large Dimension

A common issue I see on the MSDN forums and at clients is how to reduce the number of members available in a filter to only those with data in the pivot table. This question often originates from users wanting to filter the results of a pivot table by a […]

Read more

Bus Matrix Presentation Follow Up Q&A

On 1/14/2014, I presented Bus Matrix…the foundation of your Dimensional Data Model via the Free Training on the T’s offered by PragmaticWorks. If you weren’t able to attend the live session, you can watch the recording here. This presentation touched on a lot of complex concepts (dimensional modeling, conformed dimensions, […]

Read more

MDX: Slicer Override

In MDX, the WHERE-clause is commonly referred to as the “slicer”. This is because the criteria placed in this clause is used to “slice the cube”. Any query scoped named sets or members will be created/calculated within the context specified in the WHERE-clause. For example, the query below will return […]

Read more