问题
There is a Sales Invoice dimension which is related to Sales measures. Sales measures are partitioned. I have 2011 partition and 2012 partition. I figured that we don't need to process Sales 2011 partition because it doesn't change anymore.
Unfortunately (confirmed by "impact analysis") after reprocessing of Sales Invoice dimension my both Sales Measure partitions become Unprocessed. Is there a way to avoid that? Please note that primary key doesn't change. Processing takes place in SSIS tasks. I simply wanted to set "process measures - sales 2011" to "disabled" but keep the data that's already in the cube.
Edit I did what you recommended. I switched all dimensions required for Sales to "process update" (Invoice, Customer, Product etc.).
I processed everything, then in SSIS I disabled one of the Sales measure partitions (2011) and left only Sales 2012 partition to be processing. Unfortunately I couldn't see 2011 data after another reprocessing (but I could browse the cube).
After few tests and another re-processing of the cube Sales 2011 became "unprocessed" and the whole cube became inaccessible.
What checks are possible to determine what is wrong?
I did what you recommended. I switched all dimensions required for Sales to "process update" (Invoice, Customer, Product etc.).
I processed everything, then in SSIS I disabled one of the Sales measure partitions (2011) and left only Sales 2012 partition to be processing. Unfortunately I couldn't see 2011 data after another reprocessing (but I could browse the cube).
After few tests and another re-processing of the cube Sales 2011 became "unprocessed" and the whole cube became inaccessible.
What checks are possible to determine what is wrong?
回答1:
How are you processing the dimension? A Process Full on any dimension invalidates all the partitions' data because it drops all data, and then processes the object. Every partition needs to be processed even the Sales 2011 on your example because lets say the ID on the dimension change (I know this is not common, but I can happen, that's why the restriction exists) the data on the 2011 partition nees to be updated to the new value.
To process only some of the partitions, the dimension processing must be configured to use the ProcessUpdate type. It forces a re-read of data and an update of dimension attributes. Is a more lightweight processing option that applies member changes (inserts, deletes, updates) without invalidating the cubes that use the Dimension.
回答2:
Are you doing a full process on the dimension? That will leave the measures in an unusable state. Process Update would leave them usable. You shouldn't need to process the old measure group, but if members in the dimension change, you may need to process aggregations/indexes on the old measure group, depending on how your cube is set up.
来源:https://stackoverflow.com/questions/11900995/ssas-dimension-processing-makes-underlying-measures-unprocessed