I have been working as part-time BI and Sharepoint Developer/Admin alongwith my routine AX development. While working with Analysis Services and Cubes Processing, I have come across several errors, In today's post, I will list down the troubleshooting steps involved to solve one such error, Hope it helps somebody out there:
Error# 1
Errors in the OLAP storage engine: The attribute key cannot
be found when processing: Table: 'dbo_RR006_Inventory_x0020_Calculations',
Column: 'TimeKey_FK', Value: '12/01/2012'. The attribute is 'Time Key PK'.
Errors in the OLAP storage engine: The record was skipped because the attribute
key was not found. Attribute: Time Key PK of Dimension: Time Dimension from
Database: RR001a-RetailReporting, Cube: RR001-RetailReporting, Measure Group:
Inventory Calculations, Partition: RR006 Inventory Calculations, Record: 1.
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 'RR006 Inventory Calculations' partition of the
'Inventory Calculations' measure group for the 'RR001-RetailReporting' cube
from the RR001a-RetailReporting database.
Solution:
Process the Dimension in question by going to Process
options and change from “Process Update” to “Process Full”
Also had to reprocess the following dimensions
Dim Sales Dimensions,
Time, Item Dimensions, End of Details, Customers
Note: The table names and dimensions names may differ in your scenario.
Some Additional Notes/References:
Difference between
ProcessFull and ProcessUpdate
ProcessFull
ProcessFull applies to all objects. It discards the storage contents of the object
and and rebuilds them. ProcessFull is recursively applied to all descendants of
the object as well.
ProcessUpdate
ProcessUpdate applies only to dimensions.
It is the equivalent of incremental dimension processing in Analysis Services
2000. It sends SQL queries to read the entire dimension table and applies the
changes—member updates, additions, deletions.Since ProcessUpdate reads the entire dimension table, it begs the question, "How is it different from ProcessFull?" The difference is that ProcessUpdate does not discard the dimension storage contents. It applies the changes in a "smart" manner that preserves the fact data in dependent partitions. ProcessFull, on the other hand, does an implicit ProcessClear on all dependent partitions. ProcessUpdate is inherently slower than ProcessFull since it is doing additional work to apply the changes.
Depending on the nature of the changes in the dimension table, ProcessUpdate can affect dependent partitions. If only new members were added, then the partitions are not affected. But if members were deleted or if member relationships changed (e.g., a Customer moved from Redmond to Seattle), then some of the aggregation data and bitmap indexes on the partitions are dropped. The cube is still available for queries, albeit with lower performance.
http://support.microsoft.com/kb/922673
(Look at Section “Ignore the Error”)
Good post saved my day..
ReplyDeleteGood article thanks
ReplyDelete