I’ve grown up reading Tom Clancy and probably most of you have at least seen Red October, so this book caught my eye when browsing used books for a recent trip. It’s a fairly human look at what’s involved in sailing on a Trident missile submarine…
One type of error that arises occasionally during SSAS cube processing is the ‘duplicate attribute key’ error. The error message is similar to the following:
<Warning WarningCode=”1092550658″ Description=”Errors in the OLAP storage engine: A duplicate attribute key has been found when processing: Table: ‘dbo_DimClaim’, Column: ‘ClaimCanceledReasonCode’, Value: ”. The attribute is ‘Claim Canceled Reason Code’.” Source=”Microsoft SQL Server 2008 R2 Analysis Services” HelpFile=”” />
In the example above, the error was due to a carriage return stored in the ClaimCanceledReasonCode column. During processing, SSAS converted the carriage return to an empty string and since the empty string was already processed as a key value from another row the ‘duplicate attribute key’ error was generated.
When I first encountered this error, I was confused because a Select Distinct query should never return a duplicate in the first place. I then discovered that SSAS maps certain types of values (e.g. NULL, carriage returns, etc.) to an empty string which causes this error to arise if there is another row in the dataset that contains an empty string value. In my experience, this is the most common cause of this error.
The following blog post provides a good overview of the various scenarios that may cause the duplicate attribute key error and how to avoid them: http://ms-olap.blogspot.com/2009/11/duplicate-attribute-key-has-been-found.html.