0
votes

Suppose I have a dimension DIM_Users with two attributes UserId [bigint] and Reputation [int]. In this case I can successfully process the table.

enter image description here

But, after I add DisplayName [nvarchar(255)] attribute to the dimension, processing fails with the next message:

Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'cube_DIM_Users', Column: 'DisplayName', Value: 'Justin ᚅᚔᚈᚄᚒᚔ'. The attribute is 'Display Name'.

enter image description here

Comparing the screenshots I've noticed that the first time 5987286 UserIds were processed (which is the correct value), but the second time only 70000.

And also I see that the value "Justin ᚅᚔᚈᚄᚒᚔ" looks strange, but I can't figure out how it can affect processing of the Attribute Key.

Any ideas about what's wrong with my dimension?

I've found this article but it doesn't help.

1

1 Answers

1
votes

It seems this problem is caused by a collation mismatch between your data source and ssas. You will get a better understanding for possible collation issues if you fire a sql select like SELECT DISTINCT UserId FROM yourTable WHERE UserId LIKE 'Justin%'. There should be more than one entry, which potentially causes collation issues.

Please try the following workaround, if your attribute "User Id" is unique. Add an artificial unique key for each UserId row to your dimension table, e.g. an incrementing integer. Assign this created key to the key column of your attribute and assign your "UserId" to the name column.

Hint: If you expand the key column properties of an attribute in a ssas dimension, you can also change the collation ssas is using for processing. I've tried this in the past but sometimes it didn't resolve collation based issues for me.