Slowly Altering Dimension (SCD) in Energy BI, Half 1, Introduction to SCD

Date:


Slowly altering dimension (SCD) is an information warehousing idea coined by the superb Ralph Kimball. The SCD idea offers with transferring a selected set of knowledge from one state to a different. Think about we’ve a human sources (HR) system; Stephen Jiang is a Gross sales Supervisor, managing 10 gross sales representatives in his crew. The next screenshot exhibits the pattern information:

SCD in Power BI, Stephen Jiang is the sales manager of a team of 10 sales representatives
Picture 1: Stephen Jiang is the gross sales supervisor of a crew of 10 gross sales representatives

In the present day, Stephen Jiang obtained his promotion to the Vice President of Gross sales function, so his crew has grown in dimension from 10 to 17. Stephen is similar individual, however his function is now modified, as proven within the following picture:

SCD in Power BI, Stephen's team after he was promoted to Vice President of Sales
Picture 2: Stephen’s crew after he was promoted to Vice President of Gross sales

One other instance is when a buyer’s handle adjustments in a gross sales system. Once more, the client is similar, however their handle is now totally different. From an information warehousing standpoint, we’ve totally different choices to take care of the information relying on the enterprise necessities, main us to various kinds of SDCs. It’s essential to notice that the information adjustments within the transactional supply techniques (in our examples, the HR system or a gross sales system). We transfer and rework the information from the transactional techniques through extract, rework, and cargo (ETL) processes and land it in an information warehouse, the place the SCD idea kicks in. SCD is about how adjustments within the supply techniques replicate the information within the information warehouse. These sorts of adjustments within the supply system don’t occur fairly often therefore the time period slowly altering. Many SCD varieties have been developed through the years, which is out of the scope of this publish, however to your reference, we cowl the primary three varieties as follows.

SCD kind zero (SCD 0)

With this kind of SCD, we ignore all adjustments in a dimension. So, when an individual’s residential handle adjustments within the supply system (an HR system, in our instance), we don’t change the touchdown dimension in our information warehouse. In different phrases, we ignore the adjustments throughout the information supply. SCD 0 is additionally known as mounted dimensions.

SCD kind 1 (SCD 1)

With an SCD 1 kind, we overwrite the previous information with the brand new. A wonderful instance of an SCD 1 kind is when the enterprise doesn’t want the client’s previous handle and solely must preserve the client’s present handle.

SCD kind 2 (SCD 2)

With this kind of SCD, we preserve the historical past of knowledge adjustments within the information warehouse when the enterprise must preserve the client’s previous and present addresses. In an SCD 2 situation, we have to preserve historical past, so we insert a brand new row of knowledge into the information warehouse at any time when a transactional system adjustments. Inserting a brand new row of knowledge causes information duplications within the information warehouse, which signifies that we can not use the CustomerKey column as the first key of the dimension. Therefore, we have to introduce a brand new set of columns, as follows:

  • A brand new key column that ensures rows’ uniqueness within the Prospects dimension. This new key column is just an index representing every row of knowledge saved in an information warehouse dimension. The brand new key’s a so-called surrogate key. Whereas the Surrogate Key ensures every row within the dimension is exclusive, we nonetheless want to take care of the supply system’s main key. By definition, the supply system’s main keys at the moment are referred to as enterprise keys or alternate keys within the information warehousing world.
  • Begin Date and an Finish Date column symbolize the timeframe throughout which a row of knowledge is in its present state.
  • One other column exhibits the standing of every row of knowledge.

SCD 2 is probably the most widespread kind of SCD.

Let’s revisit our earlier instance when Stephen Jiang was promoted from Gross sales Supervisor to Vice President of Gross sales. The next screenshot exhibits the information earlier than Stephen obtained the promotion:

SCD in Power BI, The employee data before Stephen was promoted
Picture 3: The worker information earlier than Stephen was promoted

The EmployeeKey column is the Surrogate Key of the dimension, and the EmployeeBusinessKey column is the Enterprise Key (the first key of the client within the supply system); the Begin Date column exhibits the date Stephen Jiang began his job as North American Gross sales Supervisor, the Finish Date column has been left clean (null), and the Standing column exhibits Present. Now, let’s take a look on the information after Stephen will get the promotion, which is illustrated within the following screenshot:

SCD in Power BI, The employee data after Stephen gets promoted
Picture 4: The worker information after Stephen will get promoted

Because the above picture exhibits, Stephan Jiang began his new function as Vice President of Gross sales on 13/10/2012 and completed his job as North American Gross sales Supervisor on 12/10/2012.

Let’s see what SCD 2 means in the case of information modeling in Energy BI. The primary query is: Can we implement SCD 2 instantly in Energy BI Desktop with out having an information warehouse? To reply this query, we should do not forget that we create a semantic layer when constructing an information mannequin in Energy BI. In a earlier publish, I defined totally different parts of a BI answer, together with the semantic layer. However I repeat it right here. The semantic layer, by definition, is a view of the supply information (normally an information warehouse), optimised for reporting and analytical functions. The semantic layer doesn’t exchange the information warehouse or one other model of the information warehouse. So the reply is not any, we can not implement the SCD 2 performance in Energy BI. So we both want an information warehouse, or the transactional system has a mechanism to help sustaining the historic information, equivalent to a temporal mechanism. A temporal mechanism is a function that some relational database administration techniques equivalent to SQL Server provide to supply details about the information stored in a desk at any time as a substitute of conserving the present information solely. To study extra about temporal tables in SQL Server, test this out.

After we load the information into the information mannequin in Energy BI Desktop, we’ve all present and historic information within the dimension tables. Due to this fact, we’ve to watch out when coping with SCDs. As an example, the next screenshot exhibits reseller gross sales for workers:

SCD in Power BI, SCD in Power BI, Reseller sales for employees without considering SCD
Picture 5: Reseller gross sales for workers with out contemplating SCD

At a primary look, the numbers appear to be appropriate. Nicely, they might be proper; they might be fallacious. It will depend on what the enterprise expects to see on a report. Take a look at Picture 4, which exhibits Stephen’s adjustments. Stephen had some gross sales values when he was a North American Gross sales Supervisor (EmployeeKey 272). However after his promotion (EmployeeKey 277), he’s not promoting anymore. We didn’t think about SCD after we created the previous desk, which suggests we think about Stephen’s gross sales values (EmployeeKey 272). However is that this what the enterprise requires? Does the enterprise anticipate to see all staff’ gross sales with out contemplating their standing? For extra readability, let’s add the Standing column to the desk.

SCD in Power BI, Reseller sales for employees and their status without considering SCD
Picture 6: Reseller gross sales for workers and their standing with out contemplating SCD

What if the enterprise must solely present gross sales values just for staff when their standing is Present? In that case, we must issue the SCD into the equation and filter out Stephen’s gross sales values. Relying on the enterprise necessities, we’d want so as to add the Standing column as a filter within the visualizations, whereas in different instances, we’d want to switch the measures by including the Begin DateFinish Date, and Standing columns to filter the outcomes. The next screenshot exhibits the outcomes after we use visible filters to take out Stephen’s gross sales:

SCD in Power BI, SCD in Power BI, Reseller sales for employees considering SCD
Picture 7: Reseller gross sales for workers contemplating SCD

Coping with SCDs is just not all the time so simple as this. Generally, we have to make some adjustments to our information mannequin.

So, do all of the above imply we can not implement any forms of SCDs in Energy BI? The reply, as all the time, is “it relies upon.” In some situations, we are able to implement an answer much like the SCD 1 performance, which I clarify in one other weblog publish. However we’re out of luck in implementing the SCD 2 performance purely in Energy BI.

Have you ever used SCDs in Energy BI, I’m curious to know concerning the challenges you confronted. So please share you ideas within the feedback part beneath.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Share post:

Subscribe

spot_imgspot_img

Popular

More like this
Related