29
votes

I was trying to rebuild my cube after making some changes the other day to the table/column names in the fact and dimension tables.

The process cube action kept returning the following error message:

The attribute key cannot be found when processing: Table: 'MyFactTableName', Column: 'MyDimensionKey', Value: 'SomeValue'. The attribute is 'MyDimensionKey'.

The other answers to similar questions referred to attributes with duplicate values, and cases where the attribute value was null in the or missing in either the Dimension or the Fact table.

Example related posts are:

There were no duplicate values in my case and the attribute value was not missing from either the Fact or Dimension table.

Thankfully the information in this post here solved my problem.

The suggestion was to process the affected Dimension by itself, and then process the affected measure group.

Any idea why this happens, how I could reproduce this? I'd like to know so that I can avoid it next time or so that it doesn't pop up again at a bad time while deploying an upgrade to the production environment.

Thanks in advance for your help.

EDIT: I'm using SSAS-2008, and the error occurred while trying to process the cube from within BIDS-2008.

5
This happens because your measure group is processed before the related dimensions. SSAS comes across a foreign key that's used to relate to a cube dimension, but the key is not known to the dimension itself.Jeroen Bolle
That makes sense. I'll try to do a test to see if I can reproduce the error now (next time I get a chance) and if so, ask you to post this as the answer.JM Hicks
So was this the answer?Kyle Hale
Yes, that was apparently the problem. Sorry for the late reply. Please post as answer so I can mark it. Thank you.JM Hicks
I just learned how to use "@" replies. So, @JeroenBolle please post as answer so that it can be marked as such, thank you.JM Hicks

5 Answers

25
votes

This happens because your measure group is processed before the related dimensions. SSAS comes across a foreign key that's used to relate to a cube dimension, but the key is not known to the dimension itself.

17
votes

Root cause of this error: There is some key is present in your Fact Table, which in turn is not present in your Dimension table (Ideally which should not be the case) Try following steps:

  1. Process your dimensions before processing Measure Groups

  2. If your "SomeValue" is 0, then try adding default (0th) row in your dimension table and in Fact table try putting ISNULL(MyDimensionKey,0)

  3. If above 2 solutions doesn't work, try this: a. Right-click on your cube db, go to "process" >> "Change Setting" b. Go to "Dimension key errors" tab c. Check "Use custom error configuration" radio button d. Check 'Ignore error count' radio button. For 'Key not found' select 'Ignore error'. Similarly for 'Null key not allowed' also selecy 'Ignore error' e. Click on OK and try processing your cube

2
votes

I had a problem with similar error, the reason was that I had changed the Table name to a view with the same name but the DSV or dimensions couldn't automatically adjust this change.

So I had to manually update the fields behind each dimensions attribute.

It can be done in each dimension attribute's properties : Source>>KeyColumns>>"Attribename">>Source>>TableID, columnID

1
votes

what come across to me is there are two records in my underlying DB, "ABC" and "abc", the Distinct clause make them as 1 ("ABC") record since my sql server is not case sensitive, but the SSAS service is case-sensitive in my case, so the attribute value "abc" can not find it's key when processing the cube. HIH

0
votes

Test this, let's start tiny like this Dimension:

Dimension

This was my solution:

enter image description here