Confusion about implementing Versions on MDS...
-
Friday, January 20, 2012 3:26 PMHello,New to MS Master Data Services, starting to set up a system, and I'm a little confused regarding its Versioning feature.Our process is based on nightly ETL, so, every morning a new set of data arrives and there may or may not be new Master Data members.Should we be creating a new version for everyday's data processing, or should we not process Master Data on a daily basis but rather weekly, or on a longer period, and create version based on those imports instead? I don't believe our master data records change that often.However, if it ends up that we necessarily have to process MD nightly regardless (for whatever reasons,) is there a way to control Versions so that we're not creating a new version every day?Sorry if the question is unclear, I'm just beginning to understand MDS :)Thanks!
-Björn Türoque
All Replies
-
Thursday, January 26, 2012 2:10 AM
Hi Björn
Welcome to the world of MDS! I'd like to highlight two things here:
1. Creating a new version for a model causes a whole new copy of ALL the data in the model to be created.
2. If you turn transaction logging on while staging, every change to the entity will be logged as a transaction. Transaction logging is on by default when you use Excel or the web UI to add/edit members.
In light of this, it seems like creating a new version every night might not be the best idea (since it would be very storage intensive). However, you might have your own reasons for creating nightly versions. At the end of the day it depends on how much data you have in total and why it is that you are trying to version the data. If you just want to be able to track changes to members, transactions do exactly that without having to create versions.
I hope that helps your understanding
Arun
Arunjeet Singh (Microsoft SQL Server Master Data Services)- Proposed As Answer by Jason H - SQLMicrosoft Employee Friday, January 27, 2012 2:59 AM
-
Thursday, January 26, 2012 12:21 PM
Thank you Arunjeet.
I have two further questions:
1: If I use transactions to track changes then how can I key into those changes from one place as would be possible using Versions? For example I would want to subscribe to new changes, then I could use the Version key to get them all. How would that be done with just transactions? And what about applying business rules to transactions? This might not be the best way to go.
2: Can Versions be created dynamically through an SP call I can create them whenever I want?
Cheers!
-Björn Türoque- Edited by Björn Türoque Thursday, January 26, 2012 12:25 PM
-
Thursday, January 26, 2012 9:44 PM
1. To see transactions for a version, go into Version Management on the home page and click on the Transactions menu on the top. You can also use the TransactionsGet API to do the same thing programatically.
2. They can, however calling SPROCS directly is not supported. A better way is to use the API to do this. The relevant API is called VersionCopy.
Regards
Arun
Arunjeet Singh (Microsoft SQL Server Master Data Services)- Proposed As Answer by Jason H - SQLMicrosoft Employee Friday, January 27, 2012 2:59 AM
-
Friday, January 27, 2012 1:13 PM
thx again arunjeet.
I'm sorry, I'd like to get this clear. All the examples I've seen from MS' sqlblog.com say that we should use SPROCS to stage data, but you're saying that's not supported?
And just to be clear on my versioning scenario...
1: I have a situation where a daily version is required
2: I make a call first to copyversion, to make a new version
3: Then I stage the new data to that new version
is this the correct coding workflow for versioning?
BOL states the role and importance of Versions in the system but there aren't any practical laid out examples of using version mgmt from a coding perspective. This is why I'd like to know what the correct set of events is to code dynamic/programmativ versioning of mds data.
thank you for your patience Arunjeet.
-Björn Türoque -
Friday, January 27, 2012 8:19 PM
Hi Björn
My apologies for the confusion. Calling the staging stored procedures and putting data into the staging tables (basically anything under the stg schema) is FULLY supported. I got the impression you were asking about doing a version copy using a SPROC. While that is possible, it is not supported. The steps in your versioning scenario are correct.
Regards
Arun
Arunjeet Singh (Microsoft SQL Server Master Data Services)- Marked As Answer by Björn Türoque Sunday, January 29, 2012 2:50 PM

