问题
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:
- ssas dimension processing key not found error
- key not found error
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.
回答1:
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.
回答2:
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:
Process your dimensions before processing Measure Groups
If your "SomeValue" is 0, then try adding default (0th) row in your dimension table and in Fact table try putting ISNULL(MyDimensionKey,0)
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
回答3:
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
回答4:
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
回答5:
Test this, let's start tiny like this Dimension:
This was my solution:
来源:https://stackoverflow.com/questions/13974559/ssas-attribute-key-cannot-be-found-even-though-it-exists-and-is-not-due-to-dupli