Go Back   CORTEX Forums > Local Happenings > CORTEX Blogs > I SQL
Register Blogs FAQ Members List Calendar Search Today's Posts Mark Forums Read

Best practice for slowly changing Fact tables.

This is a discussion on Best practice for slowly changing Fact tables. within the I SQL forums, part of the CORTEX Blogs category; I've been trying to find some evidence of best practice for facts which are updated and have been unable to find much written on this subject. While this is quite ...


Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old 8th July 2009, 03:36 PM   #1
Member
 
Join Date: Jul 2009
Posts: 42
Leigh Kennedy is on a distinguished road
Default Best practice for slowly changing Fact tables.

I've been trying to find some evidence of best practice for facts which are updated and have been unable to find much written on this subject. While this is quite common for case management type systems (e.g. HP Service Centre, Salesforce.com), it is not typical for data warehousing in general, as most literature focuses on more traditional transaction based systems (e.g. bank accounts, PABX data, order/billing etc.).



The challenge we have then is to determine when the dimensions of a fact record should be changed, and when they should be left unchanged if the fact itself is altered. Obviously for SCD Type 1, this is a non-issue; we aren't keeping a record of the previous Dimensions value, so the fact must be linked to the newest version anyway. But for SCD Type 2, there are three possible options:
  • Determine the Dimension at the first instance of the fact being recorded in the warehouse.
  • Update the fact's dimension's to the version of the dimension that existed at the time of the fact being modified.
  • Update to the Current version of the dimension at the time the fact is updated in the warehouse.
While 1 is the simplest to implement, it doesn't reflect the real world usage of many source systems. For example an address Dimension may start of with very minimal details initially, but will gain more details over time. It is unlikely that we would want to stay with the minimally populated dimension once we have richer data available.

Option 2 to me is probably the best 'default' option in this case. It makes sense to me that if the fact is updated, it should reflect the dimensions at that point in time. For example if sale was made to the sales rep for region 1 (e.g. 'Bob') and Region 1 is later re-assigned to 'Fred', we don't necessarily want that sale updated to 'Fred' as he never made that sale. I'm sure there are cases though where this may not be the right approach.

Option 3 to me in most cases would give an incorrect view of the data, so therefore is not what we want either, however it may be that in the source system certain data is only updated periodically and that for that system the most recent version is deemed to be the 'correct' version.

I'm include to use Option 2 in most cases, but I would appreciate any feedback on this, as there may be other scenarios I haven't considered. Also, if you have come across any articles linked to this, please pass these on to me.

What are your thoughts ?




Get More from the original blog...
Leigh Kennedy is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!
Reply With Quote
Reply

Bookmarks

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
A survey of Australian BI practice - call for participation Peter O'Donnell Monash University Business Intelligence Blog 0 23rd June 2009 09:34 PM
SAS customer Fraport wins Business Intelligence 2009 Best Practice Award Latest News Headlines SAS Forum 0 10th April 2009 05:57 AM


All times are GMT +11. The time now is 03:16 PM.

© The Business Intelligence Group

Search Engine Optimization by vBSEO