Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2008 Forums
 Analysis Server and Reporting Services (2008)
 Attribute Key Not Found Error when KEY EXISTS

Author  Topic 

dbradish
Starting Member

24 Posts

Posted - 2009-07-02 : 13:08:28
The referential integrity in my SQL 2008 ENT database (x86 server) will not allow orphaned child records so this is not possible. Just for kicks, however, I've run various SELECTs and found the supposed missing key every time. I've also double checked my DIM and FACT table keys, and every FACT foreign key has a parent DIM key as expected. Because my "Attribute not found" doesn't keep occurring on the same table (sometimes it thinks I'm missing a part, customer or order line), and I know my data is clean, I think this problem is internal to SSAS.

In reading various blogs, I've taken the following steps:
1. Successfully processed each dimension separately
2. Dropped and recreated my partitions
3. Built a brand new test cube with one FACT table and 3 DIM tables (all found in the original cube so I'm using the same data).
The error persists.

The only thing I can think of is that we recently installed SQL 2008 SP2 (prod ver 10.0.2531.0); however, my cube also receives new data every day so there is > 1 change.

I'm open to suggestions.

********************************
Error Message 3:
Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'dbo_FactOrderLineBooking', Column: 'olb_ditmID', Value: '41746'. The attribute is 'ditm_Id'. Errors in the OLAP storage engine: The record was skipped because the attribute key was not found. Attribute: ditm_Id of Dimension: Part from Database: JobCube, Cube: JobCube, Measure Group: Fact Bookings, Partition: Fact Order Line Booking, Record: 1306318.

Server: The operation has been cancelled. Errors in the OLAP storage engine: An error occurred while processing the 'Fact Order Line Booking' partition of the 'Fact Bookings' measure group for the 'JobCube' cube from the JobCube database.

Errors in the OLAP storage engine: The attribute key cannot be found when processing: Table: 'dbo_FactOrderLineBooking', Column: 'olb_ditmID', Value: '41746'. The attribute is 'ditm_Id'. Errors in the OLAP storage engine: The record was skipped because the attribute key was not found. Attribute: ditm_Id of Dimension: Part from Database: JobCube, Cube: JobCube, Measure Group: Fact Bookings, Partition: Fact Order Line Booking, Record: 1306318. Errors in the OLAP storage engine: The process operation ended because the number of errors encountered during processing reached the defined limit of allowable errors for the operation. Errors in the OLAP storage engine: An error occurred while processing the 'Fact Order Line Booking' partition of the 'Fact Bookings' measure group for the 'JobCube' cube from the JobCube database.

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2009-07-02 : 14:11:21
what does this return?

select *
from dbo_FactOrderLineBooking f
inner join Part d
on d.ditm_Id=f.olb_ditmID
where f.olb_ditmID=41746
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2009-07-02 : 14:15:58
also see

http://toddmcdermid.blogspot.com/2009/01/ssas-quick-reference-attribute-key.html
Go to Top of Page

dbradish
Starting Member

24 Posts

Posted - 2009-07-02 : 14:32:08
Q1: Your SELECT returns the key that is supposed to be missing. On subsequent processes, I'll get a different table name or key value but the key can be found in my DIM table every time. Foreign key constraints are set up via table design.

Add'l Notes:
1. No FACT or DIM columns allow NULL values (the -1 logic is used) and table design enforces no NULL values.
2. Only Surrogate keys are used for ID values. No exceptions.
3. The FACT table I'm testing with has < 3 million rows

Todd McDermid's Blog is excellent. I'm looking into collation.

Thanks for the response! Any more thoughts? My next steps are to 1.) move to a x64 server and 2.) create another test cube from scratch including DSV but keep same warehouse tables
Go to Top of Page
   

- Advertisement -