2
votes

While processing dimension with process update I am getting below error

Errors in the OLAP storage engine: Rigid relationships between attributes cannot be changed during incremental processing of a dimension. The error occurred when processing attribute . Table: 'dbo_VW_myView', Column: 'Some+Column', Value: 'VTNS Affiliate'. Source attribute: . Key column value(s) of the source attribute: 'ABBOTT LABORATORIES'.

with some R&D, I am able to figure it out that I can't do ProcessUpdate in rigid relationship and byt changing the dimension relationship to flexible will deeply impact the cube performance. So my question is,

Can this issue be rectified by processing dimension in a sequential order? If yes, then how can I get the sequential of dimension dynamically to be processed. If No, what could be the other way to process update the dimensions.

I have to process dimension only via SSIS.

EDIT1

To be more precise I am doing below steps:

  1. Creating partition.
  2. Processing each dimension - processAdd
  3. Processing partition - ProcessFull
  4. Processing database - ProcessDefault

and ProcessFull the database, once a week

But with this one, I don't think I will get the updated entries in dimensions. My scenerio is this, for each load dimensions/fact will only be updated or inserted and no deletetion.

So, which processing would be useful for me in this case (I can include or exculdue above steps on your recommendations)? Can ProcessDefault the dimension before processing cube partition can help me.

Note: Without Step2 when I am doing it, processing is working fine.. but after that when I am Full processing the database I am getting error operation failed and no specific error other than the list of partition which I have created. (amazingly, process full the database is processing dimensions without any issue)

Edit2

Is there any alternate way to do process update dimension?

2
I had the same error in a dimension where my query based DimDeliveryDates had a rigid relationship, and due to changes in the underlying data, some dates were no longer relevant to the business process. However, the cube processing failed because now data went missing.Raj More

2 Answers

2
votes

You'd need to process the dimension fully to clear this error - BUT - This will usually leave the related fact tables as 'Unprocessed' if I remember rightly.

Mike Honey is correct, what has happened is that you've told the cube that something won't change, then you've changed it. For example, a customer dimension where you've said that home address is rigid to customer Id - First time a customer changes address you won't be able to process update the dimension.

Getting these rigid/flexible relationships correct can be a real pain - Things you wouldn't expect ever to change (Date of Birth) do - "We wrote down the wrong D.O.B for the customer" etc... :(

2
votes

No you cant rectify this issue by processing dimensions in any different order. The error is internal to one dimension. It is a symptom of data changing inside the dimension which is inevitable in all the (non-date) dimensions that I have worked on - and even some date dimensions.

You need to revisit your R&D and get your cube performance to an acceptable level with flexible dimension relationships.