I'm consistently getting variations on this error when I process the cube in my first SSAS project:
Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'dbo_Transactions', Column: 'TransactionSK', Value: '68342998'; Table: 'dbo_Transactions', Column: 'TransactionDateTimeUTC', Value: '7625037'. The attribute is 'Transaction SK'.
The phrase "attribute key cannot be found when processing" gets a number of Google hits, and several hits on Stack Overflow too (1, 2, 3). However, these address broken FKs, NULL values, or duplicate values (e.g., due to inconsistent case sensitivity). None of those situations apply.
There's just one table here: dbo.Transactions
. It has fields TransactionSK
and TransactionDateTimeUTC
, both INT NOT NULL
. As you can guess, the TransactionDateTimeUTC
field is an FK to a DateTimes
table, but there are no missing records, that's enforced in ETL and I've verified it in SQL.
What else could be causing this error message? Why does it list two fields, TransactionSK
and TransactionDateTimeUTC
? The similar situations I've bumped into so far consistently only reference a single field in the error message.
The table is being updated in near-real-time, including occasional deletions, though the two fields in question are not updated. If a record is removed from the table after SSAS scans one column and before it scans another, will that produce this error? Spot-checking a few problem records, they were not created in the middle of process the cube.
TransactionSK
a foreign key to anything? SSAS can be deceptive about the queries that you are using to load. Drill all the way to the bottom and find the actual query used, which can be completely different to the table you see in the data source view. It's quite possible that the query loading your dimension is filtered in some way. One way or another, a key is in your fact but not in your dimension