Sunday, February 26, 2012

error configuration

I want to use custom error configuration for a single dimension.

When I set the error configuration properties for a single dimension in Visual Studio, process this dimension and process the cube then the custom error configuration settings are ignored.

When I set custom error configuration settings for the cube in Visual Studio these settins are also ignored.

When I set the custom error configuration settings in the Process Cube Window (Change Settings - Dimension Key errors) then these settings are applied to all dimensions.

How can I use custom error configuration for a single dimension and why are my settings in Visual Studio ignored.

Thanks for any reply.

They should not be ignored. Probably you work in the project mode and do not deploy before opening the processing dialog.

When you set it in VS you modify the error configuration only for the local data. If you are in project mode then you need to deploy your changes onto the server so that the changes would be known. Usually the deployment also means processing. If you just click that button to open the processing dialog in VS then it establishes a server connection and processes whatever has been previously deployed, which contains the old error configuration.

If you are in on-line mode then you need to save the object (dimension, cube) once you have changed the error configuration. Saving will propagate the meta data changes onto the server and once you open the processing dialog it will process with the new error configuration.

Saving in project mode will persist your changes on disk and not on the server. This is why in project mode you need deployment.|||

Thanks for your reply.

I have deployed my changes. I have the same behaviour when I am using SQL Server Management Studio on the server. Here I can view the current error configuration of the dimension:

Use default error configuration: disabled

Key error action: Convert To Unknown

Ignore errors

Key not found: Report And Continue

Duplicate key: Ignore Error

Null key converted to unknown: Ignore Error

Null key not allowed: IgnoreError

Error log path: C:\Program Files\Microsoft SQL Server\MSSQL.2\OLAP\Log\analyzer.log

When I rightclick on the cube and select Process to open the Process cube window and start processing with the default settings I still get a key not found error (for this dimension with an individual configuration error setting) and processing stops.

When I change the error configuration settings in SQL Server Management Studio for the cube this settings are ignored when I process via the Process Cube window with the default settings.

And when I change the error configuration settings for the process (in the Process Cube window) these settings are taken for all dimensions and the individual settings of the dimensions are ignored.

Do I have to start the process in another way?

Are there any preconditions like schema optimization in AS 2000?

|||

> I still get a key not found error (for this dimension with an individual configuration error setting) and processing stops.

Does the processing dialog box show that the processing failed? Stops could mean it succeeded with errors. Depends how much time it takes to process your cube.

Unless you have a repro, which you could send i will need to model the situation according to your description and get back to you with the results.

|||

try to configure like this..

Click the Cube properties...

Goto Error configuration....and set it to custom...

and then expand it and set the 'Key Error Limit' as -1 save it and process the cubbe.

Hope this helps you.

|||I have made some repro simulation and asked people a question and here what has been found. When you specify Ignore Error ( -1 for KeyErrorLimit ) on a dimension it does not apply to the problems with fact data. It applies to the case when your dimension consists of attributes having sources to different tables - snowflake dimensions. The content in these tables might have referential integrity problems. Specifying -1 KeyErrorLimit will allow processing the dimension.

When you specify -1 KeyErrorLimit for a cube it allows processing when the fact tables do not have corresponding primary key in any of the dimension tables.

It is not possible to declare ignoring referential integrity problems between fact table and only one dimension table. Once it is defined on a cube or partition then referential integrity problems with all the dimensions are ignored.

In my test case i created a simple database, which has 2 dimension tables and one fact table. The fact table contained records with some foreign key values absent in the dimension tables. I created 2 dimensions and one measure group. In order to process successfully i just had to specify -1 KeyErrorLimit in ErrorConfiguration of the cube. Everything processed fine.

Maybe you have 2 types of referential integrity problems at the same time and in order to resolve them you need to specify -1 KeyErrorLimit on the dimension and on the cube.|||

Hi Andrew,

thank you very much for your detailed explanation (and also thanks to rockworld for your hint).

So it was my misunderstanding how to use the custom error configuration on a dimension.

No comments:

Post a Comment